Commit Graph

949 Commits

Author SHA1 Message Date
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
György 'Nog' Jeney
748425e999 Abort with error if the app uses our api to subclass and then theirs
then ours again.
2002-10-03 23:01:01 +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
György 'Nog' Jeney
0d3b4906e4 Use the new Subclassing API. 2002-10-02 23:46:20 +00:00
Dimitrie O. Paun
91d41c7fe3 Fancy/optimized EnsureVisible method that eliminates flicker.
Minor cleanups.
2002-10-02 23:45:50 +00:00
György 'Nog' Jeney
f9c011193e Implemented {G|S}etWindowSubClass, DefSubclassProc,
RemoveWindowSubclass.
2002-10-02 20:01:01 +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
Paul Rupe
2fbe9cf2b7 Resize dynamic pointer array more carefully when adding new entries. 2002-09-25 03:19:24 +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
326021bd98 Small cleanups, updated documentation. 2002-09-24 18:26:42 +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
Patrik Stridvall
1a4db3e72a Cleaned up the code so it would be easier to parse with the new C
parser.
2002-09-23 20:45:57 +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
Gyorgy 'Nog' Jeney
c2c03b022d - Unicodeify control.
- use void instead of VOID.
- Pass infoPtr around instead of HWND.
- Implement most of the control.
2002-09-17 18:30:07 +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
Francois Gouget
bba4bb1bc4 Remove references to PCVOID and LPUINT.
Remove types that don't exist on Windows.
2002-09-17 01:35:09 +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
e54fdf2142 - Implement custom draw support.
- Fix thumb drawing.
- Some cleanups, reorganizations, etc.
2002-09-12 22:26:26 +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
0c6dd5b9e0 Greatly improved drawing code: eliminates all flicker, faster, cleaner
tics drawing, better tooltip positioning, code cleanups and
simplifications.
2002-09-12 00:51:29 +00:00
Dimitrie O. Paun
318817f723 - Rewrite the drawing code. It now is much smaller, easier to follow,
and faster. Moreover, it now supports the dwRop operation, and it is
  in good shape to support the missing features.
- Draw the dragged image semi-transparently (will work when we support
  alpha blending).
2002-09-12 00:51:09 +00:00
Dimitrie O. Paun
c1e3cb8d5b - Implement autopaging.
- Remove incorrect FIXMEs.
- Small cleanups.
2002-09-11 00:47:32 +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
Dimitrie O. Paun
856a91b734 - Fix bug in mouse position reading.
- Remove useless code.
- Small code cleanups.
2002-09-09 19:21:30 +00:00
Dimitrie O. Paun
d71749798b - Fix the tics drawing code.
- Fix the selection area calculation & drawing.
- Implement TBS_DOWNISLEFT.
- Make use of fLocation (TBTS_{TOP,LEFT,BUTTOM,RIGHT}).
- Lots of code cleanups and simplifications.
2002-09-09 19:20:35 +00:00
Dimitrie O. Paun
71f99baf22 Add support for the TTM_GETBUBBLESIZE message. 2002-09-09 19:20:05 +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
Dimitrie O. Paun
c514a78167 - Eliminate flicker.
- Much improved thumb dragging.
- Fix tooltip behaviour.
- Fix tick handling.
- Streamlined drawing code.
- Decent paging width.
- Handle OOM gracefully.
- Add proper notifications.
- Fix range setting.
- Start support for custom draw.
- Fix a bunch of bugs.
- Code cleanups.
- Update documentation.
- Spacing fixes.
2002-09-06 18:33:57 +00:00
Dimitrie O. Paun
1c628e06b9 Add generic notification support for the common controls. 2002-09-06 18:33:18 +00:00
Dimitrie O. Paun
d969605b87 - Complete support for rgb{Fg,Bk} in DrawIndirect.
- Rename VOID to void.
- Documentation cleanup.
- Fix ILD_TRANSPARENT handling.
2002-09-06 18:32:46 +00:00
Dimitrie O. Paun
4d1e49dc67 - Fix ImageList_GetIcon to use ImageList_* functions for
completeness.
- Tiny code cleanups.
- Documentation updates.
2002-09-04 23:31:48 +00:00
Dimitrie O. Paun
e4ddd2ac7d - Unicodification (use Unicode functions & types consistently).
- Pass infoPtr around instead of hwnd.
- Proper type-safe signatures for functions processing messages.
- Fix the types for some of the control's parameters.
- Implement [GS]ET_UNICODEFORMAT.
- Few indentation and spacing fixes.
- Tidy up docu.
2002-09-04 23:31:21 +00:00
Dimitrie O. Paun
cb1f1454ff Small updown cleanup. 2002-09-04 18:45:42 +00:00
Dimitrie O. Paun
7ad3d12a52 - implement support for xBitmap and yBitmap in ImageList_DrawIndirect
- small code, docs, and messages cleanups
2002-09-04 18:44:46 +00:00
Steven Edwards
6123951a29 Update some .cvsignore files for building on Windows. 2002-08-30 00:04:03 +00:00
Dimitrie O. Paun
ca13564733 Implement CBES_EX_NOSIZELIMIT style. 2002-08-30 00:02:20 +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
Dimitrie O. Paun
69c9c432e4 - implement CBEN_DRAGBEGIN
- remove useless FIXMEs
2002-08-28 22:21:46 +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
Dimitrie O. Paun
f14b527f40 Implement CBES_EX_PATHWORDBREAKPROC for the ComboEx control. 2002-08-27 18:16:48 +00:00
Jacek Bator
ad0b42a099 Added Polish translations. 2002-08-27 00:35:28 +00:00
Andriy Palamarchuk
a6affaa014 Implemented processing of PSM_SETCURSELID message. 2002-08-26 21:47:06 +00:00
Dimitrie O. Paun
9ff6e77698 - implement CBES_EX_CASESENSITIVE
- fix severe bug in CB_FINDEXACTSTRING
- small cleanups
2002-08-26 21:46:25 +00:00
Dmitry Timoshkov
cc7042f9ec Implement comctl32.417 and shlwapi.299. This avoids crash in IE's
History.
2002-08-16 01:43:11 +00:00
Mike McCormack
5a6a71f39e ImageList_SetImageCount should set nCurImage (the number of
images in the list) to the value specified, and expect that
ImageList_ReplaceImage is called to set the new images.
2002-08-16 01:35:43 +00:00
Alexandre Julliard
473f3de872 Reduce flicker on updates. 2002-08-13 18:08:45 +00:00