Commit Graph

62 Commits

Author SHA1 Message Date
Rein Klazes ec23fb3a92 user: Fix DrawTextExA/W on empty strings.
DrawTextExA/W should calculate a rectangle of zero height and width in
some cases of null or empty supplied strings. With conformance tests.
2006-01-27 15:47:15 +01:00
Rein Klazes 16a5c4fbca Fixed a lot of bugs in TEXT_TabbedTextOut. With the test cases used to
find them.
2005-10-26 10:04:21 +00:00
Mike McCormack c818a4e662 Fix "empty body in an if/else-statement" warnings. 2005-09-21 09:46:28 +00:00
Robert Shearman ff93df6e0f - Support right-aligned text in TabbedTextOut.
- Add documentation.
2005-07-12 18:11:26 +00:00
Mike McCormack c787b146e1 -Wpointer-sign fixes for gcc 4.0. 2005-07-06 10:36:28 +00:00
Richard Cohen 980f1d675e Fix some obsolete comments 2005-05-27 19:26:34 +00:00
Peter Berg Larsen 102121993a Eliminate strncpy. Correct a \0 assingment to the modstr variable. 2005-04-18 15:37:15 +00:00
Alexandre Julliard eea415300b Moved handling of the 55AA pattern brush to syscolor.c so that it can
be made a system object (found by Rein Klazes).
2005-04-13 16:13:45 +00:00
Peter Berg Larsen a667d536b9 Janitorial: Get rid of strncpy/strncpyW. 2005-03-29 19:49:21 +00:00
Jon Griffiths 32454a81a5 Remove unneeded headers to reduce unneeded rebuilds. 2004-12-20 19:00:11 +00:00
Alexandre Julliard 6a78c16aac Moved private USER definitions to a new user_private.h header, and
removed the global user.h.
2004-12-08 18:06:14 +00:00
Bill Medland 22da469b20 If the buffer is no longer static the names should reflect that.
Also minimise the use of the constant.
2004-12-01 15:29:04 +00:00
Dmitry Timoshkov ba0ee349e6 DrawTextEx should allocate text buffer on stack for thread safeness. 2004-11-30 17:21:16 +00:00
Alexandre Julliard f56c6fb9b2 Moved some window painting functions to uitools.c. 2004-09-01 18:26:40 +00:00
Ge van Geldorp d1632bf652 Pass dtp parameter on from DrawTextExA to DrawTextExW. 2003-12-13 03:25:57 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Vitaliy Margolen 3fc25446fe DrawTextEx: honor clipping for underscores. 2003-06-04 20:21:21 +00:00
Andreas Mohr 114b667f41 Some spelling and formatting fixes. 2003-04-02 01:23:43 +00:00
Bill Medland 62a80b76f2 Better handling of bad data in TabbedTextOut/TabbedTextExtent
Checked with:
a) Null tabstop array with non-zero number of entries
b) Negative number of entries (MSDN is wrong; it is not an error)
c) Single tabwidth of negative size
d) Single specified tabwidth of zero size
2003-01-31 03:23:18 +00:00
Dan Kegel 0fd521fee3 Change RECT to use LONG to match win32 standard headers and fix format
strings to use %ld for RECT elements.
2003-01-08 21:09:25 +00:00
Alexandre Julliard aff7ddaeeb Made user compile with -DSTRICT. 2002-11-22 21:22:14 +00:00
Alexandre Julliard 45078fb008 Properly split the 16-bit versions of GrayString and TabbedTextOut. 2002-11-22 20:41:17 +00:00
Alexandre Julliard 7ef66af34a Moved some more 16-bit functions to user16.c.
A few fixes for -DSTRICT.
2002-11-22 04:47:10 +00:00
Michael Stefaniuc 61d92562b9 Silence some warnings due to casts between pointer and integers of
different size.
2002-10-19 00:52:55 +00:00
Paul Rupe 2e2988dec6 Faster performance in TEXT_Ellipsify for long strings. 2002-06-10 22:47:58 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Robert O'Callahan 71a8a74b43 Fixed bug in TEXT_WordBreak that was variously throwing Lotus Notes
into an infinite loop or causing it to crash.
2002-04-27 00:14:16 +00:00
Alexandre Julliard 5769d1de00 Better support for configure detection of missing types, added check
for ssize_t.
Removed a couple of no longer used portability functions.
Various portability fixes in port.h.
2002-04-26 19:05:15 +00:00
Stefan Leichter 32b6ef349d Check for NULL pointer in DrawTextExA. 2002-04-05 21:17:00 +00:00
Bill Medland 2162eb867a Initialise a stack variable. 2002-03-22 00:12:15 +00:00
Bill Medland 7d983d244a Pass information through arguments instead of static variables.
Add protection to prevent reading outside the buffer.
Better handling of degenerate cases.
2002-03-11 01:15:31 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Bill Medland bc39eeec40 Correct Word breaking in centred/right justified mode; it was leaving a
trailing space which it should only do for left-justified text.
Also tighten up some comments.
2002-02-26 00:39:30 +00:00
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