Dimitrie O. Paun
17b97eb929
Despite what the docs say, we have to invalidate the list on
...
WM_SETREDRAW(TRUE).
2002-10-28 20:36:16 +00:00
Dimitrie O. Paun
ccc8f7dca9
Eliminate flicker when resizing, docs updates.
2002-10-28 20:35:44 +00:00
Dimitrie O. Paun
19a1c42386
Cleanup, and simplification of UpdateSize.
2002-10-28 20:35:09 +00:00
Dimitrie O. Paun
9a9fcab763
Handle focus item properly in SetItemCount.
2002-10-28 20:34:34 +00:00
Dimitrie O. Paun
f9e70d8b81
Remove only the necessary selections when setting the item count.
2002-10-28 20:34:00 +00:00
Dimitrie O. Paun
28a2f193a3
Rewrite of the SetItemCount: bugs got squashed,
...
LVSICF_{NOSCROLL,NOINVALIDATEALL} implemented.
2002-10-28 20:33:18 +00:00
Andreas Mohr
6e256c72fe
- fix some pselling
...
- enhance some TRACEs
2002-10-25 19:09:02 +00:00
Dimitrie O. Paun
5a11b009f1
Do not invalidate list on WM_SETREDRAW.
...
Update size info even if redrawing is disabled.
Trivial cleanups, and some tracing.
2002-10-25 03:21:25 +00:00
Dimitrie O. Paun
221398344e
We can avoid flicker on column resize only if it's left align.
2002-10-25 03:20:43 +00:00
Dimitrie O. Paun
fa5b29acd3
Always draw the main item in full row select.
2002-10-25 03:20:03 +00:00
Dimitrie O. Paun
f7441d00ed
Use iterators to render over the columns, in report mode.
2002-10-25 03:19:24 +00:00
Dimitrie O. Paun
863d6a87f5
Small iterator-over-range[s] cleanup.
2002-10-25 03:18:47 +00:00
Dimitrie O. Paun
83679e6b88
Eliminate most of the flicker when resizing columns.
...
More debug tracing.
2002-10-25 03:18:07 +00:00
Dimitrie O. Paun
ab97b86902
Fix subitem background color in full row select.
2002-10-25 03:17:36 +00:00
Dimitrie O. Paun
b14c82a8b8
We should callback for inexistent subitems.
...
Do not store callback items for subitems, even if we're asked to.
Small cleanup.
2002-10-25 03:17:04 +00:00
Dimitrie O. Paun
16db256923
Fix crash when computing the item width of a report with no columns.
...
Override custom draw bkgnd color for selection items.
Fill background for all items that have a bkgnd colour.
2002-10-25 03:16:26 +00:00
Dimitrie O. Paun
3520c83275
Keep autoarranging items until one is moved.
2002-10-25 03:15:51 +00:00
Dimitrie O. Paun
01e82f2b27
Abstract autoarranging decision to a helper function.
2002-10-25 03:15:18 +00:00
Dimitrie O. Paun
5b8361463d
Do not do screen work if refreshing is disabled.
...
Reimplement SetRedraw to cope with the changes.
2002-10-25 03:14:44 +00:00
Dimitrie O. Paun
c4e45d7f94
Rewrite the UpdateScroll function: simpler, faster.
...
Add debugging helper for SCROLLINFO.
Fix potential bug in debugging helpers.
2002-10-25 03:14:06 +00:00
Dimitrie O. Paun
89ab25a737
Avoid division by 0 by initializing the item size in on creation.
...
Rename update_icon_size to set_icon_size, fix parameters order.
Assorted cleanups.
2002-10-23 23:32:50 +00:00
Dimitrie O. Paun
b894605987
Fix thinko that slipped in with the prev patch (reenables refresh).
...
Mark a few things that needs looking at.
Small cleanup.
2002-10-23 22:32:25 +00:00
Dimitrie O. Paun
9cdcd44eaa
Do not invalidate the window before the first paint job.
...
Assorted cleanups.
2002-10-23 22:31:47 +00:00
Dimitrie O. Paun
f7051c88ae
Use InvalidateItem instead of explicit InvalidateRect, it is cleaner,
...
and faster when redraw is disabled.
2002-10-23 22:31:13 +00:00
Dimitrie O. Paun
c093196c05
Transform the invalidation macros to proper functions.
2002-10-23 22:30:39 +00:00
Dimitrie O. Paun
bf46fab650
Delay some size computations until after first paint.
2002-10-23 22:29:47 +00:00
Rein Klazes
7d9b04dbe2
Reorganize the item size calculation (a bit simpler, and faster).
2002-10-23 22:28:44 +00:00
Rein Klazes
1fd077939f
Search through all items when LISTVIEW_FindItemW is called with
...
LVFI_PARAM flag.
2002-10-23 22:28:03 +00:00
Dimitrie O. Paun
bf761a331c
Delete the items if we actually own them.
2002-10-23 22:25:42 +00:00
Dimitrie O. Paun
8f15b6e6b3
Do not callback to the parent for lParam when in LVS_OWNERDATA.
...
Docs update.
2002-10-23 22:25:10 +00:00
Michael Stefaniuc
353529b2c8
- fix the "int format, HANDLE arg" type of warnings for comctl32
...
- compile the comctl32 dll with -DSTRICT
2002-10-23 22:19:10 +00:00
Michael Stefaniuc
85e40cf37a
Add casts to compile with -DSTRICT.
2002-10-23 20:58:33 +00:00
Dimitrie O. Paun
5acd96bb4e
Do not crash if callback text is not filled (behave like native).
...
Render report mode from top to bottom (easier on the eye).
Docs updates, type fixes, more traces.
2002-10-23 20:57:13 +00:00
Dimitrie O. Paun
6608328f76
Collect all bugs, missing features, etc in the header doc.
...
Minor cleanups.
2002-10-23 20:56:30 +00:00
Dimitrie O. Paun
9ff0da09ff
Do not autoarrange if we insert/delete from the end of the list.
2002-10-23 20:55:05 +00:00
Dimitrie O. Paun
c5da549d10
Rework SetItemPosition, bunch of bugs squashed in the process.
...
Complete icon alignment rewrite: cleaner, incremental, etc.
Completely avoid aligning all icons on every insert
- icon placement is incrementally computed now: it's fast.
Small cleanups, docs update, etc.
2002-10-23 20:54:23 +00:00
Dimitrie O. Paun
c5e2731939
Rename LISTVIEW_ITEM to ITEM_INFO for consistency.
...
Rename LISTVIEW_SUBITEM to SUBITEM_INFO for same reason.
Fix type in comment spotted by Bobby Bingham.
2002-10-23 20:53:42 +00:00
Patrik Stridvall
cf07e10017
Don't use wine/unicode.h in the header files, include it directly
...
where needed instead.
2002-10-23 20:20:59 +00:00
Dimitrie O. Paun
a87b685350
Do not send uninitialized lParams on notification msgs (found by Rein
...
Klazes <rklazes@xs4all.nl>).
2002-10-21 19:46:46 +00:00
Dimitrie O. Paun
6deae0b86d
Complete rewrite of the rcView implementation.
...
Lots of bugs fixed in rcView computation.
Assorted cleanups, and simplifications.
2002-10-21 19:46:08 +00:00
Dimitrie O. Paun
c9e0133357
Split ranges_destroy in ranges_clear, and ranges_destroy.
...
Rewrite DeleteAllItems, for cleaner, faster, more correct code.
2002-10-21 19:45:29 +00:00
Dimitrie O. Paun
62f4c61d22
Updated header documentation to the latest, and greatest.
2002-10-21 19:44:51 +00:00
Dimitrie O. Paun
06701fb09e
Optimize invalidation on insert.
...
Share the invalidation code between {Delete,Insert}Item.
2002-10-21 19:44:18 +00:00
Dimitrie O. Paun
f18e271bff
Rewrite DeleteItemT: cleaner, a lot faster.
...
Number of bug were fixed.
The minimum possible is redrawn.
2002-10-21 19:43:37 +00:00
Dimitrie O. Paun
c859242ac8
Implement most of LVM_ARRANGE.
...
Make use of it, where it was appropriate.
Use infoPtr->dwStyle directly, in most places.
Assorted cleanups.
2002-10-21 19:43:03 +00:00
Dimitrie O. Paun
56c17651a0
Proper (type wise) return types.
2002-10-21 19:42:30 +00:00
Dimitrie O. Paun
214c721160
Reorganize header notifications.
...
Support notifications that don't have embedded size info.
Invalidate columns on format change (if needed).
Assorted cleanups.
2002-10-21 19:41:56 +00:00
Dimitrie O. Paun
713d0a061f
Crash on internal NULL pointers, don't test all over the place.
2002-10-21 19:41:00 +00:00
Dimitrie O. Paun
e37692bd33
When removing focus, no need to go through all elements.
2002-10-21 19:40:26 +00:00
Dimitrie O. Paun
feb326118f
Fix colors for selected items in full row select mode.
...
Fix bug caused by use of uninitialized state.
2002-10-21 19:39:45 +00:00
Dimitrie O. Paun
7c26e53ac0
Fix computation of subitem box, when invalidating it.
2002-10-21 19:34:38 +00:00
Dimitrie O. Paun
2223014df3
Assert on inconsistent range list states.
...
Various code cleanups, few potential bugs fixed.
2002-10-21 19:33:59 +00:00
Dimitrie O. Paun
074e2b4caa
Do not grow the item list to arbritary index: if requested index is
...
larger than current count, just append.
Miscellaneous cleanups.
2002-10-21 19:33:14 +00:00
Dimitrie O. Paun
be0641face
SetColumnWidth rewrite: simpler, cleaner code. Bugs squashed.
2002-10-21 19:32:38 +00:00
Dimitrie O. Paun
bf965278b5
Handle generic column width changes.
...
Fix bug in SetColumnT which rendered it unusable.
Column code cleanup.
2002-10-21 19:32:07 +00:00
Dimitrie O. Paun
0acaf0e961
Assert on internal invariants, rather than fail gracefully.
2002-10-21 19:31:34 +00:00
Dimitrie O. Paun
88c26b9c01
More docs compliant alignment handling for subitems.
2002-10-21 19:31:01 +00:00
Dimitrie O. Paun
0def1dd4e4
Do not create a range list for an empty range.
2002-10-19 19:26:17 +00:00
Dimitrie O. Paun
0613b7212a
Store the entire format bitmap in the column info.
...
Rewrite GetColumnT to take advantage of that.
Related cleanups, and simplifications.
2002-10-19 19:25:41 +00:00
Dimitrie O. Paun
569de03864
Column zero has the image enabled always, irrespective of format.
2002-10-19 19:25:01 +00:00
Dimitrie O. Paun
231e9ef25b
Unify {Insert,Set}ColumnT as much as possible.
...
Fix a bunch of problems in SetColumnT.
2002-10-19 19:24:24 +00:00
Dimitrie O. Paun
3893cb7fb2
Fix function header documentation.
2002-10-19 19:23:31 +00:00
Dimitrie O. Paun
e877b77a9d
Better report mode.
...
Use the new column information to simplify, and speed up the code.
Enable support for images in subitems (in LVS_REPORT mode).
2002-10-19 19:20:35 +00:00
Dimitrie O. Paun
0dbab63fa6
When deleting an item, remove selection, don't add it!
2002-10-19 00:59:34 +00:00
Dimitrie O. Paun
0ba3dc7589
More traces to help us make sense of the output.
...
Faster, cleaner ranges_{add,del}.
2002-10-19 00:21:02 +00:00
Dimitrie O. Paun
c79eb2de5f
Fix ranges insertion bug (specify DPAS_SORTED when searching).
...
Add a lot of assert-ed consistency checks.
Add bunch of trace messages.
2002-10-19 00:20:21 +00:00
Dimitrie O. Paun
a2dd8ecc33
Inspect style bits independently on style change.
2002-10-19 00:19:28 +00:00
Dimitrie O. Paun
b50692ee82
Rewrite StyleChanged procedure
...
o some bugs have been fixed
o cleaner, simpler code
Fix some corner case, icon size computation bugs.
Assorted docs updates.
2002-10-19 00:18:48 +00:00
Dimitrie O. Paun
323f9c23f0
Keep track of per-column information inside the listview.
...
Cache header rectangles.
Used the cached info instead of calling to the header each time.
Update the listview as we track column width changes.
Unify column handling between {Insert,Delete}Column, and width
changes.
Simplify RefreshReport, by using the new column info.
2002-10-19 00:18:11 +00:00
Dimitrie O. Paun
a72e9f617e
Do not query items that are just being inserted.
2002-10-19 00:17:24 +00:00
Dimitrie O. Paun
f8f559fa3c
Reorganize things a bit so that we no longer need the 'valid' flag on
...
each item.
Small comments update.
2002-10-19 00:16:37 +00:00
Dimitrie O. Paun
c18c7332b8
Instrument SetItemT to change only _one_ item at a time. That is, if
...
we have to change focus, we call it recursively to first remove the
focus from the item that has it. This allows simpler, and more correct
invalidation handling.
2002-10-17 21:55:41 +00:00
Dimitrie O. Paun
8f38417376
Unify set_{owner,main}_item functions.
...
Fix {old,new}state and lParam reporting in LVN_ITEMCHANG{ING,ED}.
Fix sanity check conditions for LVS_OWNERDATA.
2002-10-17 21:54:57 +00:00
Dimitrie O. Paun
96dca36cc8
More, better tracing to help nail down some crashes.
...
Fix typo in GetItemT (found, and fixed by Huw Davies).
Exit right away from GetItemT if nothing is asked (mask == 0).
Assorted code cleanups.
2002-10-17 21:53:56 +00:00
Dimitrie O. Paun
305fb4c3dd
Deal with sparsely populated listviews.
...
Crash on internal corruption.
2002-10-17 21:38:21 +00:00
Dimitrie O. Paun
ef4a6fc7e5
Add ability to create an iterator over a range list.
...
Fix memory leak when destroying ranges.
Add function that will to a 'deep' clone of a range list.
Add function that will subtract a range list from another.
Do not crash on NULL ranges (similar in spirit to HDPAs).
Fancy deselection routines uses the above infrastructure to deselect
the minimum possible.
Modify SetGroupSelection to take advantage of all this new
infrastructure, to avoid flicker on selection extension.
2002-10-17 21:37:24 +00:00
Dimitrie O. Paun
fa81ec674b
Change the definition of ranges to exclude the upper bound.
2002-10-17 21:36:29 +00:00
Dimitrie O. Paun
bac35001fe
Handle range tracing in a consistent fashion.
2002-10-17 21:35:47 +00:00
Dimitrie O. Paun
58b2ad925b
Remove dated comments.
2002-10-17 21:35:08 +00:00
Dimitrie O. Paun
66dd824dbc
Better encapsulation of the ranges concept.
2002-10-17 21:34:15 +00:00
Dimitrie O. Paun
be8189bd9c
Notification code cleanup, more traces, etc.
2002-10-17 01:20:18 +00:00
Dimitrie O. Paun
89eb8fdba3
We need to provide focus info always in ICON mode (spotted by Huw
...
Davies).
2002-10-16 19:57:31 +00:00
Mike McCormack
bcfffe7b08
Duplicate selected items list in LISTVIEW_RemoveAllSelections to
...
prevent infinite loops.
2002-10-16 19:56:06 +00:00
Dimitrie O. Paun
3dd4dabffb
Remember the global colors in custom draw mode.
2002-10-16 19:05:43 +00:00
Dimitrie O. Paun
ef9adbb6f5
Compute only the old state that we're gonna look at.
2002-10-16 19:05:02 +00:00
Dimitrie O. Paun
8d2f7224f1
Instrument SetItemT to avoid repainting if nothing changed.
...
Teach RemoveAllSelections to skip an item, so we can eliminate the
flicker when we click on a selected item.
2002-10-16 19:04:07 +00:00
Dimitrie O. Paun
3c9591b413
Fix bug in edit label when sending the text to the app.
...
Cleanup the handling of nEditLabelItem.
2002-10-16 19:03:25 +00:00
Dimitrie O. Paun
07a6a3975a
Edit label cleanup.
2002-10-16 19:02:32 +00:00
Dimitrie O. Paun
6b4a11af0a
Fix bug in ranges_shift which was corrupting selections.
...
Fix click notification (found and fixed by Alexandre Julliard).
Fix bug in setting item's state (some selection changes were lost).
Simplify selection code substantially.
Add a lot of debug tracing.
2002-10-16 19:01:38 +00:00
Dimitrie O. Paun
db14dbf12b
Fix iterator creation for LVS_LIST mode.
...
Do not update the infoPtr->nItemWidth in set_main_item.
Better handling of text bk colour in custom draw.
Rename GetItemListOrigin to GetItemOrigin.
A bunch of code cleanups, simplifications, etc.
2002-10-15 21:08:09 +00:00
Dimitrie O. Paun
17dce17a58
No longer compute the ill-defined bounds in GetItemMetrics.
...
Fix a bunch of bug in subitem metrics computation.
Properly implement GetSubItemRect in terms of GetItemMetrics.
Documentation updates, and code cleanups.
2002-10-15 21:07:01 +00:00
Dimitrie O. Paun
3a5105c957
Teach GetItemMetrics to deal with subitems in report mode as well.
...
Unify Draw{,Sub}Item, simplify RefreshReport.
2002-10-15 21:06:14 +00:00
Dimitrie O. Paun
f378bbd5a5
Fix iterator creation for LVS_LIST mode.
...
Use assert() instead of hand-made hack.
2002-10-15 21:05:29 +00:00
Dimitrie O. Paun
3baa344a43
Fix iterators to properly deal with LVS_{,SMALL}ICON modes.
...
Unify the Refresh{List,Icon} functions.
Simplify HitTest to make full use of the iterators.
Fix selection bounds in HitTest.
Avoid empty default to silence warning in gcc 3.2.
2002-10-15 21:03:10 +00:00
Dimitrie O. Paun
50b4688c7e
Iterator updates:
...
Add the notion of a special item which sits at the start of the
list.
Add the ability to iterate in both directions through the list.
Document the iterator interface.
Remove iterator_visibleitems.
Rename iterator_clippeditems to iterator_visibleitems for
consistency.
Use the new bidirectionality to paint the items in decreasing order.
2002-10-15 21:01:57 +00:00
Dimitrie O. Paun
00ea0868ba
Rename GetItemHeight to CalculateMaxHeight, for consistency
...
Fix usage of nItemWidth vs. iconSpacing.cx
Misc cleanups.
2002-10-11 23:34:32 +00:00
Dimitrie O. Paun
a1ca0122b9
Use the item box rather than the bounds when invalidating.
...
Implement 'bPartial' in EnsureVisible.
2002-10-11 23:33:25 +00:00
Dimitrie O. Paun
ed29ffdea4
Unify DrawLargeItem with DrawItem.
2002-10-11 18:47:03 +00:00
Dimitrie O. Paun
0b93d5c4c5
Use GetItemMetrics instead of GetItemMeasures.
...
Remove GetItemMeasures.
Add GetItemBox which only returns the boundary of the item.
2002-10-11 18:46:21 +00:00
Dimitrie O. Paun
ac756afcc2
Be real tough on internal programming errors.
2002-10-11 18:00:28 +00:00
Dimitrie O. Paun
dda1e31ce7
Remove support for owner drawn listviews in non-REPORT mode. We need
...
to do this since Windows supports owner draw *only* in report mode,
and hence apps are not prepared to handle drawing in other modes.
2002-10-11 17:59:39 +00:00
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
Bill Medland
d10c9a47b8
Implement multiline labels in the Large Item view by using DrawText
...
Note that this now highlights weaknesses in the label measuring code
etc. which cannot correctly handle multiline labels.
2002-02-22 21:23:02 +00:00
Ondrej Macek
13f1fb23fe
Fix of ListView invalidation in LISTVIEW_SetBkColor.
2002-02-19 18:32:12 +00:00
Guy L. Albertelli
8961f1624e
Correct tests involved with processing the LVIF_DI_SETITEM flag.
2002-02-12 18:42:25 +00:00
Alexandre Julliard
7904acf1bd
Authors: Guy L. Albertelli <galberte@neo.lrun.com>, Aric Stewart <aric@codeweavers.com>, Dmitry Timoshkov <dmitry@codeweavers.com>
...
Misc fixes:
- cache text metrics for the font we're using
- improved item hit detection
- more debugging output
- implement LVM_SETICONSPACING
- lots of bugs squashed
2002-02-05 18:13:57 +00:00
Dimitrie O. Paun
d15ed230a8
Complete Listview Unicodification.
...
Simplify the setting of (sub)item text by using common code.
2002-02-04 18:44:16 +00:00
Huw D M Davies
83ff80b295
Flip A<->W conversion in dispinfo_notifyT.
2002-02-02 17:57:00 +00:00
Gerard Patel
776cb279f2
Don't repaint header when scrolling a listview vertically.
2002-01-31 20:38:25 +00:00
Gerard Patel
815997ffe0
Fix problems with listview notification.
2002-01-29 17:51:00 +00:00
Dimitrie O. Paun
6d694d8ed6
Simplify and fix listview ellipsification of large text labels.
2002-01-29 16:50:40 +00:00
Gerard Patel
3dbbb0b297
Avoid converting nonexistent text from A->W.
2002-01-29 03:08:24 +00:00
Dimitrie O. Paun
9e99d2b763
- Make the ListView control Unicode ready.
...
- Support both ANSI & Unicode ListView notifications.
- Fixed a few bugs.
2002-01-18 19:05:35 +00:00
Gerard Patel
a02f3de89e
Rect returned by LISTVIEW_GetItemRect should be total size in report
...
mode.
2001-08-21 17:04:02 +00:00
Guy L. Albertelli
b0327f2b40
Remember response from LVN_GETDISPINFO if user sets LVIF_DI_SETITEM.
2001-07-02 01:20:28 +00:00
Francois Gouget
e76218dd61
Add '\n' at the end of traces.
2001-05-09 17:31:31 +00:00
James Hatheway
f3c93b805b
Eliminate unitialized garbage being returned from LISTVIEW_GetItemA.
2001-04-18 17:40:04 +00:00
Francois Gouget
dd30c5c282
GetItemSpacing(true): Return the default item spacing if the view is
...
LVS_ICON, and the current 'item size' otherwise.
2001-04-16 19:04:12 +00:00
Rein Klazes
4d7e26f9a2
Fixed scrolling of listview with a mouse wheel.
2001-04-04 18:25:46 +00:00
Francois Gouget
d6f5ed273d
Update nSelectionMark and nFocusedItem when inserting/deleting/sorting
...
items.
SortItems: If sorting less than 2 items, do nothing.
2001-03-05 22:11:17 +00:00
Francois Gouget
f45d56912a
In LISTVIEW_AddGroupSelection and LISTVIEW_SetGroupSelection, if no
...
selection mark has been set, just select the current item.
In LISTVIEW_SetGroupSelection we must also set the selection mark in
that case (and only in that case).
Removed a naughty ';' (spotted by Eric Pouech).
2001-03-04 01:04:35 +00:00
Francois Gouget
282f7270c1
Small 'typos in comments' fixes.
2001-02-28 05:31:02 +00:00
James Hatheway
7fdceb2217
Update selection after sorting (in LISTVIEW_SortItems) by making sure
...
selection list matches states of individual items.
2001-02-16 19:39:14 +00:00
James Hatheway
a2c2a83f8e
Send LVN_DELETEITEM notification first, to avoid crashes if the app
...
requests LVIF_PARAM with LISTVIEW_GetItem() during its LVN_DELETEITEM
message handler.
2001-02-15 21:24:43 +00:00
François Gouget
4684ab1c12
ListView_GetItemRect already sets rc.left.
2001-02-14 21:42:24 +00:00
François Gouget
1afa24aeac
Fix (rewrite), and add documentation to LISTVIEW_ProcessLetterKeys.
...
Lowered the key repetition delay (Aric).
2001-02-12 18:07:43 +00:00
Chris Morgan
d62dd82efb
Fix ListView_GetItemRect() macro.
...
Fix use of ListView_GetItemRect() macro in listview control.
Add some documentation to LISTVIEW_GetItemRect().
2001-02-12 03:46:00 +00:00
Gerard Patel
c0ca077f0b
Misc fixes in LISTVIEW_SetImageList, LISTVIEW_SetItemCount,
...
LISTVIEW_UpdateSize.
2001-01-22 19:27:43 +00:00
Ulrich Czekalla
0255c8f0df
Only adjust item rect by horizontal scrollbar offset in report view.
2001-01-17 01:48:14 +00:00
François Gouget
bde6ae0c19
Test for NULL and LPSTR_TEXTCALLBACK before using lpColumn->pszText.
2001-01-09 21:50:27 +00:00
Ulrich Czekalla
e5786e3be6
Adjust item rects by horizontal scrollbar offset.
2001-01-09 20:49:38 +00:00
Aric Stewart
147bc6d21b
Ownerdata listviews were not clearing previously selected items when a
...
new item is set as selected using SetItem and the listview has
LVIS_SINGLESEL.
2000-11-29 00:00:11 +00:00
Aric Stewart
b1eb301477
Implemented VK_PRIOR and VK_NEXT processing (merged from Corel tree).
2000-11-08 04:30:16 +00:00
Aric Stewart
d41c9a3da4
Implemented the RedrawItems message for a listview.
2000-11-07 20:28:11 +00:00
Alexandre Julliard
908464d448
Authors: Andreas Mohr <amohr@codeweavers.com>, Dimitrie O. Paun <dimi@cs.toronto.edu>, Patrik Stridvall <ps@leissner.se>
...
Various warning fixes.
2000-11-01 03:11:12 +00:00
Francois Gouget
7203ee6623
Use PS_ALTERNATE rather than PS_DOT.
...
Use Rectangle to draw focus rectangles.
2000-10-31 02:05:11 +00:00
Aric Stewart
4de47040fd
Fixed cancels editing of a listview label if the listview is
...
scrolled.
2000-10-31 01:35:50 +00:00
Marcus Meissner
61ef06042e
Do not set the iSubItem part of the struct for LVM_HITTEST,
...
applications only need to pass memory space up to iItem.
2000-10-22 23:47:49 +00:00
James Hatheway
af7f901c9c
Fix messages sent when right-clicking in a blank (non-item) area of a
...
listview.
2000-10-19 22:28:06 +00:00
Chris Morgan
89d4472d46
Recalculate nItemHeight when LVS_SETIMAGELIST is called. Fixes icons
...
being chopped off in the file dialog window. Align items to top and
refresh after sorting, as windows does.
2000-10-19 20:22:09 +00:00
Chris Morgan
da610897e4
Implement LVM_SETITEMPOSITION32.
2000-10-17 00:30:39 +00:00
Andreas Mohr
1563abe8ec
- stupid spelling fixes
...
- some more loadorder array work
2000-10-13 20:26:52 +00:00
Stephane Lussier
907a1e615b
Subitems of listviews were not painted with the right background when:
...
-LVS_EX_FULLROWSELECT style is defined
-item is selected
-Listview doesn't have the focus.
2000-10-13 17:05:17 +00:00
Stephane Lussier
163830c569
- Background should not be drawn if the background color is CLR_NONE.
...
- Don't change the size to 0 for the header control of listview with
LVS_NOCOLUMNHEADER style. In fact just setting HDS_HIDDEN to the
header control is enough.
2000-10-12 23:07:41 +00:00
Aric Stewart
e127a28166
Corrected some segvs that occur with ownerdata listviews.
2000-10-12 20:39:59 +00:00
Chris Morgan
fca20f6553
Paint background before drawing item and subitems. Paint any area of
...
the control not occupied by items. Early out of LISTVIEW_RefreshXXX
if no items exist. InvalidateRect() on LBUTTONDOWN only if the control
has items to draw.
2000-09-22 22:45:30 +00:00
Aric Stewart
dc2ffbe0cd
Correct some situations with listview selections. Specifically fixed
...
situations where in an OWNERDATA listview the selection ranges become
invalid if the number of items is changed. Additional fixes a few
problems resulting in loops in RemoveAllSelections.
2000-09-22 22:00:01 +00:00
Stephane Lussier
c5e86a2c19
Notification NM_CLICK, NM_RCLICK and NM_DBLCLK sent by the listview
...
should set lParam to a NMLISTVIEW instead of a NMHDR. According to
MSDN doc, it is like that since version 4.71, Wine is returning 5.0 as
the DLL version.
2000-09-19 02:38:45 +00:00
Stephane Lussier
3872d0a218
Sorting items in a listview using LVW_SORTITEMS is only sorting the items
...
and not the subitems. This patch fix this issue. I've remove the temporary
Sortlist, it was not necessary to create another list, and it was buggy.
2000-09-18 01:39:27 +00:00
Stephane Lussier
88968b89cb
Allow having a transparent background text color for the listview.
2000-09-16 20:45:09 +00:00
Chris Morgan
2a6c1e498c
Hide the vertical scrollbar when listview style is LVS_LIST.
2000-09-12 23:37:19 +00:00