Commit Graph

269 Commits

Author SHA1 Message Date
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