Dylan Smith
a6c7b6fdb2
richedit: Typing is ignored while mouse is captured.
...
I noticed a while ago that on Windows XP richedit controls ignored
characters typed while the mouse is captured (e.g. from holding the left
or middle button down). Arrow keys, delete, and backspace, copying,
cutting, pasting, and everything else handled on WM_CHAR and WM_KEYDOWN
messages are also ignored.
2009-01-22 15:28:22 +01:00
Dylan Smith
e7b68a20fd
richedit: Implemented ITextServices_TxSendMessage.
2009-01-21 11:55:22 +01:00
Dylan Smith
902afbc65b
richedit: Prevented using NULL hwnd for certain operations.
...
Certain operations will simply not be done for windowless richedit
controls, such as WM_PAINT which isn't done for windowless richedit
controls since ITextServices provides a TxDraw method.
2009-01-21 11:55:03 +01:00
Dylan Smith
05c788ac6f
richedit: Used ITextHost methods to avoid using window handle directly.
...
The methods in ITextHost are mostly thin wrappers around functions that
take a handle to a window as their first parameter. This patch just
uses the wrapper functions provided by ITextHost instead of using the
functions that require a handle to a window that the editor might now
have (for windowless richedit controls).
2009-01-21 11:54:43 +01:00
Dylan Smith
6c4dda009e
richedit: Implemented ITextHost for windowed richedit controls.
2009-01-21 11:54:26 +01:00
Dylan Smith
b4babc16bb
richedit: EM_SETTEXTEX detects ascii richtext with Unicode codepage.
2009-01-19 12:46:41 +01:00
Dylan Smith
89f88a49a4
richedit: Store an internal copy of the window style flags.
2009-01-16 12:35:28 +01:00
Dylan Smith
e6fedf879c
richedit: Implemented the horizontal scrollbar.
2009-01-15 14:13:38 +01:00
Dylan Smith
fcabbbf30f
richedit: Zoom in and out with mouse wheel with control held.
2009-01-14 14:22:37 +01:00
Andrew Talbot
8ddf6c0a25
riched20: Declare some functions static.
2009-01-13 15:53:43 +01:00
Dylan Smith
f885d40d67
richedit: Store mouse captured state rather than calling GetCapture.
...
Windowless richedit control will not be able to call GetCapture without
a handle to the host window (and there is no ITextHost_TxGetCapture
method), but there is a ITextHost_TxSetCapture method available for
setting and releasing the capture on the mouse. This means that the
richedit control will need to keep track of whether it has captured the
mouse or not to implement windowless richedit controls.
2009-01-12 14:42:02 +01:00
Dylan Smith
8089d980d1
richedit: Set bEmulateVersion10 initially to avoid retroactive changes.
...
Previously the WM_NCCREATE was handled by the as if it was always for
later versions, then the window proc for version 1.0 would make
appropriate changes afterwards. Instead both versions should call the
same function (e.g. ME_MakeEditor) and provide the value for
bEmulateVersion10 to make the code clearer.
2009-01-12 14:40:11 +01:00
Dylan Smith
603be645d2
richedit: Pressing enter adds newline on WM_KEYDOWN rather than WM_CHAR.
2009-01-12 14:39:42 +01:00
Dylan Smith
1f6b8c7fd9
richedit: Missing condition for inserting newline before table.
...
This case occurs when the cursor is at the start of the table, the
table is at the start of the text, and there is no selection.
2009-01-09 14:06:13 +01:00
Dylan Smith
573102ee88
richedit: Fixed implementation of WM_GETDLGCODE message.
...
This fixes inconsistencies shown in the tests I added for the
WM_GETDLGCODE. The tests covered different cases handled by the
current implementation in order to show that the native implementation
is simpler for all these cases.
2009-01-08 13:35:05 +01:00
Dylan Smith
28645c64d5
richedit: Avoid rewrapping all text for isolated format changes.
...
When the character or paragraph format is changed the paragraph that
is changed is already marked to be rewrapped, so ME_MarkAllForWrapping
shouldn't be called. Since ME_RewrapRepaint uses this function, it
shouldn't be called in these circumstances, since rewrapping all the
text can cause noticable delays when working with a lot of text.
2009-01-06 12:52:09 +01:00
Dylan Smith
f361910514
richedit: Use 32-bit rather than 16-bit trackbar value for scrolling.
2009-01-06 12:44:24 +01:00
Dylan Smith
fc13c70b78
richedit: Mask window id on WM_COMMAND notifications.
2009-01-04 14:59:54 +01:00
Dylan Smith
7a54306008
richedit: Fix unicode truncation on EM_GETLINE message.
2009-01-03 14:55:30 +01:00
Dylan Smith
c9977df853
richedit: Prevented a dereference of a freed pointer.
...
On WM_DESTROY the editor was getting freed, then it was used to obtain
a handle to the editor. This patch moves it just before the editor is
freed within ME_DestroyEditor.
2008-12-27 20:22:53 +01:00
Maarten Lankhorst
ac85a76b2d
riched20: Fix cast for dwCookie.
2008-12-23 18:51:05 +01:00
Dylan Smith
5dc1271ba6
richedit: Move message handling to function callable without window.
...
In order to make the message handling available to windowless richedit
controls, the message handling must be in a function that can be
called from the ITextServices_TxSendMessage method. This method will
never have a handle to a window to pass to RichEditWndProc_common in
order to get the editor with GetWindowLongPtrW, but passing the editor
will work (even if hWnd is NULL).
2008-12-20 11:43:44 +01:00
Dylan Smith
dc03b6b2f2
richedit: Removed redundant editor height variables and calculations.
...
During wrapping there were three different heights that were being
stored, with only one of them being done correctly. The other ones
failed to incorporate the height of the paragraph or row, so ended up
being incorrect.
2008-12-20 11:43:09 +01:00
Dylan Smith
297716e01c
richedit: Made sure text is offset by formatting rectangle.
...
The formatting rectangle is set with EM_SETRECT, and retrieved with
EM_GETRECT, so it corresponds to rcFormat in the code. This defines the
area that the richedit control should draw the text so that it is
offset by the top-left corner of the formatting rectangle, and clipped
so that it doesn't draw past the bottom or right hand side. Thus this
is important for implementing windowless richedit controls to not
interfere with the rest of the window.
2008-12-18 14:19:40 +01:00
Dylan Smith
c87ca3d9e8
richedit: Move implementation of WM_CHAR to its own function.
2008-12-16 14:10:25 +01:00
Dylan Smith
e5f5dc60a7
richedit: Removed some unnecessary SendMessage calls to itself.
2008-12-16 14:10:19 +01:00
Dylan Smith
c7c2ff1fbc
richedit: Move implementation of EM_GETTEXTEX to its own function.
2008-12-16 14:09:47 +01:00
Dylan Smith
4f41972b15
richedit: Move implementation of EM_GETTEXTRANGE to its own function.
...
The RichEditWndProc_common function is big enough already by handling
all the window messages, so moving code to handle a message to its own
function makes the code more readable.
2008-12-16 14:09:40 +01:00
Dylan Smith
7e94a230e1
richedit: Removed unused hwndEdit variable for the RTF parser.
...
There is no reason for the rich text format parser to need a handle to
the window, and even if there were it has a handle to the editor which
contains a handle to the window. It is better to remove this
considering we need to cut down on the use of window handles to
implement windowless richedit controls.
2008-12-15 13:20:01 +01:00
Dylan Smith
8ab0570d02
richedit: Removed an unnecessary call to GetScrollInfo.
...
The vertical scrollbar state is stored internally within the control,
so should be used when possible. This will become more necessary when
windowless richedit controls are implemented, and there will no hWnd
to pass to GetScrollInfo.
2008-12-15 13:16:20 +01:00
Dylan Smith
0c8e4b6d02
richedit: Compare editor rather than hWnd in ME_CalculateClickCount.
...
Comparing the editor as apposed to the handle to the window will work
just as well right now, but will also work when there is no window
handle to make a comparison with, which will be the case with
windowless richedit controls.
2008-12-15 13:16:08 +01:00
Dylan Smith
6901e0cec7
richedit: Use ME_EnsureVisible to implement EM_SCROLLCARET.
...
The code for the ME_EnsureVisible function does exactly what
EM_SCROLLCARET does, yet this code is duplicated in order to handle
this message. It is simpler to just use the existing function to
implement the message, and avoid internally sending the EM_SCROLLCARET
when this function is available.
2008-12-15 13:15:56 +01:00
Dylan Smith
1e8df4351d
richedit: Removed unused ME_AutoURLDetect function.
2008-11-17 13:57:56 +01:00
Dylan Smith
ea9f343c33
richedit: Update strings and comments regarding IME Status messages.
2008-11-17 13:12:35 +01:00
Andrew Talbot
affc6e029c
riched20: Sign-compare warnings fix.
2008-11-06 11:09:41 +01:00
Michael Stefaniuc
90024d03b2
riched20: Remove superflous casts.
2008-11-04 11:26:12 +01:00
Dylan Smith
09802e2c76
richedit: Handle negative position given to EM_POSFROMCHAR.
2008-10-29 11:52:18 +01:00
Dylan Smith
4c28a5bcfb
richedit: Fixed initial word wrap setting when emulating 1.0.
2008-10-27 12:01:37 +01:00
Dylan Smith
46d79b0363
richedit: Fixed EM_POSFROMCHAR for pos of text length.
...
For some reason EM_POSFROMCHAR was returning 0 when the position was
equal to the end of the text, or beyond the end of the text. Instead
it should use the position at the end of the text for both these
cases. The x value was also seen to be offset by 1 according to the
tests.
2008-10-22 13:54:54 +02:00
Dylan Smith
5bcb15dd7f
richedit: Handle ctrl-key shortcuts on WM_KEYDOWN.
2008-10-22 13:54:53 +02:00
Dylan Smith
c70f6a3933
richedit: Use the DefWindowProc to implement WM_SETREDRAW.
2008-10-20 11:37:27 +02:00
Dylan Smith
197f3f4c23
richedit: Added EM_SETMARGINS to the list of unsupported messages.
2008-10-13 11:41:55 +02:00
Dylan Smith
1d21d24a51
richedit: Show arrow cursor over scrollbar.
2008-10-06 13:54:49 +02:00
Dylan Smith
4785c2fa2d
richedit: ES_AUTOHSCROLL window style disables word wrapping.
2008-10-06 13:52:25 +02:00
Dylan Smith
bdf181b4d3
richedit: Use RTF reader for text starting with {\urtf.
2008-10-06 13:49:12 +02:00
Dylan Smith
2aa69c6c9e
richedit: Prevent buffer overrun for tab stops buffer.
2008-09-12 12:35:29 +02:00
Dylan Smith
fab258022e
richedit: Fixed bugs in handling unterminated nested tables in RTF.
2008-09-12 11:55:43 +02:00
Dylan Smith
0d8e9e622f
richedit: Make sure the nested tables' RTF properties are not skipped.
2008-09-12 11:55:30 +02:00
Dylan Smith
d7ff24378a
richedit: Enter inserts newline before table at start of document.
2008-09-12 11:55:22 +02:00
Dylan Smith
0843768919
richedit: Enter at the end of a table row appends a new row.
2008-09-12 11:55:14 +02:00
Dylan Smith
88a3a8a9c0
richedit: Don't put cursor in the table row start paragraph.
2008-09-12 11:55:08 +02:00
Dylan Smith
9a7d475db8
richedit: Avoid acting on control words in skipped RTF groups.
...
Previously the control words in skipped groups were being processed by
the read hook on the RTF parser. By moving this code into the class
callbacks for the parser, the skipped groups actually remain skipped.
2008-09-11 12:38:20 +02:00
Dylan Smith
f11fe1c7a9
richedit: Prevent typing text at end of table row.
2008-08-29 13:42:47 +02:00
Dylan Smith
36be721027
richedit: Prevent streaming in rich text at end of table row.
2008-08-29 13:41:41 +02:00
Dylan Smith
238fd58a09
richedit: Pressing tab with selection back to start of table.
2008-08-29 13:41:18 +02:00
Dylan Smith
ddc107bd26
richedit: Added support for changing cell border colours.
2008-08-18 17:15:57 +02:00
Dylan Smith
421c5b0e02
richedit: Borders are now drawn for tables and nested tables.
2008-08-18 17:15:57 +02:00
Dylan Smith
a47d4a4c3a
richedit: Adjust table spacing with horizontal gap and left edge.
2008-08-18 17:15:57 +02:00
Dylan Smith
fe1a24ff88
richedit: Substitute space for \tab and \par control words for simple tables.
...
For simple tables cells are represented with tabs, and a table row is
ended at the end of the paragraph, so native richedit controls
substitute spaces for \tab and \par rich text format control words.
2008-08-18 17:15:57 +02:00
Dylan Smith
a382e35600
richedit: EM_[SG]ETPARAFORMAT returned the wrong value.
...
The values returned by EM_SETPARAFORMAT and EM_GETPARAFORMAT previously
indicated an error, and the included tests shows that Windows behaves as
documented.
2008-08-18 17:15:57 +02:00
Dylan Smith
59195ed2ec
richedit: Added in support for streaming in and out nested tables.
2008-08-18 14:34:35 +02:00
Dylan Smith
300db3765f
richedit: Each cell can contain multiple paragraphs in msftedit.
2008-08-18 14:34:11 +02:00
Dylan Smith
d29f671d1a
richedit: Protect deletion of cell boundaries when not deleting row.
2008-08-18 14:34:10 +02:00
Dylan Smith
bf5ccefc4c
richedit: Handle tab key properly within table cells.
...
Within table cells the tab key moves to the next cell in the table, or creates
a new table row when at the end of the table.
2008-08-18 14:34:10 +02:00
Dylan Smith
e568e15142
richedit: Removed assumption about the order of rtf indent control words.
...
Previously the calculations of dxStartIdent and dxOffset depended on
their order.
2008-08-18 14:34:10 +02:00
Dylan Smith
6a65f3b38e
richedit: Fixed rtf reader bug that caused large start indents.
...
The problem was that the paragraph format was being retrieved,
slightly modified and then used to set the paragraph format, without
limiting the mask to what was being set. The PFM_OFFSETINDENT mask flag
being valid meant that dxStartIndent specifies a relative offset, thus
dxStartIndent was doubled.
2008-08-18 14:34:10 +02:00
Dylan Smith
11c8039699
richedit: Use tabstops to store cell positions.
2008-08-05 14:09:37 +02:00
Dylan Smith
edb6304379
richedit: Added OleInitialize for clipboard operations.
2008-07-31 13:01:27 +02:00
Hongbo Ni
3cb685c861
riched32: Implement WM_UNICHAR support.
2008-07-29 14:09:23 +02:00
Dustin Brody
3a805d289e
riched20: EM_SETTEXTTEX obeys ST_SELECTION with RTF inputs.
2008-07-29 12:50:35 +02:00
Alex Villacís Lasso
acfb6ea210
richedit: Do not read actual scrollbar state for scrollbar update, use internal state instead.
2008-07-23 13:05:27 +02:00
Dylan Smith
7de6c2674a
richedit: Added more conditional cursor changes.
...
Previously the cursor was either an IBEAM, or a reversed arrow when over
the selectionbar.
2008-07-10 12:16:58 +02:00
Dylan Smith
d293b3fc98
richedit: Prevented cursor flicker while moving over selection bar.
...
When the cursor is moved over the selection bar, without holding any
mouse buttons down, the cursor would be repeatably set between the
normal cursor, set by DefWindowProc for the WM_SETCURSOR message, and
the reversed cursor, set by ME_MouseMove.
2008-07-10 12:16:39 +02:00
Dylan Smith
8172d69e8f
richedit: Set the default paragraph format consistently.
...
I created a function to set the default paragraph format to ensure
consistency when this is done. This initial paragraph format is also
now more consistent with native richedit controls. The dwMask value
always appears to have the same value when retrieved from the native
richedit controls, so all the mask values are now initialized when the
PARAFORMAT2 structure is created.
2008-07-09 11:31:22 +02:00
Dylan Smith
aba425eb70
richedit: PFE_TABLE flag is now used instead of private bTable value.
...
The PARAFORMAT structure has a bit in wEffects to indicate whether the
paragraph is a table or not, so this should be used instead of a private
bTable value, since this structure can be retrieved with EM_GETPARAFORMAT.
2008-07-09 11:31:21 +02:00
Dylan Smith
eb4ed9cadf
richedit: Removed unused variable bCaretShown in ME_TextEditor.
2008-07-08 21:08:53 +02:00
Michael Stefaniuc
0164bffd9a
riched20: Fix typo.
2008-07-08 20:37:30 +02:00
Dylan Smith
762e5818d1
richedit: Hide cursor when text is selected.
...
The cursor should only be shown when there is no selection, since this
is how it is done in Windows. This patch avoids showing the cursor when
there is a selection, and destroys the cursor when a selection is made.
2008-07-08 10:44:45 +02:00
Dylan Smith
69cf4e9ac4
richedit: Implemented triple click selection.
2008-07-08 10:44:32 +02:00
Dylan Smith
abefc28fe7
richedit: Fixed drag and shift selection for words and lines.
...
Previously word drag and shift selection was not implemented. Line
drag selection was working, but shift selection wasn't.
2008-07-08 10:43:55 +02:00
Dylan Smith
5b2bdc06d0
richedit: Fixed double click issues by sharing code with single click.
2008-07-07 14:16:07 +02:00
Dylan Smith
2eec4f03ed
richedit: Fixed the selection bar width.
2008-07-07 11:10:49 +02:00
Dylan Smith
db95d69f99
richedit: Made sure the caret position is stored when moving up/down.
...
The caret's x position is stored in ME_TextEditor.nUDArrowX so that when
the caret is moved up or down, it will stay along the same horizontal
position, or at the end of a line. Unfortunately, the value stored in
nUDArrowX was being unconditionally discarded in ME_ArrowKey, preventing
it from serving its purpose.
2008-07-07 11:10:33 +02:00
Dylan Smith
632015dc62
richedit: Set error codes and stop parsing for some rtf syntax errors.
...
Checks were added for hexadecimal values that did not have valid
characters, and for EOF received before the final closing brace of the
rich text stream. The error values were tested on richedit versions 1,
2, 3 & 4.1, and they were all the same for these cases.
2008-06-27 11:08:33 +02:00
Dylan Smith
d1f1346f54
richedit: Implemented undo coalescing to group typing events.
...
Consecutively typed characters are grouped together to be undone
together. The grouping of typed characters can be stopped by certain
events that are mentioned in MSDN's remarks on the EM_STOPGROUPTYPING
message, which is also implemented by this patch.
2008-06-26 21:18:50 +02:00
Dylan Smith
6d76d43718
richedit: Fixed a bug preventing NULL pointers from being in text.
...
Opening a text file with a NULL terminated character in it was causing
an assertion error after a run was being split due to word wrap.
Windows allows NULL terminated characters to be in the text.
2008-06-26 21:16:56 +02:00
Dylan Smith
67024f0f34
richedit: Prevented an assertion error on startup when run on Windows.
...
The call to GetClientRect returns 0 values for the returned RECT when
called in WM_NCCREATE in on Windows, which ended up causing an assertion
error when Wine's riched20.dll replaces the native version. Moving the
call to WM_CREATE fixes this problem (probably because NCCALCSIZE is
called in between).
2008-06-26 21:15:54 +02:00
Dylan Smith
6c2026a348
richedit: Show caret after pasting or streaming in text.
...
There was a missing call to ShowCaret after the caret was created.
2008-06-26 21:15:11 +02:00
Alex Villacís Lasso
acec891ac2
richedit: EM_POSFROMCHAR should take into account scrollbar position. With tests.
2008-06-24 11:44:37 +02:00
Alex Villacís Lasso
3cc6e2365a
richedit: When returning position through wParam pointer, EM_POSFROMCHAR must return 0 as LRESULT.
...
Add tests for EM_POSFROMCHAR for 1.0 and 2.0.
2008-06-24 11:43:42 +02:00
Michael Stefaniuc
bc0acd1ac2
riched20: Remove redundant NULL check before heap_free (Smatch).
2008-06-21 11:17:08 +02:00
Alex Villacís Lasso
d2900a53e1
richedit: Add tests for URL autodetection for EM_REPLACESEL, make them pass under Wine.
2008-06-19 12:10:00 +02:00
Alex Villacís Lasso
892a0b5f1e
richedit: Add tests for URL autodetection for EM_SETTEXTEX, make them pass under Wine.
2008-06-19 12:09:46 +02:00
Alex Villacís Lasso
f213af3795
richedit: Fix for the semantics of the flags for some effects reported by EM_GETCHARFORMAT.
...
Remove workaround put in place by a previous patch, due to buggy flag reporting.
Tests to verify fixed behavior.
2008-06-19 12:08:30 +02:00
Alex Villacís Lasso
4a5d100097
richedit: Add more tests for URL autodetection on WM_CHAR, make them pass under Wine.
2008-06-19 12:07:36 +02:00
Alex Villacís Lasso
38d7ba6eff
richedit: WM_SETTEXT must immediately autodetect URLs, without waiting for a WM_CHAR.
2008-06-19 11:59:04 +02:00
Alex Villacís Lasso
60c42bd3db
richedit: Fix misreporting of match offset for EM_FINDTEXT and EM_FINDTEXTEX.
2008-06-19 11:55:27 +02:00
Dylan Smith
76029ee9ec
richedit: The wrong bits were cleared from wBorders in PARAFORMAT2.
2008-05-05 21:18:19 +02:00
Alex Villacís Lasso
2a4fc97c4c
richedit: Add tests for EM_FINDTEXT in 1.0 emulation, make them pass under Wine.
2008-05-01 10:57:34 +02:00
Alex Villacís Lasso
2ab63774f1
richedit: On failure to parse incoming text as RTF, EM_STREAMIN must set dwError to -16.
2008-04-30 10:22:42 +02:00
Alex Villacís Lasso
829940458f
richedit: Private movement of cursors in text insertion should not cause WM_NOTIFY to be sent.
...
As text is inserted, the cursor is moved to the end, and then back to
offset 0. A reordering of operations prevents a WM_NOTIFY from being
sent on cursor being moved to the end, and another by being moved
back to the beginning. If the cursor was not at offset 0, then
exactly one WM_NOTIFY must be sent, for the movement from previous
position to the beginning. With tests to prove this change and the
previous one (modify flag should be off on WM_SETTEXT-caused
WM_NOTIFY).
2008-04-29 14:57:03 +02:00
Alex Villacís Lasso
c52bc58816
richedit: WM_SETTEXT - Clear modify step flag before any notifications can be sent.
...
Otherwise the app-defined WM_NOTIFY callback might see the modify flag
set, even though WM_SETTEXT is supposed to clear it.
2008-04-29 14:56:46 +02:00
Alex Villacís Lasso
3cad256d54
richedit: Fix modify step setting in EM_SETCHARFORMAT.
...
EM_SETCHARFORMAT with wParam==0 sets default char format and does NOT set modify step flag.
EM_SETCHARFORMAT with wParam==SCF_SELECTION only sets modify step flag when selection is nonempty.
EM_GETMODIFY returns -1, not 1, when modify flag is set.
Tests for the above behavior.
2008-04-29 14:56:23 +02:00
Alex Villacís Lasso
1fa39b50c0
richedit: Only notify selection change when selection has actually changed from previous notification.
...
Otherwise, redundant and early notifications are sent to apps that do not expect them. Fixes crash #1 with Perfect! TextEdit.
2008-04-29 14:56:11 +02:00
Alex Villacís Lasso
cac55008c9
richedit: Implement rule that in 1.0 emulation, a single CR that terminates the text is NOT a line break.
...
Fix riched32 test that now succeed.
2008-04-29 14:55:26 +02:00
Alex Villacís Lasso
4047df0f56
richedit: Flip the big switch and encode actual CR and LF into end-of-paragraph runs.
...
Document remaining uses of bEmulateVersion10 and other checks for CRLF in editor.c.
Make RTF reader emit a \r or a \r\n according to emulation, not a \n, which breaks streaming tests.
Remove todo_wine from a bunch of riched32 tests that now succeed.
2008-04-29 14:55:15 +02:00
Alex Villacís Lasso
3a271386ec
richedit: Remove indication for bCRLF, now that ME_GetTextW() knows how to honor CR and LF counters.
...
EM_GETTEXTRANGE and EM_GETSELTEXT are affected by this, so include tests to ensure no behavior was broken.
2008-04-29 14:54:59 +02:00
Alex Villacís Lasso
e8aa9dee56
richedit: Modify ME_GetTextW() to honor CR and LF encodings.
...
ME_GetTextLengthEx should ignore GTL_USECRLF in 1.0 emulation mode.
2008-04-29 14:54:46 +02:00
Alex Villacís Lasso
d95cbeef67
richedit: EM_LINELENGTH: honor CR and LF counters.
...
Add fixup to ME_FindItemAtOffset(), fixes crash by null-pointer access.
Add tests for EM_LINELENGTH.
2008-04-29 14:54:29 +02:00
Alex Villacís Lasso
3968a67eb9
richedit: EM_GETLINE: honor CR and LF counters.
...
Add richedit 1.0 tests for EM_GETLINE.
2008-04-29 14:54:21 +02:00
Alex Villacís Lasso
8d37388fe7
richedit: Fixups to move over to reliance on CR and LF counters.
...
Text streamout now honors CR and LF counters.
Tests to pin down required EM_STREAMOUT behavior.
2008-04-29 14:54:05 +02:00
Eric Pouech
046cfcfd22
richedit: Ensure wrapping is done all the time after inserting an RTF stream.
2008-04-25 11:44:00 +02:00
Alex Villacís Lasso
4f95cf7072
riched20: Reject RTF that is recognized as invalid.
2008-04-24 22:12:13 +02:00
Alex Villacís Lasso
d10256f309
riched20: Implement ignoring of last \par for EM_STREAMIN - 1.0 emulation.
2008-04-24 22:12:09 +02:00
Alex Villacís Lasso
7148f92c4c
riched20: Implement ignoring of last \par for EM_STREAMIN.
2008-04-24 22:11:58 +02:00
Andrew Talbot
0ba8677430
riched20: Remove unused variables.
2008-04-24 11:49:53 +02:00
Alex Villacís Lasso
e0af297466
richedit: Accept RTF stream that does not start with {\rtf1 in 1.0 emulation.
2008-04-22 11:56:04 +02:00
Alex Villacís Lasso
46ff4a6f16
riched20: EM_SETTEXTEX supports RTF strings, with tests.
2008-04-21 20:27:17 +02:00
Eric Pouech
296a59da7e
richedit: Force window update when the word wrap option has changed.
2008-04-14 23:50:12 +02:00
Eric Pouech
91d57af637
richedit: For setting word wrapping, native only uses a null vs non null value.
2008-03-24 12:12:18 +01:00
Eric Pouech
8b6eea0a63
richedit: Fixed the initialization of the word wrap mode.
2008-03-24 12:12:07 +01:00
Eric Pouech
2870f21d06
richedit: Added missing fields to be reinitialized for the RTF \pard token.
2008-03-24 11:35:53 +01:00
Eric Pouech
4a01ddca25
richedit: Allow reading an enhanced metafile from an RTF stream.
2008-03-17 14:38:57 +01:00
Eric Pouech
984e4167af
richedit: Don't force cursor change when it's not needed.
2008-03-17 14:38:36 +01:00
Eric Pouech
33d7cea120
richedit: Added support for EM_SETTARGETDEVICE with a NULL DC.
2008-03-17 14:37:43 +01:00
Eric Pouech
9c6c9d63a2
richedit: Use the FW_ constants instead of the raw values.
2008-03-17 14:36:57 +01:00
Eric Pouech
6e02f5db4b
richedit: In RTF reader, set both bold and weight attributes, so that we don't care about priority between the two.
2008-03-17 14:36:41 +01:00
Eric Pouech
0c2c43d39b
richedit: Correctly set the pitch and family for a font when reading an RTF stream.
2008-03-17 14:36:30 +01:00
Eric Pouech
a64c22c8b1
richedit: Store shift-enter (keyboard) and \line (rtf) as end of row (and emit \line while saving in RTF).
2008-03-17 14:34:44 +01:00
Eric Pouech
68ccc4aec6
richedit: When handling \pard in RTF stream, really resets all paragraph styles.
2008-03-17 14:34:00 +01:00
Eric Pouech
cb4a41b806
richedit: Fix reading paragraph left & first indentation attributes.
2008-03-17 14:20:16 +01:00
Eric Pouech
f628a1c245
richedit: Added support for reading DI bitmaps in RTF streams.
2008-03-17 14:20:07 +01:00
Eric Pouech
9f5fa9ea45
richedit: Properly set the border width while parsing RTF stream.
2008-03-17 14:18:41 +01:00
Andrew Talbot
612e4c2b17
riched20: Assign to structs instead of using memcpy (with typo fixes).
2008-03-14 11:21:33 +01:00
Francois Gouget
1552f22acf
riched20: Fix the name of the lpUsedDefChar field of GETTEXTEX.
2008-02-06 12:43:53 +01:00
Eric Pouech
bcbf9eeb2d
riched20: Start implementing object reading out RTF stream.
2008-02-05 11:13:17 +01:00
Eric Pouech
e5f91bab15
riched20: Added support for image reading from RTF stream.
2008-02-05 11:13:00 +01:00
Eric Pouech
1e62b0e3b0
riched20: Support a couple of paragraphs attributes out of RTF stream reading.
2008-02-05 11:12:43 +01:00
Rob Shearman
4bff248783
riched20: Always treat the nCount variable in the EM_GETTEXTEX handler as a character count.
...
Convert ex->cb into a character count before assigning it to nCount.
Remove some dubious minus ones that would result in different character
counts for the Unicode and ANSI paths.
2008-01-21 12:35:18 +01:00
Rob Shearman
374f6ec616
riched20: The wParam parameter to WM_GETTEXT contains the number of characters, not the number of bytes.
...
Fix up some places in the WM_GETTEXT handler where it was assumed that
it was a byte count.
2008-01-21 12:35:05 +01:00
Andrew Talbot
5a5a9bcd5d
riched20: Remove unneeded casts.
2008-01-17 13:42:14 +01:00
Alexander Nicolaysen Sørnes
eec14a4de6
riched20: Include selection bar size in POSFROMCHAR.
2008-01-15 11:37:30 +01:00
Eric Pouech
d65daea454
richedit: Uniformly handle the bPitchAndFamily field out of CHARFORMAT.
2008-01-07 12:14:24 +01:00
Eric Pouech
f33a27517b
richedit: Initialize all the cursors at editor creation.
2008-01-07 12:14:01 +01:00
Eric Pouech
39aa3beaf2
richedit: Simplify first para style handling by creating a context.
2008-01-02 13:58:09 +01:00
Eric Pouech
d5478118a1
richedit: Don't force repaint while the redraw flag is off.
2008-01-02 13:57:53 +01:00
Eric Pouech
0549b9009a
richedit: Simplified handling of background brush while painting.
2008-01-02 13:49:57 +01:00
Eric Pouech
6b591ef23a
richedit: Extend the usage of underlinetype from charformat2 in richedit.
2008-01-02 13:48:11 +01:00
Eric Pouech
71f52d54bd
richedit: Added support for some message (key, mouse) filtering events.
2008-01-02 13:45:08 +01:00
Maarten Lankhorst
8e639ec392
riched20: Fix bugs in EM_SETOPTIONS.
...
Add SELECTIONBAR to mask, and use settings rather then lParam. 2 subtle
bugs that prevent selectionbar from working.
2007-12-18 12:32:55 +01:00
Maarten Lankhorst
b81335501f
riched20: Implement ECO/EM SELECTIONBAR.
2007-12-17 11:34:40 +01:00
Alex Villacís Lasso
ae7b2c914b
riched32: Fix regression in WM_GETTEXTLENGTH on richedit 1.0 emulation.
2007-12-12 13:48:19 +01:00
Michael Stefaniuc
4210cafc04
riched20: Rename the wrappers around HeapAlloc() &Co to use the new standard naming.
2007-12-08 19:54:58 +01:00
Alex Villacís Lasso
f945f16de2
riched20: WM_GETTEXTLENGTH should include CRLF conversions in returned count.
2007-12-07 17:36:01 +01:00
Alex Villacís Lasso
99f0dc4ff4
riched20: WM_GETTEXT should return 0 on overflow but fill buffer anyway.
2007-12-07 17:06:53 +01:00
Alex Villacís Lasso
4545f1944e
riched20: EM_GETTEXTEX with GT_USECRLF should not leave a single CR when running out of space.
2007-12-07 17:06:45 +01:00
Alex Villacís Lasso
5d8b8cd899
riched20: EM_GETMODIFY should not report modification after WM_SETTEXT (fixes todo_wine).
2007-11-06 13:01:09 +01:00
Alex Villacís Lasso
469669e629
riched20: 2.0 and higher inserts CRCRLF as space (with tests).
2007-10-22 13:50:13 +02:00
Alex Villacís Lasso
f54aa40746
riched20: Single-line control must refuse to insert carriage returns (with tests).
2007-10-19 12:26:25 +02:00
Alex Villacís Lasso
63b12f8602
riched20: Minimal fix for WM_SETTEXT without ES_MULTILINE style.
2007-09-28 10:59:59 +02:00
Alex Villacís Lasso
03f3a40a03
riched20: EM_SETCHARFORMAT must fail and return 0 with TM_PLAINTEXT and SF_SELECTION.
2007-09-27 11:58:52 +02:00
Alex Villacís Lasso
be5105e894
riched20: EM_SETCHARFORMAT must return 0, not assert, on invalid struct size.
2007-09-27 11:07:54 +02:00
Alex Villacís Lasso
fa5230fb54
riched20: EM_SETCHARFORMAT must return 1 on success, not 0.
2007-09-26 14:40:54 +02:00
Alex Villacís Lasso
00e562735d
riched20: Fix WM_GETTEXT to change \r to \r\n.
2007-09-24 13:44:28 +02:00
Clinton Stimpson
f34cb461e7
riched20: Only WM_CHAR respects text limit.
2007-09-21 12:05:39 +02:00
Lei Zhang
9210defdf7
riched20: Do not pass NULL lParam to ME_ToUnicode for EM_REPLACESEL.
2007-09-11 11:47:54 +02:00
Lei Zhang
0d4707c284
riched20: Properly calculate control display height.
2007-08-16 11:35:06 +02:00
Andrew Talbot
2e2efd448a
riched20: Constify some variables.
2007-08-13 12:24:28 +02:00
Aric Stewart
c03125a1be
riched20: Make richedit control IME aware.
2007-06-28 12:16:12 +02:00
Francois Gouget
96c337f0a1
Assorted spelling fixes.
2007-06-07 19:24:32 +02:00
Huw Davies
94dfc0e80e
riched20: Don't mess with the caret if we don't have focus.
2007-06-06 12:09:53 +02:00
Dmitry Timoshkov
3c9e7a7f33
wine: Switch to using 'long' for INT_PTR type for 64-bit compatibility.
2007-05-25 20:37:56 +02:00
Andrew Talbot
5588233957
riched20: Exclude unused headers.
2007-05-18 14:11:33 +02:00
Dmitry Timoshkov
9bde411087
riched20: Add the tests for EM_SETTEXTEX/EM_GETTEXTEX in addition to WM_SETTEXT/WM_GETTEXT, make them pass under Wine.
2007-05-02 14:58:58 +02:00
Dmitry Timoshkov
592b53d0a4
riched20: Split unicode and ansi window procs, handle messages depending on the unicode flag.
...
Add a hack for WM_GETTEXT in RichEdit20W class when running in win9x emulation mode.
2007-03-22 15:47:25 +01:00
Dmitry Timoshkov
11e01b17de
riched20: Add a test that shows that under Win9x RichEdit20W windows are not unicode, but always expect to see unicode input.
2007-03-21 15:55:30 +01:00
Jason Green
2aa8463a94
riched20: If outside of the richedit window, return earlier.
...
Prevents a crash when selecting text outside of a richedit control box.
2007-02-15 11:21:45 +01:00
Matt Finnicum
7eabbec632
riched20: Create undos in StreamIn at the right times. Adds tests for when StreamIn should be undoable.
2007-01-25 11:06:36 +01:00
Matt Finnicum
f12e6232a2
riched20: Use CharFromPos instead of FindPixelPos in LinkNotify so it accounts for scrolling.
2007-01-24 12:14:11 +01:00
Matt Finnicum
dbcf2e391c
riched20: Implement EM_LIMITTEXT and some simple tests.
2007-01-24 12:14:02 +01:00
Clinton Stimpson
a065d0f68d
riched20: Fix crash undoing a paste.
2007-01-12 11:25:42 +01:00
Clinton Stimpson
bf86302e19
riched20: Fix modification state for several operations.
2007-01-11 12:04:46 +01:00
Lei Zhang
581321d420
riched20: Move EM_EXSETSEL fix into ME_SetSelection.
2006-12-05 11:37:46 +01:00
Lei Zhang
c05bcabe9f
riched20: Fixes and additional conformance tests for EM_EXSETSEL.
2006-12-04 12:23:32 +01:00
Matt Finnicum
e864f2f2c3
riched20: Make EM_SETPARAFORMAT use ME_RewrapRepaint instead of ME_UpdateRepaint.
2006-11-28 12:14:43 +01:00
Matt Finnicum
d7aa81bdfb
riched20: Make EM_SETCHARFORMAT call ME_RewrapRepaint instead of ME_UpdateRepaint.
2006-11-28 12:14:36 +01:00
Matt Finnicum
26ba1559b0
riched20: Make WM_SETFONT call RewrapRepaint instead of UpdateRepaint.
2006-11-28 12:14:28 +01:00
Matt Finnicum
3e27436003
riched20: EM_EXLIMITTEXT: ignore wParam and properly cast lParam.
2006-11-28 12:14:21 +01:00
Matt Finnicum
807546ee59
riched20: Make ME_StreamIn create undos properly.
2006-11-28 12:14:11 +01:00
Clinton Stimpson
4b292b0cb5
riched20: Fix key handling in dialogs.
2006-11-15 12:24:54 +01:00
Mike McCormack
bb1f8edcc2
riched20: Fix a memory leak.
2006-11-10 11:35:59 +01:00
Mike McCormack
0f6c58c113
riched20: Set the correct number of initialized cursors.
2006-11-10 11:35:53 +01:00
Mike McCormack
32f044c4cf
riched20: Fix an uninitialized variable.
2006-11-10 11:35:48 +01:00
Mike McCormack
d89c46748f
riched20: Don't access memory after freeing it.
2006-11-06 12:23:42 +01:00
Mike McCormack
01e8eaefdc
riched20: Fixed memory leaks.
2006-11-06 12:23:33 +01:00
Mike McCormack
b5c031b160
riched20: Initialize and free the RTF lookup table in DllMain to avoid memory leaks.
2006-11-02 12:24:55 +01:00
Mike McCormack
8939587b19
riched20: Create macro functions for allocating and freeing memory.
2006-10-24 11:44:53 +02:00
Hans Leidekker
177350d087
riched20: Win64 printf format warning fixes.
2006-10-14 20:16:56 +02:00
Mike McCormack
9eda99c0bb
riched20: Don't crash if a colour isn't found.
2006-10-09 20:38:11 +02:00
Matt Finnicum
abecd9e393
riched20: Rewrite of scrolling and some redrawing code.
...
Replaces duplicated scrolling code with re-usable functions.
Removes excessive boundary checking on scroll code, since that's done
in the scrollbar control anyways.
Properly separates repaint calls based on what has changed.
Send EN_UPDATE and EN_CHANGE at the right places.
Only call EnsureVisible on changes, not all repaints.
2006-09-11 11:29:42 +02:00
Hippocrates Sendoukas
0ad5638bf1
riched20: WM_CONTEXTMENU fix for custom context menus.
2006-09-07 16:06:56 +02:00
Brian Chang
1f2eb859ac
riched20: EM_EXSETSEL fixes and conformance tests.
2006-08-28 17:48:23 +02:00
Matt Finnicum
0d15a6ae15
riched20: Remove two testing fixme's that were accidentally committed.
2006-08-28 11:36:49 +02:00
Clinton Stimpson
bbd05a4644
riched20: Add tests for EM_GETMODIFY.
2006-08-23 20:10:50 +02:00
Matthew Finnicum
9b47add3bf
riched20: Make EM_EXLINEFROMCHAR handle special case of lParam == -1.
2006-08-22 11:57:40 +02:00
Matt Finnicum
cba7238364
riched20: Swap two lines that were in wrong order / caused notification not to be sent.
2006-08-21 12:08:39 +02:00
Matt Finnicum
e73890a72c
riched20: Send EN_LINK notifications. Properly underline / color links.
2006-08-17 11:44:12 +02:00
Phil Krylov
2aed652c01
riched20: Accept RTF header without a version number.
2006-08-11 11:56:07 +02:00
Matt Finnicum
22bc001c08
riched20: Add conformance tests for WM_SETFONT.
2006-08-10 11:30:03 +02:00
Ken Myers
13e4ddd2df
riched20: Implement EM_EXLIMITTEXT, EM_GETLIMITTEXT and tests.
2006-08-10 11:28:43 +02:00
Clinton Stimpson
ea755999f1
riched20: Fix crash with NULL lParam in EM_SETTEXTEX.
2006-08-10 10:54:27 +02:00
Matt Finnicum
658c0cdd1a
riched20: Implement EM_SHOWSCROLLBAR, EM_SETSCROLLPOS, ES_DISABLENOSCROLL, and WS_VSCROLL.
2006-08-09 11:20:43 +02:00
Krzysztof Foltman
bad844d0a9
riched20: New, clean, simple selection repaint logic - should fix all outstanding refresh issues.
2006-08-07 19:59:58 +02:00
Matt Finnicum
2b92bf78d1
riched20: Implement EM_SETPASSWORDCHAR and EM_GETPASSWORDCHAR.
2006-08-05 11:25:34 +02:00
Krzysztof Foltman
f07740b28b
riched20: Make EM_LINELENGTH work correctly for non-final paragraphs containing exactly one screen line.
2006-08-03 22:27:57 +02:00
Krzysztof Foltman
9667a891ff
riched20: Make EM_GETLINE work properly in 1.0 emulation mode.
2006-08-03 22:27:45 +02:00
Krzysztof Foltman
5f32291ace
riched20: Ctrl+A should be allowed in read-only controls too.
2006-08-03 22:27:36 +02:00
Alexandre Julliard
344389d6d5
riched20: Fixed handling of window private data for Win64.
2006-08-03 18:20:01 +02:00
Krzysztof Foltman
6f15b54ade
riched20: Handle incorrect calls of window procedure.
2006-08-03 18:18:14 +02:00
Thomas Kho
3f19ffe809
riched20: Implement EM_GETLINE.
2006-07-31 17:18:56 +02:00
Andrew Talbot
0c96a42a59
riched20: Write-strings warnings fix.
...
The string members of the FINDTEXT and FINDTEXTEX structs are declared
constant in the SDK.
2006-07-24 12:57:32 +02:00
Krzysztof Foltman
d17591fdf9
riched20: WM_SETFONT support.
2006-07-17 13:44:04 +02:00
Krzysztof Foltman
02bbf06c43
riched20: Fix message range for get_msg_name.
2006-06-22 12:29:04 +02:00
Francois Gouget
11ae0f6386
Assorted spelling fixes.
2006-06-16 11:32:29 +02:00
Alexandre Julliard
fe4c4780eb
riched20: Fix an uninitialized variable bug.
...
Mark todo a test that depended on the bug to succeed.
2006-06-12 16:09:50 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Matt Finnicum
a379ac9ef5
riched20: Implement EM_SETUNDOLIMIT and its conformance tests.
2006-05-16 12:41:21 +02:00
Michael Jung
0dec18a3d6
riched20: Don't append '\r' to the last paragraph in EM_GETTEXTEX.
2006-05-08 17:39:59 +02:00
Phil Krylov
4e796854af
riched20: Allow inheriting table cell definitions from previous table row.
...
Allow inheriting of table cell definitions from a previous table row
when the current table row does not contain a \trowd, only an \intbl.
2006-04-12 11:17:25 +02:00
Lei Zhang
b4ee2ad0e4
riched20: Implements FR_WHOLEWORD for EM_FINDTEXT.
...
Add FR_WHOLEWORD to riched20's EM_FINDTEXT and fix a couple small bugs
introduced in earlier patches for EM_FINDTEXT. Additional test cases
have been added to check for corner cases. Also improve input
validation.
2006-03-21 20:11:04 +01:00
Alexandre Julliard
c9cc7e33ff
Fixed some compiler warnings on old gcc versions.
2006-03-02 18:03:32 +01:00
Brandon Woodmansee
dee813b5ff
riched20: Implement EM_AUTOURLDETECT & EM_GETAUTOURLDETECT.
2006-03-01 20:27:43 +01:00
Andrew de los Reyes
cd024942af
riched20: Implement EM_SCROLL and its tests.
2006-02-27 12:21:11 +01:00
Hamza Lakhani
6979719a90
riched20: EM_HIDESELECTION implementation.
2006-02-27 12:20:56 +01:00
Phil Krylov
69ae27ed2f
riched20: Added a comment to make life easier.
2006-02-24 21:10:13 +01:00
Kevin Koltzau
53b74b0d56
riched20: Call GetClipboardData callback on cut/copy.
2006-02-23 11:52:03 +01:00
Kevin Koltzau
27e2dcff1d
riched20: EM_GETOLEINTERFACE is not a stub.
2006-02-23 11:51:14 +01:00
Kevin Koltzau
58b2995311
riched20: Store reference to editor in ole interface.
2006-02-23 11:14:41 +01:00
Kevin Koltzau
a13245847f
riched20: Add IDataObject implementation and use it for cut/copy.
2006-02-22 22:23:49 +01:00
Brian Chang
8f6ba475e8
riched20: EM_SETOPTIONS/EM_GETOPTIONS base implementation.
...
ECO_READONLY implemented and tested.
2006-02-22 22:14:38 +01:00
Lei Zhang
805dc74809
riched20: Implement FR_MATCHCASE for EM_FINDTEXT.
...
Removed todo flag from affected FR_MATCHCASE tests.
2006-02-22 11:33:10 +01:00
Lei Zhang
0014e50465
riched20: Fix for EM_FINDTEXT input validation.
...
Fixed the cpMin/cpMax validation code for EM_FINDTEXT.
Removed todo flag from affected EM_FINDTEXT tests.
2006-02-21 11:27:51 +01:00
Roger Hoang
b03c70a845
riched20: Implemented EM_SETTEXTMODE options TM_RICHTEXT and TM_PLAINTEXT
...
and their tests.
2006-02-20 20:29:44 +01:00
Thomas Kho
bfb3c756eb
riched20: Implement EM_SCROLLCARET and EM_GETSCROLLPOS.
2006-02-16 19:33:19 +01:00
Thomas Kho
087af502ea
riched20: Extend EM_FINDTEXT conformance tests and fix 2 problems they expose.
2006-02-15 13:37:31 +01:00
Phil Krylov
9761b457ce
riched20: Support RTF text in WM_SETTEXT.
2006-02-14 17:38:57 +01:00
Thomas Kho
caffa53227
riched20: Fixed bounds error when finding text forward.
2006-02-11 18:39:17 +01:00
Kevin Koltzau
2d0ad0944c
riched20: Don't use EM_STREAMIN for paste.
2006-02-06 11:26:34 +01:00
Kevin Koltzau
374106d136
riched20: Don't use EM_STREAMOUT for copy/cut.
2006-02-05 13:05:00 +01:00
Phil Krylov
9b1beea7d7
riched20: Empty undo stack after EM_STREAMIN without SFF_SELECTION flag.
2006-02-05 12:18:55 +01:00