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. 38*47852bffSJohn Scipione 39*47852bffSJohn 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. 54*47852bffSJohn Scipione 55*47852bffSJohn 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. 68*47852bffSJohn Scipione 69*47852bffSJohn 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. 78*47852bffSJohn Scipione 79*47852bffSJohn 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. 89*47852bffSJohn Scipione 90*47852bffSJohn 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. 107*47852bffSJohn Scipione 108*47852bffSJohn 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. 118*47852bffSJohn Scipione 119*47852bffSJohn Scipione \since BeOS R3 12046f5821aSJohn Scipione*/ 12146f5821aSJohn Scipione 12246f5821aSJohn Scipione 12346f5821aSJohn Scipione//! @} 12446f5821aSJohn Scipione 12546f5821aSJohn Scipione 12646f5821aSJohn Scipione/*! 127*47852bffSJohn Scipione \name Hook Methods 12846f5821aSJohn Scipione*/ 12946f5821aSJohn Scipione 13046f5821aSJohn Scipione 13146f5821aSJohn Scipione//! @{ 13246f5821aSJohn Scipione 13346f5821aSJohn Scipione 13446f5821aSJohn Scipione/*! 13546f5821aSJohn Scipione \fn void BOutlineListView::AllAttached() 136*47852bffSJohn Scipione \copydoc BView::AllAttached() 13746f5821aSJohn Scipione*/ 13846f5821aSJohn Scipione 13946f5821aSJohn Scipione 14046f5821aSJohn Scipione/*! 14146f5821aSJohn Scipione \fn void BOutlineListView::AllDetached() 142*47852bffSJohn 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 151*47852bffSJohn Scipione \copydetails BView::DetachedFromWindow() 15246f5821aSJohn Scipione*/ 15346f5821aSJohn Scipione 15446f5821aSJohn Scipione 15546f5821aSJohn Scipione/*! 156*47852bffSJohn Scipione \fn void BOutlineListView::FrameMoved(BPoint newPosition) 15746f5821aSJohn Scipione \brief Hook method called when the outline list view is moved. 15846f5821aSJohn Scipione 159*47852bffSJohn Scipione \copydetails BView::FrameMoved() 16046f5821aSJohn Scipione*/ 16146f5821aSJohn Scipione 16246f5821aSJohn Scipione 16346f5821aSJohn Scipione/*! 164*47852bffSJohn Scipione \fn void BOutlineListView::FrameResized(float newWidth, float newHeight) 16546f5821aSJohn Scipione \brief Hook method called when the outline list view is resized. 16646f5821aSJohn Scipione 167*47852bffSJohn 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() 188*47852bffSJohn Scipione 189*47852bffSJohn 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 198*47852bffSJohn 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 21046f5821aSJohn Scipione \param where The point on the screen where to mouse pointer is when 21146f5821aSJohn Scipione the mouse button is pressed. 21246f5821aSJohn Scipione 21346f5821aSJohn Scipione \see BListView::MouseDown() 214*47852bffSJohn Scipione 215*47852bffSJohn 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 224*47852bffSJohn Scipione \copydetails BView::MouseUp() 22546f5821aSJohn Scipione*/ 22646f5821aSJohn Scipione 22746f5821aSJohn Scipione 22846f5821aSJohn Scipione//! @} 22946f5821aSJohn Scipione 23046f5821aSJohn Scipione 23146f5821aSJohn Scipione/*! 232*47852bffSJohn 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. 247*47852bffSJohn Scipione 248*47852bffSJohn 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. 259*47852bffSJohn Scipione 260*47852bffSJohn 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. 272*47852bffSJohn Scipione 273*47852bffSJohn 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 28346f5821aSJohn Scipione \return \c true if the items was added, \c false otherwise. 284*47852bffSJohn Scipione 285*47852bffSJohn 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. 29446f5821aSJohn Scipione \param fullListIndex The index to add \a item at. 29546f5821aSJohn Scipione 29646f5821aSJohn Scipione \return \c true if the items was added, \c false otherwise. 297*47852bffSJohn Scipione 298*47852bffSJohn 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. 309*47852bffSJohn Scipione 310*47852bffSJohn 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. 319*47852bffSJohn Scipione 320*47852bffSJohn 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. 329*47852bffSJohn Scipione 330*47852bffSJohn Scipione \since BeOS R3 33146f5821aSJohn Scipione*/ 33246f5821aSJohn Scipione 33346f5821aSJohn Scipione 33446f5821aSJohn Scipione//! @} 33546f5821aSJohn Scipione 33646f5821aSJohn Scipione 33746f5821aSJohn Scipione/*! 338*47852bffSJohn Scipione \name Full List 33946f5821aSJohn Scipione 34046f5821aSJohn Scipione These methods replicate similar methods in BListView except work on the 34146f5821aSJohn Scipione full list. 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) 356*47852bffSJohn Scipione 357*47852bffSJohn 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) 368*47852bffSJohn Scipione 369*47852bffSJohn 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 37746f5821aSJohn Scipione \return The index of the item at \a where or -1 if not found. 37846f5821aSJohn Scipione 37946f5821aSJohn Scipione \see BListView::IndexOf(BPoint point) 380*47852bffSJohn Scipione 381*47852bffSJohn 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 38946f5821aSJohn Scipione \return A pointer to the first item in the list or \c NULL there are no 39046f5821aSJohn Scipione items. 39146f5821aSJohn Scipione 39246f5821aSJohn Scipione \see BListView::FirstItem() 393*47852bffSJohn Scipione 394*47852bffSJohn 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 40246f5821aSJohn Scipione \return A pointer to the last item in the list or \c NULL there are no 40346f5821aSJohn Scipione items. 40446f5821aSJohn Scipione 40546f5821aSJohn Scipione \see BListView::LastItem() 406*47852bffSJohn Scipione 407*47852bffSJohn 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) 420*47852bffSJohn Scipione 421*47852bffSJohn 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() 432*47852bffSJohn Scipione 433*47852bffSJohn 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) 446*47852bffSJohn Scipione 447*47852bffSJohn 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. 454*47852bffSJohn Scipione 455*47852bffSJohn 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() 466*47852bffSJohn Scipione 467*47852bffSJohn 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)) 478*47852bffSJohn Scipione 479*47852bffSJohn 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) 493*47852bffSJohn Scipione 494*47852bffSJohn 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. 507*47852bffSJohn Scipione 508*47852bffSJohn 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. 515*47852bffSJohn Scipione 516*47852bffSJohn 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. 523*47852bffSJohn Scipione 524*47852bffSJohn 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. 534*47852bffSJohn Scipione 535*47852bffSJohn Scipione \since BeOS R3 53646f5821aSJohn Scipione*/ 53746f5821aSJohn Scipione 53846f5821aSJohn Scipione 53946f5821aSJohn Scipione/*! 540*47852bffSJohn 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)) 55046f5821aSJohn Scipione \brief Sort the items according the 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 *)) 555*47852bffSJohn Scipione 556*47852bffSJohn 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. 570*47852bffSJohn Scipione 571*47852bffSJohn 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 58346f5821aSJohn Scipione \param superItem The base item. 58446f5821aSJohn Scipione \param oneLevelOnly if \c true, only items located one level under 58546f5821aSJohn Scipione superItem are considered. 58646f5821aSJohn Scipione 58746f5821aSJohn Scipione \return The number of items under \a superItem. 588*47852bffSJohn Scipione 589*47852bffSJohn Scipione \since BeOS R3 59046f5821aSJohn Scipione*/ 59146f5821aSJohn Scipione 59246f5821aSJohn Scipione 59346f5821aSJohn Scipione/*! 59446f5821aSJohn Scipione \fn BListItem* BOutlineListView::EachItemUnder(BListItem* superItem, 59546f5821aSJohn Scipione bool oneLevelOnly, BListItem* (*eachFunc)(BListItem* item, void* arg), 59646f5821aSJohn Scipione void* arg) 59746f5821aSJohn Scipione \brief Calls \a eachFunc for each item under \a superItem. 59846f5821aSJohn Scipione 59946f5821aSJohn Scipione \param superItem The base item. 60046f5821aSJohn Scipione \param oneLevelOnly if \c true, only items located one level under 60146f5821aSJohn Scipione superItem are considered. 60246f5821aSJohn Scipione \param eachFunc The function to call on each item. 60346f5821aSJohn Scipione \param arg The second argument of \a eachFunc. 604*47852bffSJohn Scipione 605*47852bffSJohn Scipione \since BeOS R3 60646f5821aSJohn Scipione*/ 60746f5821aSJohn Scipione 60846f5821aSJohn Scipione 60946f5821aSJohn Scipione/*! 61046f5821aSJohn Scipione \fn BListItem* BOutlineListView::ItemUnderAt(BListItem* superItem, 61146f5821aSJohn Scipione bool oneLevelOnly, int32 index) const 61246f5821aSJohn Scipione \brief Returns a pointer to the item at \a index under \a superItem. 61346f5821aSJohn Scipione 61446f5821aSJohn Scipione \note If \a oneLevelOnly is \a false, this method acts like 61546f5821aSJohn Scipione FullListItemAt() except the first item in the list is 61646f5821aSJohn Scipione considered to be \a superItem. 61746f5821aSJohn Scipione 61846f5821aSJohn Scipione \param superItem The base item. 61946f5821aSJohn Scipione \param oneLevelOnly if \c true, only items located one level under 62046f5821aSJohn Scipione superItem are considered. 62146f5821aSJohn Scipione \param index The index of the item to get. 62246f5821aSJohn Scipione 62346f5821aSJohn Scipione \return A pointer to the item at \a index under \a superItem or \c NULL 62446f5821aSJohn Scipione if not found. 625*47852bffSJohn Scipione 626*47852bffSJohn Scipione \since BeOS R3 62746f5821aSJohn Scipione*/ 62846f5821aSJohn Scipione 62946f5821aSJohn Scipione 63046f5821aSJohn Scipione/*! 63146f5821aSJohn Scipione \fn bool BOutlineListView::DoMiscellaneous(MiscCode code, MiscData* data) 63246f5821aSJohn Scipione \brief If \a code is \a B_SWAP_OP, swap the items in \a data, otherwise 63346f5821aSJohn Scipione pass the arguments to BListView::DoMiscellaneous(). 63446f5821aSJohn Scipione 63546f5821aSJohn Scipione \param code The action \a code to use. 63646f5821aSJohn Scipione \param data The \a data to act on. 63746f5821aSJohn Scipione 63846f5821aSJohn Scipione \see BListView::DoMiscellaneous() 639*47852bffSJohn Scipione 640*47852bffSJohn Scipione \since Haiku R1 64146f5821aSJohn Scipione*/ 64246f5821aSJohn Scipione 64346f5821aSJohn Scipione 64446f5821aSJohn Scipione/*! 64546f5821aSJohn Scipione \fn void BOutlineListView::ExpandOrCollapse(BListItem* item, bool expand) 64646f5821aSJohn Scipione \brief Toggle the expanded state of \a item. 64746f5821aSJohn Scipione 64846f5821aSJohn Scipione \param item The \a item to toggle. 64946f5821aSJohn Scipione \param expand If \c true, expand the \a item, if \c false, collapse the 65046f5821aSJohn Scipione \a item. 651*47852bffSJohn Scipione 652*47852bffSJohn Scipione \since Haiku R1 65346f5821aSJohn Scipione*/ 65446f5821aSJohn Scipione 65546f5821aSJohn Scipione 65646f5821aSJohn Scipione/*! 65746f5821aSJohn Scipione \fn BRect BOutlineListView::LatchRect(BRect itemRect, int32 level) const 65846f5821aSJohn Scipione \brief Used by derived classes to return the latch area. 65946f5821aSJohn Scipione 66046f5821aSJohn Scipione \param itemRect The area of the item to get the latch area of. 66146f5821aSJohn Scipione \param level The \a level of the item to get the latch area of. 662*47852bffSJohn Scipione 663*47852bffSJohn Scipione \since Haiku R1 66446f5821aSJohn Scipione*/ 66546f5821aSJohn Scipione 66646f5821aSJohn Scipione 66746f5821aSJohn Scipione/*! 66846f5821aSJohn Scipione \fn void BOutlineListView::DrawLatch(BRect itemRect, int32 level, 66946f5821aSJohn Scipione bool collapsed, bool highlighted, bool misTracked) 67046f5821aSJohn Scipione \brief Used by derived classes to draw the latch. 67146f5821aSJohn Scipione 67246f5821aSJohn Scipione \param itemRect The area of the item to get the latch area of, 67346f5821aSJohn Scipione this is passed to LatchRect() to get the latch area. 67446f5821aSJohn Scipione \param level The \a level of the item to get the latch area of, 67546f5821aSJohn Scipione also passed to LatchRect(). 67646f5821aSJohn Scipione \param collapsed \c true to draw the latch in a collapsed state, 67746f5821aSJohn Scipione \c false to draw the latch in an expanded state. 67846f5821aSJohn Scipione \param highlighted \c true to draw the latch in a selected state, 67946f5821aSJohn Scipione \c false to draw the latch in an unselected state. Unused 68046f5821aSJohn Scipione by the base class. 68146f5821aSJohn Scipione \param misTracked Unused by the base class. 682*47852bffSJohn Scipione 683*47852bffSJohn Scipione \since Haiku R1 68446f5821aSJohn Scipione*/ 68546f5821aSJohn Scipione 68646f5821aSJohn Scipione 68746f5821aSJohn Scipione/*! 68846f5821aSJohn Scipione \fn void BOutlineListView::DrawItem(BListItem* item, BRect itemRect, 68946f5821aSJohn Scipione bool complete) 690*47852bffSJohn Scipione \brief Used by derived classes to override how an \a item is drawn. 69146f5821aSJohn Scipione 69246f5821aSJohn Scipione \param item The \a item to draw. 69346f5821aSJohn Scipione \param itemRect The area of the \a item to draw. 69446f5821aSJohn Scipione \param complete Whether or not to draw the background in addition to the 69546f5821aSJohn Scipione contents. 696*47852bffSJohn Scipione 697*47852bffSJohn Scipione \since Haiku R1 69846f5821aSJohn Scipione*/ 699