History log of /haiku/src/kits/interface/ListView.cpp
Revision Date Author Comments
# e5d0c909 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

BView: Add a B_SCROLL_VIEW_AWARE flag.

* This indicates the view will manage whatever scrollbars are targeted
to it.
* Use _B_RESERVED7_ for this. It's been RESERVED since BeOS R5
(I guess it was probably something on some older BeOS version?)
and we don't really care about BeOS R4 ABI compatibility, so
that should be fine.
* Update BScrollView to not touch BScrollBar range/proportion
when the target view has this set.
* Update BListView to set this flag, always.

Fixes #14871.

Change-Id: I17027f3b63ef28da1e735c5393593496c415dce3
Reviewed-on: https://review.haiku-os.org/c/998
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 78b0cfc7 30-Oct-2018 Alexander G. M. Smith <agmsmith@ncf.ca>

Remove debug printf from BListView.

Change-Id: Ic3f3359305e066c27bfb071cc18a455d6f1c179f
Reviewed-on: https://review.haiku-os.org/648
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# d8d6c655 19-Jul-2018 David Murphy <murphman@gmail.com>

BListView: Restore selection to MouseDown and fix multi-select drag'n'drop

* Moves list item selection logic back to MouseDown from MouseUp to improve
application compatibility and responsiveness
* Fixes multi-select drag and drop by not modifying the existing
selection if a MouseDown event is on a selected item.

Fixes #9190, #14264, #14289
Change-Id: I58050b403dac985f98e03faa72de1ebc5d24f95b


# e2d19ae5 04-Jul-2018 John Scipione <jscipione@gmail.com>

BListView: do not modify selection on MouseUp if drag & drop

bug seems to have been introduced only recently in hrev52062


# f5face41 02-Jul-2018 David Murphy <murphman@gmail.com>

BListView: Fix drag n' drop in multi-select mode

Move list selection logic into MouseUp instead of MouseDown
Change-Id: I4e7c7f6636dabce130578777b5e1203d6695499a
Fixes #9190


# 346d1496 05-Nov-2017 Humdinger <humdingerb@gmail.com>

Properly terminate property_info lists

BListView's property_info list lacked termination, resulting in
garbage output at the and of 'hey getsuites'.

Use { 0 } everywhere for sake of consistency.

Thanks to waddlesplash for spotting the bug an providing the easy fix.


# 34ac7f7a 08-Apr-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BListView: manage horizontal scrollbar

BListView automatically sets the vertical scrollbar range already. Do
the same for the horizontal scrollbar.

Also fix BOutlineListView to compute the preferred size taking into
account the items outline levels (it needs a little more space).

This fixes the horizontal scrollbars in Locale preferences, second part
of #6747.


# 4ee47fe9 25-Dec-2016 Rene Gollent <rene@gollent.com>

BListView: Cleanup, no functional change.

- Rename _FontChanged() to _UpdateItems() to more accurately reflect its
purpose, as discussed on commits list. Adjust callers accordingly.


# 078b08e4 20-Dec-2016 Rene Gollent <rene@gollent.com>

BListView: Fix missing update for list items.

- According to the Be Book, one of BListItem::Update()'s responsibilities
is updating the item's internal height/width. However, while we were
providing such updates in the case of the item initially being added
to the view, or when the list view's font was changed, we were not doing
so on frame resize. This would lead to items having a stale width field
in such a circumstance, leading to possibly incorrect behavior in apps
relying on that field to be correct.


# 134ed614 26-Oct-2016 John Scipione <jscipione@gmail.com>

ListView: Fix off-by-1 bug introduced in hrev50574

7687a6ef13359dbac63eaae0b40cb6875873ea71

jgt^He

Fixes #12990 more better

Thanks Humdinger for noticing this bug and reporting it.


# 7687a6ef 29-Aug-2016 John Scipione <jscipione@gmail.com>

ListView: Don't change selection while dragging

This allows you to drag and drop list items more easily, but,
removes the ability to drag and drop color squares in Appearance from
one list item to another. Changing selected list items while dragging
was more of a helpful side-effect for Appearance but isless reasonable
default behavior.

Fixes #12990
Partially regression on #8618


# 2446f53b 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Impliment autoscroll

BeOS had a feature where you could click on a list and while holding
down the mouse button scroll through the list items selecting them
as you went. I implemented the same feature on Haiku.

Did the work in separate thread which makes sure that the mouse
is held down the whole time even if you leave the view.

Thanks Diver for bringing this feature to my attention.


# a98f98b7 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: check message not NULL, grab buttons and modifiers


# ccd7f24f 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Initialize all fTrack params to default


# dc6233fc 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Check index non-negative, not only not -1


# e10ca8cd 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Use std::max() and std::min()

... in place of max_c() and min_c() respectively.


# 9dfd244e 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Style fixes

* Rename kDoubleClickTresh to kDoubleClickThreshold
and use floating point in rval
* Pointer (*) goes with type for property var
* Use {}'s for multi-line if conditional
* rename point to where (consistent with header and rest of IK)
* Explicitly compare with 0 for bitwise operator statements
* Rename InitiateDrag() params


# 7a96554c 09-Dec-2015 looncraz <looncraz@looncraz.net>

kits/interface: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0003-0017 from looncraz, unmodified.


# 94d14479 11-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

ListView: computate disabled color only for disabled items.


# 265f2996 11-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

ListView: move the color setting code to DrawItem

... so it can also be used by OutlineListView.

Fixes #11598.


# cbb8ebbb 10-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

Set item colors in BListView instead of BStringItem

* Fixes #3970 without introducing the bugs from BeOS
* Makes it easy to override BStringItem just to change the text color.
* Makes it easy to implement custom list items using the correct colors.


# 1f424632 11-Jun-2014 John Scipione <jscipione@gmail.com>

Style fixes to IK, focus on docs


# 63632ee1 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: Skip disabled items via keys

Update B_UP_ARROW, B_DOWN_ARROW, B_HOME, and B_END
in KeyDown() to skip over disabled items.


# c6c5cd99 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: Only select enabled items

when selecting multiple items in a multi-select list view.


# b38f03f5 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: small optimization.

We already got item at index, don’t get it again


# d0931012 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: style fixes


# 1c38517e 15-Sep-2013 Siarzhuk Zharski <zharik@gmx.li>

ListView: More safe ScrollToSelection implementation

The Problem was observed in the Time Preferences Zone view - the
selection was set inside of TimeZoneView::DoLayout() call on
the OutlineListView control that had zero-sized Bounds. After
the control was resized the selection stay mainly hidden "under"
the upper edge. The Problem looks like generic so should be fixed
in the interface kit code. Proposed fix introduces additional check
for the scroll position to not cross the top edge of control.


# 81cdbc6a 15-Sep-2013 Siarzhuk Zharski <zharik@gmx.li>

ListView: More safe ScrollToSelection implementation

The Problem was observed in the Time Preferences Zone view - the
selection was set inside of TimeZoneView::DoLayout() call on
the OutlineListView control that had zero-sized Bounds. After
the control was resized the selection stay mainly hidden "under"
the upper edge. The Problem looks like generic so should be fixed
in the interface kit code. Proposed fix introduces additional check
for the scroll position to not cross the top edge of control.


# 926535ab 25-Apr-2013 John Scipione <jscipione@gmail.com>

Style update to BListView.

Mostly rename msg argument of MessageReceived to message. Also a couple
of pointer style fixes.


# 429ae1b1 09-Apr-2013 John Scipione <jscipione@gmail.com>

A few more style fixes to ListView and ColorSet, thanks Axel


# d45ea792 08-Apr-2013 John Scipione <jscipione@gmail.com>

One more style fix that I missed


# 63f3755c 08-Apr-2013 John Scipione <jscipione@gmail.com>

Many style fixes to ListView


# 29ceb649 08-Apr-2013 John Scipione <jscipione@gmail.com>

Style fixes to ListView


# d45cd469 18-Dec-2012 Janus <janus2@ymail.com>

Fix #9302. The selection is calculated properly after a list insertion (AddList with index)

Signed-off-by: Jerome Duval <jerome.duval@gmail.com>


# 91c78f09 20-Aug-2012 John Scipione <jscipione@gmail.com>

Create and use new list view item colors

* B_LIST_BACKGROUND_COLOR
* B_LIST_SELECTED_BACKGROUND_COLOR
* B_LIST_ITEM_TEXT_COLOR
* B_LIST_SELECTED_ITEM_TEXT_COLOR


# 3fed1a15 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Get app_server working on x86_64.

With this commit, app_server now compiles and runs at boot! Nothing
particularly interesting happens, just the blue background and a mouse
pointer. Remote backends are broken and not compiled in, see #8834.
Note that it won't be possible to build this quite yet, need to get
the FreeType package uploaded.


# eee4243d 20-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.


# 2a55b919 12-Jun-2011 Rene Gollent <anevilyak@gmail.com>

Revert r42120.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42121 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b52c7c59 11-Jun-2011 Rene Gollent <anevilyak@gmail.com>

Remove unnecessary calculations from BListView::ScrollToSelection(). At least I
see no useful purpose to the distinction made here.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42120 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a40ec7c5 08-May-2010 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Revert my changes to BListView for now

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36758 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2e16032 08-May-2010 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Revert MinSize() and PreferredSize() to the normal BView variants, since unlike the comment says GetPreferredSize() actually looks at the content of the listview to determine the size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36756 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4a439b4 21-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Fix several problems in BListView:
- SwapItems() did not correctly swap the item tops of the two items being swapped. This would result in quite broken/confusing behavior due to the view having the wrong idea of their current position.
- SwapItems() also did not pass the correct range to _RescanSelection(). This could result in the selection range getting quite confused when swapping items.
- _RescanSelection() did not always correctly reset fLastSelection, though this mostly only would've resulted in unnecessary but harmless work.

Fixes ticket #4253 and possibly some others.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e74e04d6 12-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Added TODO note about making sure that B_FRAWE_EVENTS is part of the flags
as soon as a scroll view is controlling the list view. Otherwise scroll bars
are not updated if FrameEvents() is not called. I can imagine problems, though,
if an application did not set B_FRAWE_EVENTS on purpose and is controlling
the scroll bars itself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35035 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09749e95 18-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a BWindow::InViewTransaction() that determines whether or not the
window is currently updating its drawings as suggested by Stippi.
* Add this method to decide whether to call _FontChanged() in
BListView::SetFont().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# faf42dfe 13-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Disabled calling _FontChanged() on SetFont() - since any item can temporarily
change the font in its DrawItem() method, this is not the way to go.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34023 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a5897b7 26-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

* Updated indentation style
* Better grouping of methods
* Fixed copyright
+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32700 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 44145c74 03-Aug-2009 Oliver Tappe <zooey@hirschkaefer.de>

Fixed two more peculiarities in ListView:
* when items are removed, the anchor may need adjustment (fixes the problem
in Beam reported by Stippi)
* the check for needed adjustment of fLastSelected in _Select(from, to, extend)
was broken, as it needs to be independent of fFirstSelected - this fixes
broken navigation after doing a select-all

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fe39401 03-Aug-2009 Oliver Tappe <zooey@hirschkaefer.de>

small cleanup in ListView:
* avoid setting fAnchorIndex multiple times in certain situations

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32090 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51ab53a6 31-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Fix some regressions in keyboard shift selection behavior introduced by the last set of changes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c08c945f 30-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

Two more changes to BListView:
* fixed handling of B_HOME and B_END in extend mode for multiselection, such that
now all the items inbetween the anchor and the final target are selected, too
* made sure that the anchor always gets adjusted in _Select(), as otherwise
navigation via cursor keys could get "locked".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31980 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81bbdfe9 30-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

Fixed two problems in BListView:
* fixed recent regression with respect to navigating via cursor keys
* unified (and thus partly corrected) computation of whether or not we're in
extend mode in KeyDown(), fixing the handling of unmodified B_HOME and B_END
in multiselection mode


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31975 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 49056337 28-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Fix another omitted instance of anchor updating.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31891 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7155254d 28-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Fix several instances of the anchor index not being properly tracked. When shift-selecting via keyboard, rely on the anchor to know where to shift the selection towards. Fixes rest of ticket #4120.




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31890 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e80a60b5 28-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Only react to B_SELECT_ALL when in multiple selection mode. Fixes part of ticket #4120.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31889 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01206002 20-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Added NOTE to BListView destructor about not freeing the items.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31136 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97970c5c 17-May-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied a changed patch by Romain that fixes the non-working double click in
BListView. This fixes bug #3919. Got rid of the _TryInitiateDrag() method,
and let MouseMoved() do it all.
* Style cleanup of the header, automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30782 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91ad692e 09-May-2009 Philippe Saint-Pierre <stpere@gmail.com>

Make ScrollToSelection() use "Contains" rather than an "Intersects" to determine if it should scroll.

This make the end key work (trigger the scroll) if the last item is overlapping the bottom boundary.

This fixes bug #1820.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30689 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc2c8b88 13-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd0e375f 13-Apr-2009 Rene Gollent <anevilyak@gmail.com>

Fix build break I introduced in previous commit. Add some extra behavior for OutlineListView's right arrow: if the item has children and is expanded, right arrow now jumps to the first child.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30150 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86656c6b 13-Apr-2009 Rene Gollent <anevilyak@gmail.com>

When checking double click with jitter threshold, make sure that both clicks are also on the same list item. Thanks stippi for pointing out this oversight!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b110c14 12-Apr-2009 Rene Gollent <anevilyak@gmail.com>

Modify double click check to allow some fuzz in the pointer placement, as is done in Tracker. BTextView likely needs a similar adjustment.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11c511b9 11-Apr-2009 Rene Gollent <anevilyak@gmail.com>

Make BListView's doubleclick handling a bit more sane. Should fix ticket #3724.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30131 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb09230 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a7c906 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Position-based binary searching can only be used if the view has been attached
to a window already. If not, we fall back to using the BList-based search.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e0a1b40 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Temporarily revert that last change since it breaks the IM Kit's preflet for reasons I don't yet understand. Investigating.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 128cb2f6 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Minor optimization: since our list items cache their position information,
take advantage of this fact to make use of binary search in
IndexOf(BListItem *), rather than using BList's linear search.
Also use this mechanism to speed up HasItem(BListItem *).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6826c30a 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

When an item is added to the list, we must immediately set its top,
otherwise if it tries to make use of any positional information in the
subsequent call to Update() (i.e. calls to ItemFrame(), or Top(), it will
get back bogus coordinates. This should correctly fix the problems seen with
Themes, possibly amongst others.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28692 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa6cd8ad 16-Nov-2008 Stephan Aßmus <superstippi@gmx.de>

* The previous change to reorder item->Update() and _RecalcItemTops() obviously
broke everything. If the added item has no chance to calculate it's height,
_RecalcItemTops() won't work of course. Whatever this was supposed to fix,
there has to be a correct way.
* Override BView::SetFont() to update all the items. I remember wanting to
implement this, that's why I refactored a _FontChanged() method, but I
obviousy never did...
* Moved the AttachedToWindow() and FrameMoved() implementations to a more
logical position in the file.
* Implement B_PAGE_UP/DOWN key presses. Don't know if that's what the BeOS
implementation did, will check later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c02466e6 09-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Alter the order in which we updated our cached items. This fixes things like mmu_man's Themes app which has somewhat unusual list items that embed BViews.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28580 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 39fbf550 15-Oct-2008 Oliver Tappe <zooey@hirschkaefer.de>

bonefish + zooey:
* Fixed a general problem with respect to overriding of the reserved
virtual function slots: instead of statically invoking the method
that corresponds to the reserved slot on the class that contains the
slot, we now invoke the virtual Perform() method. Perform() then dispatches
the method invocation to the "proper" class, i.e. the highest class in the
hierarchy that actually implements the requested method.
This fixes a crash in apps that use liblayout's MSlider class and
should fix one or other spurious bug with old apps or libraries, too.
* added new header folder 'binary_compatibility' that contains files that
define the method codes and data structures required by Perform()
* looked for and implemented all used reserved virtual slot functions to
invoke Perform() where necessary or to pass on the method call statically
(for slots that were already maintained by Be)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28124 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 20ab5edb 04-Sep-2008 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

* In BeOS R5 BListItem::DrawItem frame.left is always 0 regardless of BListView origin or update rectangle. This fixes the horizontal scrolling bug in FlattenPictureTest application.
* When the list is scrolled horizontally ScrollToSelection() resets the origin x-coordinate to 0. When using the keyboard to move to the next or previous item this is not desired. Now the x-coordinate is not changed from its old value anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5aa001b4 19-Aug-2008 Alexandre Deckner <alex@zappotek.com>

- Switch BListView selection modifiers as was done for Tracker in my previous commit. It now
even conforms to the bebook! BOutlineListView needs no special change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd6265ec 06-Jul-2008 Karsten Heimrich <host.haiku@gmx.de>

* don't leak fTrack
* fixed broken while loop
* call _InitObject also from the archive constructor
* just noticed while trying to load the R5 epson printer driver, still not working...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f589ec02 06-Jul-2008 Karsten Heimrich <host.haiku@gmx.de>

* remove whitespaces, no functional change



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26274 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f8e472b 27-Feb-2008 Rene Gollent <anevilyak@gmail.com>

Minor optimization.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43948ef6 26-Feb-2008 Rene Gollent <anevilyak@gmail.com>

- Fix an error in SwapItems where the item tops would not be swapped
if the items were the same height.
- Modified _RecalcItemTops to allow us to specify a range instead of
just a starting point. This is useful for cases like Swap, where
only the items in between those being swapped need to be
recalculated.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24139 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fef39304 24-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

patch by Rene Gollent:
* BListItems now store the top offset of the frame within the parent BListView.
* This allows binary searching the clicked item.
* ItemFrame() is now a cheap call.
* Fixed several bugs in the sorting code of BOutlineListView which lead to
crashes of client applications.
* Implemented previously unimplemented functions in BOutlineListView.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24092 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d4983ec0 05-Nov-2007 Stephan Aßmus <superstippi@gmx.de>

* use BListItem::Height() consistently (clicking a nick in Vision now selects
that same nick, not a different one)
* performance improvement in Draw() (using ItemFrame() in the inner loop scales
really bad)
* fixed scroll range for when BListItem::Height() is non-integer (scrolling
all the way to the bottom in Visions nick list works now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22835 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67e47043 14-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

MakeEmpty() now also calls _FixupScrollBar() - this fixes bug #1558.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9eae7400 10-Jun-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented layout-friendly constructors. Also added MaxSize(), though it
only invokes the BView version. Didn't know what to do with MinSize() and
PreferredSize(). ATM they return fixed, hard-coded values. It might make
sense to compute something depending on the font size, for instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52252818 10-May-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Check if we have a window before drawing the item in
BListView::_Deselect()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21107 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ecf9d1c 26-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge from layout management branch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 943da1a9 11-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Arrow-up/down will now select the first item in the list if there is no selected
item yet.
This fixes bug #728.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18480 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 675010ad 12-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Don't invalidate the listview when the focus changes - the listview does not
have any focus markers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4fc3d62 05-Jun-2006 Jérôme Duval <korli@users.berlios.de>

* fixed some more GetSupportedSuites implementations
* fixed some local variables names
* fixed the case of some message attribute names


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52bc1e50 22-May-2006 Stephan Aßmus <superstippi@gmx.de>

no need to delete fSelectMessage in the destructor after using SetSelectionMessage(NULL);

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a2a6a329 16-May-2006 Stephan Aßmus <superstippi@gmx.de>

a bunch of ListView fixes:

* removed weird stuff that seemed to have no purpose in life
* added more comments where I had to figure things out
* fWidth is now adjusted in FrameResized()
* ListView scrolls up when items are removed at the end and
there would be empty room
* fixed SwapItems(), MoveItem() and ReplaceItem() by making
DoMiscellaneous() use the private implementations instead
of calling the public ones again resulting in an endless
loop
* renamed private methods with underscore
* removed more unused/empty private methods
* some slight performance increases here and there
* more correct tracking of fFirstSelected and fLastSelected,
at least I cannot reproduce one crash in the WonderBrush
Layer list anymore

even more cleanup and testing would not hurt though...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e836b16 06-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Fixed Select(), and Deselect*() to only send notifications if the selection
really changed - this fixes bug #519.
* Archiving the object now returns an appropriate error message if something
goes wrong (instead of B_OK).
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 227bf1b6 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed wrong selection updating when adding items - this fixes bug #279.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16993 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04cec2bb 14-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Implemented invocation on double click.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16799 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 000d23ff 08-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Removing items from the BOutlineListView should longer crash the application.
* Also, the selection should be updated correctly when items are removed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16652 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10443b33 26-Feb-2006 Stephan Aßmus <superstippi@gmx.de>

fixed mouse tracking to not initiate a drag after mouse up

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16512 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b07a76b 20-Feb-2006 Jérôme Duval <korli@users.berlios.de>

forgot these ones


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d62b419 21-Feb-2006 Jérôme Duval <korli@users.berlios.de>

more cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2f93d8c 21-Feb-2006 Jérôme Duval <korli@users.berlios.de>

added checks in BListView::_Select() methods (ItemAt() can return NULL at any place)
style cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16488 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 23ae1e24 06-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Added drag&drop support, some cleanup - courtesy of stippi.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46128d7e 20-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

fix crash in Invoke() when no items are selected and a selection change message is set

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15620 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dde10e45 06-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

fixes for various controls to remove or show focus indication when the window active status changes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15362 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 034104bc 14-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

* fix invalidation of changed items
* fix deselecting items
* fix selection with the mouse and also holding down modifiers
* fix some more stuff I have already forgotten
* applied coding style in most places
* renamed private functions to be consistent

needs more work though, some stuff can definitely be
removed, some needs to be added


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14932 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a84dde4c 23-Feb-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemeted some methods for BBitmaps which accepts views, got rid of "NOT_IMPLEMENTED". Fixed a warning in ListView.cpp


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11461 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 007ed8c5 16-Jun-2003 Marc Flerackers <mflerackers@nowhere.fake>

Compilation fixes and BOutlineListView


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43802569 16-Jun-2003 Marc Flerackers <mflerackers@nowhere.fake>

Fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3537 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94d14479bb76cf56fa0fe83788a464890d9bd99d 11-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

ListView: computate disabled color only for disabled items.


# 265f2996271f355c491ab20113dcacd02535d91a 11-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

ListView: move the color setting code to DrawItem

... so it can also be used by OutlineListView.

Fixes #11598.


# cbb8ebbbbb21f6a29ccd3830e32cb808e62a92bc 10-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

Set item colors in BListView instead of BStringItem

* Fixes #3970 without introducing the bugs from BeOS
* Makes it easy to override BStringItem just to change the text color.
* Makes it easy to implement custom list items using the correct colors.


# 1f424632be5dcad5b81a23080eb205ab6471cd7b 11-Jun-2014 John Scipione <jscipione@gmail.com>

Style fixes to IK, focus on docs


# 63632ee1a2eba022507cbf3c3a1df10d7300a354 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: Skip disabled items via keys

Update B_UP_ARROW, B_DOWN_ARROW, B_HOME, and B_END
in KeyDown() to skip over disabled items.


# c6c5cd994038eb544c98f0e95de8b1da37b27276 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: Only select enabled items

when selecting multiple items in a multi-select list view.


# b38f03f5616565030499a74f5a96834790b7f1b4 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: small optimization.

We already got item at index, don’t get it again


# d09310121521f334cb1a874707a94ee19972d95d 23-Dec-2013 John Scipione <jscipione@gmail.com>

BListView: style fixes


# 1c38517e256ac29d81f2b36e896200faefb8043e 15-Sep-2013 Siarzhuk Zharski <zharik@gmx.li>

ListView: More safe ScrollToSelection implementation

The Problem was observed in the Time Preferences Zone view - the
selection was set inside of TimeZoneView::DoLayout() call on
the OutlineListView control that had zero-sized Bounds. After
the control was resized the selection stay mainly hidden "under"
the upper edge. The Problem looks like generic so should be fixed
in the interface kit code. Proposed fix introduces additional check
for the scroll position to not cross the top edge of control.


# 81cdbc6ae63980490bb3d3f3717631553a68b75b 15-Sep-2013 Siarzhuk Zharski <zharik@gmx.li>

ListView: More safe ScrollToSelection implementation

The Problem was observed in the Time Preferences Zone view - the
selection was set inside of TimeZoneView::DoLayout() call on
the OutlineListView control that had zero-sized Bounds. After
the control was resized the selection stay mainly hidden "under"
the upper edge. The Problem looks like generic so should be fixed
in the interface kit code. Proposed fix introduces additional check
for the scroll position to not cross the top edge of control.


# 926535abb0d2d63a66576d45613b41f35ada4301 25-Apr-2013 John Scipione <jscipione@gmail.com>

Style update to BListView.

Mostly rename msg argument of MessageReceived to message. Also a couple
of pointer style fixes.


# 429ae1b15159a177a5354d8f83d90fea164b6ffa 09-Apr-2013 John Scipione <jscipione@gmail.com>

A few more style fixes to ListView and ColorSet, thanks Axel


# d45ea79290d07ba0f8a16fa77d4dc227213d75a8 08-Apr-2013 John Scipione <jscipione@gmail.com>

One more style fix that I missed


# 63f3755c5f73c5a450a36fb89b284db2ce1c4794 08-Apr-2013 John Scipione <jscipione@gmail.com>

Many style fixes to ListView


# 29ceb649f82fd7a6f4bfea7acef1108aea41823f 08-Apr-2013 John Scipione <jscipione@gmail.com>

Style fixes to ListView


# d45cd469ef1e6d636f7da134230ac0f0c9af2736 18-Dec-2012 Janus <janus2@ymail.com>

Fix #9302. The selection is calculated properly after a list insertion (AddList with index)

Signed-off-by: Jerome Duval <jerome.duval@gmail.com>


# 91c78f092f17e1cc233f7f85a075f72b72b3f246 20-Aug-2012 John Scipione <jscipione@gmail.com>

Create and use new list view item colors

* B_LIST_BACKGROUND_COLOR
* B_LIST_SELECTED_BACKGROUND_COLOR
* B_LIST_ITEM_TEXT_COLOR
* B_LIST_SELECTED_ITEM_TEXT_COLOR


# 3fed1a15f58e8d6fe6b492f3b94bb3625ffeddbd 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Get app_server working on x86_64.

With this commit, app_server now compiles and runs at boot! Nothing
particularly interesting happens, just the blue background and a mouse
pointer. Remote backends are broken and not compiled in, see #8834.
Note that it won't be possible to build this quite yet, need to get
the FreeType package uploaded.


# eee4243d35225a35d0964ebebe94490eaca14261 20-Oct-2011 Alex Wilson <yourpalal2@gmail.com>

De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.


# 2a55b919c363d8e93a98df58f7e780d370f70a71 12-Jun-2011 Rene Gollent <anevilyak@gmail.com>

Revert r42120.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42121 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b52c7c5943152ba59bf958a76db763ec3c36b789 11-Jun-2011 Rene Gollent <anevilyak@gmail.com>

Remove unnecessary calculations from BListView::ScrollToSelection(). At least I
see no useful purpose to the distinction made here.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42120 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a40ec7c51a30f66e95bb449dfd7d1aec88a420d9 08-May-2010 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Revert my changes to BListView for now

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36758 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e2e160328b00c40ca26e8a34a8dc3a433e22bf2e 08-May-2010 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Revert MinSize() and PreferredSize() to the normal BView variants, since unlike the comment says GetPreferredSize() actually looks at the content of the listview to determine the size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36756 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4a439b4a046df0706c383dd954a7a0d65734e87 21-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Fix several problems in BListView:
- SwapItems() did not correctly swap the item tops of the two items being swapped. This would result in quite broken/confusing behavior due to the view having the wrong idea of their current position.
- SwapItems() also did not pass the correct range to _RescanSelection(). This could result in the selection range getting quite confused when swapping items.
- _RescanSelection() did not always correctly reset fLastSelection, though this mostly only would've resulted in unnecessary but harmless work.

Fixes ticket #4253 and possibly some others.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35571 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e74e04d656c3b8417f3ce4274b7aa42f6645e17f 12-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Added TODO note about making sure that B_FRAWE_EVENTS is part of the flags
as soon as a scroll view is controlling the list view. Otherwise scroll bars
are not updated if FrameEvents() is not called. I can imagine problems, though,
if an application did not set B_FRAWE_EVENTS on purpose and is controlling
the scroll bars itself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35035 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09749e95dc8747b3850cb5d1a3bded774d0880cc 18-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a BWindow::InViewTransaction() that determines whether or not the
window is currently updating its drawings as suggested by Stippi.
* Add this method to decide whether to call _FontChanged() in
BListView::SetFont().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# faf42dfe7894cb3051c31985427dba7eb0d6b930 13-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Disabled calling _FontChanged() on SetFont() - since any item can temporarily
change the font in its DrawItem() method, this is not the way to go.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34023 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a5897b71f07b6189a1003280c95ed0f69295fbb 26-Aug-2009 Stephan Aßmus <superstippi@gmx.de>

* Updated indentation style
* Better grouping of methods
* Fixed copyright
+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32700 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 44145c740532b46317e4a19e0ad1f88b5072be65 03-Aug-2009 Oliver Tappe <zooey@hirschkaefer.de>

Fixed two more peculiarities in ListView:
* when items are removed, the anchor may need adjustment (fixes the problem
in Beam reported by Stippi)
* the check for needed adjustment of fLastSelected in _Select(from, to, extend)
was broken, as it needs to be independent of fFirstSelected - this fixes
broken navigation after doing a select-all

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9fe394010bf396892b9c4e412e271167e8ed8b05 03-Aug-2009 Oliver Tappe <zooey@hirschkaefer.de>

small cleanup in ListView:
* avoid setting fAnchorIndex multiple times in certain situations

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32090 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51ab53a6acdc73da793390695fc4a5edb97fceb4 31-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Fix some regressions in keyboard shift selection behavior introduced by the last set of changes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c08c945ff352f5c7be71b810a42da39c286ea10c 30-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

Two more changes to BListView:
* fixed handling of B_HOME and B_END in extend mode for multiselection, such that
now all the items inbetween the anchor and the final target are selected, too
* made sure that the anchor always gets adjusted in _Select(), as otherwise
navigation via cursor keys could get "locked".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31980 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81bbdfe9990b5051353f352691d53f23588067b9 30-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

Fixed two problems in BListView:
* fixed recent regression with respect to navigating via cursor keys
* unified (and thus partly corrected) computation of whether or not we're in
extend mode in KeyDown(), fixing the handling of unmodified B_HOME and B_END
in multiselection mode


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31975 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 490563379ebd8549224a264bc09e7486a697fa3a 28-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Fix another omitted instance of anchor updating.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31891 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7155254d3fc06bc772ba75e32c20441d0ddab5ad 28-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Fix several instances of the anchor index not being properly tracked. When shift-selecting via keyboard, rely on the anchor to know where to shift the selection towards. Fixes rest of ticket #4120.




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31890 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e80a60b54f69ac44a2eaf9c7b58f62a55cb0dafc 28-Jul-2009 Rene Gollent <anevilyak@gmail.com>

Only react to B_SELECT_ALL when in multiple selection mode. Fixes part of ticket #4120.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31889 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01206002ba975bc9767a3b4a50d2694434887e34 20-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* Added NOTE to BListView destructor about not freeing the items.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31136 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97970c5c26e1592cc29440ec59a311c3d2c72411 17-May-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied a changed patch by Romain that fixes the non-working double click in
BListView. This fixes bug #3919. Got rid of the _TryInitiateDrag() method,
and let MouseMoved() do it all.
* Style cleanup of the header, automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30782 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91ad692e57495adc80c6527bcccc0e9f19d3ca53 09-May-2009 Philippe Saint-Pierre <stpere@gmail.com>

Make ScrollToSelection() use "Contains" rather than an "Intersects" to determine if it should scroll.

This make the end key work (trigger the scroll) if the last item is overlapping the bottom boundary.

This fixes bug #1820.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30689 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc2c8b88a5908cb4fbe6daaf44eb5649d083a202 13-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd0e375f416d6848492d1d0dc5d56cf3a6b63997 13-Apr-2009 Rene Gollent <anevilyak@gmail.com>

Fix build break I introduced in previous commit. Add some extra behavior for OutlineListView's right arrow: if the item has children and is expanded, right arrow now jumps to the first child.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30150 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 86656c6b3070e0b052546365de0b0cddc9bca73f 13-Apr-2009 Rene Gollent <anevilyak@gmail.com>

When checking double click with jitter threshold, make sure that both clicks are also on the same list item. Thanks stippi for pointing out this oversight!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30149 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b110c144ba2d167a8f871f965dcae2675739154 12-Apr-2009 Rene Gollent <anevilyak@gmail.com>

Modify double click check to allow some fuzz in the pointer placement, as is done in Tracker. BTextView likely needs a similar adjustment.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11c511b99973771cf5a434cb0e5c34b803f13d4f 11-Apr-2009 Rene Gollent <anevilyak@gmail.com>

Make BListView's doubleclick handling a bit more sane. Should fix ticket #3724.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30131 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6eb09230bae52bcdf045e1f1920b67205c29adc8 01-Feb-2009 Michael Lotz <mmlr@mlotz.ch>

* Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a7c906730d0436e344fc2de002ce696adba5c9 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Position-based binary searching can only be used if the view has been attached
to a window already. If not, we fall back to using the BList-based search.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28696 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4e0a1b40ad4f20355ebcd6133a50282d75f150e8 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Temporarily revert that last change since it breaks the IM Kit's preflet for reasons I don't yet understand. Investigating.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28695 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 128cb2f6f3a4b06014c7cce7664849b552bedcc1 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Minor optimization: since our list items cache their position information,
take advantage of this fact to make use of binary search in
IndexOf(BListItem *), rather than using BList's linear search.
Also use this mechanism to speed up HasItem(BListItem *).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28694 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6826c30a259c4ace5774b83ca8eab4c025021741 18-Nov-2008 Rene Gollent <anevilyak@gmail.com>

When an item is added to the list, we must immediately set its top,
otherwise if it tries to make use of any positional information in the
subsequent call to Update() (i.e. calls to ItemFrame(), or Top(), it will
get back bogus coordinates. This should correctly fix the problems seen with
Themes, possibly amongst others.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28692 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fa6cd8ad6a0e6d6afecc7d311c30f615b0b1a47d 16-Nov-2008 Stephan Aßmus <superstippi@gmx.de>

* The previous change to reorder item->Update() and _RecalcItemTops() obviously
broke everything. If the added item has no chance to calculate it's height,
_RecalcItemTops() won't work of course. Whatever this was supposed to fix,
there has to be a correct way.
* Override BView::SetFont() to update all the items. I remember wanting to
implement this, that's why I refactored a _FontChanged() method, but I
obviousy never did...
* Moved the AttachedToWindow() and FrameMoved() implementations to a more
logical position in the file.
* Implement B_PAGE_UP/DOWN key presses. Don't know if that's what the BeOS
implementation did, will check later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c02466e6eeb6ca6780294a55ad784bd03ed7c6f6 09-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Alter the order in which we updated our cached items. This fixes things like mmu_man's Themes app which has somewhat unusual list items that embed BViews.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28580 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 39fbf5509b8740d9883b61649027478dc8a3ead8 15-Oct-2008 Oliver Tappe <zooey@hirschkaefer.de>

bonefish + zooey:
* Fixed a general problem with respect to overriding of the reserved
virtual function slots: instead of statically invoking the method
that corresponds to the reserved slot on the class that contains the
slot, we now invoke the virtual Perform() method. Perform() then dispatches
the method invocation to the "proper" class, i.e. the highest class in the
hierarchy that actually implements the requested method.
This fixes a crash in apps that use liblayout's MSlider class and
should fix one or other spurious bug with old apps or libraries, too.
* added new header folder 'binary_compatibility' that contains files that
define the method codes and data structures required by Perform()
* looked for and implemented all used reserved virtual slot functions to
invoke Perform() where necessary or to pass on the method call statically
(for slots that were already maintained by Be)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28124 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 20ab5edbe913fb46ef70eaa712b9c3a885deb0fa 04-Sep-2008 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

* In BeOS R5 BListItem::DrawItem frame.left is always 0 regardless of BListView origin or update rectangle. This fixes the horizontal scrolling bug in FlattenPictureTest application.
* When the list is scrolled horizontally ScrollToSelection() resets the origin x-coordinate to 0. When using the keyboard to move to the next or previous item this is not desired. Now the x-coordinate is not changed from its old value anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5aa001b42302082230879f0a58c44a748ad2f925 19-Aug-2008 Alexandre Deckner <alex@zappotek.com>

- Switch BListView selection modifiers as was done for Tracker in my previous commit. It now
even conforms to the bebook! BOutlineListView needs no special change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27066 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd6265ec4d805cbe0ff6a2345fc619bf6fb57e30 06-Jul-2008 Karsten Heimrich <host.haiku@gmx.de>

* don't leak fTrack
* fixed broken while loop
* call _InitObject also from the archive constructor
* just noticed while trying to load the R5 epson printer driver, still not working...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26275 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f589ec0229436e4441ee2fc3a742a56d7506a78f 06-Jul-2008 Karsten Heimrich <host.haiku@gmx.de>

* remove whitespaces, no functional change



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26274 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f8e472b15091d6c6c84ad48fb187d2d5b82ddf0 27-Feb-2008 Rene Gollent <anevilyak@gmail.com>

Minor optimization.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43948ef62891a0634661940a26ca48ff2c01caf2 26-Feb-2008 Rene Gollent <anevilyak@gmail.com>

- Fix an error in SwapItems where the item tops would not be swapped
if the items were the same height.
- Modified _RecalcItemTops to allow us to specify a range instead of
just a starting point. This is useful for cases like Swap, where
only the items in between those being swapped need to be
recalculated.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24139 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fef393049965c3f0a2deed78de5a565e3d8d92e5 24-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

patch by Rene Gollent:
* BListItems now store the top offset of the frame within the parent BListView.
* This allows binary searching the clicked item.
* ItemFrame() is now a cheap call.
* Fixed several bugs in the sorting code of BOutlineListView which lead to
crashes of client applications.
* Implemented previously unimplemented functions in BOutlineListView.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24092 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d4983ec0c8cb45c6f28b1e5b19e5c9eeadeff4a2 05-Nov-2007 Stephan Aßmus <superstippi@gmx.de>

* use BListItem::Height() consistently (clicking a nick in Vision now selects
that same nick, not a different one)
* performance improvement in Draw() (using ItemFrame() in the inner loop scales
really bad)
* fixed scroll range for when BListItem::Height() is non-integer (scrolling
all the way to the bottom in Visions nick list works now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22835 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67e4704330a7105b415910c974d70f31d9730287 14-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

MakeEmpty() now also calls _FixupScrollBar() - this fixes bug #1558.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9eae7400a46a45be822d22e95d0097ea57460828 10-Jun-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented layout-friendly constructors. Also added MaxSize(), though it
only invokes the BView version. Didn't know what to do with MinSize() and
PreferredSize(). ATM they return fixed, hard-coded values. It might make
sense to compute something depending on the font size, for instance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 522528180efd8c1f9ab8a6098e9087002d6fe5d7 10-May-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Check if we have a window before drawing the item in
BListView::_Deselect()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21107 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ecf9d1c1d4888d341a6eac72112c72d1ae3a4cb 26-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge from layout management branch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 943da1a9b797c67f25d48b5fc153b3099cb1c477 11-Aug-2006 Axel Dörfler <axeld@pinc-software.de>

Arrow-up/down will now select the first item in the list if there is no selected
item yet.
This fixes bug #728.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18480 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 675010ad61a427ba85b4b62c7d0cb6c7c0b254a5 12-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Don't invalidate the listview when the focus changes - the listview does not
have any focus markers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17804 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f4fc3d626a425bf59886cd5773fd2f64ff285b10 05-Jun-2006 Jérôme Duval <korli@users.berlios.de>

* fixed some more GetSupportedSuites implementations
* fixed some local variables names
* fixed the case of some message attribute names


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52bc1e501f4aeb0fca2f14a87b0d999fea63de07 22-May-2006 Stephan Aßmus <superstippi@gmx.de>

no need to delete fSelectMessage in the destructor after using SetSelectionMessage(NULL);

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a2a6a329e8856567d487f1eb043ebceb6c17c330 16-May-2006 Stephan Aßmus <superstippi@gmx.de>

a bunch of ListView fixes:

* removed weird stuff that seemed to have no purpose in life
* added more comments where I had to figure things out
* fWidth is now adjusted in FrameResized()
* ListView scrolls up when items are removed at the end and
there would be empty room
* fixed SwapItems(), MoveItem() and ReplaceItem() by making
DoMiscellaneous() use the private implementations instead
of calling the public ones again resulting in an endless
loop
* renamed private methods with underscore
* removed more unused/empty private methods
* some slight performance increases here and there
* more correct tracking of fFirstSelected and fLastSelected,
at least I cannot reproduce one crash in the WonderBrush
Layer list anymore

even more cleanup and testing would not hurt though...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17487 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e836b16bdffe1839197645b7937f5f55fcc6454 06-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Fixed Select(), and Deselect*() to only send notifications if the selection
really changed - this fixes bug #519.
* Archiving the object now returns an appropriate error message if something
goes wrong (instead of B_OK).
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17347 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 227bf1b686df36027cecf5a8c8d6bce9527f4cb7 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Fixed wrong selection updating when adding items - this fixes bug #279.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16993 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04cec2bbbd023afca2038289103ad9bf921dce7a 14-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Implemented invocation on double click.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16799 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 000d23ff71c0d4b40e58068cf486f59943a63514 08-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Removing items from the BOutlineListView should longer crash the application.
* Also, the selection should be updated correctly when items are removed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16652 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 10443b3306248992b268f4062e0277db214081bb 26-Feb-2006 Stephan Aßmus <superstippi@gmx.de>

fixed mouse tracking to not initiate a drag after mouse up

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16512 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b07a76bbd558606e790004d8d6eb437997cc7c2 20-Feb-2006 Jérôme Duval <korli@users.berlios.de>

forgot these ones


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d62b41983cfa3b4958e5aa2b4d5e7a6dceb740e 21-Feb-2006 Jérôme Duval <korli@users.berlios.de>

more cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2f93d8c18b1787476cee12c64418fe084cec096 21-Feb-2006 Jérôme Duval <korli@users.berlios.de>

added checks in BListView::_Select() methods (ItemAt() can return NULL at any place)
style cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16488 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 23ae1e249f319f0704be77b2994547ecf6bf0dee 06-Jan-2006 Axel Dörfler <axeld@pinc-software.de>

Added drag&drop support, some cleanup - courtesy of stippi.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46128d7e2602f7e07749759850efec0f7ff36b25 20-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

fix crash in Invoke() when no items are selected and a selection change message is set

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15620 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dde10e451942993f3d48b9bccf2b777815efea79 06-Dec-2005 Stephan Aßmus <superstippi@gmx.de>

fixes for various controls to remove or show focus indication when the window active status changes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15362 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 034104bc0f7faad354431507eadca591f0785b61 14-Nov-2005 Stephan Aßmus <superstippi@gmx.de>

* fix invalidation of changed items
* fix deselecting items
* fix selection with the mouse and also holding down modifiers
* fix some more stuff I have already forgotten
* applied coding style in most places
* renamed private functions to be consistent

needs more work though, some stuff can definitely be
removed, some needs to be added


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14932 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a84dde4cdea85f6601bf3f5548f29787d534df33 23-Feb-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemeted some methods for BBitmaps which accepts views, got rid of "NOT_IMPLEMENTED". Fixed a warning in ListView.cpp


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11461 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 007ed8c58b7dd9b1f0de00f45f33521df353b56f 16-Jun-2003 Marc Flerackers <mflerackers@nowhere.fake>

Compilation fixes and BOutlineListView


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 43802569fe9b2e0b79bbe7a7c7d003fa2073f6ed 16-Jun-2003 Marc Flerackers <mflerackers@nowhere.fake>

Fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3537 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a380120846174213ccce9c4aab0dda17c72083 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96