Commit Graph

29 Commits

Author SHA1 Message Date
Bill Medland
7423dc0463 DrawText ellipsification on all lines, not just single-line. 2002-02-21 20:07:26 +00:00
Bill Medland
8513907f2c Drawtext tidying up ready for the next big change:
- Fix brainfade in previous delta
- Move ellipsification results to static memory; they are going to
  have to be referenced inside NextLineW and the arg list is too big
  already.
- Add the missing ellipsification result (len_under) to simplify coding.
- Slight correction to prefix tracking for when there are several
  underlined characters on a single line (DT_EXPANDTABS only).
- Allocate and free the temporary copy required for DT_MODIFYSTRING
  rather than using a fixed size stack array.
- Introduce lastline into the main loop; it simplifies the code and we
  are going to need it.
2002-02-20 18:56:18 +00:00
Bill Medland
7af9098f6b Change the way that DrawText parses the next line to display, ready to
support multiline ellipsification etc.  Rather than measuring the text
each time we add a character and breaking once it is too long and
WORDBREAK is enabled, we copy a whole text segment and then measure
it; GetTextExtentPointEx is designed to tell us how much fitted.  This
may result in a little rescanning if wordbreak is enabled but will be
well worth while when multiline path ellipsification is brought down
into the NextLine function.  Note also that the wordbreak calculation
is a little more complete (e.g.  including break-within-word for
DT_EDITCONTROL).
2002-02-19 18:25:53 +00:00
Bill Medland
0f9013f7e0 Measure the text more reasonably. This handles intercharacter spacing
and should handle any kerning etc. that might happen. Also ensure no
wordbreaking on singleline text.
2002-02-15 18:21:59 +00:00
Bill Medland
92d77c9bb2 DrawText should not split words just because of clipping. 2002-02-14 19:21:59 +00:00
Bill Medland
cabe8ca580 Put in place a proper tab model within DrawText (also includes
simplifying TEXT_NextLineW to remove duplicate code).
2002-02-12 18:40:36 +00:00
Bill Medland
afe92e8e8a Split the path and word/end ellipsification out of the main function
and do them thoroughly. The existing method would be incorrect where
tabs were involved and in some kerning situations.
2002-02-05 18:07:04 +00:00
Bill Medland
fdb799aa6a Ensure that the whole modified text is returned from DrawTextExA. 2002-02-02 18:14:35 +00:00
Bill Medland
001e732c41 - Introduce a significant design decision.
- Recalculate the prefix location if ellipsification alters it.  This
  carefully does NOT emulate a Microsoft bug in which reprefixing is
  wrong when the first character removed by ellipsification is the one
  that would have been underlined (under Win98 at least).
2002-01-31 20:44:39 +00:00
Bill Medland
a4605ac000 Put the prefix-underline-drawing away into it's own function so we can
see what is happening.
2002-01-29 02:46:09 +00:00
Bill Medland
fcb8e0d77a - Don't string copy from uninitialised stack memory. In fact don't
modify the input string if it didn't change.
- Correct array size.
- Logically separate the centring from the ellipsification.
- Comment on prefix error.
2002-01-18 18:09:09 +00:00
Bill Medland
fd59f34ec0 First stage of DrawText upgrade.
- Rearrange code into three distinct areas; DrawText, GrayString,
  TabbedText.
- Remove unused macros.
- Modify treatment of Tab arguments to fit with observed behaviour.
  e.g. DrawTextEx with DT_TABSTOP but null dtp will not take the
  setting from the flags.  Also only uses bits 15 to 8, not the
  higher bits.
2002-01-15 20:29:35 +00:00
Patrik Stridvall
19d66cc1f6 Fixed some issues found by winapi_check. 2002-01-07 21:16:46 +00:00
Sander van Leeuwen
500c201b0a Fixed DC leak. 2002-01-04 21:26:56 +00:00
Alexandre Julliard
7e49205d5a Changed 16-bit USER Enum* functions to not use thunks, now that 16-bit
Winelib is no longer supported.
2001-12-17 21:37:53 +00:00
Eugene Mayevski
4252310c92 Fixed DT_RTLREADING flag interpretation. 2001-08-22 18:00:47 +00:00
Travis Michielsen
188b32b73f Fully implement DrawTextEx* functions. 2001-07-26 20:10:40 +00:00
Andreas Mohr
a49b5be97d Fixed some more overflowing string traces. 2001-07-17 00:51:00 +00:00
Patrik Stridvall
01d5e5b071 Documentation fixes. 2001-07-02 19:59:40 +00:00
Andreas Mohr
4fb9c09184 Limit output for certain text functions. 2001-06-08 20:19:28 +00:00
Patrik Stridvall
0c61028734 Documentation ordinal fixes. 2001-01-25 22:22:21 +00:00
Ulrich Czekalla
ebc5fe96c6 Prevent buffer overflow in TEXT_NextLineW. 2001-01-20 02:16:52 +00:00
Alexandre Julliard
a41b2cfdd0 Moved tweak support to USER dll. Removed tweak.h and cache.h. 2001-01-15 20:12:55 +00:00
Alexandre Julliard
982a223f36 Replaced PTR_SEG_TO_LIN macro by exported MapSL function.
Fixed a few ptr/segptr mismatches.
Moved CONV_RECT/POINT macros to wingdi16.h.
2000-12-13 20:20:09 +00:00
Dimitrie O. Paun
981a9a409b Fixed indentation problems resulting from automatic renaming, other
aesthetic fixes.
2000-12-12 00:35:54 +00:00
Gerard Patel
158e2cb6cb Implemented DrawTextW as Unicode and DrawTextA as call to DrawTextW. 2000-12-11 03:39:08 +00:00
Susan Farley
196daf815e Added support DT_PATH_ELLIPSIS, DT_END_ELLIPSIS, and DT_WORD_ELLIPSIS
flags in DrawText.
2000-09-22 22:09:11 +00:00
Alexandre Julliard
cb10fdab99 Replaced lstrlen/lstrcmp by libc equivalents everywhere we don't need
to trap exceptions.
2000-08-06 02:41:16 +00:00
Alexandre Julliard
93652e1a68 Moved a bunch of functions out of libwine/kernel/gdi into USER. 2000-08-04 04:21:02 +00:00