Hamza Lakhani : riched20: EM_HIDESELECTION implementation.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Feb 27 09:33:14 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 6979719a907e7e9719ade3d296d85db22ca9f826
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=6979719a907e7e9719ade3d296d85db22ca9f826
Author: Hamza Lakhani <hlakhani at gmail.com>
Date: Fri Feb 24 13:31:25 2006 -0800
riched20: EM_HIDESELECTION implementation.
---
dlls/riched20/editor.c | 12 +++++++++---
dlls/riched20/editstr.h | 1 +
dlls/riched20/paint.c | 5 ++++-
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 6f4a8a5..53cddd0 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -76,7 +76,7 @@
- EM_GETWORDBREAKPROCEX
- EM_GETWORDWRAPMODE 1.0asian
+ EM_GETZOOM 3.0
- - EM_HIDESELECTION
+ + EM_HIDESELECTION
- EM_LIMITTEXT
+ EM_LINEFROMCHAR
+ EM_LINEINDEX
@@ -1022,6 +1022,7 @@ ME_TextEditor *ME_MakeEditor(HWND hWnd)
ed->nScrollPosY = 0;
ed->nZoomNumerator = ed->nZoomDenominator = 0;
ed->bRedraw = TRUE;
+ ed->bHideSelection = FALSE;
ed->nInvalidOfs = -1;
ed->pfnWordBreak = NULL;
ed->lpOleCallback = NULL;
@@ -1200,7 +1201,7 @@ static const char * const richedit_messa
"EM_GETOLEINTERFACE",
"EM_GETPARAFORMAT",
"EM_GETSELTEXT",
- "EM_HIDESELECTION",
+ "EM_HIDESELECTION",
"EM_PASTESPECIAL",
"EM_REQUESTRESIZE",
"EM_SELECTIONTYPE",
@@ -1310,7 +1311,6 @@ LRESULT WINAPI RichEditANSIWndProc(HWND
UNSUPPORTED_MSG(EM_GETTYPOGRAPHYOPTIONS)
UNSUPPORTED_MSG(EM_GETUNDONAME)
UNSUPPORTED_MSG(EM_GETWORDBREAKPROCEX)
- UNSUPPORTED_MSG(EM_HIDESELECTION)
UNSUPPORTED_MSG(EM_LIMITTEXT) /* also known as EM_SETLIMITTEXT */
UNSUPPORTED_MSG(EM_PASTESPECIAL)
UNSUPPORTED_MSG(EM_SCROLL)
@@ -1611,6 +1611,12 @@ LRESULT WINAPI RichEditANSIWndProc(HWND
}
return count;
}
+ case EM_HIDESELECTION:
+ {
+ editor->bHideSelection = (wParam != 0);
+ ME_InvalidateSelection(editor);
+ return 0;
+ }
case EM_LINESCROLL:
{
int nPos = editor->nScrollPosY, nEnd= editor->nTotalLength - editor->sizeWindow.cy;
diff --git a/dlls/riched20/editstr.h b/dlls/riched20/editstr.h
index b0ea617..17cf2d8 100644
--- a/dlls/riched20/editstr.h
+++ b/dlls/riched20/editstr.h
@@ -316,6 +316,7 @@ typedef struct tagME_TextEditor
*TM_SINGLELEVELUNDO or TM_MULTILEVELUNDO
*TM_SINGLECODEPAGE or TM_MULTICODEPAGE*/
int mode;
+ BOOL bHideSelection;
} ME_TextEditor;
typedef struct tagME_Context
diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c
index 42166ed..abde9a0 100644
--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -175,7 +175,10 @@ static void ME_DrawTextWithStyle(ME_Cont
GetTextExtentPoint32W(hDC, szText, nSelFrom, &sz);
x += sz.cx;
GetTextExtentPoint32W(hDC, szText+nSelFrom, nSelTo-nSelFrom, &sz);
- PatBlt(hDC, x, ymin, sz.cx, cy, DSTINVERT);
+
+ /* Invert selection if not hidden by EM_HIDESELECTION */
+ if (c->editor->bHideSelection == FALSE)
+ PatBlt(hDC, x, ymin, sz.cx, cy, DSTINVERT);
}
SetTextColor(hDC, rgbOld);
ME_UnselectStyleFont(c->editor, hDC, s, hOldFont);
More information about the wine-cvs
mailing list