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