Public Member Functions

ListBoxModel Class Reference

A subclass of this is used to drive a ListBox. More...

Inherited by FileListComponent [private], FileSearchPathListComponent [private], PluginListComponent, and TableListBox [private].

List of all members.

Public Member Functions

virtual ~ListBoxModel ()
 Destructor.
virtual int getNumRows ()=0
 This has to return the number of items in the list.
virtual void paintListBoxItem (int rowNumber, Graphics &g, int width, int height, bool rowIsSelected)=0
 This method must be implemented to draw a row of the list.
virtual ComponentrefreshComponentForRow (int rowNumber, bool isRowSelected, Component *existingComponentToUpdate)
 This is used to create or update a custom component to go in a row of the list.
virtual void listBoxItemClicked (int row, const MouseEvent &e)
 This can be overridden to react to the user clicking on a row.
virtual void listBoxItemDoubleClicked (int row, const MouseEvent &e)
 This can be overridden to react to the user double-clicking on a row.
virtual void backgroundClicked ()
 This can be overridden to react to the user double-clicking on a part of the list where there are no rows.
virtual void selectedRowsChanged (int lastRowSelected)
 Override this to be informed when rows are selected or deselected.
virtual void deleteKeyPressed (int lastRowSelected)
 Override this to be informed when the delete key is pressed.
virtual void returnKeyPressed (int lastRowSelected)
 Override this to be informed when the return key is pressed.
virtual void listWasScrolled ()
 Override this to be informed when the list is scrolled.
virtual const var getDragSourceDescription (const SparseSet< int > &currentlySelectedRows)
 To allow rows from your list to be dragged-and-dropped, implement this method.
virtual const String getTooltipForRow (int row)
 You can override this to provide tool tips for specific rows.

Detailed Description

A subclass of this is used to drive a ListBox.

See also:
ListBox

Constructor & Destructor Documentation

virtual ListBoxModel::~ListBoxModel (  ) [virtual]

Destructor.


Member Function Documentation

virtual int ListBoxModel::getNumRows (  ) [pure virtual]

This has to return the number of items in the list.

See also:
ListBox::getNumRows()

Implemented in PluginListComponent, TableListBox, FileListComponent, and FileSearchPathListComponent.

virtual void ListBoxModel::paintListBoxItem ( int  rowNumber,
Graphics g,
int  width,
int  height,
bool  rowIsSelected 
) [pure virtual]

This method must be implemented to draw a row of the list.

Implemented in PluginListComponent, TableListBox, FileListComponent, and FileSearchPathListComponent.

virtual Component* ListBoxModel::refreshComponentForRow ( int  rowNumber,
bool  isRowSelected,
Component existingComponentToUpdate 
) [virtual]

This is used to create or update a custom component to go in a row of the list.

Any row may contain a custom component, or can just be drawn with the paintListBoxItem() method and handle mouse clicks with listBoxItemClicked().

This method will be called whenever a custom component might need to be updated - e.g. when the table is changed, or TableListBox::updateContent() is called.

If you don't need a custom component for the specified row, then return 0.

If you do want a custom component, and the existingComponentToUpdate is null, then this method must create a suitable new component and return it.

If the existingComponentToUpdate is non-null, it will be a pointer to a component previously created by this method. In this case, the method must either update it to make sure it's correctly representing the given row (which may be different from the one that the component was created for), or it can delete this component and return a new one.

The component that your method returns will be deleted by the ListBox when it is no longer needed.

Reimplemented in TableListBox, and FileListComponent.

virtual void ListBoxModel::listBoxItemClicked ( int  row,
const MouseEvent e 
) [virtual]

This can be overridden to react to the user clicking on a row.

See also:
listBoxItemDoubleClicked
virtual void ListBoxModel::listBoxItemDoubleClicked ( int  row,
const MouseEvent e 
) [virtual]

This can be overridden to react to the user double-clicking on a row.

See also:
listBoxItemClicked

Reimplemented in FileSearchPathListComponent.

virtual void ListBoxModel::backgroundClicked (  ) [virtual]

This can be overridden to react to the user double-clicking on a part of the list where there are no rows.

See also:
listBoxItemClicked

Reimplemented in TableListBox.

virtual void ListBoxModel::selectedRowsChanged ( int  lastRowSelected ) [virtual]

Override this to be informed when rows are selected or deselected.

This will be called whenever a row is selected or deselected. If a range of rows is selected all at once, this will just be called once for that event.

Parameters:
lastRowSelectedthe last row that the user selected. If no rows are currently selected, this may be -1.

Reimplemented in TableListBox, FileListComponent, and FileSearchPathListComponent.

virtual void ListBoxModel::deleteKeyPressed ( int  lastRowSelected ) [virtual]

Override this to be informed when the delete key is pressed.

If no rows are selected when they press the key, this won't be called.

Parameters:
lastRowSelectedthe last row that had been selected when they pressed the key - if there are multiple selections, this might not be very useful

Reimplemented in PluginListComponent, TableListBox, FileListComponent, and FileSearchPathListComponent.

virtual void ListBoxModel::returnKeyPressed ( int  lastRowSelected ) [virtual]

Override this to be informed when the return key is pressed.

If no rows are selected when they press the key, this won't be called.

Parameters:
lastRowSelectedthe last row that had been selected when they pressed the key - if there are multiple selections, this might not be very useful

Reimplemented in TableListBox, FileListComponent, and FileSearchPathListComponent.

virtual void ListBoxModel::listWasScrolled (  ) [virtual]

Override this to be informed when the list is scrolled.

This might be caused by the user moving the scrollbar, or by programmatic changes to the list position.

Reimplemented in TableListBox.

virtual const var ListBoxModel::getDragSourceDescription ( const SparseSet< int > &  currentlySelectedRows ) [virtual]

To allow rows from your list to be dragged-and-dropped, implement this method.

If this returns a non-null variant then when the user drags a row, the listbox will try to find a DragAndDropContainer in its parent hierarchy, and will use it to trigger a drag-and-drop operation, using this string as the source description, with the listbox itself as the source component.

See also:
DragAndDropContainer::startDragging
virtual const String ListBoxModel::getTooltipForRow ( int  row ) [virtual]

You can override this to provide tool tips for specific rows.

See also:
TooltipClient

The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines