Commit Graph

136 Commits

Author SHA1 Message Date
Andrew Talbot d287e88691 riched20: Declare some functions static. 2009-01-14 12:40:40 +01:00
Dylan Smith ee19ec056a richedit: Prevent an unsigned integer underflow. 2009-01-12 14:40:30 +01:00
Dylan Smith 6df4148b04 richedit: Prevent redundant rewraps when scrollbar is shown.
A common case for richedit controls are that a large amount of text is
set initially with word wrap enabled.  This causes the initially
wrapping of the text, which also calculates the text length.  After
this the vertical scrollbar will be shown, which causes the text to be
rewrapped again.  After this there are two redundant rewraps that are
done which this patch eliminates.
2009-01-06 12:51:55 +01:00
Dylan Smith a16db0afc6 richedit: Scroll up with less than page of text with ES_DISABLENOSCROLL. 2009-01-06 12:51:41 +01:00
Dylan Smith 97a83147b3 richedit: Avoid re-calculating positions found in wrapping for painting.
When the text is wrapped, the positions for all the runs, paragraphs,
and cells are already calculated and stored.  The only thing left to do
for painting is to offset them by the formatting rectangle and the
scroll position.
2008-12-20 11:43:29 +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 c70f6a3933 richedit: Use the DefWindowProc to implement WM_SETREDRAW. 2008-10-20 11:37:27 +02:00
Dylan Smith ae3394271d richedit: Prevent EN_UPDATE notifications when window isn't visible. 2008-10-20 11:37:27 +02:00
Dylan Smith f24678b285 richedit: Scroll cursor into view even with redraw turned off. 2008-10-18 19:32:43 +02:00
Dylan Smith f78a841973 richedit: Removed space in front of function signature. 2008-09-22 11:49:29 +02:00
Dylan Smith 72d754108a richedit: Removed a redundant condition. 2008-09-19 11:40:48 +02:00
Dylan Smith 87292d81ee richedit: Avoid unconditionally rewrapping text on scroll. 2008-09-18 12:32:50 +02:00
Dylan Smith da058cbf67 richedit: Handle deletion at the end of text properly. 2008-09-18 12:32:44 +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 967c148a68 richedit: Borders are drawn for simple tables. 2008-08-18 17:15:57 +02:00
Dylan Smith b628482d68 richedit: Removed an unused local variable and assignments to it. 2008-08-18 17:15:57 +02:00
Dylan Smith 300db3765f richedit: Each cell can contain multiple paragraphs in msftedit. 2008-08-18 14:34:11 +02:00
Dylan Smith 11c8039699 richedit: Use tabstops to store cell positions. 2008-08-05 14:09:37 +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
Eric Pouech 6ef6f7167d richedit: Add an assert to point out what we're expecting. 2008-07-17 10:53:41 +02:00
Dylan Smith 0f14d65c70 richedit: Use system colour for highlighting after v2.0.
In version 1.0 of the richedit controls highlighting is done by
inverting the colours.  Version 2.0 and up highlight instead draw
the text using system colours for the background and the text.
2008-07-11 14:25:17 +02:00
Dylan Smith 9bcfa942a0 richedit: Prevented underlining the end of paragraph character. 2008-07-11 14:25:02 +02:00
Dylan Smith 5ec188d955 richedit: Tabs are now highlighted and underlined. 2008-07-11 14:24:51 +02:00
Juan Lang c40c08b3d3 richedit: Only send update events in 1.0 emulation mode if the event mask specifies it.
Fixes a crash in native cryptui.dll when viewing certificate properties.
2008-07-01 13:45:37 +02:00
Alex Villacís Lasso 163e9d1d02 richedit: Revert patch that introduced a test that fails on all platforms. 2008-06-25 11:14:13 +02:00
Andrew Talbot 11f5909368 riched20: Constify some variables. 2008-06-20 12:22:51 +02:00
Alex Villacís Lasso 0e9ed5c10e richedit: Empty text should result in a scroll range of 0. Tests for this behavior. 2008-06-19 12:10:21 +02:00
Dylan Smith 6f11b1b354 richedit: Removed useless code. 2008-05-05 21:18:13 +02:00
Eric Pouech 60234f8fc4 richedit: Properly handle the background in case of border in paragraph. 2008-04-25 11:43:54 +02:00
Andrew Talbot 0ba8677430 riched20: Remove unused variables. 2008-04-24 11:49:53 +02:00
Alex Villacís Lasso dfcebfb22e riched20: Fix behavior of EM_REPLACESEL with painting disabled. 2008-04-21 20:26:54 +02:00
Austin English 313a85f163 Spelling fixes. 2008-04-17 12:25:57 +02:00
Eric Pouech 5d36c47e1f richedit: Fixed object leaks generated by context creation & destruction. 2008-03-17 14:37:58 +01:00
Eric Pouech 9b2e552bf4 richedit: Prevent division by zero when 0-width border is used. 2008-03-17 14:18:36 +01:00
Eric Pouech 00de77517a riched20: Start handling OLE objects inside richedit. 2008-02-05 11:11:32 +01:00
Eric Pouech cb4f8a80de richedit: Check return of GetScrollInfo before accessing the returned structure. 2008-01-07 12:14:10 +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 f43570cbf0 richedit: Optimizations for the style selection.
Use a ME_Context for style selection/unselection.
Store the (x,y) dpi information for a given DC in the corresponding ME_Context structure.
2008-01-02 13:57:37 +01:00
Eric Pouech 4cecb5dc70 richedit: Move init code after some sanity checks to avoid unneeded computations. 2008-01-02 13:55:53 +01:00
Eric Pouech d319033a97 richedit: Added support for intra-paragraph line space. 2008-01-02 13:54:49 +01:00
Eric Pouech f1b029ef6a richedit: Added support for spaces above & below paragraphs. 2008-01-02 13:54:25 +01:00
Eric Pouech caa37c749a richedit: Now drawing the paragraph borders (if any) from paraformat2. 2008-01-02 13:54:01 +01:00
Eric Pouech 28cc0f9e69 richedit: Fix the para computation when zoom is used. 2008-01-02 13:52:52 +01:00
Eric Pouech f4fd063101 richedit: Enforce usage of paraformat2 fields instead of homegrown ones for paragraphs. 2008-01-02 13:52:10 +01:00
Eric Pouech 0549b9009a richedit: Simplified handling of background brush while painting. 2008-01-02 13:49:57 +01:00
Eric Pouech 2602a39bd9 richedit: Now painting the newly supported underline types. 2008-01-02 13:48:53 +01:00
Alex Villacís Lasso 42d6cc7cf5 riched20: Invalidate all the text on bogus last selection. 2007-12-08 19:54:23 +01:00
Clinton Stimpson f8f07dfe54 riched20: Adjust event mask when sending EN_CHANGE notification. 2007-09-20 16:47:30 +02:00
Lei Zhang 0d4707c284 riched20: Properly calculate control display height. 2007-08-16 11:35:06 +02:00
Andrew Talbot ed93ed9a08 riched20: Constify some variables. 2007-08-14 13:28:05 +02:00
Andrew Talbot 166b3a6cdb riched20: Declare some functions static. 2007-01-24 12:31:29 +01:00
Clinton Stimpson 78584b6ee1 riched20: Only send EN_CHANGE when it is supposed to be sent. 2006-11-27 13:46:02 +01:00
Hans Leidekker 177350d087 riched20: Win64 printf format warning fixes. 2006-10-14 20:16:56 +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
Matt Finnicum e73890a72c riched20: Send EN_LINK notifications. Properly underline / color links. 2006-08-17 11:44:12 +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
Krzysztof Foltman 3a0c15e939 riched20: Ensure text is wrapped before invalidating selection. 2006-08-07 13:09:27 +02:00
Matt Finnicum 2b92bf78d1 riched20: Implement EM_SETPASSWORDCHAR and EM_GETPASSWORDCHAR. 2006-08-05 11:25:34 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Hamza Lakhani 6979719a90 riched20: EM_HIDESELECTION implementation. 2006-02-27 12:20:56 +01:00
Phil Krylov 08bf7180f3 riched20: Initial support for simple tables. 2006-02-04 17:01:01 +01:00
Phil Krylov f0d6519ef5 riched20: Added support for hidden text. 2006-01-31 13:01:26 +01:00
Alexandre Julliard ba0d6bd0f7 riched20: Remove a couple of no longer used functions. 2006-01-27 12:20:21 +01:00
Phil Krylov bb9631b196 riched20: Selection painting fixes. 2006-01-26 13:27:28 +01:00
Phil Krylov 8205252f10 riched20: Fixed some selection painting bugs. 2006-01-13 13:53:35 +01:00
Phil Krylov 777d9bfacd riched20: Removed a useless check in painting code. 2006-01-12 11:54:37 +01:00
Phil Krylov 6818762a6e riched20: Reduced screen flicker by using proper update region invalidation. 2006-01-10 20:41:23 +01:00
Phil Krylov fe2951daaa Cache background color brush instead of recreating it at each screen
update.
2005-11-03 11:33:24 +00:00
Phil Krylov a91ba787e2 Added support for EM_REQUESTRESIZE message, EN_REQUESTRESIZE
notification, and ENM_REQUESTRESIZE event mask.
2005-11-03 09:52:29 +00:00
Phil Krylov f1184b466d Added EM_SETRECT, EM_SETRECTNP, and WM_SETREDRAW message handling.
Added support for GT_SELECTION flag in EM_GETTEXTEX handler.
2005-08-15 09:47:14 +00:00
Phil Krylov 8759b5fead Added EM_GETZOOM and EM_SETZOOM RichEdit message handlers. 2005-07-24 16:17:43 +00:00
Stefan Huehner 70c80fb430 Make functions static to fix -Wmissing-declarations warnings. 2005-07-06 15:53:04 +00:00
Krzysztof Foltman b16f330197 - added support for \ulnone (turning underline off)
- support for basic subscript and superscript
- untested support for text offset
2005-06-12 10:43:24 +00:00
Hannu Valtonen cd80c487f5 Use correct background color for the whole richedit control. 2005-05-24 10:10:54 +00:00
Krzysztof Foltman 13578c8602 - removed trailing spaces from some files
- tab support
- indent support
2005-04-16 10:48:35 +00:00
Krzysztof Foltman d6b198b3bd - PageUp key support.
- Support for "normal" scroll bar functionality (line and page
  scrolling).
2005-03-21 10:27:24 +00:00
Krzysztof Foltman 810b261175 - made string operations consistent wrt whitespace handling (which
should greatly improve stability of the wrap code and eliminate
  regressions of the most recent versions)
- completely new scrollbar handling (much more reliable) and related
  redraw fixes
- Page Down handler (no Page Up yet, fixing wrap/redraw/scrollbar bugs
  was of higher priority)
2005-03-19 17:06:17 +00:00
Krzysztof Foltman f089de1f4d - RTF reader doesn't use RichEdit messages anymore (which saves on
unnecessary repaints)
- added unicode character support to RTF import (like: \u12345 ?)
- small fixes
- fixed whitespace identification bug
- removed drawing of paragraph marks
- improved stub implementations for IRichEditOle
2005-03-17 10:23:40 +00:00
Krzysztof Foltman f7e0f7cabe - Optimized repaint of the area below the text.
- ME_JoinRuns didn't mark the paragraph for rewrapping, fixed.
- Removed PostQuitMessage(0) from WM_DESTROY handler (duh!).
- Use of EM_GETOLEINTERFACE is reported with FIXME instead of TRACE
  (any app using this message is likely to encounter major problems).
2005-03-09 18:43:18 +00:00
Krzysztof Foltman 89075fb429 The meaning of the rewrap flag got inverted (MEPF_REWRAP instead of
MEPF_WRAPPED) for consistency.
Major code cleanups in rewrap/repaint code, leading to "smarter"
behaviour wrt repainting selections.
2005-03-09 11:48:59 +00:00
Krzysztof Foltman 300f684053 Old font management replaced by the cache-based one, which keeps
maximum of 10 HFONTs at once, instead of one per a couple of runs.
2005-03-08 16:26:23 +00:00
Krzysztof Foltman cdbab8bcfd Added a check for empty scrollbar range. 2005-03-07 10:59:53 +00:00
Krzysztof Foltman d488f3f1de Initial implementation of riched20. 2005-03-05 11:19:14 +00:00