Commit Graph

269 Commits

Author SHA1 Message Date
Dimitrie O. Paun 4150f31f58 Use GetItemMetrics instead of GetItemMeasures when drawing. 2002-10-11 17:58:56 +00:00
Dimitrie O. Paun 01b5226508 Make use of the new GetItemMetrics in HitTest, to avoid code
duplication.
2002-10-11 17:58:11 +00:00
Dimitrie O. Paun f1f447931e Separate item metrics computation from positioning
Add support for computing state icon metrics.
2002-10-11 17:57:27 +00:00
Alexandre Julliard 5feaff534b LVS_OWNERDRAWFIXED should only take effect in REPORT mode. 2002-10-11 04:19:20 +00:00
Dimitrie O. Paun 1c6c29e313 Fix drawing bug introduced with the custom notification
reorganization.
2002-10-10 22:57:45 +00:00
Dimitrie O. Paun 01dbe3999e Simplify the report mode, and item drawing considerably.
Fix full row select in report mode.
2002-10-10 22:55:21 +00:00
Dimitrie O. Paun ffd4bd37d0 Handle custom draw notifications properly.
Various cleanups, and simplifications.
2002-10-10 22:54:06 +00:00
Dimitrie O. Paun d2d4baf96b Remove superfluous abstractions which make the code harder to
understand.
2002-10-10 22:52:56 +00:00
Dimitrie O. Paun 6d6be0e1d4 Move the custom draw notifications into the Draw.*Item functions. 2002-10-10 22:52:12 +00:00
Dimitrie O. Paun a994fb8135 Move the custom draw item notifications down into DrawLargeItem. 2002-10-10 22:51:27 +00:00
Dimitrie O. Paun 7ac890984d Fix silly redraw bug introduced in previous patch.
Tidy up, and simplify large item drawing.
2002-10-10 22:50:49 +00:00
Dimitrie O. Paun 50ed9b9962 Implement WM_SETREDRAW properly. 2002-10-10 22:50:09 +00:00
Dimitrie O. Paun 12dca97b9d Rework the mouse click notifications
Assorted cleanups, and simplifications.
2002-10-10 22:49:29 +00:00
Dimitrie O. Paun 1094c63c0e Use (semi)standard HitTest, rather then our own little invention.
Get rid of GetItemAtPt.
Fix HitTest but in REPORT mode.
2002-10-10 22:48:36 +00:00
Michael Stefaniuc bc54d78532 - change the internal functions in windows/cursoricon.c to use 32bit
handles
- move the implementation of ExtractAssociatedIcon16 to
  ExtractAssociatedIconA
- convert HICON to a void*
- fixed some handle conversions that happened to be in the way while
  doing the above
2002-10-10 21:22:09 +00:00
Paul Rupe 8b3da5e3ba Scroll the listview when doing multiple selections. 2002-10-10 18:56:50 +00:00
Dimitrie O. Paun 05b4a09357 Narrow down the items we iterate over in LIST, and REPORT mode.
Fix a Client --> List coordinate transformations in FindItem.
Fix bug in HitItem (in LIST and REPORT mode).
Avoid the last bit of drawing in REPORT mode.
2002-10-10 03:13:14 +00:00
Dimitrie O. Paun 9d678ff740 Draw _only_ the items that are invalidated.
Fix serious bug when deleting from a range.
Pass in a range to the ranges_{add,del} functions.
Tidy up the RefreshIcon function.
Assorted cleanups.
2002-10-10 03:12:05 +00:00
Dimitrie O. Paun 0295e4fceb Reimplement FindItem (cleaner, faster, more compliant with MSDN). 2002-10-10 03:10:20 +00:00
Dimitrie O. Paun 1313431b1b Rewrite HitTest to make it pretty, and very fast. 2002-10-10 03:08:45 +00:00
Dimitrie O. Paun a80ced02e9 Introduce the notion of item iterators, and use them to clean up code. 2002-10-10 03:07:04 +00:00
Dimitrie O. Paun 00e3435f54 Separate range manipulation functions from selection ranges. 2002-10-10 03:05:28 +00:00
Dimitrie O. Paun 764607d931 Fix large item label calculation when not focused.
Fancy focus rectangle handling.
2002-10-10 03:04:34 +00:00
Dimitrie O. Paun b2056c22b5 Fix focus handling when deleting items, or changing modes.
Better label rect calculation in ICON mode.
2002-10-10 03:03:39 +00:00
Dimitrie O. Paun c95b2a0202 Fix large item handling focus in ICON mode. 2002-10-10 03:02:30 +00:00
Dimitrie O. Paun bbf878ded6 No need to go through the heavy duty rect computation when in OWNERDRAW. 2002-10-10 03:01:10 +00:00
Dimitrie O. Paun a625dd394d Factor out owner draw code, so that it works for all modes.
Documentation updates.
2002-10-10 02:59:34 +00:00
Dimitrie O. Paun b8d5715bc1 Factor out the computation of item position, so it can be used
independently of the rectangles.
2002-10-10 02:58:47 +00:00
Dimitrie O. Paun f29d0ce05b Unify LISTVIEW_UpdateLargeItemLabelRect, and GetItemMeasures.
Optimize GetItemMeasures to the max.
Centralize the DrawText's DT_* flags.
2002-10-10 02:57:50 +00:00
Dimitrie O. Paun 1fc91d2d65 Get rid of 'goto's in GetItemMeasures.
Move LISTVIEW_UpdateLargeItemLabelRect close to where it's used.
2002-10-10 02:56:57 +00:00
Dimitrie O. Paun cf4670cba2 Fix braino in calculation of LVS_LIST origin.
Invalidate the entire window when we are invalidating the list.
2002-10-10 02:56:13 +00:00
Dimitrie O. Paun 74e43dd023 Fixed bug that caused item texts to be empty. 2002-10-08 01:55:32 +00:00
Dimitrie O. Paun 783bab61de Fix nasty bug generated by UINT vs. INT (resulted in bogus
comparisons).
Fix LVIR_SELECTBOUNDS computation, for REPORT mode.
Fix dependency generation in GetItemMeasures.
Fix rectangle computation for REPORT mode (corner case problems).
Better debug messages.
Assorted cleanups.
2002-10-07 22:43:42 +00:00
Dimitrie O. Paun 97ffbfad72 Cleaned up the rectangle handling, and fixed numerous bugs in
rectangle calculations.
2002-10-07 22:42:44 +00:00
Paul Rupe 1446a06ce9 Fix inaccurate listview scrolling with PgUp/Down and Home/End keys. 2002-10-07 21:44:01 +00:00
Dimitrie O. Paun 3ac601d52b Fix silly bug in SetItemPosition (we should set it, not create a new
one).
2002-10-07 18:51:52 +00:00
Dimitrie O. Paun b9cacc438a Maintain the item position in {,SMALL}ICON mode separataly from the
item, so that we have it even in LVS_OWNERDATA.
2002-10-07 18:50:21 +00:00
Dimitrie O. Paun 6cfd83b985 Cleanup the SetItemPosition interface. 2002-10-07 18:48:47 +00:00
Dimitrie O. Paun 7f77992091 Remove the COUNT_OF macro.
Indentation fixes, and minor cleanups to notify_dispinfoT.
2002-10-07 18:44:55 +00:00
Dimitrie O. Paun 6a6310d099 Fixes bug which rendered virtual listboxes always empty.
Smarter focus rectangle drawing.
Fix focus handling when we add/delete a column.
Fix silly bug in GetSubItemRect.
Elimiante flicker in Report mode.
2002-10-07 18:43:49 +00:00
Dimitrie O. Paun 95f2799537 Cleanup, and clarify the handling of the various rectangles.
Fix handling of large items in ICON mode.
Fix calculation of LVIR_SELECTBOUNDS.
Various cleanups, and simplifications.
2002-10-07 18:42:52 +00:00
Dimitrie O. Paun 914aac36b5 Cleanup of the way we maintain/lookup the item count.
Rename GetItemWidth to CalculateMaxWidth.
Misc trivial changes.
2002-10-07 18:41:00 +00:00
Dimitrie O. Paun 1c7bf6229f Fix focus handling for owner draw listviews. 2002-10-07 18:38:17 +00:00
Dimitrie O. Paun d308a8d4fe Fix potential bug in RemoveAllItems.
Fix report-mode ONWERDRAW bug (with help from Alexandre Julliard).
Fix multiple selection bug (in report and list mode).
Remove code duplication for removing selections.
2002-10-07 18:36:34 +00:00
Dimitrie O. Paun 769f6a8c0f Reimplement GetSubItemRect, subitem setting optimizations. 2002-10-05 18:05:27 +00:00
Dimitrie O. Paun 76f397e3a1 Fix bug in OWNERDATA selection handling.
Fix critical performance bug in GetSelectedCount.
Fix critical performance bug in SetGroupSelection.
Fix problems for OWNERDRAW report.
Fix hidden/latent bugs in state handling.
Better debug messages.
2002-10-05 18:04:30 +00:00
Dimitrie O. Paun f645727afe Fix onwer-draw REPORT for broken apps. 2002-10-05 18:02:54 +00:00
Dimitrie O. Paun d2b526ed33 Streamline the GetItem usage.
Fix fatal bug for ICON mode in LVS_ONWERDATA.
Documentation updates, marking places which need work.
2002-10-05 17:46:30 +00:00
Dimitrie O. Paun 86e92428fb Fix condition so we actually store the state in virtual listviews.
Assorted code cleanups.
2002-10-05 17:44:51 +00:00
Dimitrie O. Paun 3547087c70 - Effective optimization in GetNextItem (speeds up Xnews).
- Misc cleanups.
2002-10-05 17:43:26 +00:00
Dimitrie O. Paun a656944875 Rewrite the begin/end label edit procedures.
Better support of OWNERDRAW.
Cleaner, simpler code.
2002-10-05 17:42:14 +00:00
Dimitrie O. Paun 530793ff4d Fixed large item focus handling for virtual listviews. Since at most
_one_ item can have the focus at any time, we can maintain one such
rectangle per list, rather than per item. This is both more efficient,
and works for LVS_OWNERDATA listviews as well.
2002-10-04 17:54:22 +00:00
Dimitrie O. Paun c1b1a296ff Do not blindly trust GetItem to succeed -- check the return value, and
fail gracefully.
2002-10-04 17:51:42 +00:00
Dimitrie O. Paun 45387e3a6c Do not send uninitialized data in notification to application. 2002-10-04 17:49:29 +00:00
Dimitrie O. Paun dd0c4c16ae - Fix nasty bug in REPORT mode, when calculating the label rect.
- Lots of cleanups, and simplifications.
2002-10-04 00:25:55 +00:00
Dimitrie O. Paun df6bcfbe57 - Reorganize DrawItem.
- Unify text attribute selection between Draw{Sub,}Item.
- Usual cleanups, and simplifications.
2002-10-02 23:53:04 +00:00
Dimitrie O. Paun 91d41c7fe3 Fancy/optimized EnsureVisible method that eliminates flicker.
Minor cleanups.
2002-10-02 23:45:50 +00:00
Dimitrie O. Paun fc01fcd25a - Fix the subitem drawing code.
- A lot faster drawing in report mode.
- A great deal of cleanup, and simplifications.
2002-10-02 19:59:55 +00:00
Dimitrie O. Paun feae6c3ea4 - Fix the state icon handling.
- Fix handling of new image lists.
- Small cleanups.
2002-10-02 18:38:11 +00:00
Dimitrie O. Paun 25bf08267a - Rework the {Insert,Delete}Column functions.
- Drawing optimizations when adding/removing columns.
- More cleanups, and simplifications.
2002-10-02 18:32:08 +00:00
Dimitrie O. Paun e7c82c2711 - Fix LIST mode, broken by previous changes.
- Implement GetItemRect in terms of GetItemMeasurements.
- Improvements in debug traces.
- Many bug fixes, compelete implementation for GetItemMeasurements.
- Lots of code cleanups, simplifications.
- Documentation updates.
2002-10-01 18:06:15 +00:00
Paul Rupe 4ee2e9e989 Prevent crash when listview trace logging is on. 2002-09-30 18:52:33 +00:00
Guy Albertelli 7e1e62de1c - Eliminate extra background fills.
- Eliminate bogus error messages.
2002-09-29 18:34:51 +00:00
Dimitrie O. Paun a4f580b74b - Cache GWL_STYLE, to avoid fetching in virtually every function.
- Separate GetOrigin from GetAllMeasures as it is item independent,
  and rename function to reflect the change.
- Small cleanups.
2002-09-29 18:02:21 +00:00
Dimitrie O. Paun 81beb955c8 Remove item from the list, if we fail to initialize it at insert
time.
2002-09-27 22:47:00 +00:00
Dimitrie O. Paun e65eb61419 - Fix crashes in debug mode.
- Fix some focus rectangle problems.
- Better debugging output.
- More cleanups.
2002-09-27 22:02:16 +00:00
Paul Rupe 7f32a8d176 - Initialize memory to prevent crashes when -debugmsg +listview is on.
- Fix various array bounds related errors.
2002-09-25 03:20:01 +00:00
Guy L. Albertelli e2e5097648 - Localize origin, location, and rectangle computation.
- Support state icons in LVS_ICON style.
- Draw only items that are in the clip box.
- Draw non-selected items first then the selected ones because large
  icons may overlap each other.
- Correct invalidation rectangles for items.
- Correct drawing of large icons.
- Eliminate divide by zero cases in scrolling.
- Invalidate selected items prior to setting window losing focus.
2002-09-24 18:27:21 +00:00
Dimitrie O. Paun 70c6cecef9 Remove some more superfluous ZeroMemory calls, small cleanups. 2002-09-23 20:59:42 +00:00
Dimitrie O. Paun e3e404296e - Fix outputting of a text pointer in debug mode (by Rein Klazes).
- Remove a large bunch of superfluous ZeroMemory calls.
- Fix a couple of bugs.
2002-09-23 20:55:22 +00:00
Dimitrie O. Paun df28ddf309 - Better implementation for GetTopindex/GetOrigin/SetIconSpacing.
- Drawing optimizations, better scrolling.
- A few more bugs squashed without mercy.
- Many cleanups, simplifications, doc updates.
2002-09-18 18:29:28 +00:00
Dimitrie O. Paun 1edcfe1fa9 - Optimize the heck out of Report drawing.
- A bit of organization, for sanity's sake.
- Many simplifications, cleanups, etc.
2002-09-17 18:29:17 +00:00
Sander van Leeuwen 6b25723cf7 Listview_ProcessLetterKeys: fixed never ending loop when end index is
zero.
2002-09-17 01:30:13 +00:00
Dimitrie O. Paun 31aefe4036 - Reorganization and cleanup of selection code.
- Complete rewrite of focus handling and drawing code.
- Many bugs fixed (including a serious memory corruption).
- Many performance fixes.
- Lots of cleanups, simplifications, etc.
- Documentation updates.
2002-09-16 22:37:40 +00:00
Dimitrie O. Paun 43baa0acd8 - Grand rewrite for {Get,Set,Insert}Item & Co.
- Many bugs fixed.
- Callback items are better supported.
- Improvements in rendering speed.
- Change VOID to void.
- Many code cleanups, and simplifications.
- Documentation updates.
2002-09-16 19:25:41 +00:00
Guy L. Albertelli b9df08216a - Improve LVM_GETITEMRECT values for LVS_ICON style. Now mostly
correct (or at least matches native).
- Handle focused and selected large icon text better.
- Handle internal erase.
- Additional debugging code.
2002-09-13 17:41:32 +00:00
Dimitrie O. Paun 1da4ea287d Fix a bunch of bugs related to scrolling. 2002-09-12 22:26:08 +00:00
Dimitrie O. Paun ee3fdd8038 - Complete rewrite of scrolling code: smaller, faster, cleaner.
We now properly scroll the window, rather than invalidating it on
  every scroll action.
- A bug or two got squashed.
- Many code cleanups, simplifications, etc.
- Some documentation updates.
2002-09-12 18:10:41 +00:00
Dimitrie O. Paun 70b2f44a47 Code cleanups and simplifications, documentation updates. 2002-09-11 00:47:09 +00:00
Dimitrie O. Paun db6c9b0d8e - Pass infoPtr around, instead of hwnd.
- Implement hot cursor.
- Update list of unimplemented messages.
- Simplify the code for editing labels.
- Start working towards more type-safe functions.
- Small code cleanups.
- Some docu updates.
2002-09-09 19:22:19 +00:00
Michael Stefaniuc 025c0b716b Prepare dlls/{comctl32,gdi,msvideo,setupapi,shell32,twain,winmm} for
the conversion of HWND to a void*.
2002-09-06 19:41:17 +00:00
Guy L. Albertelli 027034e221 - Reduce the number of messages being passed to itself by using the
internal routines.
- Fix problem in _SetIconSpacing found by recent change.
- Add initial support for correct icon sizing.
- A few extra traces.
2002-08-29 23:58:42 +00:00
Mike McCormack d1b24defdc Change the icon spacing when setting the image list. 2002-08-27 19:41:56 +00:00
Aric Stewart 86198965ad Windows expects the edit window to hang around and be valid. 2002-08-27 19:36:33 +00:00
Guy L. Albertelli 6737a5926a - Implement LVM_SCROLL and adjust scrolling for all formats.
- Implement standard Comctl32 color handling.
- Eliminate bogus ERR messages for application messages.
2002-07-23 20:54:52 +00:00
Bill Medland b99101230f DeleteColumn should return success even for uOwnerData. 2002-07-16 01:10:26 +00:00
Guy L. Albertelli 073d09a17f - Improve traces.
- Changed default column width to 128 to match native and make that
  the mimimum for LVS_SMALLICON and LVS_LIST styles.
- Corrected max value for LVS_LIST style scroll info.
- Issue our own ShowScrollBar like the native with proper test.
- Correct alignment when using LVS_ICON style.
- Correct FIXMEs for unimplemented styles.
- Correct rect size computation for LVS_LIST.
- Reset scroll bars when changing styles.
- Implement WM_WINDOWPOSCHANGED.
2002-07-10 03:00:22 +00:00
Vincent Béron e35580f4c9 Fixed some various comparisons wrt signedness. 2002-06-21 22:25:17 +00:00
Paul Rupe 21fbb40cb7 Support for LVM_SUBITEMHITTEST; check for out-of-bounds subitem index
in LISTVIEW_GetSubItemRect.
2002-06-10 22:47:41 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Steven Edwards fb2a70463e Fixed snprintf warnings. 2002-05-16 18:31:27 +00:00
Aric Stewart 5679be34d9 Do not invalidate the rect while drawing.
Implemented GetSubItemRect and a quick change to notifications sent
for OwnerData items.
2002-05-14 03:58:46 +00:00
Uwe Bonnes 07a308d606 LISTVIEW_GetColumnT: care for the format of the string.
LISTVIEW_Create: send HDM_SETUNICODEFORMAT message.
2002-04-11 17:31:45 +00:00
Duane Clark b7d819953e Add LVS_NOSORTHEADER support.
Sort column on HDN_ITEMCLICKA too.
Do not edit labels if icon was clicked.
Fix the incorrect icon width in my earlier patch.
2002-03-20 00:53:42 +00:00
Duane Clark b6c28ff62f Add support for report mode text justification. 2002-03-11 05:02:11 +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
Duane Clark ad079d6cbb Ask for correct number of chars in EditLblWndProcT. 2002-02-28 21:42:25 +00:00
Duane Clark bdd77388b9 LISTVIEW_InsertColumnT can be called with a width of
LVSCW_AUTOSIZE_USEHEADER.
Use the correct strings when column autosizing on columns other than
column 0.
LVSCW_AUTOSIZE_USEHEADER uses both item and header strings.
2002-02-28 20:41:39 +00:00
Bill Medland df0f236038 Centre text correctly for the selected item.
Draw complete background for the selected item.
Calculate the size of a large icon more correctly (including multiline
labels).
2002-02-27 01:24:39 +00:00
Gerard Patel 019ae8a22f LVM_GetItemRect should not take text size in account for LVIR_LABEL in
report mode.
2002-02-25 19:00:03 +00:00