xref: /haiku/docs/user/interface/OutlineListView.dox (revision 621200ebbd67f15ca5d0d061675409960bfe0b52)
146f5821aSJohn Scipione/*
2819863d8SJohn Scipione * Copyright 2013 Haiku, Inc. All rights reserved.
346f5821aSJohn Scipione * Distributed under the terms of the MIT License.
446f5821aSJohn Scipione *
546f5821aSJohn Scipione * Authors:
646f5821aSJohn Scipione *		John Scipione, jscipione@gmail.com
746f5821aSJohn Scipione *
846f5821aSJohn Scipione * Corresponds to:
946f5821aSJohn Scipione *		headers/os/interface/OutlineListView.h	 hrev46526
1046f5821aSJohn Scipione *		src/kits/interface/OutlineListView.cpp	 hrev46526
1146f5821aSJohn Scipione */
1246f5821aSJohn Scipione
1346f5821aSJohn Scipione
1446f5821aSJohn Scipione/*!
1546f5821aSJohn Scipione	\file OutlineListView.h
1646f5821aSJohn Scipione	\ingroup interface
1746f5821aSJohn Scipione	\ingroup libbe
1846f5821aSJohn Scipione	\brief Provides the BOutlineListView class.
1946f5821aSJohn Scipione*/
2046f5821aSJohn Scipione
2146f5821aSJohn Scipione
2246f5821aSJohn Scipione/*!
2346f5821aSJohn Scipione	\class BOutlineListView
2446f5821aSJohn Scipione	\ingroup interface
2546f5821aSJohn Scipione	\ingroup libbe
2646f5821aSJohn Scipione	\brief Expands upon BListView to display a hierarchical list of items.
2746f5821aSJohn Scipione
2846f5821aSJohn Scipione	Items with subitems underneath them are called super items and are drawn
2946f5821aSJohn Scipione	with a small arrow to the left of their label. The label faces right if
3046f5821aSJohn Scipione	the item is collapsed and faces down if the item is expanded.
3146f5821aSJohn Scipione
3246f5821aSJohn Scipione	An example of an outline list view looks like this:
3346f5821aSJohn Scipione
3446f5821aSJohn Scipione	\image html BOutlineListView_example.png
3546f5821aSJohn Scipione
3646f5821aSJohn Scipione	\see BListView for more info on how to use a list view, most of which also
3746f5821aSJohn Scipione	     applies to an outline list view.
3847852bffSJohn Scipione
3947852bffSJohn Scipione	\since BeOS R3
4046f5821aSJohn Scipione*/
4146f5821aSJohn Scipione
4246f5821aSJohn Scipione
4346f5821aSJohn Scipione/*!
4446f5821aSJohn Scipione	\fn BOutlineListView::BOutlineListView(BRect frame, const char* name,
4546f5821aSJohn Scipione		list_view_type type, uint32 resizingMode, uint32 flags)
4646f5821aSJohn Scipione	\brief Creates a new BOutlineListView object.
4746f5821aSJohn Scipione
4846f5821aSJohn Scipione	\param frame The \a frame rectangle to create the view in.
4946f5821aSJohn Scipione	\param name The name of the view.
5046f5821aSJohn Scipione	\param type Whether the list view supports a single selection or multiple
5146f5821aSJohn Scipione	       selections.
5246f5821aSJohn Scipione	\param resizingMode The resizing mode flags. See BView for details.
5346f5821aSJohn Scipione	\param flags The view flags. See BView for details.
5447852bffSJohn Scipione
5547852bffSJohn Scipione	\since BeOS R3
5646f5821aSJohn Scipione*/
5746f5821aSJohn Scipione
5846f5821aSJohn Scipione
5946f5821aSJohn Scipione/*!
6046f5821aSJohn Scipione	\fn BOutlineListView::BOutlineListView(const char* name,
6146f5821aSJohn Scipione		list_view_type type, uint32 flags)
6246f5821aSJohn Scipione	\brief Creates a new BOutlineListView object suitable for use in a BLayout.
6346f5821aSJohn Scipione
6446f5821aSJohn Scipione	\param name The name of the view.
6546f5821aSJohn Scipione	\param type Whether the list view supports a single selection or multiple
6646f5821aSJohn Scipione	       selections.
6746f5821aSJohn Scipione	\param flags The view flags. See BView for details.
6847852bffSJohn Scipione
6947852bffSJohn Scipione	\since Haiku R1
7046f5821aSJohn Scipione*/
7146f5821aSJohn Scipione
7246f5821aSJohn Scipione
7346f5821aSJohn Scipione/*!
7446f5821aSJohn Scipione	\fn BOutlineListView::BOutlineListView(BMessage* archive)
7546f5821aSJohn Scipione	\brief Creates a BOutlineListView object from the \a archive message.
7646f5821aSJohn Scipione
7746f5821aSJohn Scipione	\param archive The message to create the object from.
7847852bffSJohn Scipione
7947852bffSJohn Scipione	\since BeOS R3
8046f5821aSJohn Scipione*/
8146f5821aSJohn Scipione
8246f5821aSJohn Scipione
8346f5821aSJohn Scipione/*!
8446f5821aSJohn Scipione	\fn BOutlineListView::~BOutlineListView()
8546f5821aSJohn Scipione	\brief Delete the outline BOutlineListView object and free the memory used
8646f5821aSJohn Scipione	       by it.
8746f5821aSJohn Scipione
8846f5821aSJohn Scipione	This method does not free the attached list items.
8947852bffSJohn Scipione
9047852bffSJohn Scipione	\since BeOS R3
9146f5821aSJohn Scipione*/
9246f5821aSJohn Scipione
9346f5821aSJohn Scipione
9446f5821aSJohn Scipione/*!
9546f5821aSJohn Scipione	\name Archiving
9646f5821aSJohn Scipione*/
9746f5821aSJohn Scipione
9846f5821aSJohn Scipione
9946f5821aSJohn Scipione//! @{
10046f5821aSJohn Scipione
10146f5821aSJohn Scipione
10246f5821aSJohn Scipione/*!
10346f5821aSJohn Scipione	\fn BArchivable* BOutlineListView::Instantiate(BMessage* archive)
10446f5821aSJohn Scipione	\brief Create a new BOutlineListView object from the message \a archive.
10546f5821aSJohn Scipione
10646f5821aSJohn Scipione	\param archive The message to create the object from.
10747852bffSJohn Scipione
10847852bffSJohn Scipione	\since BeOS R3
10946f5821aSJohn Scipione*/
11046f5821aSJohn Scipione
11146f5821aSJohn Scipione
11246f5821aSJohn Scipione/*!
11346f5821aSJohn Scipione	\fn status_t BOutlineListView::Archive(BMessage* archive, bool deep) const
11446f5821aSJohn Scipione	\brief Archive the BOutlineListView object to a message.
11546f5821aSJohn Scipione
11646f5821aSJohn Scipione	\param archive The message to archive the object to.
11746f5821aSJohn Scipione	\param deep \c true to archive child views.
11847852bffSJohn Scipione
11947852bffSJohn Scipione	\since BeOS R3
12046f5821aSJohn Scipione*/
12146f5821aSJohn Scipione
12246f5821aSJohn Scipione
12346f5821aSJohn Scipione//! @}
12446f5821aSJohn Scipione
12546f5821aSJohn Scipione
12646f5821aSJohn Scipione/*!
12747852bffSJohn Scipione	\name Hook Methods
12846f5821aSJohn Scipione*/
12946f5821aSJohn Scipione
13046f5821aSJohn Scipione
13146f5821aSJohn Scipione//! @{
13246f5821aSJohn Scipione
13346f5821aSJohn Scipione
13446f5821aSJohn Scipione/*!
13546f5821aSJohn Scipione	\fn void BOutlineListView::AllAttached()
13647852bffSJohn Scipione	\copydoc BView::AllAttached()
13746f5821aSJohn Scipione*/
13846f5821aSJohn Scipione
13946f5821aSJohn Scipione
14046f5821aSJohn Scipione/*!
14146f5821aSJohn Scipione	\fn void BOutlineListView::AllDetached()
14247852bffSJohn Scipione	\copydoc BView::AllDetached()
14346f5821aSJohn Scipione*/
14446f5821aSJohn Scipione
14546f5821aSJohn Scipione
14646f5821aSJohn Scipione/*!
14746f5821aSJohn Scipione	\fn void BOutlineListView::DetachedFromWindow()
14846f5821aSJohn Scipione	\brief Hook method that is called when the outline list view is removed from
14946f5821aSJohn Scipione	       the view hierarchy.
15046f5821aSJohn Scipione
15147852bffSJohn Scipione	\copydetails BView::DetachedFromWindow()
15246f5821aSJohn Scipione*/
15346f5821aSJohn Scipione
15446f5821aSJohn Scipione
15546f5821aSJohn Scipione/*!
15647852bffSJohn Scipione	\fn void BOutlineListView::FrameMoved(BPoint newPosition)
15746f5821aSJohn Scipione	\brief Hook method called when the outline list view is moved.
15846f5821aSJohn Scipione
15947852bffSJohn Scipione	\copydetails BView::FrameMoved()
16046f5821aSJohn Scipione*/
16146f5821aSJohn Scipione
16246f5821aSJohn Scipione
16346f5821aSJohn Scipione/*!
16447852bffSJohn Scipione	\fn void BOutlineListView::FrameResized(float newWidth, float newHeight)
16546f5821aSJohn Scipione	\brief Hook method called when the outline list view is resized.
16646f5821aSJohn Scipione
16747852bffSJohn Scipione	\copydetails BView::FrameResized()
16846f5821aSJohn Scipione*/
16946f5821aSJohn Scipione
17046f5821aSJohn Scipione
17146f5821aSJohn Scipione/*!
17246f5821aSJohn Scipione	\fn void BOutlineListView::KeyDown(const char* bytes, int32 numBytes)
17346f5821aSJohn Scipione	\brief Hook method that is called when a key is pressed while the view is
17446f5821aSJohn Scipione	       the focus view of the active window.
17546f5821aSJohn Scipione
17646f5821aSJohn Scipione	Responds to arrow keys to provide the ability to navigate the outline list
17746f5821aSJohn Scipione	or to expand or collapse sections of the outline. Inherits the keys
17846f5821aSJohn Scipione	recognized by BListView.
17946f5821aSJohn Scipione
18046f5821aSJohn Scipione	The following keys are used by the outline list view by default:
18146f5821aSJohn Scipione	- Right Arrow				Expands the selected item.
18246f5821aSJohn Scipione	- Left Arrow				Collapses the selected item.
18346f5821aSJohn Scipione
18446f5821aSJohn Scipione	\param bytes The bytes of the key combination pressed.
18546f5821aSJohn Scipione	\param numBytes The number of bytes in \a bytes.
18646f5821aSJohn Scipione
18746f5821aSJohn Scipione	\see BListView::KeyDown()
18847852bffSJohn Scipione
18947852bffSJohn Scipione	\since BeOS R3
19046f5821aSJohn Scipione*/
19146f5821aSJohn Scipione
19246f5821aSJohn Scipione
19346f5821aSJohn Scipione/*!
19446f5821aSJohn Scipione	\fn void BOutlineListView::MessageReceived(BMessage* message)
19546f5821aSJohn Scipione	\brief Hook method called when a message is received by the outline list
19646f5821aSJohn Scipione	       view.
19746f5821aSJohn Scipione
19847852bffSJohn Scipione	\copydetails BView::MessageReceived()
19946f5821aSJohn Scipione*/
20046f5821aSJohn Scipione
20146f5821aSJohn Scipione
20246f5821aSJohn Scipione/*!
20346f5821aSJohn Scipione	\fn void BOutlineListView::MouseDown(BPoint where)
20446f5821aSJohn Scipione	\brief Hook method called when a mouse button is pressed while the cursor
20546f5821aSJohn Scipione	       is contained in the frame of the outline list view.
20646f5821aSJohn Scipione
20746f5821aSJohn Scipione	Responds to mouse clicks expanding or collapsing sections of the outline
20846f5821aSJohn Scipione	when the user clicks on a latch.
20946f5821aSJohn Scipione
210d579eb9eSMáximo Castañeda	\param where The point on the screen where the mouse pointer is when
21146f5821aSJohn Scipione	       the mouse button is pressed.
21246f5821aSJohn Scipione
21346f5821aSJohn Scipione	\see BListView::MouseDown()
21447852bffSJohn Scipione
21547852bffSJohn Scipione	\since BeOS R3
21646f5821aSJohn Scipione*/
21746f5821aSJohn Scipione
21846f5821aSJohn Scipione
21946f5821aSJohn Scipione/*!
22046f5821aSJohn Scipione	\fn void BOutlineListView::MouseUp(BPoint where)
22146f5821aSJohn Scipione	\brief Hook method that is called when a mouse button is released while
22246f5821aSJohn Scipione	       the cursor is contained in the frame of the outline list view.
22346f5821aSJohn Scipione
22447852bffSJohn Scipione	\copydetails BView::MouseUp()
22546f5821aSJohn Scipione*/
22646f5821aSJohn Scipione
22746f5821aSJohn Scipione
22846f5821aSJohn Scipione//! @}
22946f5821aSJohn Scipione
23046f5821aSJohn Scipione
23146f5821aSJohn Scipione/*!
23247852bffSJohn Scipione	\name Adding/Removing Items
23346f5821aSJohn Scipione*/
23446f5821aSJohn Scipione
23546f5821aSJohn Scipione
23646f5821aSJohn Scipione//! @{
23746f5821aSJohn Scipione
23846f5821aSJohn Scipione
23946f5821aSJohn Scipione/*!
24046f5821aSJohn Scipione	\fn bool BOutlineListView::AddUnder(BListItem* item, BListItem* superItem)
24146f5821aSJohn Scipione	\brief Adds the \a item one level deeper and immediately after \a superItem.
24246f5821aSJohn Scipione
24346f5821aSJohn Scipione	\param item The \a item to add.
24446f5821aSJohn Scipione	\param superItem The item to add under, if \c NULL adds to end.
24546f5821aSJohn Scipione
24646f5821aSJohn Scipione	\return \c true if the \a item was added, \c false otherwise.
24747852bffSJohn Scipione
24847852bffSJohn Scipione	\since BeOS R3
24946f5821aSJohn Scipione*/
25046f5821aSJohn Scipione
25146f5821aSJohn Scipione
25246f5821aSJohn Scipione/*!
25346f5821aSJohn Scipione	\fn bool BOutlineListView::AddItem(BListItem* item)
25446f5821aSJohn Scipione	\brief Adds the \a item to the end of the list.
25546f5821aSJohn Scipione
25646f5821aSJohn Scipione	\param item The \a item to add.
25746f5821aSJohn Scipione
25846f5821aSJohn Scipione	\return \c true if the \a item was added, \c false otherwise.
25947852bffSJohn Scipione
26047852bffSJohn Scipione	\since BeOS R3
26146f5821aSJohn Scipione*/
26246f5821aSJohn Scipione
26346f5821aSJohn Scipione
26446f5821aSJohn Scipione/*!
26546f5821aSJohn Scipione	\fn bool BOutlineListView::AddItem(BListItem* item, int32 fullListIndex)
26646f5821aSJohn Scipione	\brief Adds the \a item at \a fullListIndex.
26746f5821aSJohn Scipione
26846f5821aSJohn Scipione	\param item The \a item to add.
26946f5821aSJohn Scipione	\param fullListIndex The index to add \a item at.
27046f5821aSJohn Scipione
27146f5821aSJohn Scipione	\return \c true if the \a item was added, \c false otherwise.
27247852bffSJohn Scipione
27347852bffSJohn Scipione	\since BeOS R3
27446f5821aSJohn Scipione*/
27546f5821aSJohn Scipione
27646f5821aSJohn Scipione
27746f5821aSJohn Scipione/*!
27846f5821aSJohn Scipione	\fn bool BOutlineListView::AddList(BList* newItems)
27946f5821aSJohn Scipione	\brief Adds a list of items to the end of the list.
28046f5821aSJohn Scipione
28146f5821aSJohn Scipione	\param newItems The list of items to add.
28246f5821aSJohn Scipione
283d579eb9eSMáximo Castañeda	\return \c true if the items were added, \c false otherwise.
28447852bffSJohn Scipione
28547852bffSJohn Scipione	\since BeOS R3
28646f5821aSJohn Scipione*/
28746f5821aSJohn Scipione
28846f5821aSJohn Scipione
28946f5821aSJohn Scipione/*!
29046f5821aSJohn Scipione	\fn bool BOutlineListView::AddList(BList* newItems, int32 fullListIndex)
29146f5821aSJohn Scipione	\brief Adds a list of items at \a fullListIndex
29246f5821aSJohn Scipione
29346f5821aSJohn Scipione	\param newItems The list of items to add.
294d579eb9eSMáximo Castañeda	\param fullListIndex The index at which to start adding the items.
29546f5821aSJohn Scipione
296d579eb9eSMáximo Castañeda	\return \c true if the items were added, \c false otherwise.
29747852bffSJohn Scipione
29847852bffSJohn Scipione	\since BeOS R3
29946f5821aSJohn Scipione*/
30046f5821aSJohn Scipione
30146f5821aSJohn Scipione
30246f5821aSJohn Scipione/*!
30346f5821aSJohn Scipione	\fn bool BOutlineListView::RemoveItem(BListItem* item)
30446f5821aSJohn Scipione	\brief Removes the \a item from the list.
30546f5821aSJohn Scipione
30646f5821aSJohn Scipione	\param item The \a item to remove.
30746f5821aSJohn Scipione
30846f5821aSJohn Scipione	\return \c true if the \a item was removed, \c false otherwise.
30947852bffSJohn Scipione
31047852bffSJohn Scipione	\since BeOS R3
31146f5821aSJohn Scipione*/
31246f5821aSJohn Scipione
31346f5821aSJohn Scipione
31446f5821aSJohn Scipione/*!
31546f5821aSJohn Scipione	\fn BListItem* BOutlineListView::RemoveItem(int32 fullListIndex)
31646f5821aSJohn Scipione	\brief Removes the \a item located at \a fullListIndex from the list.
31746f5821aSJohn Scipione
31846f5821aSJohn Scipione	\return A pointer to the BListItem removed.
31947852bffSJohn Scipione
32047852bffSJohn Scipione	\since BeOS R3
32146f5821aSJohn Scipione*/
32246f5821aSJohn Scipione
32346f5821aSJohn Scipione
32446f5821aSJohn Scipione/*!
32546f5821aSJohn Scipione	\fn bool BOutlineListView::RemoveItems(int32 fullListIndex, int32 count)
32646f5821aSJohn Scipione	\brief Removes \a count items starting at \a fullListIndex from the list.
32746f5821aSJohn Scipione
32846f5821aSJohn Scipione	\return \c true if the items were removed, \c false otherwise.
32947852bffSJohn Scipione
33047852bffSJohn Scipione	\since BeOS R3
33146f5821aSJohn Scipione*/
33246f5821aSJohn Scipione
33346f5821aSJohn Scipione
33446f5821aSJohn Scipione//! @}
33546f5821aSJohn Scipione
33646f5821aSJohn Scipione
33746f5821aSJohn Scipione/*!
33847852bffSJohn Scipione	\name Full List
33946f5821aSJohn Scipione
340d579eb9eSMáximo Castañeda	These methods replicate similar methods in BListView, but they work on the
341d579eb9eSMáximo Castañeda	full list, without discarding collapsed items.
34246f5821aSJohn Scipione*/
34346f5821aSJohn Scipione
34446f5821aSJohn Scipione
34546f5821aSJohn Scipione//! @{
34646f5821aSJohn Scipione
34746f5821aSJohn Scipione
34846f5821aSJohn Scipione/*!
34946f5821aSJohn Scipione	\fn BListItem* BOutlineListView::FullListItemAt(int32 fullListIndex) const
35046f5821aSJohn Scipione	\brief Returns a pointer to the BListItem at \a fullListIndex.
35146f5821aSJohn Scipione
35246f5821aSJohn Scipione	\return A pointer to the the BListItem at \a fullListIndex or \c NULL if not
35346f5821aSJohn Scipione	        found.
35446f5821aSJohn Scipione
35546f5821aSJohn Scipione	\see BListView::ItemAt(int32 index)
35647852bffSJohn Scipione
35747852bffSJohn Scipione	\since BeOS R3
35846f5821aSJohn Scipione*/
35946f5821aSJohn Scipione
36046f5821aSJohn Scipione
36146f5821aSJohn Scipione/*!
36246f5821aSJohn Scipione	\fn int32 BOutlineListView::FullListIndexOf(BPoint where) const
36346f5821aSJohn Scipione	\brief Returns the full list index of the item at \a where.
36446f5821aSJohn Scipione
36546f5821aSJohn Scipione	\return The index of the item at \a where or -1 if not found.
36646f5821aSJohn Scipione
36746f5821aSJohn Scipione	\see BListView::IndexOf(BListItem* item)
36847852bffSJohn Scipione
36947852bffSJohn Scipione	\since BeOS R3
37046f5821aSJohn Scipione*/
37146f5821aSJohn Scipione
37246f5821aSJohn Scipione
37346f5821aSJohn Scipione/*!
37446f5821aSJohn Scipione	\fn int32 BOutlineListView::FullListIndexOf(BListItem* item) const
37546f5821aSJohn Scipione	\brief Returns the full list index of \a item.
37646f5821aSJohn Scipione
377d579eb9eSMáximo Castañeda	\return The index of \a item or -1 if not found.
37846f5821aSJohn Scipione
37946f5821aSJohn Scipione	\see BListView::IndexOf(BPoint point)
38047852bffSJohn Scipione
38147852bffSJohn Scipione	\since BeOS R3
38246f5821aSJohn Scipione*/
38346f5821aSJohn Scipione
38446f5821aSJohn Scipione
38546f5821aSJohn Scipione/*!
38646f5821aSJohn Scipione	\fn BListItem* BOutlineListView::FullListFirstItem() const
38746f5821aSJohn Scipione	\brief Returns a pointer to the first BListItem in the list.
38846f5821aSJohn Scipione
389d579eb9eSMáximo Castañeda	\return A pointer to the first item in the list or \c NULL if there are no
39046f5821aSJohn Scipione	        items.
39146f5821aSJohn Scipione
39246f5821aSJohn Scipione	\see BListView::FirstItem()
39347852bffSJohn Scipione
39447852bffSJohn Scipione	\since BeOS R3
39546f5821aSJohn Scipione*/
39646f5821aSJohn Scipione
39746f5821aSJohn Scipione
39846f5821aSJohn Scipione/*!
39946f5821aSJohn Scipione	\fn BListItem* BOutlineListView::FullListLastItem() const
40046f5821aSJohn Scipione	\brief Returns a pointer to the list BListItem in the list
40146f5821aSJohn Scipione
402d579eb9eSMáximo Castañeda	\return A pointer to the last item in the list or \c NULL if there are no
40346f5821aSJohn Scipione	        items.
40446f5821aSJohn Scipione
40546f5821aSJohn Scipione	\see BListView::LastItem()
40647852bffSJohn Scipione
40747852bffSJohn Scipione	\since BeOS R3
40846f5821aSJohn Scipione*/
40946f5821aSJohn Scipione
41046f5821aSJohn Scipione
41146f5821aSJohn Scipione/*!
41246f5821aSJohn Scipione	\fn bool BOutlineListView::FullListHasItem(BListItem* item) const
41346f5821aSJohn Scipione	\brief Returns whether or not the list contains the specified \a item.
41446f5821aSJohn Scipione
41546f5821aSJohn Scipione	\param item The list item to check.
41646f5821aSJohn Scipione
41746f5821aSJohn Scipione	\return \c true if \a item is in the list, \c false otherwise.
41846f5821aSJohn Scipione
41946f5821aSJohn Scipione	\see BListView::HasItem(BListItem* item)
42047852bffSJohn Scipione
42147852bffSJohn Scipione	\since BeOS R3
42246f5821aSJohn Scipione*/
42346f5821aSJohn Scipione
42446f5821aSJohn Scipione
42546f5821aSJohn Scipione/*!
42646f5821aSJohn Scipione	\fn int32 BOutlineListView::FullListCountItems() const
42746f5821aSJohn Scipione	\brief Returns the number of items contained in the outline list view.
42846f5821aSJohn Scipione
42946f5821aSJohn Scipione	\return The number of items.
43046f5821aSJohn Scipione
43146f5821aSJohn Scipione	\see BListView::CountItems()
43247852bffSJohn Scipione
43347852bffSJohn Scipione	\since BeOS R3
43446f5821aSJohn Scipione*/
43546f5821aSJohn Scipione
43646f5821aSJohn Scipione
43746f5821aSJohn Scipione/*!
43846f5821aSJohn Scipione	\fn int32 BOutlineListView::FullListCurrentSelection(int32 index) const
43946f5821aSJohn Scipione	\brief Returns the index of a currently selected item relative to the passed
44046f5821aSJohn Scipione	       in \a index.
44146f5821aSJohn Scipione
44246f5821aSJohn Scipione	\param index The \a index of the item to get relative to the selected item's
44346f5821aSJohn Scipione	       index.
44446f5821aSJohn Scipione
44546f5821aSJohn Scipione	\see BListView::CurrentSelection(int32 index)
44647852bffSJohn Scipione
44747852bffSJohn Scipione	\since BeOS R3
44846f5821aSJohn Scipione*/
44946f5821aSJohn Scipione
45046f5821aSJohn Scipione
45146f5821aSJohn Scipione/*!
45246f5821aSJohn Scipione	\fn void BOutlineListView::MakeEmpty()
45346f5821aSJohn Scipione	\brief Empties the outline list view of all items.
45447852bffSJohn Scipione
45547852bffSJohn Scipione	\since BeOS R3
45646f5821aSJohn Scipione*/
45746f5821aSJohn Scipione
45846f5821aSJohn Scipione
45946f5821aSJohn Scipione/*!
46046f5821aSJohn Scipione	\fn bool BOutlineListView::FullListIsEmpty() const
46146f5821aSJohn Scipione	\brief Returns whether or not the outline list view is empty.
46246f5821aSJohn Scipione
46346f5821aSJohn Scipione	\return \c true if the outline list view is empty, \c false otherwise.
46446f5821aSJohn Scipione
46546f5821aSJohn Scipione	\see BListView::IsEmpty()
46647852bffSJohn Scipione
46747852bffSJohn Scipione	\since BeOS R3
46846f5821aSJohn Scipione*/
46946f5821aSJohn Scipione
47046f5821aSJohn Scipione
47146f5821aSJohn Scipione/*!
47246f5821aSJohn Scipione	\fn void BOutlineListView::FullListDoForEach(bool(*func)(BListItem* item))
47346f5821aSJohn Scipione	\brief Calls the specified function on each item in the outline list.
47446f5821aSJohn Scipione
47546f5821aSJohn Scipione	\param func The function to call on each item.
47646f5821aSJohn Scipione
47746f5821aSJohn Scipione	\see BListView::DoForEach(bool (*func)(BListItem* item))
47847852bffSJohn Scipione
47947852bffSJohn Scipione	\since BeOS R3
48046f5821aSJohn Scipione*/
48146f5821aSJohn Scipione
48246f5821aSJohn Scipione
48346f5821aSJohn Scipione/*!
48446f5821aSJohn Scipione	\fn void BOutlineListView::FullListDoForEach(bool(*func)(BListItem* item,
48546f5821aSJohn Scipione		void* arg), void* arg)
48646f5821aSJohn Scipione	\brief Calls the specified function on each item in the outline list.
48746f5821aSJohn Scipione
48846f5821aSJohn Scipione	\param func The function to call on each item.
48946f5821aSJohn Scipione	\param arg The second argument of the function.
49046f5821aSJohn Scipione
49146f5821aSJohn Scipione	\sa BListView::DoForEach(bool (*func)(BListItem* item, void* arg),
49246f5821aSJohn Scipione		void* arg)
49347852bffSJohn Scipione
49447852bffSJohn Scipione	\since BeOS R3
49546f5821aSJohn Scipione*/
49646f5821aSJohn Scipione
49746f5821aSJohn Scipione
49846f5821aSJohn Scipione//! @}
49946f5821aSJohn Scipione
50046f5821aSJohn Scipione
50146f5821aSJohn Scipione/*!
50246f5821aSJohn Scipione	\fn BListItem* BOutlineListView::Superitem(const BListItem* item)
50346f5821aSJohn Scipione	\brief Returns a pointer to the item at one level above \a item.
50446f5821aSJohn Scipione
50546f5821aSJohn Scipione	\return A pointer to the superitem of \a item or \c NULL if the \a item
50646f5821aSJohn Scipione	       is at the outermost level or not found.
50747852bffSJohn Scipione
50847852bffSJohn Scipione	\since BeOS R3
50946f5821aSJohn Scipione*/
51046f5821aSJohn Scipione
51146f5821aSJohn Scipione
51246f5821aSJohn Scipione/*!
51346f5821aSJohn Scipione	\fn void BOutlineListView::Expand(BListItem* item)
51446f5821aSJohn Scipione	\brief Expands the section referenced by \a item.
51547852bffSJohn Scipione
51647852bffSJohn Scipione	\since BeOS R3
51746f5821aSJohn Scipione*/
51846f5821aSJohn Scipione
51946f5821aSJohn Scipione
52046f5821aSJohn Scipione/*!
52146f5821aSJohn Scipione	\fn void BOutlineListView::Collapse(BListItem* item)
52246f5821aSJohn Scipione	\brief Collapses the section referenced by \a item.
52347852bffSJohn Scipione
52447852bffSJohn Scipione	\since BeOS R3
52546f5821aSJohn Scipione*/
52646f5821aSJohn Scipione
52746f5821aSJohn Scipione
52846f5821aSJohn Scipione/*!
52946f5821aSJohn Scipione	\fn bool BOutlineListView::IsExpanded(int32 fullListIndex)
53046f5821aSJohn Scipione	\brief Returns whether or not the section that the item at \a fullListIndex
53146f5821aSJohn Scipione	       is expanded or not.
53246f5821aSJohn Scipione
53346f5821aSJohn Scipione	\return \c true if the section is expanded, \c false if it is collapsed.
53447852bffSJohn Scipione
53547852bffSJohn Scipione	\since BeOS R3
53646f5821aSJohn Scipione*/
53746f5821aSJohn Scipione
53846f5821aSJohn Scipione
53946f5821aSJohn Scipione/*!
54047852bffSJohn Scipione	\name Sorting
54146f5821aSJohn Scipione*/
54246f5821aSJohn Scipione
54346f5821aSJohn Scipione
54446f5821aSJohn Scipione//! @{
54546f5821aSJohn Scipione
54646f5821aSJohn Scipione
54746f5821aSJohn Scipione/*!
54846f5821aSJohn Scipione	\fn void BOutlineListView::FullListSortItems(
54946f5821aSJohn Scipione		int (*compareFunc)(const BListItem* a, const BListItem* b))
550d579eb9eSMáximo Castañeda	\brief Sorts the items according to the passed in compare function.
55146f5821aSJohn Scipione
55246f5821aSJohn Scipione	\param compareFunc The compare function to use to sort the items.
55346f5821aSJohn Scipione
55446f5821aSJohn Scipione	\see BListView::SortItems(int (*cmp)(const void *, const void *))
55547852bffSJohn Scipione
55647852bffSJohn Scipione	\since BeOS R3
55746f5821aSJohn Scipione*/
55846f5821aSJohn Scipione
55946f5821aSJohn Scipione
56046f5821aSJohn Scipione/*!
56146f5821aSJohn Scipione	\fn void BOutlineListView::SortItemsUnder(BListItem* superItem,
56246f5821aSJohn Scipione		bool oneLevelOnly, int (*compareFunc)(const BListItem* a,
56346f5821aSJohn Scipione			const BListItem* b))
56446f5821aSJohn Scipione	\brief Sorts the items under \a superItem.
56546f5821aSJohn Scipione
56646f5821aSJohn Scipione	\param superItem The base item.
56746f5821aSJohn Scipione	\param oneLevelOnly if \c true, only items located one level under
56846f5821aSJohn Scipione	       superItem are considered.
56946f5821aSJohn Scipione	\param compareFunc The compare function to use to sort the items.
57047852bffSJohn Scipione
57147852bffSJohn Scipione	\since BeOS R3
57246f5821aSJohn Scipione*/
57346f5821aSJohn Scipione
57446f5821aSJohn Scipione
57546f5821aSJohn Scipione//! @}
57646f5821aSJohn Scipione
57746f5821aSJohn Scipione
57846f5821aSJohn Scipione/*!
57946f5821aSJohn Scipione	\fn int32 BOutlineListView::CountItemsUnder(BListItem* superItem,
58046f5821aSJohn Scipione		bool oneLevelOnly) const
58146f5821aSJohn Scipione	\brief Returns the number of items under \a superItem.
58246f5821aSJohn Scipione
583*621200ebSMáximo Castañeda	\param superItem The base item, or NULL to use the virtual super item
584*621200ebSMáximo Castañeda	       of level 0 items.
58546f5821aSJohn Scipione	\param oneLevelOnly if \c true, only items located one level under
58646f5821aSJohn Scipione	       superItem are considered.
58746f5821aSJohn Scipione
58846f5821aSJohn Scipione	\return The number of items under \a superItem.
58947852bffSJohn Scipione
59047852bffSJohn Scipione	\since BeOS R3
59146f5821aSJohn Scipione*/
59246f5821aSJohn Scipione
59346f5821aSJohn Scipione
59446f5821aSJohn Scipione/*!
59546f5821aSJohn Scipione	\fn BListItem* BOutlineListView::EachItemUnder(BListItem* superItem,
59646f5821aSJohn Scipione		bool oneLevelOnly, BListItem* (*eachFunc)(BListItem* item, void* arg),
59746f5821aSJohn Scipione		void* arg)
59846f5821aSJohn Scipione	\brief Calls \a eachFunc for each item under \a superItem.
59946f5821aSJohn Scipione
600*621200ebSMáximo Castañeda	\param superItem The base item, or NULL to use the virtual super item
601*621200ebSMáximo Castañeda	       of level 0 items.
60246f5821aSJohn Scipione	\param oneLevelOnly if \c true, only items located one level under
60346f5821aSJohn Scipione	       superItem are considered.
60446f5821aSJohn Scipione	\param eachFunc The function to call on each item.
60546f5821aSJohn Scipione	\param arg The second argument of \a eachFunc.
60647852bffSJohn Scipione
60747852bffSJohn Scipione	\since BeOS R3
60846f5821aSJohn Scipione*/
60946f5821aSJohn Scipione
61046f5821aSJohn Scipione
61146f5821aSJohn Scipione/*!
61246f5821aSJohn Scipione	\fn BListItem* BOutlineListView::ItemUnderAt(BListItem* superItem,
61346f5821aSJohn Scipione		bool oneLevelOnly, int32 index) const
61446f5821aSJohn Scipione	\brief Returns a pointer to the item at \a index under \a superItem.
61546f5821aSJohn Scipione
616*621200ebSMáximo Castañeda	\param superItem The base item, or NULL to use the virtual super item
617*621200ebSMáximo Castañeda	       of level 0 items.
61846f5821aSJohn Scipione	\param oneLevelOnly if \c true, only items located one level under
61946f5821aSJohn Scipione	       superItem are considered.
62046f5821aSJohn Scipione	\param index The index of the item to get.
62146f5821aSJohn Scipione
62246f5821aSJohn Scipione	\return A pointer to the item at \a index under \a superItem or \c NULL
62346f5821aSJohn Scipione	        if not found.
62447852bffSJohn Scipione
62547852bffSJohn Scipione	\since BeOS R3
62646f5821aSJohn Scipione*/
62746f5821aSJohn Scipione
62846f5821aSJohn Scipione
62946f5821aSJohn Scipione/*!
63046f5821aSJohn Scipione	\fn bool BOutlineListView::DoMiscellaneous(MiscCode code, MiscData* data)
63146f5821aSJohn Scipione	\brief If \a code is \a B_SWAP_OP, swap the items in \a data, otherwise
63246f5821aSJohn Scipione	       pass the arguments to BListView::DoMiscellaneous().
63346f5821aSJohn Scipione
63446f5821aSJohn Scipione	\param code The action \a code to use.
63546f5821aSJohn Scipione	\param data The \a data to act on.
63646f5821aSJohn Scipione
63746f5821aSJohn Scipione	\see BListView::DoMiscellaneous()
63847852bffSJohn Scipione
63947852bffSJohn Scipione	\since Haiku R1
64046f5821aSJohn Scipione*/
64146f5821aSJohn Scipione
64246f5821aSJohn Scipione
64346f5821aSJohn Scipione/*!
64446f5821aSJohn Scipione	\fn void BOutlineListView::ExpandOrCollapse(BListItem* item, bool expand)
64546f5821aSJohn Scipione	\brief Toggle the expanded state of \a item.
64646f5821aSJohn Scipione
64746f5821aSJohn Scipione	\param item The \a item to toggle.
64846f5821aSJohn Scipione	\param expand If \c true, expand the \a item, if \c false, collapse the
64946f5821aSJohn Scipione	        \a item.
65047852bffSJohn Scipione
65147852bffSJohn Scipione	\since Haiku R1
65246f5821aSJohn Scipione*/
65346f5821aSJohn Scipione
65446f5821aSJohn Scipione
65546f5821aSJohn Scipione/*!
65646f5821aSJohn Scipione	\fn BRect BOutlineListView::LatchRect(BRect itemRect, int32 level) const
65746f5821aSJohn Scipione	\brief Used by derived classes to return the latch area.
65846f5821aSJohn Scipione
65946f5821aSJohn Scipione	\param itemRect The area of the item to get the latch area of.
66046f5821aSJohn Scipione	\param level The \a level of the item to get the latch area of.
66147852bffSJohn Scipione
66247852bffSJohn Scipione	\since Haiku R1
66346f5821aSJohn Scipione*/
66446f5821aSJohn Scipione
66546f5821aSJohn Scipione
66646f5821aSJohn Scipione/*!
66746f5821aSJohn Scipione	\fn void BOutlineListView::DrawLatch(BRect itemRect, int32 level,
66846f5821aSJohn Scipione		bool collapsed, bool highlighted, bool misTracked)
66946f5821aSJohn Scipione	\brief Used by derived classes to draw the latch.
67046f5821aSJohn Scipione
67146f5821aSJohn Scipione	\param itemRect The area of the item to get the latch area of,
67246f5821aSJohn Scipione	       this is passed to LatchRect() to get the latch area.
67346f5821aSJohn Scipione	\param level The \a level of the item to get the latch area of,
67446f5821aSJohn Scipione	       also passed to LatchRect().
67546f5821aSJohn Scipione	\param collapsed \c true to draw the latch in a collapsed state,
67646f5821aSJohn Scipione	       \c false to draw the latch in an expanded state.
67746f5821aSJohn Scipione	\param highlighted \c true to draw the latch in a selected state,
67846f5821aSJohn Scipione	       \c false to draw the latch in an unselected state. Unused
67946f5821aSJohn Scipione	       by the base class.
68046f5821aSJohn Scipione	\param misTracked Unused by the base class.
68147852bffSJohn Scipione
68247852bffSJohn Scipione	\since Haiku R1
68346f5821aSJohn Scipione*/
68446f5821aSJohn Scipione
68546f5821aSJohn Scipione
68646f5821aSJohn Scipione/*!
68746f5821aSJohn Scipione	\fn void BOutlineListView::DrawItem(BListItem* item, BRect itemRect,
68846f5821aSJohn Scipione		bool complete)
68947852bffSJohn Scipione	\brief Used by derived classes to override how an \a item is drawn.
69046f5821aSJohn Scipione
69146f5821aSJohn Scipione	\param item The \a item to draw.
69246f5821aSJohn Scipione	\param itemRect The area of the \a item to draw.
69346f5821aSJohn Scipione	\param complete Whether or not to draw the background in addition to the
69446f5821aSJohn Scipione	       contents.
69547852bffSJohn Scipione
69647852bffSJohn Scipione	\since Haiku R1
69746f5821aSJohn Scipione*/
698