Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
7a947b34
Commit
7a947b34
authored
Nov 27, 2000
by
Dmitry Timoshkov
Committed by
Alexandre Julliard
Nov 27, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
General clean up of the edit control: removed transfer of unused
variables, fixed signed/unsigned mismatches.
parent
c87c5e3d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
180 additions
and
180 deletions
+180
-180
edit.c
controls/edit.c
+180
-180
No files found.
controls/edit.c
View file @
7a947b34
...
...
@@ -73,8 +73,8 @@ typedef struct
{
HANDLE
heap
;
/* our own heap */
LPSTR
text
;
/* the actual contents of the control */
INT
buffer_size
;
/* the size of the buffer */
INT
buffer_limit
;
/* the maximum size to which the buffer may grow */
U
INT
buffer_size
;
/* the size of the buffer */
U
INT
buffer_limit
;
/* the maximum size to which the buffer may grow */
HFONT
font
;
/* NULL means standard system font */
INT
x_offset
;
/* scroll offset for multi lines this is in pixels
for single lines it's in characters */
...
...
@@ -83,7 +83,7 @@ typedef struct
DWORD
style
;
/* sane version of wnd->dwStyle */
WORD
flags
;
/* flags that are not in es->style or wnd->flags (EF_XXX) */
INT
undo_insert_count
;
/* number of characters inserted in sequence */
INT
undo_position
;
/* character index of the insertion and deletion */
U
INT
undo_position
;
/* character index of the insertion and deletion */
LPSTR
undo_text
;
/* deleted text */
INT
undo_buffer_size
;
/* size of the deleted text buffer */
INT
selection_start
;
/* == selection_end if no selection */
...
...
@@ -156,16 +156,16 @@ typedef struct
* We still like to call them internally
* "static inline" makes them more like macro's
*/
static
inline
BOOL
EDIT_EM_CanUndo
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
inline
void
EDIT_EM_EmptyUndoBuffer
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
inline
void
EDIT_WM_Clear
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
inline
void
EDIT_WM_Cut
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
inline
BOOL
EDIT_EM_CanUndo
(
EDITSTATE
*
es
);
static
inline
void
EDIT_EM_EmptyUndoBuffer
(
EDITSTATE
*
es
);
static
inline
void
EDIT_WM_Clear
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
inline
void
EDIT_WM_Cut
(
WND
*
wnd
,
EDITSTATE
*
es
);
/*
* Helper functions only valid for one type of control
*/
static
void
EDIT_BuildLineDefs_ML
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
LPSTR
EDIT_GetPasswordPointer_SL
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
LPSTR
EDIT_GetPasswordPointer_SL
(
EDITSTATE
*
es
);
static
void
EDIT_MoveDown_ML
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
static
void
EDIT_MovePageDown_ML
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
static
void
EDIT_MovePageUp_ML
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
...
...
@@ -175,12 +175,12 @@ static void EDIT_MoveUp_ML(WND *wnd, EDITSTATE *es, BOOL extend);
*/
static
INT
EDIT_CallWordBreakProc
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
start
,
INT
index
,
INT
count
,
INT
action
);
static
INT
EDIT_CharFromPos
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
x
,
INT
y
,
LPBOOL
after_wrap
);
static
void
EDIT_ConfinePoint
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPINT
x
,
LPINT
y
);
static
void
EDIT_ConfinePoint
(
EDITSTATE
*
es
,
LPINT
x
,
LPINT
y
);
static
void
EDIT_GetLineRect
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
line
,
INT
scol
,
INT
ecol
,
LPRECT
rc
);
static
void
EDIT_InvalidateText
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
start
,
INT
end
);
static
void
EDIT_LockBuffer
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
BOOL
EDIT_MakeFit
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
size
);
static
BOOL
EDIT_MakeUndoFit
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
size
);
static
BOOL
EDIT_MakeFit
(
WND
*
wnd
,
EDITSTATE
*
es
,
U
INT
size
);
static
BOOL
EDIT_MakeUndoFit
(
EDITSTATE
*
es
,
INT
size
);
static
void
EDIT_MoveBackward
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
static
void
EDIT_MoveEnd
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
static
void
EDIT_MoveForward
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
...
...
@@ -188,7 +188,7 @@ static void EDIT_MoveHome(WND *wnd, EDITSTATE *es, BOOL extend);
static
void
EDIT_MoveWordBackward
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
static
void
EDIT_MoveWordForward
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
extend
);
static
void
EDIT_PaintLine
(
WND
*
wnd
,
EDITSTATE
*
es
,
HDC
hdc
,
INT
line
,
BOOL
rev
);
static
INT
EDIT_PaintText
(
WND
*
wnd
,
EDITSTATE
*
es
,
HDC
hdc
,
INT
x
,
INT
y
,
INT
line
,
INT
col
,
INT
count
,
BOOL
rev
);
static
INT
EDIT_PaintText
(
EDITSTATE
*
es
,
HDC
hdc
,
INT
x
,
INT
y
,
INT
line
,
INT
col
,
INT
count
,
BOOL
rev
);
static
void
EDIT_SetCaretPos
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
pos
,
BOOL
after_wrap
);
static
void
EDIT_SetRectNP
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPRECT
lprc
);
static
void
EDIT_UnlockBuffer
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
force
);
...
...
@@ -197,15 +197,15 @@ static INT EDIT_WordBreakProc(LPSTR s, INT index, INT count, INT action);
* EM_XXX message handlers
*/
static
LRESULT
EDIT_EM_CharFromPos
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
x
,
INT
y
);
static
BOOL
EDIT_EM_FmtLines
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
add_eol
);
static
BOOL
EDIT_EM_FmtLines
(
EDITSTATE
*
es
,
BOOL
add_eol
);
static
HLOCAL
EDIT_EM_GetHandle
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
HLOCAL16
EDIT_EM_GetHandle16
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
INT
EDIT_EM_GetLine
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
line
,
LPSTR
lpch
);
static
LRESULT
EDIT_EM_GetSel
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPUINT
start
,
LPUINT
end
);
static
INT
EDIT_EM_GetLine
(
EDITSTATE
*
es
,
INT
line
,
LPSTR
lpch
);
static
LRESULT
EDIT_EM_GetSel
(
EDITSTATE
*
es
,
LPUINT
start
,
LPUINT
end
);
static
LRESULT
EDIT_EM_GetThumb
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
INT
EDIT_EM_LineFromChar
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
index
);
static
INT
EDIT_EM_LineIndex
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
line
);
static
INT
EDIT_EM_LineLength
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
index
);
static
INT
EDIT_EM_LineFromChar
(
EDITSTATE
*
es
,
INT
index
);
static
INT
EDIT_EM_LineIndex
(
EDITSTATE
*
es
,
INT
line
);
static
INT
EDIT_EM_LineLength
(
EDITSTATE
*
es
,
INT
index
);
static
BOOL
EDIT_EM_LineScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
dx
,
INT
dy
);
static
LRESULT
EDIT_EM_PosFromChar
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
index
,
BOOL
after_wrap
);
static
void
EDIT_EM_ReplaceSel
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
can_undo
,
LPCSTR
lpsz_replace
,
BOOL
send_update
);
...
...
@@ -213,44 +213,44 @@ static LRESULT EDIT_EM_Scroll(WND *wnd, EDITSTATE *es, INT action);
static
void
EDIT_EM_ScrollCaret
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
void
EDIT_EM_SetHandle
(
WND
*
wnd
,
EDITSTATE
*
es
,
HLOCAL
hloc
);
static
void
EDIT_EM_SetHandle16
(
WND
*
wnd
,
EDITSTATE
*
es
,
HLOCAL16
hloc
);
static
void
EDIT_EM_SetLimitText
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
limit
);
static
void
EDIT_EM_SetMargins
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
left
,
INT
right
);
static
void
EDIT_EM_SetLimitText
(
EDITSTATE
*
es
,
INT
limit
);
static
void
EDIT_EM_SetMargins
(
EDITSTATE
*
es
,
INT
action
,
INT
left
,
INT
right
);
static
void
EDIT_EM_SetPasswordChar
(
WND
*
wnd
,
EDITSTATE
*
es
,
CHAR
c
);
static
void
EDIT_EM_SetSel
(
WND
*
wnd
,
EDITSTATE
*
es
,
UINT
start
,
UINT
end
,
BOOL
after_wrap
);
static
BOOL
EDIT_EM_SetTabStops
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
count
,
LPINT
tabs
);
static
BOOL
EDIT_EM_SetTabStops16
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
count
,
LPINT16
tabs
);
static
BOOL
EDIT_EM_SetTabStops
(
EDITSTATE
*
es
,
INT
count
,
LPINT
tabs
);
static
BOOL
EDIT_EM_SetTabStops16
(
EDITSTATE
*
es
,
INT
count
,
LPINT16
tabs
);
static
void
EDIT_EM_SetWordBreakProc
(
WND
*
wnd
,
EDITSTATE
*
es
,
EDITWORDBREAKPROCA
wbp
);
static
void
EDIT_EM_SetWordBreakProc16
(
WND
*
wnd
,
EDITSTATE
*
es
,
EDITWORDBREAKPROC16
wbp
);
static
BOOL
EDIT_EM_Undo
(
WND
*
wnd
,
EDITSTATE
*
es
);
/*
* WM_XXX message handlers
*/
static
void
EDIT_WM_Char
(
WND
*
wnd
,
EDITSTATE
*
es
,
CHAR
c
,
DWORD
key_data
);
static
void
EDIT_WM_Char
(
WND
*
wnd
,
EDITSTATE
*
es
,
CHAR
c
);
static
void
EDIT_WM_Command
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
code
,
INT
id
,
HWND
conrtol
);
static
void
EDIT_WM_ContextMenu
(
WND
*
wnd
,
EDITSTATE
*
es
,
HWND
hwnd
,
INT
x
,
INT
y
);
static
void
EDIT_WM_ContextMenu
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
x
,
INT
y
);
static
void
EDIT_WM_Copy
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
LRESULT
EDIT_WM_Create
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPCREATESTRUCTA
cs
);
static
void
EDIT_WM_Destroy
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
LRESULT
EDIT_WM_EraseBkGnd
(
WND
*
wnd
,
EDITSTATE
*
es
,
HDC
dc
);
static
INT
EDIT_WM_GetText
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
count
,
LPSTR
text
);
static
LRESULT
EDIT_WM_HScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
,
HWND
scroll_bar
);
static
LRESULT
EDIT_WM_KeyDown
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
key
,
DWORD
key_data
);
static
LRESULT
EDIT_WM_KillFocus
(
WND
*
wnd
,
EDITSTATE
*
es
,
HWND
window_getting_focus
);
static
LRESULT
EDIT_WM_LButtonDblClk
(
WND
*
wnd
,
EDITSTATE
*
es
,
DWORD
keys
,
INT
x
,
INT
y
);
static
INT
EDIT_WM_GetText
(
EDITSTATE
*
es
,
INT
count
,
LPSTR
text
);
static
LRESULT
EDIT_WM_HScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
);
static
LRESULT
EDIT_WM_KeyDown
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
key
);
static
LRESULT
EDIT_WM_KillFocus
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
LRESULT
EDIT_WM_LButtonDblClk
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
LRESULT
EDIT_WM_LButtonDown
(
WND
*
wnd
,
EDITSTATE
*
es
,
DWORD
keys
,
INT
x
,
INT
y
);
static
LRESULT
EDIT_WM_LButtonUp
(
WND
*
wnd
,
EDITSTATE
*
es
,
DWORD
keys
,
INT
x
,
INT
y
);
static
LRESULT
EDIT_WM_LButtonUp
(
HWND
hwndSelf
,
EDITSTATE
*
es
);
static
LRESULT
EDIT_WM_MButtonDown
(
WND
*
wnd
);
static
LRESULT
EDIT_WM_MouseMove
(
WND
*
wnd
,
EDITSTATE
*
es
,
DWORD
keys
,
INT
x
,
INT
y
);
static
LRESULT
EDIT_WM_MouseMove
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
x
,
INT
y
);
static
LRESULT
EDIT_WM_NCCreate
(
WND
*
wnd
,
LPCREATESTRUCTA
cs
);
static
void
EDIT_WM_Paint
(
WND
*
wnd
,
EDITSTATE
*
es
,
WPARAM
wParam
);
static
void
EDIT_WM_Paste
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
void
EDIT_WM_SetFocus
(
WND
*
wnd
,
EDITSTATE
*
es
,
HWND
window_losing_focus
);
static
void
EDIT_WM_SetFocus
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
void
EDIT_WM_SetFont
(
WND
*
wnd
,
EDITSTATE
*
es
,
HFONT
font
,
BOOL
redraw
);
static
void
EDIT_WM_SetText
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPCSTR
text
);
static
void
EDIT_WM_Size
(
WND
*
wnd
,
EDITSTATE
*
es
,
UINT
action
,
INT
width
,
INT
height
);
static
LRESULT
EDIT_WM_SysKeyDown
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
key
,
DWORD
key_data
);
static
void
EDIT_WM_Timer
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
id
,
TIMERPROC
timer_proc
);
static
LRESULT
EDIT_WM_VScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
,
HWND
scroll_bar
);
static
void
EDIT_WM_Timer
(
WND
*
wnd
,
EDITSTATE
*
es
);
static
LRESULT
EDIT_WM_VScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
);
static
void
EDIT_UpdateText
(
WND
*
wnd
,
LPRECT
rc
,
BOOL
bErase
);
...
...
@@ -259,7 +259,7 @@ static void EDIT_UpdateText(WND *wnd, LPRECT rc, BOOL bErase);
* EM_CANUNDO
*
*/
static
inline
BOOL
EDIT_EM_CanUndo
(
WND
*
wnd
,
EDITSTATE
*
es
)
static
inline
BOOL
EDIT_EM_CanUndo
(
EDITSTATE
*
es
)
{
return
(
es
->
undo_insert_count
||
strlen
(
es
->
undo_text
));
}
...
...
@@ -270,7 +270,7 @@ static inline BOOL EDIT_EM_CanUndo(WND *wnd, EDITSTATE *es)
* EM_EMPTYUNDOBUFFER
*
*/
static
inline
void
EDIT_EM_EmptyUndoBuffer
(
WND
*
wnd
,
EDITSTATE
*
es
)
static
inline
void
EDIT_EM_EmptyUndoBuffer
(
EDITSTATE
*
es
)
{
es
->
undo_insert_count
=
0
;
*
es
->
undo_text
=
'\0'
;
...
...
@@ -389,13 +389,13 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_GETSEL
:
DPRINTF_EDIT_MSG32
(
"EM_GETSEL"
);
result
=
EDIT_EM_GetSel
(
wnd
,
es
,
(
LPUINT
)
wParam
,
(
LPUINT
)
lParam
);
result
=
EDIT_EM_GetSel
(
es
,
(
LPUINT
)
wParam
,
(
LPUINT
)
lParam
);
break
;
case
EM_SETSEL16
:
DPRINTF_EDIT_MSG16
(
"EM_SETSEL"
);
if
(
SLOWORD
(
lParam
)
==
-
1
)
EDIT_EM_SetSel
(
wnd
,
es
,
-
1
,
0
,
FALSE
);
EDIT_EM_SetSel
(
wnd
,
es
,
(
UINT
)
-
1
,
0
,
FALSE
);
else
EDIT_EM_SetSel
(
wnd
,
es
,
LOWORD
(
lParam
),
HIWORD
(
lParam
),
FALSE
);
if
(
!
wParam
)
...
...
@@ -512,7 +512,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_LINEINDEX
:
DPRINTF_EDIT_MSG32
(
"EM_LINEINDEX"
);
result
=
(
LRESULT
)
EDIT_EM_LineIndex
(
wnd
,
es
,
(
INT
)
wParam
);
result
=
(
LRESULT
)
EDIT_EM_LineIndex
(
es
,
(
INT
)
wParam
);
break
;
case
EM_SETHANDLE16
:
...
...
@@ -564,7 +564,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_LINELENGTH
:
DPRINTF_EDIT_MSG32
(
"EM_LINELENGTH"
);
result
=
(
LRESULT
)
EDIT_EM_LineLength
(
wnd
,
es
,
(
INT
)
wParam
);
result
=
(
LRESULT
)
EDIT_EM_LineLength
(
es
,
(
INT
)
wParam
);
break
;
case
EM_REPLACESEL16
:
...
...
@@ -597,7 +597,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_GETLINE
:
DPRINTF_EDIT_MSG32
(
"EM_GETLINE"
);
result
=
(
LRESULT
)
EDIT_EM_GetLine
(
wnd
,
es
,
(
INT
)
wParam
,
(
LPSTR
)
lParam
);
result
=
(
LRESULT
)
EDIT_EM_GetLine
(
es
,
(
INT
)
wParam
,
(
LPSTR
)
lParam
);
break
;
case
EM_LIMITTEXT16
:
...
...
@@ -605,7 +605,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_SETLIMITTEXT
:
DPRINTF_EDIT_MSG32
(
"EM_SETLIMITTEXT"
);
EDIT_EM_SetLimitText
(
wnd
,
es
,
(
INT
)
wParam
);
EDIT_EM_SetLimitText
(
es
,
(
INT
)
wParam
);
break
;
case
EM_CANUNDO16
:
...
...
@@ -613,7 +613,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_CANUNDO
:
DPRINTF_EDIT_MSG32
(
"EM_CANUNDO"
);
result
=
(
LRESULT
)
EDIT_EM_CanUndo
(
wnd
,
es
);
result
=
(
LRESULT
)
EDIT_EM_CanUndo
(
es
);
break
;
case
EM_UNDO16
:
...
...
@@ -631,7 +631,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_FMTLINES
:
DPRINTF_EDIT_MSG32
(
"EM_FMTLINES"
);
result
=
(
LRESULT
)
EDIT_EM_FmtLines
(
wnd
,
es
,
(
BOOL
)
wParam
);
result
=
(
LRESULT
)
EDIT_EM_FmtLines
(
es
,
(
BOOL
)
wParam
);
break
;
case
EM_LINEFROMCHAR16
:
...
...
@@ -639,7 +639,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_LINEFROMCHAR
:
DPRINTF_EDIT_MSG32
(
"EM_LINEFROMCHAR"
);
result
=
(
LRESULT
)
EDIT_EM_LineFromChar
(
wnd
,
es
,
(
INT
)
wParam
);
result
=
(
LRESULT
)
EDIT_EM_LineFromChar
(
es
,
(
INT
)
wParam
);
break
;
/* message 0x00ca missing from specs */
...
...
@@ -654,11 +654,11 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
EM_SETTABSTOPS16
:
DPRINTF_EDIT_MSG16
(
"EM_SETTABSTOPS"
);
result
=
(
LRESULT
)
EDIT_EM_SetTabStops16
(
wnd
,
es
,
(
INT
)
wParam
,
(
LPINT16
)
PTR_SEG_TO_LIN
((
SEGPTR
)
lParam
));
result
=
(
LRESULT
)
EDIT_EM_SetTabStops16
(
es
,
(
INT
)
wParam
,
(
LPINT16
)
PTR_SEG_TO_LIN
((
SEGPTR
)
lParam
));
break
;
case
EM_SETTABSTOPS
:
DPRINTF_EDIT_MSG32
(
"EM_SETTABSTOPS"
);
result
=
(
LRESULT
)
EDIT_EM_SetTabStops
(
wnd
,
es
,
(
INT
)
wParam
,
(
LPINT
)
lParam
);
result
=
(
LRESULT
)
EDIT_EM_SetTabStops
(
es
,
(
INT
)
wParam
,
(
LPINT
)
lParam
);
break
;
case
EM_SETPASSWORDCHAR16
:
...
...
@@ -674,7 +674,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/* fall through */
case
EM_EMPTYUNDOBUFFER
:
DPRINTF_EDIT_MSG32
(
"EM_EMPTYUNDOBUFFER"
);
EDIT_EM_EmptyUndoBuffer
(
wnd
,
es
);
EDIT_EM_EmptyUndoBuffer
(
es
);
break
;
case
EM_GETFIRSTVISIBLELINE16
:
...
...
@@ -731,7 +731,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
EM_SETMARGINS
:
DPRINTF_EDIT_MSG32
(
"EM_SETMARGINS"
);
EDIT_EM_SetMargins
(
wnd
,
es
,
(
INT
)
wParam
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
));
EDIT_EM_SetMargins
(
es
,
(
INT
)
wParam
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
));
break
;
case
EM_GETMARGINS
:
...
...
@@ -782,7 +782,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
SendMessageA
(
wnd
->
parent
->
hwndSelf
,
WM_KEYDOWN
,
wParam
,
0
);
break
;
}
EDIT_WM_Char
(
wnd
,
es
,
(
CHAR
)
wParam
,
(
DWORD
)
lParam
);
EDIT_WM_Char
(
wnd
,
es
,
(
CHAR
)
wParam
);
break
;
case
WM_CLEAR
:
...
...
@@ -797,7 +797,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
WM_CONTEXTMENU
:
DPRINTF_EDIT_MSG32
(
"WM_CONTEXTMENU"
);
EDIT_WM_ContextMenu
(
wnd
,
es
,
(
HWND
)
wParam
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
));
EDIT_WM_ContextMenu
(
wnd
,
es
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
));
break
;
case
WM_COPY
:
...
...
@@ -833,7 +833,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
WM_GETTEXT
:
DPRINTF_EDIT_MSG32
(
"WM_GETTEXT"
);
result
=
(
LRESULT
)
EDIT_WM_GetText
(
wnd
,
es
,
(
INT
)
wParam
,
(
LPSTR
)
lParam
);
result
=
(
LRESULT
)
EDIT_WM_GetText
(
es
,
(
INT
)
wParam
,
(
LPSTR
)
lParam
);
break
;
case
WM_GETTEXTLENGTH
:
...
...
@@ -843,22 +843,22 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
WM_HSCROLL
:
DPRINTF_EDIT_MSG32
(
"WM_HSCROLL"
);
result
=
EDIT_WM_HScroll
(
wnd
,
es
,
LOWORD
(
wParam
),
SHIWORD
(
wParam
)
,
(
HWND
)
lParam
);
result
=
EDIT_WM_HScroll
(
wnd
,
es
,
LOWORD
(
wParam
),
SHIWORD
(
wParam
));
break
;
case
WM_KEYDOWN
:
DPRINTF_EDIT_MSG32
(
"WM_KEYDOWN"
);
result
=
EDIT_WM_KeyDown
(
wnd
,
es
,
(
INT
)
wParam
,
(
DWORD
)
lParam
);
result
=
EDIT_WM_KeyDown
(
wnd
,
es
,
(
INT
)
wParam
);
break
;
case
WM_KILLFOCUS
:
DPRINTF_EDIT_MSG32
(
"WM_KILLFOCUS"
);
result
=
EDIT_WM_KillFocus
(
wnd
,
es
,
(
HWND
)
wParam
);
result
=
EDIT_WM_KillFocus
(
wnd
,
es
);
break
;
case
WM_LBUTTONDBLCLK
:
DPRINTF_EDIT_MSG32
(
"WM_LBUTTONDBLCLK"
);
result
=
EDIT_WM_LButtonDblClk
(
wnd
,
es
,
(
DWORD
)
wParam
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
)
);
result
=
EDIT_WM_LButtonDblClk
(
wnd
,
es
);
break
;
case
WM_LBUTTONDOWN
:
...
...
@@ -868,7 +868,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
WM_LBUTTONUP
:
DPRINTF_EDIT_MSG32
(
"WM_LBUTTONUP"
);
result
=
EDIT_WM_LButtonUp
(
wnd
,
es
,
(
DWORD
)
wParam
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
)
);
result
=
EDIT_WM_LButtonUp
(
hwnd
,
es
);
break
;
case
WM_MBUTTONDOWN
:
...
...
@@ -892,7 +892,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
/*
* DPRINTF_EDIT_MSG32("WM_MOUSEMOVE");
*/
result
=
EDIT_WM_MouseMove
(
wnd
,
es
,
(
DWORD
)
wParam
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
));
result
=
EDIT_WM_MouseMove
(
wnd
,
es
,
SLOWORD
(
lParam
),
SHIWORD
(
lParam
));
break
;
case
WM_PAINT
:
...
...
@@ -907,7 +907,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
WM_SETFOCUS
:
DPRINTF_EDIT_MSG32
(
"WM_SETFOCUS"
);
EDIT_WM_SetFocus
(
wnd
,
es
,
(
HWND
)
wParam
);
EDIT_WM_SetFocus
(
wnd
,
es
);
break
;
case
WM_SETFONT
:
...
...
@@ -933,17 +933,17 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
case
WM_TIMER
:
DPRINTF_EDIT_MSG32
(
"WM_TIMER"
);
EDIT_WM_Timer
(
wnd
,
es
,
(
INT
)
wParam
,
(
TIMERPROC
)
lParam
);
EDIT_WM_Timer
(
wnd
,
es
);
break
;
case
WM_VSCROLL
:
DPRINTF_EDIT_MSG32
(
"WM_VSCROLL"
);
result
=
EDIT_WM_VScroll
(
wnd
,
es
,
LOWORD
(
wParam
),
SHIWORD
(
wParam
)
,
(
HWND
)(
lParam
)
);
result
=
EDIT_WM_VScroll
(
wnd
,
es
,
LOWORD
(
wParam
),
SHIWORD
(
wParam
));
break
;
case
WM_MOUSEWHEEL
:
{
shor
t
gcWheelDelta
=
0
;
in
t
gcWheelDelta
=
0
;
UINT
pulScrollLines
=
3
;
SystemParametersInfoW
(
SPI_GETWHEELSCROLLLINES
,
0
,
&
pulScrollLines
,
0
);
...
...
@@ -951,7 +951,7 @@ LRESULT WINAPI EditWndProc( HWND hwnd, UINT msg,
result
=
DefWindowProcA
(
hwnd
,
msg
,
wParam
,
lParam
);
break
;
}
gcWheelDelta
-=
(
short
)
HIWORD
(
wParam
);
gcWheelDelta
-=
S
HIWORD
(
wParam
);
if
(
abs
(
gcWheelDelta
)
>=
WHEEL_DELTA
&&
pulScrollLines
)
{
int
cLineScroll
=
(
int
)
min
((
UINT
)
es
->
line_count
,
pulScrollLines
);
...
...
@@ -1179,7 +1179,7 @@ static INT EDIT_CharFromPos(WND *wnd, EDITSTATE *es, INT x, INT y, LPBOOL after_
x
-=
es
->
format_rect
.
left
;
if
(
!
x
)
return
es
->
x_offset
;
text
=
EDIT_GetPasswordPointer_SL
(
wnd
,
es
);
text
=
EDIT_GetPasswordPointer_SL
(
es
);
dc
=
GetDC
(
wnd
->
hwndSelf
);
if
(
es
->
font
)
old_font
=
SelectObject
(
dc
,
es
->
font
);
...
...
@@ -1229,7 +1229,7 @@ static INT EDIT_CharFromPos(WND *wnd, EDITSTATE *es, INT x, INT y, LPBOOL after_
* (so CharFromPos returns the nearest _visible_ character)
*
*/
static
void
EDIT_ConfinePoint
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPINT
x
,
LPINT
y
)
static
void
EDIT_ConfinePoint
(
EDITSTATE
*
es
,
LPINT
x
,
LPINT
y
)
{
*
x
=
min
(
max
(
*
x
,
es
->
format_rect
.
left
),
es
->
format_rect
.
right
-
1
);
*
y
=
min
(
max
(
*
y
,
es
->
format_rect
.
top
),
es
->
format_rect
.
bottom
-
1
);
...
...
@@ -1246,7 +1246,7 @@ static void EDIT_ConfinePoint(WND *wnd, EDITSTATE *es, LPINT x, LPINT y)
*/
static
void
EDIT_GetLineRect
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
line
,
INT
scol
,
INT
ecol
,
LPRECT
rc
)
{
INT
line_index
=
EDIT_EM_LineIndex
(
wnd
,
es
,
line
);
INT
line_index
=
EDIT_EM_LineIndex
(
es
,
line
);
if
(
es
->
style
&
ES_MULTILINE
)
rc
->
top
=
es
->
format_rect
.
top
+
(
line
-
es
->
y_offset
)
*
es
->
line_height
;
...
...
@@ -1265,7 +1265,7 @@ static void EDIT_GetLineRect(WND *wnd, EDITSTATE *es, INT line, INT scol, INT ec
* note: caller should free the (optionally) allocated buffer
*
*/
static
LPSTR
EDIT_GetPasswordPointer_SL
(
WND
*
wnd
,
EDITSTATE
*
es
)
static
LPSTR
EDIT_GetPasswordPointer_SL
(
EDITSTATE
*
es
)
{
if
(
es
->
style
&
ES_PASSWORD
)
{
INT
len
=
strlen
(
es
->
text
);
...
...
@@ -1338,8 +1338,8 @@ static void EDIT_SL_InvalidateText(WND *wnd, EDITSTATE *es, INT start, INT end)
static
void
EDIT_ML_InvalidateText
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
start
,
INT
end
)
{
INT
vlc
=
(
es
->
format_rect
.
bottom
-
es
->
format_rect
.
top
)
/
es
->
line_height
;
INT
sl
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
start
);
INT
el
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
end
);
INT
sl
=
EDIT_EM_LineFromChar
(
es
,
start
);
INT
el
=
EDIT_EM_LineFromChar
(
es
,
end
);
INT
sc
;
INT
ec
;
RECT
rc1
;
...
...
@@ -1351,15 +1351,15 @@ static void EDIT_ML_InvalidateText(WND *wnd, EDITSTATE *es, INT start, INT end)
if
((
el
<
es
->
y_offset
)
||
(
sl
>
es
->
y_offset
+
vlc
))
return
;
sc
=
start
-
EDIT_EM_LineIndex
(
wnd
,
es
,
sl
);
ec
=
end
-
EDIT_EM_LineIndex
(
wnd
,
es
,
el
);
sc
=
start
-
EDIT_EM_LineIndex
(
es
,
sl
);
ec
=
end
-
EDIT_EM_LineIndex
(
es
,
el
);
if
(
sl
<
es
->
y_offset
)
{
sl
=
es
->
y_offset
;
sc
=
0
;
}
if
(
el
>
es
->
y_offset
+
vlc
)
{
el
=
es
->
y_offset
+
vlc
;
ec
=
EDIT_EM_LineLength
(
wnd
,
es
,
EDIT_EM_LineIndex
(
wnd
,
es
,
el
));
ec
=
EDIT_EM_LineLength
(
es
,
EDIT_EM_LineIndex
(
es
,
el
));
}
GetClientRect
(
wnd
->
hwndSelf
,
&
rc1
);
IntersectRect
(
&
rcWnd
,
&
rc1
,
&
es
->
format_rect
);
...
...
@@ -1369,15 +1369,15 @@ static void EDIT_ML_InvalidateText(WND *wnd, EDITSTATE *es, INT start, INT end)
EDIT_UpdateText
(
wnd
,
&
rcUpdate
,
FALSE
);
}
else
{
EDIT_GetLineRect
(
wnd
,
es
,
sl
,
sc
,
EDIT_EM_LineLength
(
wnd
,
es
,
EDIT_EM_LineIndex
(
wnd
,
es
,
sl
)),
EDIT_EM_LineLength
(
es
,
EDIT_EM_LineIndex
(
es
,
sl
)),
&
rcLine
);
if
(
IntersectRect
(
&
rcUpdate
,
&
rcWnd
,
&
rcLine
))
EDIT_UpdateText
(
wnd
,
&
rcUpdate
,
FALSE
);
for
(
l
=
sl
+
1
;
l
<
el
;
l
++
)
{
EDIT_GetLineRect
(
wnd
,
es
,
l
,
0
,
EDIT_EM_LineLength
(
wnd
,
es
,
EDIT_EM_LineIndex
(
wnd
,
es
,
l
)),
EDIT_EM_LineLength
(
es
,
EDIT_EM_LineIndex
(
es
,
l
)),
&
rcLine
);
if
(
IntersectRect
(
&
rcUpdate
,
&
rcWnd
,
&
rcLine
))
EDIT_UpdateText
(
wnd
,
&
rcUpdate
,
FALSE
);
...
...
@@ -1424,7 +1424,7 @@ static void EDIT_InvalidateText(WND *wnd, EDITSTATE *es, INT start, INT end)
* Try to fit size + 1 bytes in the buffer. Constrain to limits.
*
*/
static
BOOL
EDIT_MakeFit
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
size
)
static
BOOL
EDIT_MakeFit
(
WND
*
wnd
,
EDITSTATE
*
es
,
U
INT
size
)
{
HLOCAL
hNew32
;
HLOCAL16
hNew16
;
...
...
@@ -1457,7 +1457,7 @@ static BOOL EDIT_MakeFit(WND *wnd, EDITSTATE *es, INT size)
if
((
hNew16
=
LOCAL_ReAlloc
(
wnd
->
hInstance
,
es
->
hloc16
,
size
+
1
,
LMEM_MOVEABLE
)))
{
TRACE
(
"Old 16 bit handle %08x, new handle %08x
\n
"
,
es
->
hloc16
,
hNew16
);
es
->
hloc16
=
hNew16
;
es
->
buffer_size
=
min
(
LOCAL_Size
(
wnd
->
hInstance
,
es
->
hloc16
)
-
1
,
es
->
buffer_limit
);
es
->
buffer_size
=
min
(
(
UINT
)
LOCAL_Size
(
wnd
->
hInstance
,
es
->
hloc16
)
-
1
,
es
->
buffer_limit
);
}
}
if
(
es
->
buffer_size
<
size
)
{
...
...
@@ -1480,7 +1480,7 @@ static BOOL EDIT_MakeFit(WND *wnd, EDITSTATE *es, INT size)
* Try to fit size + 1 bytes in the undo buffer.
*
*/
static
BOOL
EDIT_MakeUndoFit
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
size
)
static
BOOL
EDIT_MakeUndoFit
(
EDITSTATE
*
es
,
INT
size
)
{
if
(
size
<=
es
->
undo_buffer_size
)
return
TRUE
;
...
...
@@ -1710,13 +1710,13 @@ static void EDIT_MoveWordBackward(WND *wnd, EDITSTATE *es, BOOL extend)
INT
ll
;
INT
li
;
l
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
e
);
ll
=
EDIT_EM_LineLength
(
wnd
,
es
,
e
);
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
);
l
=
EDIT_EM_LineFromChar
(
es
,
e
);
ll
=
EDIT_EM_LineLength
(
es
,
e
);
li
=
EDIT_EM_LineIndex
(
es
,
l
);
if
(
e
-
li
==
0
)
{
if
(
l
)
{
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
-
1
);
e
=
li
+
EDIT_EM_LineLength
(
wnd
,
es
,
li
);
li
=
EDIT_EM_LineIndex
(
es
,
l
-
1
);
e
=
li
+
EDIT_EM_LineLength
(
es
,
li
);
}
}
else
{
e
=
li
+
(
INT
)
EDIT_CallWordBreakProc
(
wnd
,
es
,
...
...
@@ -1742,12 +1742,12 @@ static void EDIT_MoveWordForward(WND *wnd, EDITSTATE *es, BOOL extend)
INT
ll
;
INT
li
;
l
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
e
);
ll
=
EDIT_EM_LineLength
(
wnd
,
es
,
e
);
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
);
l
=
EDIT_EM_LineFromChar
(
es
,
e
);
ll
=
EDIT_EM_LineLength
(
es
,
e
);
li
=
EDIT_EM_LineIndex
(
es
,
l
);
if
(
e
-
li
==
ll
)
{
if
((
es
->
style
&
ES_MULTILINE
)
&&
(
l
!=
es
->
line_count
-
1
))
e
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
+
1
);
e
=
EDIT_EM_LineIndex
(
es
,
l
+
1
);
}
else
{
e
=
li
+
EDIT_CallWordBreakProc
(
wnd
,
es
,
li
,
e
-
li
+
1
,
ll
,
WB_RIGHT
);
...
...
@@ -1783,11 +1783,11 @@ static void EDIT_PaintLine(WND *wnd, EDITSTATE *es, HDC dc, INT line, BOOL rev)
TRACE
(
"line=%d
\n
"
,
line
);
pos
=
EDIT_EM_PosFromChar
(
wnd
,
es
,
EDIT_EM_LineIndex
(
wnd
,
es
,
line
),
FALSE
);
pos
=
EDIT_EM_PosFromChar
(
wnd
,
es
,
EDIT_EM_LineIndex
(
es
,
line
),
FALSE
);
x
=
SLOWORD
(
pos
);
y
=
SHIWORD
(
pos
);
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
line
);
ll
=
EDIT_EM_LineLength
(
wnd
,
es
,
li
);
li
=
EDIT_EM_LineIndex
(
es
,
line
);
ll
=
EDIT_EM_LineLength
(
es
,
li
);
s
=
es
->
selection_start
;
e
=
es
->
selection_end
;
ORDER_INT
(
s
,
e
);
...
...
@@ -1795,11 +1795,11 @@ static void EDIT_PaintLine(WND *wnd, EDITSTATE *es, HDC dc, INT line, BOOL rev)
e
=
min
(
li
+
ll
,
max
(
li
,
e
));
if
(
rev
&&
(
s
!=
e
)
&&
((
es
->
flags
&
EF_FOCUSED
)
||
(
es
->
style
&
ES_NOHIDESEL
)))
{
x
+=
EDIT_PaintText
(
wnd
,
es
,
dc
,
x
,
y
,
line
,
0
,
s
-
li
,
FALSE
);
x
+=
EDIT_PaintText
(
wnd
,
es
,
dc
,
x
,
y
,
line
,
s
-
li
,
e
-
s
,
TRUE
);
x
+=
EDIT_PaintText
(
wnd
,
es
,
dc
,
x
,
y
,
line
,
e
-
li
,
li
+
ll
-
e
,
FALSE
);
x
+=
EDIT_PaintText
(
es
,
dc
,
x
,
y
,
line
,
0
,
s
-
li
,
FALSE
);
x
+=
EDIT_PaintText
(
es
,
dc
,
x
,
y
,
line
,
s
-
li
,
e
-
s
,
TRUE
);
x
+=
EDIT_PaintText
(
es
,
dc
,
x
,
y
,
line
,
e
-
li
,
li
+
ll
-
e
,
FALSE
);
}
else
x
+=
EDIT_PaintText
(
wnd
,
es
,
dc
,
x
,
y
,
line
,
0
,
ll
,
FALSE
);
x
+=
EDIT_PaintText
(
es
,
dc
,
x
,
y
,
line
,
0
,
ll
,
FALSE
);
}
...
...
@@ -1808,7 +1808,7 @@ static void EDIT_PaintLine(WND *wnd, EDITSTATE *es, HDC dc, INT line, BOOL rev)
* EDIT_PaintText
*
*/
static
INT
EDIT_PaintText
(
WND
*
wnd
,
EDITSTATE
*
es
,
HDC
dc
,
INT
x
,
INT
y
,
INT
line
,
INT
col
,
INT
count
,
BOOL
rev
)
static
INT
EDIT_PaintText
(
EDITSTATE
*
es
,
HDC
dc
,
INT
x
,
INT
y
,
INT
line
,
INT
col
,
INT
count
,
BOOL
rev
)
{
COLORREF
BkColor
;
COLORREF
TextColor
;
...
...
@@ -1824,12 +1824,12 @@ static INT EDIT_PaintText(WND *wnd, EDITSTATE *es, HDC dc, INT x, INT y, INT lin
SetBkColor
(
dc
,
GetSysColor
(
COLOR_HIGHLIGHT
));
SetTextColor
(
dc
,
GetSysColor
(
COLOR_HIGHLIGHTTEXT
));
}
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
line
);
li
=
EDIT_EM_LineIndex
(
es
,
line
);
if
(
es
->
style
&
ES_MULTILINE
)
{
ret
=
(
INT
)
LOWORD
(
TabbedTextOutA
(
dc
,
x
,
y
,
es
->
text
+
li
+
col
,
count
,
es
->
tabs_count
,
es
->
tabs
,
es
->
format_rect
.
left
-
es
->
x_offset
));
}
else
{
LPSTR
text
=
EDIT_GetPasswordPointer_SL
(
wnd
,
es
);
LPSTR
text
=
EDIT_GetPasswordPointer_SL
(
es
);
TextOutA
(
dc
,
x
,
y
,
text
+
li
+
col
,
count
);
GetTextExtentPoint32A
(
dc
,
text
+
li
+
col
,
count
,
&
size
);
ret
=
size
.
cx
;
...
...
@@ -2026,7 +2026,7 @@ static LRESULT EDIT_EM_CharFromPos(WND *wnd, EDITSTATE *es, INT x, INT y)
return
-
1
;
index
=
EDIT_CharFromPos
(
wnd
,
es
,
x
,
y
,
NULL
);
return
MAKELONG
(
index
,
EDIT_EM_LineFromChar
(
wnd
,
es
,
index
));
return
MAKELONG
(
index
,
EDIT_EM_LineFromChar
(
es
,
index
));
}
...
...
@@ -2036,7 +2036,7 @@ static LRESULT EDIT_EM_CharFromPos(WND *wnd, EDITSTATE *es, INT x, INT y)
*
* Enable or disable soft breaks.
*/
static
BOOL
EDIT_EM_FmtLines
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
add_eol
)
static
BOOL
EDIT_EM_FmtLines
(
EDITSTATE
*
es
,
BOOL
add_eol
)
{
es
->
flags
&=
~
EF_USE_SOFTBRK
;
if
(
add_eol
)
{
...
...
@@ -2077,7 +2077,7 @@ static HLOCAL EDIT_EM_GetHandle(WND *wnd, EDITSTATE *es)
else
if
(
es
->
hloc16
)
return
(
HLOCAL
)
es
->
hloc16
;
if
(
!
(
newBuf
=
LocalAlloc
(
LMEM_MOVEABLE
,
strlen
(
es
->
text
)
+
1
)))
{
if
(
!
(
newBuf
=
LocalAlloc
(
LMEM_MOVEABLE
|
LMEM_ZEROINIT
,
strlen
(
es
->
text
)
+
1
)))
{
ERR
(
"could not allocate new 32 bit buffer
\n
"
);
return
0
;
}
...
...
@@ -2141,7 +2141,7 @@ static HLOCAL16 EDIT_EM_GetHandle16(WND *wnd, EDITSTATE *es)
ERR
(
"could not allocate new 16 bit buffer
\n
"
);
return
0
;
}
newSize
=
min
(
LOCAL_Size
(
wnd
->
hInstance
,
newBuf
)
-
1
,
es
->
buffer_limit
);
newSize
=
min
(
(
UINT
)
LOCAL_Size
(
wnd
->
hInstance
,
newBuf
)
-
1
,
es
->
buffer_limit
);
if
(
!
(
newText
=
LOCAL_Lock
(
wnd
->
hInstance
,
newBuf
)))
{
ERR
(
"could not lock new 16 bit buffer
\n
"
);
LOCAL_Free
(
wnd
->
hInstance
,
newBuf
);
...
...
@@ -2171,7 +2171,7 @@ static HLOCAL16 EDIT_EM_GetHandle16(WND *wnd, EDITSTATE *es)
* EM_GETLINE
*
*/
static
INT
EDIT_EM_GetLine
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
line
,
LPSTR
lpch
)
static
INT
EDIT_EM_GetLine
(
EDITSTATE
*
es
,
INT
line
,
LPSTR
lpch
)
{
LPSTR
src
;
INT
len
;
...
...
@@ -2182,9 +2182,9 @@ static INT EDIT_EM_GetLine(WND *wnd, EDITSTATE *es, INT line, LPSTR lpch)
return
0
;
}
else
line
=
0
;
i
=
EDIT_EM_LineIndex
(
wnd
,
es
,
line
);
i
=
EDIT_EM_LineIndex
(
es
,
line
);
src
=
es
->
text
+
i
;
len
=
min
(
*
(
WORD
*
)
lpch
,
EDIT_EM_LineLength
(
wnd
,
es
,
i
));
len
=
min
(
*
(
WORD
*
)
lpch
,
EDIT_EM_LineLength
(
es
,
i
));
for
(
i
=
0
;
i
<
len
;
i
++
)
{
*
lpch
=
*
src
;
src
++
;
...
...
@@ -2199,7 +2199,7 @@ static INT EDIT_EM_GetLine(WND *wnd, EDITSTATE *es, INT line, LPSTR lpch)
* EM_GETSEL
*
*/
static
LRESULT
EDIT_EM_GetSel
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPUINT
start
,
LPUINT
end
)
static
LRESULT
EDIT_EM_GetSel
(
EDITSTATE
*
es
,
LPUINT
start
,
LPUINT
end
)
{
UINT
s
=
es
->
selection_start
;
UINT
e
=
es
->
selection_end
;
...
...
@@ -2228,8 +2228,8 @@ static LRESULT EDIT_EM_GetSel(WND *wnd, EDITSTATE *es, LPUINT start, LPUINT end)
*/
static
LRESULT
EDIT_EM_GetThumb
(
WND
*
wnd
,
EDITSTATE
*
es
)
{
return
MAKELONG
(
EDIT_WM_VScroll
(
wnd
,
es
,
EM_GETTHUMB16
,
0
,
0
),
EDIT_WM_HScroll
(
wnd
,
es
,
EM_GETTHUMB16
,
0
,
0
));
return
MAKELONG
(
EDIT_WM_VScroll
(
wnd
,
es
,
EM_GETTHUMB16
,
0
),
EDIT_WM_HScroll
(
wnd
,
es
,
EM_GETTHUMB16
,
0
));
}
...
...
@@ -2238,14 +2238,14 @@ static LRESULT EDIT_EM_GetThumb(WND *wnd, EDITSTATE *es)
* EM_LINEFROMCHAR
*
*/
static
INT
EDIT_EM_LineFromChar
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
index
)
static
INT
EDIT_EM_LineFromChar
(
EDITSTATE
*
es
,
INT
index
)
{
INT
line
;
LINEDEF
*
line_def
;
if
(
!
(
es
->
style
&
ES_MULTILINE
))
return
0
;
if
(
index
>
strlen
(
es
->
text
))
if
(
index
>
(
INT
)
strlen
(
es
->
text
))
return
es
->
line_count
-
1
;
if
(
index
==
-
1
)
index
=
min
(
es
->
selection_start
,
es
->
selection_end
);
...
...
@@ -2267,7 +2267,7 @@ static INT EDIT_EM_LineFromChar(WND *wnd, EDITSTATE *es, INT index)
* EM_LINEINDEX
*
*/
static
INT
EDIT_EM_LineIndex
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
line
)
static
INT
EDIT_EM_LineIndex
(
EDITSTATE
*
es
,
INT
line
)
{
INT
line_index
;
LINEDEF
*
line_def
;
...
...
@@ -2302,7 +2302,7 @@ static INT EDIT_EM_LineIndex(WND *wnd, EDITSTATE *es, INT line)
* EM_LINELENGTH
*
*/
static
INT
EDIT_EM_LineLength
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
index
)
static
INT
EDIT_EM_LineLength
(
EDITSTATE
*
es
,
INT
index
)
{
LINEDEF
*
line_def
;
...
...
@@ -2313,13 +2313,13 @@ static INT EDIT_EM_LineLength(WND *wnd, EDITSTATE *es, INT index)
/* get the number of remaining non-selected chars of selected lines */
INT32
li
;
INT32
count
;
li
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
es
->
selection_start
);
li
=
EDIT_EM_LineFromChar
(
es
,
es
->
selection_start
);
/* # chars before start of selection area */
count
=
es
->
selection_start
-
EDIT_EM_LineIndex
(
wnd
,
es
,
li
);
li
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
es
->
selection_end
);
count
=
es
->
selection_start
-
EDIT_EM_LineIndex
(
es
,
li
);
li
=
EDIT_EM_LineFromChar
(
es
,
es
->
selection_end
);
/* # chars after end of selection */
count
+=
EDIT_EM_LineIndex
(
wnd
,
es
,
li
)
+
EDIT_EM_LineLength
(
wnd
,
es
,
li
)
-
es
->
selection_end
;
count
+=
EDIT_EM_LineIndex
(
es
,
li
)
+
EDIT_EM_LineLength
(
es
,
li
)
-
es
->
selection_end
;
return
count
;
}
line_def
=
es
->
first_line_def
;
...
...
@@ -2395,9 +2395,9 @@ static LRESULT EDIT_EM_PosFromChar(WND *wnd, EDITSTATE *es, INT index, BOOL afte
if
(
es
->
font
)
old_font
=
SelectObject
(
dc
,
es
->
font
);
if
(
es
->
style
&
ES_MULTILINE
)
{
l
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
index
);
l
=
EDIT_EM_LineFromChar
(
es
,
index
);
y
=
(
l
-
es
->
y_offset
)
*
es
->
line_height
;
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
);
li
=
EDIT_EM_LineIndex
(
es
,
l
);
if
(
after_wrap
&&
(
li
==
index
)
&&
l
)
{
INT
l2
=
l
-
1
;
LINEDEF
*
line_def
=
es
->
first_line_def
;
...
...
@@ -2408,13 +2408,13 @@ static LRESULT EDIT_EM_PosFromChar(WND *wnd, EDITSTATE *es, INT index, BOOL afte
if
(
line_def
->
ending
==
END_WRAP
)
{
l
--
;
y
-=
es
->
line_height
;
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
);
li
=
EDIT_EM_LineIndex
(
es
,
l
);
}
}
x
=
LOWORD
(
GetTabbedTextExtentA
(
dc
,
es
->
text
+
li
,
index
-
li
,
es
->
tabs_count
,
es
->
tabs
))
-
es
->
x_offset
;
}
else
{
LPSTR
text
=
EDIT_GetPasswordPointer_SL
(
wnd
,
es
);
LPSTR
text
=
EDIT_GetPasswordPointer_SL
(
es
);
if
(
index
<
es
->
x_offset
)
{
GetTextExtentPoint32A
(
dc
,
text
+
index
,
es
->
x_offset
-
index
,
&
size
);
...
...
@@ -2446,12 +2446,12 @@ static LRESULT EDIT_EM_PosFromChar(WND *wnd, EDITSTATE *es, INT index, BOOL afte
*/
static
void
EDIT_EM_ReplaceSel
(
WND
*
wnd
,
EDITSTATE
*
es
,
BOOL
can_undo
,
LPCSTR
lpsz_replace
,
BOOL
send_update
)
{
INT
strl
=
strlen
(
lpsz_replace
);
INT
tl
=
strlen
(
es
->
text
);
INT
utl
;
U
INT
strl
=
strlen
(
lpsz_replace
);
U
INT
tl
=
strlen
(
es
->
text
);
U
INT
utl
;
UINT
s
;
UINT
e
;
INT
i
;
U
INT
i
;
LPSTR
p
;
s
=
es
->
selection_start
;
...
...
@@ -2471,11 +2471,11 @@ static void EDIT_EM_ReplaceSel(WND *wnd, EDITSTATE *es, BOOL can_undo, LPCSTR lp
utl
=
strlen
(
es
->
undo_text
);
if
(
!
es
->
undo_insert_count
&&
(
*
es
->
undo_text
&&
(
s
==
es
->
undo_position
)))
{
/* undo-buffer is extended to the right */
EDIT_MakeUndoFit
(
wnd
,
es
,
utl
+
e
-
s
);
EDIT_MakeUndoFit
(
es
,
utl
+
e
-
s
);
lstrcpynA
(
es
->
undo_text
+
utl
,
es
->
text
+
s
,
e
-
s
+
1
);
}
else
if
(
!
es
->
undo_insert_count
&&
(
*
es
->
undo_text
&&
(
e
==
es
->
undo_position
)))
{
/* undo-buffer is extended to the left */
EDIT_MakeUndoFit
(
wnd
,
es
,
utl
+
e
-
s
);
EDIT_MakeUndoFit
(
es
,
utl
+
e
-
s
);
for
(
p
=
es
->
undo_text
+
utl
;
p
>=
es
->
undo_text
;
p
--
)
p
[
e
-
s
]
=
p
[
0
];
for
(
i
=
0
,
p
=
es
->
undo_text
;
i
<
e
-
s
;
i
++
)
...
...
@@ -2483,14 +2483,14 @@ static void EDIT_EM_ReplaceSel(WND *wnd, EDITSTATE *es, BOOL can_undo, LPCSTR lp
es
->
undo_position
=
s
;
}
else
{
/* new undo-buffer */
EDIT_MakeUndoFit
(
wnd
,
es
,
e
-
s
);
EDIT_MakeUndoFit
(
es
,
e
-
s
);
lstrcpynA
(
es
->
undo_text
,
es
->
text
+
s
,
e
-
s
+
1
);
es
->
undo_position
=
s
;
}
/* any deletion makes the old insertion-undo invalid */
es
->
undo_insert_count
=
0
;
}
else
EDIT_EM_EmptyUndoBuffer
(
wnd
,
es
);
EDIT_EM_EmptyUndoBuffer
(
es
);
/* now delete */
strcpy
(
es
->
text
+
s
,
es
->
text
+
e
);
...
...
@@ -2514,7 +2514,7 @@ static void EDIT_EM_ReplaceSel(WND *wnd, EDITSTATE *es, BOOL can_undo, LPCSTR lp
*
es
->
undo_text
=
'\0'
;
}
}
else
EDIT_EM_EmptyUndoBuffer
(
wnd
,
es
);
EDIT_EM_EmptyUndoBuffer
(
es
);
/* now insert */
tl
=
strlen
(
es
->
text
);
...
...
@@ -2601,8 +2601,8 @@ static void EDIT_EM_ScrollCaret(WND *wnd, EDITSTATE *es)
INT
dy
=
0
;
INT
dx
=
0
;
l
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
es
->
selection_end
);
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
);
l
=
EDIT_EM_LineFromChar
(
es
,
es
->
selection_end
);
li
=
EDIT_EM_LineIndex
(
es
,
l
);
x
=
SLOWORD
(
EDIT_EM_PosFromChar
(
wnd
,
es
,
es
->
selection_end
,
es
->
flags
&
EF_AFTER_WRAP
));
vlc
=
(
es
->
format_rect
.
bottom
-
es
->
format_rect
.
top
)
/
es
->
line_height
;
if
(
l
>=
es
->
y_offset
+
vlc
)
...
...
@@ -2684,7 +2684,7 @@ static void EDIT_EM_SetHandle(WND *wnd, EDITSTATE *es, HLOCAL hloc)
es
->
x_offset
=
es
->
y_offset
=
0
;
es
->
selection_start
=
es
->
selection_end
=
0
;
EDIT_EM_EmptyUndoBuffer
(
wnd
,
es
);
EDIT_EM_EmptyUndoBuffer
(
es
);
es
->
flags
&=
~
EF_MODIFIED
;
es
->
flags
&=
~
EF_UPDATE
;
EDIT_BuildLineDefs_ML
(
wnd
,
es
);
...
...
@@ -2727,7 +2727,7 @@ static void EDIT_EM_SetHandle16(WND *wnd, EDITSTATE *es, HLOCAL16 hloc)
es
->
x_offset
=
es
->
y_offset
=
0
;
es
->
selection_start
=
es
->
selection_end
=
0
;
EDIT_EM_EmptyUndoBuffer
(
wnd
,
es
);
EDIT_EM_EmptyUndoBuffer
(
es
);
es
->
flags
&=
~
EF_MODIFIED
;
es
->
flags
&=
~
EF_UPDATE
;
EDIT_BuildLineDefs_ML
(
wnd
,
es
);
...
...
@@ -2744,7 +2744,7 @@ static void EDIT_EM_SetHandle16(WND *wnd, EDITSTATE *es, HLOCAL16 hloc)
* However, the windows version is not complied to yet in all of edit.c
*
*/
static
void
EDIT_EM_SetLimitText
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
limit
)
static
void
EDIT_EM_SetLimitText
(
EDITSTATE
*
es
,
INT
limit
)
{
if
(
es
->
style
&
ES_MULTILINE
)
{
if
(
limit
)
...
...
@@ -2769,7 +2769,7 @@ static void EDIT_EM_SetLimitText(WND *wnd, EDITSTATE *es, INT limit)
* of the char's width, according to the new docs.
*
*/
static
void
EDIT_EM_SetMargins
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
static
void
EDIT_EM_SetMargins
(
EDITSTATE
*
es
,
INT
action
,
INT
left
,
INT
right
)
{
if
(
action
&
EC_LEFTMARGIN
)
{
...
...
@@ -2829,7 +2829,7 @@ static void EDIT_EM_SetSel(WND *wnd, EDITSTATE *es, UINT start, UINT end, BOOL a
UINT
old_end
=
es
->
selection_end
;
UINT
len
=
strlen
(
es
->
text
);
if
(
start
==
-
1
)
{
if
(
start
==
(
UINT
)
-
1
)
{
start
=
es
->
selection_end
;
end
=
es
->
selection_end
;
}
else
{
...
...
@@ -2878,7 +2878,7 @@ static void EDIT_EM_SetSel(WND *wnd, EDITSTATE *es, UINT start, UINT end, BOOL a
* EM_SETTABSTOPS
*
*/
static
BOOL
EDIT_EM_SetTabStops
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
count
,
LPINT
tabs
)
static
BOOL
EDIT_EM_SetTabStops
(
EDITSTATE
*
es
,
INT
count
,
LPINT
tabs
)
{
if
(
!
(
es
->
style
&
ES_MULTILINE
))
return
FALSE
;
...
...
@@ -2900,7 +2900,7 @@ static BOOL EDIT_EM_SetTabStops(WND *wnd, EDITSTATE *es, INT count, LPINT tabs)
* EM_SETTABSTOPS16
*
*/
static
BOOL
EDIT_EM_SetTabStops16
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
count
,
LPINT16
tabs
)
static
BOOL
EDIT_EM_SetTabStops16
(
EDITSTATE
*
es
,
INT
count
,
LPINT16
tabs
)
{
if
(
!
(
es
->
style
&
ES_MULTILINE
))
return
FALSE
;
...
...
@@ -2973,7 +2973,7 @@ static BOOL EDIT_EM_Undo(WND *wnd, EDITSTATE *es)
es
->
undo_insert_count
,
utext
);
EDIT_EM_SetSel
(
wnd
,
es
,
es
->
undo_position
,
es
->
undo_position
+
es
->
undo_insert_count
,
FALSE
);
EDIT_EM_EmptyUndoBuffer
(
wnd
,
es
);
EDIT_EM_EmptyUndoBuffer
(
es
);
EDIT_EM_ReplaceSel
(
wnd
,
es
,
TRUE
,
utext
,
TRUE
);
EDIT_EM_SetSel
(
wnd
,
es
,
es
->
undo_position
,
es
->
undo_position
+
es
->
undo_insert_count
,
FALSE
);
HeapFree
(
es
->
heap
,
0
,
utext
);
...
...
@@ -2995,7 +2995,7 @@ static BOOL EDIT_EM_Undo(WND *wnd, EDITSTATE *es)
* WM_CHAR
*
*/
static
void
EDIT_WM_Char
(
WND
*
wnd
,
EDITSTATE
*
es
,
CHAR
c
,
DWORD
key_data
)
static
void
EDIT_WM_Char
(
WND
*
wnd
,
EDITSTATE
*
es
,
CHAR
c
)
{
BOOL
control
=
GetKeyState
(
VK_CONTROL
)
&
0x8000
;
switch
(
c
)
{
...
...
@@ -3033,7 +3033,7 @@ static void EDIT_WM_Char(WND *wnd, EDITSTATE *es, CHAR c, DWORD key_data)
EDIT_WM_Clear
(
wnd
,
es
);
else
{
/* delete character left of caret */
EDIT_EM_SetSel
(
wnd
,
es
,
-
1
,
0
,
FALSE
);
EDIT_EM_SetSel
(
wnd
,
es
,
(
UINT
)
-
1
,
0
,
FALSE
);
EDIT_MoveBackward
(
wnd
,
es
,
TRUE
);
EDIT_WM_Clear
(
wnd
,
es
);
}
...
...
@@ -3092,7 +3092,7 @@ static void EDIT_WM_Command(WND *wnd, EDITSTATE *es, INT code, INT id, HWND cont
EDIT_WM_Clear
(
wnd
,
es
);
break
;
case
EM_SETSEL
:
EDIT_EM_SetSel
(
wnd
,
es
,
0
,
-
1
,
FALSE
);
EDIT_EM_SetSel
(
wnd
,
es
,
0
,
(
UINT
)
-
1
,
FALSE
);
EDIT_EM_ScrollCaret
(
wnd
,
es
);
break
;
default:
...
...
@@ -3118,7 +3118,7 @@ static void EDIT_WM_Command(WND *wnd, EDITSTATE *es, INT code, INT id, HWND cont
* (as we do in EDIT_WM_Command()).
*
*/
static
void
EDIT_WM_ContextMenu
(
WND
*
wnd
,
EDITSTATE
*
es
,
HWND
hwnd
,
INT
x
,
INT
y
)
static
void
EDIT_WM_ContextMenu
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
x
,
INT
y
)
{
HMENU
menu
=
LoadMenuA
(
GetModuleHandleA
(
"USER32"
),
"EDITMENU"
);
HMENU
popup
=
GetSubMenu
(
menu
,
0
);
...
...
@@ -3128,7 +3128,7 @@ static void EDIT_WM_ContextMenu(WND *wnd, EDITSTATE *es, HWND hwnd, INT x, INT y
ORDER_UINT
(
start
,
end
);
/* undo */
EnableMenuItem
(
popup
,
0
,
MF_BYPOSITION
|
(
EDIT_EM_CanUndo
(
wnd
,
es
)
?
MF_ENABLED
:
MF_GRAYED
));
EnableMenuItem
(
popup
,
0
,
MF_BYPOSITION
|
(
EDIT_EM_CanUndo
(
es
)
?
MF_ENABLED
:
MF_GRAYED
));
/* cut */
EnableMenuItem
(
popup
,
2
,
MF_BYPOSITION
|
((
end
-
start
)
&&
!
(
es
->
style
&
ES_PASSWORD
)
?
MF_ENABLED
:
MF_GRAYED
));
/* copy */
...
...
@@ -3185,7 +3185,7 @@ static LRESULT EDIT_WM_Create(WND *wnd, EDITSTATE *es, LPCREATESTRUCTA cs)
* functions can be called, and in what order.
*/
EDIT_WM_SetFont
(
wnd
,
es
,
0
,
FALSE
);
EDIT_EM_EmptyUndoBuffer
(
wnd
,
es
);
EDIT_EM_EmptyUndoBuffer
(
es
);
if
(
cs
->
lpszName
&&
*
(
cs
->
lpszName
)
!=
'\0'
)
{
EDIT_EM_ReplaceSel
(
wnd
,
es
,
FALSE
,
cs
->
lpszName
,
TRUE
);
...
...
@@ -3264,7 +3264,7 @@ static LRESULT EDIT_WM_EraseBkGnd(WND *wnd, EDITSTATE *es, HDC dc)
* WM_GETTEXT
*
*/
static
INT
EDIT_WM_GetText
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
count
,
LPSTR
text
)
static
INT
EDIT_WM_GetText
(
EDITSTATE
*
es
,
INT
count
,
LPSTR
text
)
{
lstrcpynA
(
text
,
es
->
text
,
count
);
return
strlen
(
text
);
...
...
@@ -3280,7 +3280,7 @@ static INT EDIT_WM_GetText(WND *wnd, EDITSTATE *es, INT count, LPSTR text)
* undocumented parameters without us even having a scrollbar ... !?!?
*
*/
static
LRESULT
EDIT_HScroll_Hack
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
,
HWND
scroll_bar
)
static
LRESULT
EDIT_HScroll_Hack
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
)
{
INT
dx
=
0
;
INT
fw
=
es
->
format_rect
.
right
-
es
->
format_rect
.
left
;
...
...
@@ -3358,7 +3358,7 @@ static LRESULT EDIT_HScroll_Hack(WND *wnd, EDITSTATE *es, INT action, INT pos, H
* WM_HSCROLL
*
*/
static
LRESULT
EDIT_WM_HScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
,
HWND
scroll_bar
)
static
LRESULT
EDIT_WM_HScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
)
{
INT
dx
;
INT
fw
;
...
...
@@ -3370,7 +3370,7 @@ static LRESULT EDIT_WM_HScroll(WND *wnd, EDITSTATE *es, INT action, INT pos, HWN
return
0
;
if
(
!
(
es
->
style
&
WS_HSCROLL
))
return
EDIT_HScroll_Hack
(
wnd
,
es
,
action
,
pos
,
scroll_bar
);
return
EDIT_HScroll_Hack
(
wnd
,
es
,
action
,
pos
);
dx
=
0
;
fw
=
es
->
format_rect
.
right
-
es
->
format_rect
.
left
;
...
...
@@ -3428,7 +3428,7 @@ static LRESULT EDIT_WM_HScroll(WND *wnd, EDITSTATE *es, INT action, INT pos, HWN
* EDIT_CheckCombo
*
*/
static
BOOL
EDIT_CheckCombo
(
WND
*
wnd
,
EDITSTATE
*
es
,
UINT
msg
,
INT
key
,
DWORD
key_data
)
static
BOOL
EDIT_CheckCombo
(
WND
*
wnd
,
EDITSTATE
*
es
,
UINT
msg
,
INT
key
)
{
HWND
hLBox
=
es
->
hwndListBox
;
HWND
hCombo
;
...
...
@@ -3491,7 +3491,7 @@ static BOOL EDIT_CheckCombo(WND *wnd, EDITSTATE *es, UINT msg, INT key, DWORD ke
* (i.e. non-printable keys) & Backspace & Delete
*
*/
static
LRESULT
EDIT_WM_KeyDown
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
key
,
DWORD
key_data
)
static
LRESULT
EDIT_WM_KeyDown
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
key
)
{
BOOL
shift
;
BOOL
control
;
...
...
@@ -3505,7 +3505,7 @@ static LRESULT EDIT_WM_KeyDown(WND *wnd, EDITSTATE *es, INT key, DWORD key_data)
switch
(
key
)
{
case
VK_F4
:
case
VK_UP
:
if
(
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
,
key_data
)
||
key
==
VK_F4
)
if
(
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
)
||
key
==
VK_F4
)
break
;
/* fall through */
...
...
@@ -3519,7 +3519,7 @@ static LRESULT EDIT_WM_KeyDown(WND *wnd, EDITSTATE *es, INT key, DWORD key_data)
EDIT_MoveBackward
(
wnd
,
es
,
shift
);
break
;
case
VK_DOWN
:
if
(
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
,
key_data
))
if
(
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
))
break
;
/* fall through */
case
VK_RIGHT
:
...
...
@@ -3540,13 +3540,13 @@ static LRESULT EDIT_WM_KeyDown(WND *wnd, EDITSTATE *es, INT key, DWORD key_data)
if
(
es
->
style
&
ES_MULTILINE
)
EDIT_MovePageUp_ML
(
wnd
,
es
,
shift
);
else
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
,
key_data
);
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
);
break
;
case
VK_NEXT
:
if
(
es
->
style
&
ES_MULTILINE
)
EDIT_MovePageDown_ML
(
wnd
,
es
,
shift
);
else
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
,
key_data
);
EDIT_CheckCombo
(
wnd
,
es
,
WM_KEYDOWN
,
key
);
break
;
case
VK_DELETE
:
if
(
!
(
es
->
style
&
ES_READONLY
)
&&
!
(
shift
&&
control
))
{
...
...
@@ -3558,17 +3558,17 @@ static LRESULT EDIT_WM_KeyDown(WND *wnd, EDITSTATE *es, INT key, DWORD key_data)
}
else
{
if
(
shift
)
{
/* delete character left of caret */
EDIT_EM_SetSel
(
wnd
,
es
,
-
1
,
0
,
FALSE
);
EDIT_EM_SetSel
(
wnd
,
es
,
(
UINT
)
-
1
,
0
,
FALSE
);
EDIT_MoveBackward
(
wnd
,
es
,
TRUE
);
EDIT_WM_Clear
(
wnd
,
es
);
}
else
if
(
control
)
{
/* delete to end of line */
EDIT_EM_SetSel
(
wnd
,
es
,
-
1
,
0
,
FALSE
);
EDIT_EM_SetSel
(
wnd
,
es
,
(
UINT
)
-
1
,
0
,
FALSE
);
EDIT_MoveEnd
(
wnd
,
es
,
TRUE
);
EDIT_WM_Clear
(
wnd
,
es
);
}
else
{
/* delete character right of caret */
EDIT_EM_SetSel
(
wnd
,
es
,
-
1
,
0
,
FALSE
);
EDIT_EM_SetSel
(
wnd
,
es
,
(
UINT
)
-
1
,
0
,
FALSE
);
EDIT_MoveForward
(
wnd
,
es
,
TRUE
);
EDIT_WM_Clear
(
wnd
,
es
);
}
...
...
@@ -3587,7 +3587,7 @@ static LRESULT EDIT_WM_KeyDown(WND *wnd, EDITSTATE *es, INT key, DWORD key_data)
if
(
!
(
es
->
style
&
ES_WANTRETURN
))
{
HWND
hwndParent
=
GetParent
(
wnd
->
hwndSelf
);
DWORD
dw
=
SendMessage
16
(
hwndParent
,
DM_GETDEFID
,
0
,
0
);
DWORD
dw
=
SendMessage
A
(
hwndParent
,
DM_GETDEFID
,
0
,
0
);
if
(
HIWORD
(
dw
)
==
DC_HASDEFID
)
{
SendMessageA
(
hwndParent
,
WM_COMMAND
,
...
...
@@ -3606,7 +3606,7 @@ static LRESULT EDIT_WM_KeyDown(WND *wnd, EDITSTATE *es, INT key, DWORD key_data)
* WM_KILLFOCUS
*
*/
static
LRESULT
EDIT_WM_KillFocus
(
WND
*
wnd
,
EDITSTATE
*
es
,
HWND
window_getting_focus
)
static
LRESULT
EDIT_WM_KillFocus
(
WND
*
wnd
,
EDITSTATE
*
es
)
{
es
->
flags
&=
~
EF_FOCUSED
;
DestroyCaret
();
...
...
@@ -3624,7 +3624,7 @@ static LRESULT EDIT_WM_KillFocus(WND *wnd, EDITSTATE *es, HWND window_getting_fo
* The caret position has been set on the WM_LBUTTONDOWN message
*
*/
static
LRESULT
EDIT_WM_LButtonDblClk
(
WND
*
wnd
,
EDITSTATE
*
es
,
DWORD
keys
,
INT
x
,
INT
y
)
static
LRESULT
EDIT_WM_LButtonDblClk
(
WND
*
wnd
,
EDITSTATE
*
es
)
{
INT
s
;
INT
e
=
es
->
selection_end
;
...
...
@@ -3635,9 +3635,9 @@ static LRESULT EDIT_WM_LButtonDblClk(WND *wnd, EDITSTATE *es, DWORD keys, INT x,
if
(
!
(
es
->
flags
&
EF_FOCUSED
))
return
0
;
l
=
EDIT_EM_LineFromChar
(
wnd
,
es
,
e
);
li
=
EDIT_EM_LineIndex
(
wnd
,
es
,
l
);
ll
=
EDIT_EM_LineLength
(
wnd
,
es
,
e
);
l
=
EDIT_EM_LineFromChar
(
es
,
e
);
li
=
EDIT_EM_LineIndex
(
es
,
l
);
ll
=
EDIT_EM_LineLength
(
es
,
e
);
s
=
li
+
EDIT_CallWordBreakProc
(
wnd
,
es
,
li
,
e
-
li
,
ll
,
WB_LEFT
);
e
=
li
+
EDIT_CallWordBreakProc
(
wnd
,
es
,
li
,
e
-
li
,
ll
,
WB_RIGHT
);
EDIT_EM_SetSel
(
wnd
,
es
,
s
,
e
,
FALSE
);
...
...
@@ -3661,7 +3661,7 @@ static LRESULT EDIT_WM_LButtonDown(WND *wnd, EDITSTATE *es, DWORD keys, INT x, I
es
->
bCaptureState
=
TRUE
;
SetCapture
(
wnd
->
hwndSelf
);
EDIT_ConfinePoint
(
wnd
,
es
,
&
x
,
&
y
);
EDIT_ConfinePoint
(
es
,
&
x
,
&
y
);
e
=
EDIT_CharFromPos
(
wnd
,
es
,
x
,
y
,
&
after_wrap
);
EDIT_EM_SetSel
(
wnd
,
es
,
(
keys
&
MK_SHIFT
)
?
es
->
selection_start
:
e
,
e
,
after_wrap
);
EDIT_EM_ScrollCaret
(
wnd
,
es
);
...
...
@@ -3676,10 +3676,10 @@ static LRESULT EDIT_WM_LButtonDown(WND *wnd, EDITSTATE *es, DWORD keys, INT x, I
* WM_LBUTTONUP
*
*/
static
LRESULT
EDIT_WM_LButtonUp
(
WND
*
wnd
,
EDITSTATE
*
es
,
DWORD
keys
,
INT
x
,
INT
y
)
static
LRESULT
EDIT_WM_LButtonUp
(
HWND
hwndSelf
,
EDITSTATE
*
es
)
{
if
(
es
->
bCaptureState
&&
GetCapture
()
==
wnd
->
hwndSelf
)
{
KillTimer
(
wnd
->
hwndSelf
,
0
);
if
(
es
->
bCaptureState
&&
GetCapture
()
==
hwndSelf
)
{
KillTimer
(
hwndSelf
,
0
);
ReleaseCapture
();
}
es
->
bCaptureState
=
FALSE
;
...
...
@@ -3704,7 +3704,7 @@ static LRESULT EDIT_WM_MButtonDown(WND *wnd)
* WM_MOUSEMOVE
*
*/
static
LRESULT
EDIT_WM_MouseMove
(
WND
*
wnd
,
EDITSTATE
*
es
,
DWORD
keys
,
INT
x
,
INT
y
)
static
LRESULT
EDIT_WM_MouseMove
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
x
,
INT
y
)
{
INT
e
;
BOOL
after_wrap
;
...
...
@@ -3718,7 +3718,7 @@ static LRESULT EDIT_WM_MouseMove(WND *wnd, EDITSTATE *es, DWORD keys, INT x, INT
* area. Maybe reset the timer ?
*/
prex
=
x
;
prey
=
y
;
EDIT_ConfinePoint
(
wnd
,
es
,
&
x
,
&
y
);
EDIT_ConfinePoint
(
es
,
&
x
,
&
y
);
es
->
region_posx
=
(
prex
<
x
)
?
-
1
:
((
prex
>
x
)
?
1
:
0
);
es
->
region_posy
=
(
prey
<
y
)
?
-
1
:
((
prey
>
y
)
?
1
:
0
);
e
=
EDIT_CharFromPos
(
wnd
,
es
,
x
,
y
,
&
after_wrap
);
...
...
@@ -3949,7 +3949,7 @@ static void EDIT_WM_Paste(WND *wnd, EDITSTATE *es)
* WM_SETFOCUS
*
*/
static
void
EDIT_WM_SetFocus
(
WND
*
wnd
,
EDITSTATE
*
es
,
HWND
window_losing_focus
)
static
void
EDIT_WM_SetFocus
(
WND
*
wnd
,
EDITSTATE
*
es
)
{
es
->
flags
|=
EF_FOCUSED
;
CreateCaret
(
wnd
->
hwndSelf
,
0
,
2
,
es
->
line_height
);
...
...
@@ -3989,7 +3989,7 @@ static void EDIT_WM_SetFont(WND *wnd, EDITSTATE *es, HFONT font, BOOL redraw)
SelectObject
(
dc
,
old_font
);
ReleaseDC
(
wnd
->
hwndSelf
,
dc
);
if
(
font
&&
(
TWEAK_WineLook
>
WIN31_LOOK
))
EDIT_EM_SetMargins
(
wnd
,
es
,
EC_LEFTMARGIN
|
EC_RIGHTMARGIN
,
EDIT_EM_SetMargins
(
es
,
EC_LEFTMARGIN
|
EC_RIGHTMARGIN
,
EC_USEFONTINFO
,
EC_USEFONTINFO
);
/* Force the recalculation of the format rect for each font change */
...
...
@@ -4025,7 +4025,7 @@ static void EDIT_WM_SetFont(WND *wnd, EDITSTATE *es, HFONT font, BOOL redraw)
*/
static
void
EDIT_WM_SetText
(
WND
*
wnd
,
EDITSTATE
*
es
,
LPCSTR
text
)
{
EDIT_EM_SetSel
(
wnd
,
es
,
0
,
-
1
,
FALSE
);
EDIT_EM_SetSel
(
wnd
,
es
,
0
,
(
UINT
)
-
1
,
FALSE
);
if
(
text
)
{
TRACE
(
"
\t
'%p'
\n
"
,
text
);
EDIT_EM_ReplaceSel
(
wnd
,
es
,
FALSE
,
text
,
!
(
es
->
style
&
ES_MULTILINE
));
...
...
@@ -4069,11 +4069,11 @@ static void EDIT_WM_Size(WND *wnd, EDITSTATE *es, UINT action, INT width, INT he
static
LRESULT
EDIT_WM_SysKeyDown
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
key
,
DWORD
key_data
)
{
if
((
key
==
VK_BACK
)
&&
(
key_data
&
0x2000
))
{
if
(
EDIT_EM_CanUndo
(
wnd
,
es
))
if
(
EDIT_EM_CanUndo
(
es
))
EDIT_EM_Undo
(
wnd
,
es
);
return
0
;
}
else
if
(
key
==
VK_UP
||
key
==
VK_DOWN
)
{
if
(
EDIT_CheckCombo
(
wnd
,
es
,
WM_SYSKEYDOWN
,
key
,
key_data
))
if
(
EDIT_CheckCombo
(
wnd
,
es
,
WM_SYSKEYDOWN
,
key
))
return
0
;
}
return
DefWindowProcA
(
wnd
->
hwndSelf
,
WM_SYSKEYDOWN
,
(
WPARAM
)
key
,
(
LPARAM
)
key_data
);
...
...
@@ -4085,7 +4085,7 @@ static LRESULT EDIT_WM_SysKeyDown(WND *wnd, EDITSTATE *es, INT key, DWORD key_da
* WM_TIMER
*
*/
static
void
EDIT_WM_Timer
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
id
,
TIMERPROC
timer_proc
)
static
void
EDIT_WM_Timer
(
WND
*
wnd
,
EDITSTATE
*
es
)
{
if
(
es
->
region_posx
<
0
)
{
EDIT_MoveBackward
(
wnd
,
es
,
TRUE
);
...
...
@@ -4108,7 +4108,7 @@ static void EDIT_WM_Timer(WND *wnd, EDITSTATE *es, INT id, TIMERPROC timer_proc)
* undocumented parameters without us even having a scrollbar ... !?!?
*
*/
static
LRESULT
EDIT_VScroll_Hack
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
,
HWND
scroll_bar
)
static
LRESULT
EDIT_VScroll_Hack
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
)
{
INT
dy
=
0
;
LRESULT
ret
=
0
;
...
...
@@ -4173,7 +4173,7 @@ static LRESULT EDIT_VScroll_Hack(WND *wnd, EDITSTATE *es, INT action, INT pos, H
* WM_VSCROLL
*
*/
static
LRESULT
EDIT_WM_VScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
,
HWND
scroll_bar
)
static
LRESULT
EDIT_WM_VScroll
(
WND
*
wnd
,
EDITSTATE
*
es
,
INT
action
,
INT
pos
)
{
INT
dy
;
...
...
@@ -4184,7 +4184,7 @@ static LRESULT EDIT_WM_VScroll(WND *wnd, EDITSTATE *es, INT action, INT pos, HWN
return
0
;
if
(
!
(
es
->
style
&
WS_VSCROLL
))
return
EDIT_VScroll_Hack
(
wnd
,
es
,
action
,
pos
,
scroll_bar
);
return
EDIT_VScroll_Hack
(
wnd
,
es
,
action
,
pos
);
dy
=
0
;
switch
(
action
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment