151 Commits

Author SHA1 Message Date
Huw Davies
eb773e0dea riched20: Use PointFromCharContext now that we can specify logical ordering. 2013-04-17 14:26:14 +02:00
Huw Davies
5ddfc36cc0 riched20: Add a visual vs logical order flag to the character to position mapping routines. 2013-04-17 14:26:09 +02:00
Francois Gouget
8e304065c1 riched20: ME_StrDup() is not used anymore so remove it. 2013-04-03 17:54:35 +02:00
Huw Davies
acaad0a842 riched20: Add the ability to CharFromPoint to either pick the closest leading edge or the leading edge of the selected character. 2013-02-18 16:34:10 +01:00
Huw Davies
42b0c6ea33 riched20: Make it possible to perform point -> char conversion while holding a context. 2013-02-14 17:35:03 +01:00
Huw Davies
c07212b3d0 riched20: Move run extent calculation to wrap.c. 2013-02-12 19:56:41 +01:00
Huw Davies
9e8a9f4f65 riched20: Move the split point calculation to wrap.c. 2013-02-08 19:31:09 +01:00
Huw Davies
68d72f4792 riched20: Move SplitRun to wrap.c and make it static. 2013-02-07 15:51:11 +01:00
Huw Davies
5168d66be7 riched20: Move the text to the paragraph level. 2013-02-05 20:15:37 +01:00
Huw Davies
872a2ad031 riched20: Pass a character ptr and length to SplitParagraph. 2013-02-05 20:15:36 +01:00
Huw Davies
48b9ab37ac riched20: Pass the character ptr and string length directly to the break proc helper. 2013-02-05 10:51:26 +01:00
Huw Davies
76cfe7dc50 riched20: Rewrite the run whitespace test to take a run parameter. 2013-01-31 16:32:01 +01:00
Huw Davies
29e54f07f7 riched20: Rewrite the run splittable test to take a run parameter. 2013-01-31 16:31:52 +01:00
Huw Davies
27578f8bb6 riched20: Add a helper to retrieve the run text. 2013-01-30 17:19:31 +01:00
Huw Davies
c17af77b5c riched20: Add a helper to debug the run text. 2013-01-30 17:19:28 +01:00
Huw Davies
dee40e90ce riched20: Move undo handling to a different set of structs as the display item structs are not a good fit. 2013-01-29 17:50:17 +01:00
Dylan Smith
10d800b6b8 richedit: Invalidate a range of paragraphs without marking them. 2012-05-18 18:10:27 +02:00
Dylan Smith
1f8cbe1645 richedit: Avoid scanning all text for paragraphs to invalidate. 2012-05-09 11:55:58 +02:00
Dylan Smith
18fa3287f6 richedit: Remove always FALSE parameter from ME_PaintContent. 2012-05-08 09:42:16 +02:00
Thomas Faber
28cb0b683e riched20: Constify some ME_Context pointer parameters. 2011-10-24 19:37:08 +02:00
Marcus Meissner
598a7f6edf riched20: Mark internal symbols with hidden visibility. 2011-05-24 11:55:55 +02:00
Dylan Smith
8b8e4f89b2 richedit: Use ME_Cursor as parameter to ME_SplitRunSimple.
The paragraph needed to be included in the parameters to avoid needing
traverse the linked list of display items to find the paragraph.
2010-07-30 11:36:02 +02:00
Dylan Smith
dfa80b35b0 richedit: Invalidate without calling UpdateWindow in many cases. 2010-07-29 10:28:00 +02:00
Dylan Smith
1f2575ba7c richedit: Documented paragraph border widths are in points not pixels.
The border widths documented by msdn are in points which are 72 dpi, which
is not equivalent to pixels (normally 96 dpi). I pre-converted all the
border widths to 96 dpi resolution since this avoids needed to store
fractions, and often avoids the need for convertion to the displays
resolution.
2010-03-01 11:32:18 +01:00
Dylan Smith
535afbd3aa richedit: Move function ME_GetParaLineSpace to make it static. 2010-02-10 11:32:31 +01:00
Dylan Smith
3fe20bdc7e richedit: Handle to parent window is cached.
The parent window for the richedit control on creation is the one that
receives notify messages, even after the parent has been changed using
SetParent.
2009-09-30 17:41:06 +02:00
Francois Gouget
6e80d875d4 riched20: Make ME_SetCursorToEnd() static. 2009-08-26 13:09:27 +02:00
Dylan Smith
54b53b6018 richedit: Use ME_Cursor instead of offsets for stream out functions. 2009-08-13 15:35:28 +02:00
Dylan Smith
bd4704280d richedit: Replace offsets arg with ME_Cursor for ME_InternalDeleteText.
Offsets are still used within the function, but this patch reduces the
use of it at the entry to the function.
2009-08-13 15:35:17 +02:00
Dylan Smith
8f0dfaba30 richedit: Removed ME_InsertRun since it uses character offsets.
The function was used in one place, and was simply a wrapper around a
call to ME_InsertRunAtCursor, so I removed it to avoids it use in other
parts of the code.
2009-08-13 15:35:07 +02:00
Dylan Smith
02228ee176 richedit: Use ME_Cursor instead of offsets for ME_CharFromPos. 2009-08-13 15:35:01 +02:00
Dylan Smith
a69ef26599 richedit: Use ME_Cursor instead of offsets for copying text. 2009-08-13 15:34:54 +02:00
Dylan Smith
27c28ab292 richedit: Modified ME_MoveCursorsChars to move multiple chars.
Previously the function was only used to move a single character in
either direction, so I made the function more general so that it could
be used in more places.
2009-08-13 15:34:39 +02:00
Dylan Smith
2da0d8e933 richedit: Use ME_Cursor instead of offsets for ME_SetCharFormat.
The test that succeeded from this change was as a result of allowing the
end of the character format change be specified using NULL as the rest
of the text.  Before, the end paragraph run at the end of the text was
not being set for this case, when all the text was supposed to have its
character format changed.
2009-08-12 17:35:50 +02:00
Dylan Smith
ade37203a5 richedit: Use ME_Cursor instead of offsets for ME_GetCharFormat.
Prevent extra conversions from character offset to ME_Cursor.
2009-08-12 17:35:42 +02:00
Dylan Smith
2bc726930f richedit: Add helpers for setting cursor to start/end of text. 2009-08-12 17:35:30 +02:00
Dylan Smith
32dcd3bbe1 richedit: Created functions to move between runs and track paragraphs.
Plenty of places in the code find following or preceding runs, then
afterwards find the paragraph from the run.  This is inefficient because
the same linked list is used for both runs and paragraphs, so changes in
paragraphs can be detected while returning the next or previous run.
2009-08-12 17:35:24 +02:00
Dylan Smith
82e102107c richedit: ME_GetTextW must use source and destination lengths.
Before a single length was used for the number of characters to retrieve
from the text, and to keep track of the size of the buffer.  These are
not equivalent, since there is a possible end of line conversion.
2009-08-12 17:32:16 +02:00
Dylan Smith
46b84aed4a richedit: Added function to get selection cursors in order.
Previously the only convenient way to get the start and end of the
selection was through offsets, which eventually need to get converted
back into items in the linked list storing the text.  The new function
will help with eliminating these inefficiencies.
2009-08-12 17:29:30 +02:00
Dylan Smith
be0fb1ef5d richedit: Make the ME_GetCursorOfs function more flexible.
This function will make it easier to work with ME_Cursor objects, which
should be used in a lot of places instead of character offsets (which
often require seeking through the linked lists to perform operations
with).
2009-08-12 17:29:20 +02:00
Dylan Smith
832ffe108c richedit: Remove header function declarations with no definition. 2009-08-10 17:09:53 +02:00
Francois Gouget
3d6c53b972 riched20: Make ME_GetCursorCoordinates() static and remove ME_MustBeWrapped() as it is unused. 2009-05-26 14:10:32 +02:00
Francois Gouget
61a8b94634 riched20: ME_MakeString() is unused so remove it. 2009-05-15 10:28:20 +02:00
Andrew Talbot
edca49f6aa riched20: Remove unused functions. 2009-02-09 13:21:21 +01:00
Dylan Smith
c8b4455565 richedit: Removed ME_StrRelPos, ME_StrRelPos2, & ME_PosToVPos functions.
These functions were just being used for addition, so it was simpler to
remove the functions and modify the places it was used.

The ME_StrRelPos2 and ME_PosToVPos were just simple wrappers around
ME_StrRelPos, and ME_PosToVPos wasn't being used.
2009-02-09 13:05:13 +01:00
Dylan Smith
1eb0f73ab0 richedit: Got rid of ME_GetCharFwd and ME_GetCharBack.
These two functions were being used for simple operations, to get the
first or last character when pre-computing flags for splitting runs.

The call to ME_GetCharBack wasn't even giving the correct result, it
would always return -1 since it is being called with nPos of 0.

This patch simplifies the code by removing the functions and getting the
characters directly from the string.
2009-02-09 13:05:13 +01:00
Dylan Smith
5f15de0690 richedit: Removed ME_StrLen and ME_StrVLen field access functions.
These functions were probably previously needed because of some wierd
special handling of backspace characters, but currently there is no
reason why the nLen field can't be accessed directly.

Having to functions that just access the string length field just causes
slightly more effort for someone to look at the code, because they need
to enter the function to find out what it actually is doing.
2009-02-09 13:05:13 +01:00
Dylan Smith
f148d82093 richedit: Got rid of useless function ME_VPosToPos.
The function was just returning the second parameter.  It had some
commented out code that indicated that previously backslashes weren't
included in the length.  Native wordpad doesn't handle backspaces in a
special way, so this must have been an internal representation that
complicated finding the position of characters.
2009-02-09 13:05:12 +01:00
Dylan Smith
4b7e8f185b richedit: Avoid duplication in make string functions using ME_MakeStringB.
I found that ME_MakeStringB was previously unused, and that the other
ME_MakeString functions repeated code that was already in ME_MakeStringB.
Making ME_MakeStringB static and using it to avoid duplicate code seemed
like a better idea than removing the function.
2009-02-09 13:05:12 +01:00
Dylan Smith
f53f40bcb3 richedit: Prevent string trunction due to NULL characters. 2009-02-09 13:05:12 +01:00