|
fltk 1.3.0rc3
About: FLTK (Fast Light Tool Kit) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. Release candidate.
SfR Fresh Dox: fltk-1.3.0rc3-source.tar.gz ("inofficial" and yet experimental doxygen-generated source code documentation) ![]() |
Tree widget. More...
#include <Fl_Tree.H>


Public Member Functions | |
| Fl_Tree (int X, int Y, int W, int H, const char *L=0) | |
| Constructor. | |
| ~Fl_Tree () | |
| Destructor. | |
| int | handle (int e) |
| Standard FLTK event handler for this widget. | |
| void | draw () |
| Standard FLTK draw() method, handles draws the tree widget. | |
| void | root_label (const char *new_label) |
| Fl_Tree_Item * | root () |
| Returns the root item. | |
| Fl_Tree_Item * | add (const char *path) |
| Fl_Tree_Item * | add (Fl_Tree_Item *item, const char *name) |
| Fl_Tree_Item * | insert_above (Fl_Tree_Item *above, const char *name) |
| Fl_Tree_Item * | insert (Fl_Tree_Item *item, const char *name, int pos) |
| int | remove (Fl_Tree_Item *item) |
| void | clear () |
| void | clear_children (Fl_Tree_Item *item) |
Clear all the children of a particular node in the tree specified by item. | |
| Fl_Tree_Item * | find_item (const char *path) |
| const Fl_Tree_Item * | find_item (const char *path) const |
| A const version of Fl_Tree::find_item(const char *path) | |
| int | item_pathname (char *pathname, int pathnamelen, const Fl_Tree_Item *item) const |
| const Fl_Tree_Item * | find_clicked () const |
| Fl_Tree_Item * | item_clicked () |
| Fl_Tree_Item * | first () |
| Fl_Tree_Item * | next (Fl_Tree_Item *item=0) |
| Fl_Tree_Item * | prev (Fl_Tree_Item *item=0) |
| Fl_Tree_Item * | last () |
| Fl_Tree_Item * | first_selected_item () |
| Fl_Tree_Item * | next_selected_item (Fl_Tree_Item *item=0) |
| int | open (Fl_Tree_Item *item, int docallback=1) |
| int | open (const char *path, int docallback=1) |
| void | open_toggle (Fl_Tree_Item *item, int docallback=1) |
| int | close (Fl_Tree_Item *item, int docallback=1) |
| int | close (const char *path, int docallback=1) |
| int | is_open (Fl_Tree_Item *item) const |
| int | is_open (const char *path) const |
| int | is_close (Fl_Tree_Item *item) const |
| int | is_close (const char *path) const |
| int | select (Fl_Tree_Item *item, int docallback=1) |
| int | select (const char *path, int docallback=1) |
| void | select_toggle (Fl_Tree_Item *item, int docallback=1) |
| int | deselect (Fl_Tree_Item *item, int docallback=1) |
| int | deselect (const char *path, int docallback=1) |
| int | deselect_all (Fl_Tree_Item *item=0, int docallback=1) |
| int | select_only (Fl_Tree_Item *selitem, int docallback=1) |
| int | select_all (Fl_Tree_Item *item=0, int docallback=1) |
| void | set_item_focus (Fl_Tree_Item *o) |
| int | is_selected (Fl_Tree_Item *item) const |
| int | is_selected (const char *path) |
| void | show_self () |
| int | labelsize () const |
| Get the default label fontsize used for creating new items. | |
| void | labelsize (int val) |
| int | labelfont () const |
| void | labelfont (int val) |
| int | marginleft () const |
| void | marginleft (int val) |
| int | margintop () const |
| void | margintop (int val) |
| int | openchild_marginbottom () const |
| void | openchild_marginbottom (int val) |
| int | connectorwidth () const |
| void | connectorwidth (int val) |
| Fl_Image * | usericon () const |
| void | usericon (Fl_Image *val) |
| Fl_Image * | openicon () const |
| void | openicon (Fl_Image *val) |
| Fl_Image * | closeicon () const |
| void | closeicon (Fl_Image *val) |
| int | showcollapse () const |
| Returns 1 if the collapse icon is enabled, 0 if not. | |
| void | showcollapse (int val) |
| int | showroot () const |
| Returns 1 if the root item is to be shown, or 0 if not. | |
| void | showroot (int val) |
| Fl_Tree_Connector | connectorstyle () const |
| Returns the line drawing style for inter-connecting items. | |
| void | connectorstyle (Fl_Tree_Connector val) |
| Sets the line drawing style for inter-connecting items. | |
| Fl_Tree_Sort | sortorder () const |
| void | sortorder (Fl_Tree_Sort val) |
| Gets the sort order used to add items to the tree. | |
| Fl_Boxtype | selectbox () const |
| void | selectbox (Fl_Boxtype val) |
| Fl_Tree_Select | selectmode () const |
| Gets the tree's current selection mode. | |
| void | selectmode (Fl_Tree_Select val) |
| Sets the tree's selection mode. | |
| int | displayed (Fl_Tree_Item *item) |
| void | show_item (Fl_Tree_Item *item, int yoff) |
| void | show_item (Fl_Tree_Item *item) |
| void | show_item_bottom (Fl_Tree_Item *item) |
Adjust the vertical scrollbar so that item is at the bottom of the display. | |
| void | show_item_middle (Fl_Tree_Item *item) |
Adjust the vertical scrollbar so that item is in the middle of the display. | |
| void | show_item_top (Fl_Tree_Item *item) |
Adjust the vertical scrollbar so that item is at the top of the display. | |
| void | display (Fl_Tree_Item *item) |
| int | vposition () const |
| void | vposition (int ypos) |
| int | is_scrollbar (Fl_Widget *w) |
| int | scrollbar_size () const |
| void | scrollbar_size (int size) |
| void | callback_item (Fl_Tree_Item *item) |
| Fl_Tree_Item * | callback_item () |
| void | callback_reason (Fl_Tree_Reason reason) |
| Fl_Tree_Reason | callback_reason () const |
| void | load (class Fl_Preferences &) |
| Load FLTK preferences. | |
Protected Member Functions | |
| void | item_clicked (Fl_Tree_Item *val) |
| void | do_callback_for_item (Fl_Tree_Item *item, Fl_Tree_Reason reason) |
| Do the callback for the item, setting the item and reason. | |
| Fl_Tree_Item * | next_visible_item (Fl_Tree_Item *start, int dir) |
Protected Attributes | |
| Fl_Scrollbar * | _vscroll |
| Vertical scrollbar. | |
Tree widget.
Fl_Tree // Top level widget |--- Fl_Tree_Item // Items in the tree |--- Fl_Tree_Prefs // Preferences for the tree |--- Fl_Tree_Connector (enum) // Connection modes |--- Fl_Tree_Select (enum) // Selection modes |--- Fl_Tree_Sort (enum) // Sort behavior
An expandable tree widget.
Similar to Fl_Browser, Fl_Tree is browser of Fl_Tree_Item's, which can be in a parented hierarchy. Subtrees can be expanded or closed. Items can be added, deleted, inserted, sorted and re-ordered.
The tree items may also contain other FLTK widgets, like buttons, input fields, or even "custom" widgets.
The callback() is invoked depending on the value of when():
The simple way to define a tree:
#include <FL/Fl_Tree.H> [..] Fl_Tree tree(X,Y,W,H); tree.begin(); tree.add("Flintstones/Fred"); tree.add("Flintstones/Wilma"); tree.add("Flintstones/Pebbles"); tree.add("Simpsons/Homer"); tree.add("Simpsons/Marge"); tree.add("Simpsons/Bart"); tree.add("Simpsons/Lisa"); tree.end();
Items can be added with add(), removed with remove(), completely cleared with clear(), inserted with insert() and insert_above(), selected/deselected with select() and deselect(), open/closed with open() and closed(). Children of an item can be swapped around with Fl_Tree_Item::swap_children(), sorting can be controlled when items are add()ed via sortorder(). You can walk the entire tree with first() and next(). You can walk selected items with first_selected_item() and next_selected_item(). Items can be found by their pathname using find_item(const char*), and an item's pathname can be found with item_pathname().
The tree can have different selection behaviors controlled by selectmode().
FLTK widgets (including custom widgets) can be assigned to tree items via Fl_Tree_Item::widget().
Icons for individual items can be changed with Fl_Tree_Item::openicon(), Fl_Tree_Item::closeicon(), Fl_Tree_Item::usericon().
Various default preferences can be globally manipulated via Fl_Tree_Prefs, including colors, margins, icons, connection lines.
The tree's callback() will be invoked when items change state or are open/closed. when() controls when mouse/keyboard events invoke the callback. callback_item() and callback_reason() can be used to determine the cause of the callback.
| Fl_Tree::Fl_Tree | ( | int | X, |
| int | Y, | ||
| int | W, | ||
| int | H, | ||
| const char * | L = 0 |
||
| ) |
Constructor.
Definition at line 87 of file Fl_Tree.cxx.
References _vscroll, Fl_Widget::box(), Fl_Widget::callback(), Fl_Widget::color(), Fl_Group::end(), FL_DOWN_BOX, Fl_Tree_Item, FL_TREE_REASON_NONE, FL_VERTICAL, FL_WHEN_CHANGED, FL_WHITE, Fl_Widget::hide(), Fl_Tree_Item::label(), Fl_Tree_Item::parent(), Fl_Valuator::step(), Fl_Widget::type(), and Fl_Widget::when().
| Fl_Tree::~Fl_Tree | ( | ) |
Destructor.
Definition at line 107 of file Fl_Tree.cxx.
| Fl_Tree_Item * Fl_Tree::add | ( | const char * | path | ) |
Adds a new item, given a 'menu style' path, eg: "/Parent/Child/item". Any parent nodes that don't already exist are created automatically. Adds the item based on the value of sortorder().
Definition at line 116 of file Fl_Tree.cxx.
References Fl_Tree_Item::add(), Fl_Tree_Item, Fl_Tree_Item::label(), and Fl_Tree_Item::parent().
Referenced by load(), and Fl_Tree_Type::widget().
| Fl_Tree_Item * Fl_Tree::add | ( | Fl_Tree_Item * | item, |
| const char * | name | ||
| ) |
Add a new child to a tree-item.
| [in] | item | The existing item to add new child to |
| [in] | name | The label for the new item |
Definition at line 152 of file Fl_Tree.cxx.
References Fl_Tree_Item::add().
| void Fl_Tree::callback_item | ( | Fl_Tree_Item * | item | ) | [inline] |
| Fl_Tree_Item* Fl_Tree::callback_item | ( | ) | [inline] |
Gets the item that caused the callback. The callback() can use this value to see which item changed.
| void Fl_Tree::callback_reason | ( | Fl_Tree_Reason | reason | ) | [inline] |
| Fl_Tree_Reason Fl_Tree::callback_reason | ( | ) | const [inline] |
Gets the reason for this callback.
The callback() can use this value to see why it was called. Example:
void MyTreeCallback(Fl_Widget *w, void *userdata) { Fl_Tree *tree = (Fl_Tree*)w; Fl_Tree_Item *item = tree->callback_item(); // the item changed (can be NULL if more than one item was changed!) switch ( tree->callback_reason() ) { // reason callback was invoked case FL_TREE_REASON_OPENED: ..item was opened.. case FL_TREE_REASON_CLOSED: ..item was closed.. case FL_TREE_REASON_SELECTED: ..item was selected.. case FL_TREE_REASON_DESELECTED: ..item was deselected.. } }
| void Fl_Tree::clear | ( | ) | [inline] |
| void Fl_Tree::clear_children | ( | Fl_Tree_Item * | item | ) | [inline] |
Clear all the children of a particular node in the tree specified by item.
Definition at line 211 of file Fl_Tree.H.
References Fl_Tree_Item::clear_children(), Fl_Tree_Item::has_children(), and Fl_Widget::redraw().
| int Fl_Tree::close | ( | Fl_Tree_Item * | item, |
| int | docallback = 1 |
||
| ) | [inline] |
Closes the specified item. Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | -- the item to be closed |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 346 of file Fl_Tree.H.
References Fl_Tree_Item::close(), FL_TREE_REASON_CLOSED, Fl_Tree_Item::is_close(), and Fl_Widget::redraw().
Referenced by handle().
| int Fl_Tree::close | ( | const char * | path, |
| int | docallback = 1 |
||
| ) | [inline] |
Closes the item specified by path, eg: "Parent/child/item". Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | path | -- the tree item's pathname (eg. "Flintstones/Fred") |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
| void Fl_Tree::closeicon | ( | Fl_Image * | val | ) | [inline] |
Sets the icon to be used as the 'close' icon. This overrides the built in default '[-]' icon.
| [in] | val | -- The new image, or zero to use the default [-] icon. |
Definition at line 732 of file Fl_Tree.H.
References Fl_Widget::redraw().
| Fl_Image* Fl_Tree::closeicon | ( | ) | const [inline] |
| Fl_Tree_Connector Fl_Tree::connectorstyle | ( | ) | const [inline] |
| void Fl_Tree::connectorstyle | ( | Fl_Tree_Connector | val | ) | [inline] |
Sets the line drawing style for inter-connecting items.
Definition at line 769 of file Fl_Tree.H.
References Fl_Widget::redraw().
| int Fl_Tree::connectorwidth | ( | ) | const [inline] |
| void Fl_Tree::connectorwidth | ( | int | val | ) | [inline] |
Sets the width of the horizontal connection lines (in pixels) that appear to the left of each tree item's label.
Definition at line 681 of file Fl_Tree.H.
References Fl_Widget::redraw().
| int Fl_Tree::deselect | ( | Fl_Tree_Item * | item, |
| int | docallback = 1 |
||
| ) | [inline] |
De-select the specified item. Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | -- the item to be selected |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 528 of file Fl_Tree.H.
References Fl_Tree_Item::deselect(), FL_TREE_REASON_DESELECTED, Fl_Tree_Item::is_selected(), Fl_Widget::redraw(), and Fl_Widget::set_changed().
Referenced by deselect_all(), and select_only().
| int Fl_Tree::deselect | ( | const char * | path, |
| int | docallback = 1 |
||
| ) | [inline] |
Deselect an item specified by path (eg: "Parent/child/item"). Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | path | -- the tree item's pathname (eg. "Flintstones/Fred") |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 558 of file Fl_Tree.H.
References deselect().
| int Fl_Tree::deselect_all | ( | Fl_Tree_Item * | item = 0, |
| int | docallback = 1 |
||
| ) |
Deselect item and all its children. If item is NULL, first() is used. Handles calling redraw() if anything was changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | The item that will be deselected (along with all its children) |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 696 of file Fl_Tree.cxx.
References deselect(), first(), Fl_Tree_Item::is_selected(), and next().
Referenced by handle().
| void Fl_Tree::display | ( | Fl_Tree_Item * | item | ) |
Displays item, scrolling the tree as necessary.
| [in] | item | The item to be displayed. |
Definition at line 862 of file Fl_Tree.cxx.
References show_item_middle().
| int Fl_Tree::displayed | ( | Fl_Tree_Item * | item | ) |
See if item is currently displayed on-screen (visible within the widget). This can be used to detect if the item is scrolled off-screen. Checks to see if the item's vertical position is within the top and bottom edges of the display window. This does NOT take into account the hide()/show() status of the item.
Definition at line 799 of file Fl_Tree.cxx.
References Fl_Tree_Item::h(), Fl_Widget::h(), Fl_Widget::y(), and Fl_Tree_Item::y().
Referenced by show_item().
| void Fl_Tree::do_callback_for_item | ( | Fl_Tree_Item * | item, |
| Fl_Tree_Reason | reason | ||
| ) | [inline, protected] |
Do the callback for the item, setting the item and reason.
Definition at line 149 of file Fl_Tree.H.
References Fl_Widget::do_callback(), and Fl_Widget::user_data().
| void Fl_Tree::draw | ( | void | ) | [virtual] |
Standard FLTK draw() method, handles draws the tree widget.
Reimplemented from Fl_Group.
Definition at line 229 of file Fl_Tree.cxx.
References _vscroll, Fl_Widget::box(), Fl::box_dh(), Fl::box_dw(), Fl::box_dx(), Fl::box_dy(), Fl_Tree_Item::draw(), Fl_Widget::draw_box(), Fl_Group::draw_children(), Fl_Widget::draw_label(), fl_font(), fl_pop_clip(), fl_push_clip(), Fl::focus(), Fl_Widget::h(), Fl_Widget::hide(), Fl_Tree_Prefs::labelfont(), Fl_Tree_Prefs::labelsize(), Fl_Tree_Prefs::marginleft(), Fl_Tree_Prefs::margintop(), Fl_Valuator::range(), Fl_Widget::resize(), scrollbar_size(), Fl_Widget::show(), Fl_Slider::slider_size(), Fl_Scrollbar::value(), Fl_Widget::visible(), Fl_Widget::w(), Fl_Widget::x(), and Fl_Widget::y().
| const Fl_Tree_Item * Fl_Tree::find_clicked | ( | ) | const |
Find the item that was clicked. You should use callback_item() instead, which is fast, and is meant to be used within a callback to determine the item clicked.
This method walks the entire tree looking for the first item that is under the mouse (ie. at Fl::event_x()/Fl:event_y().
Use this method /only/ if you've subclassed Fl_Tree, and are receiving events before Fl_Tree has been able to process and update callback_item().
Definition at line 331 of file Fl_Tree.cxx.
References Fl_Tree_Item::find_clicked().
| const Fl_Tree_Item * Fl_Tree::find_item | ( | const char * | path | ) | const |
A const version of Fl_Tree::find_item(const char *path)
Definition at line 176 of file Fl_Tree.cxx.
References Fl_Tree_Item::find_item().
| Fl_Tree_Item * Fl_Tree::find_item | ( | const char * | path | ) |
Find the item, given a menu style path, eg: "/Parent/Child/item".
There is both a const and non-const version of this method. Const version allows pure const methods to use this method to do lookups without causing compiler errors.
| [in] | path | -- the tree item's pathname to be found (eg. "Flintstones/Fred") |
Definition at line 167 of file Fl_Tree.cxx.
References Fl_Tree_Item::find_item().
| Fl_Tree_Item * Fl_Tree::first | ( | ) |
Returns the first item in the tree.
Use this to walk the tree in the forward direction, eg:
for ( Fl_Tree_Item *item = tree->first(); item; item = tree->next() ) { printf("Item: %s\n", item->label()); }
Definition at line 358 of file Fl_Tree.cxx.
Referenced by deselect_all(), handle(), next_selected_item(), next_visible_item(), select_all(), select_only(), show_item_bottom(), show_item_middle(), and show_item_top().
| Fl_Tree_Item * Fl_Tree::first_selected_item | ( | ) |
Returns the first selected item in the tree.
Use this to walk the tree looking for all the selected items, eg:
for ( Fl_Tree_Item *item = tree->first_selected_item(); item; item = tree->next_selected_item(item) ) { printf("Item: %s\n", item->label()); }
Definition at line 438 of file Fl_Tree.cxx.
References next_selected_item().
| int Fl_Tree::handle | ( | int | e | ) | [virtual] |
Standard FLTK event handler for this widget.
Reimplemented from Fl_Group.
Definition at line 468 of file Fl_Tree.cxx.
References _vscroll, close(), deselect_all(), Fl::event_button(), Fl::event_inside(), Fl::event_key(), Fl_Tree_Item::event_on_collapse_icon(), Fl_Tree_Item::event_on_label(), Fl::event_state(), Fl::event_y(), Fl_Tree_Item::find_clicked(), first(), FL_CTRL, FL_Down, FL_DRAG, FL_Enter, FL_ENTER, FL_FOCUS, FL_KEYBOARD, FL_KP_Enter, FL_LEAVE, FL_Left, FL_LEFT_MOUSE, FL_PUSH, FL_Right, FL_SHIFT, FL_Tab, FL_TREE_SELECT_MULTI, FL_TREE_SELECT_NONE, FL_TREE_SELECT_SINGLE, FL_UNFOCUS, FL_Up, FL_WHEN_ENTER_KEY, Fl_Group::focus(), Fl_Widget::h(), Fl_Tree_Item::h(), Fl_Group::handle(), Fl_Tree_Item::is_close(), Fl_Tree_Item::is_open(), Fl_Tree_Item::is_selected(), Fl_Valuator::maximum(), next_visible_item(), open(), open_toggle(), Fl_Widget::redraw(), select(), select_only(), select_toggle(), Fl_Tree_Prefs::selectmode(), set_item_focus(), show_item(), show_item_bottom(), show_item_top(), Fl_Widget::visible(), Fl::visible_focus(), Fl_Widget::visible_focus(), vposition(), Fl_Widget::when(), Fl_Tree_Item::widget(), Fl_Widget::y(), and Fl_Tree_Item::y().
| Fl_Tree_Item * Fl_Tree::insert | ( | Fl_Tree_Item * | item, |
| const char * | name, | ||
| int | pos | ||
| ) |
Insert a new item into a tree-item's children at a specified position.
| [in] | item | The existing item to insert new child into |
| [in] | name | The label for the new item |
| [in] | pos | The position of the new item in the child list |
Definition at line 142 of file Fl_Tree.cxx.
References Fl_Tree_Item::insert().
| Fl_Tree_Item * Fl_Tree::insert_above | ( | Fl_Tree_Item * | above, |
| const char * | name | ||
| ) |
Inserts a new item above the specified Fl_Tree_Item, with the label set to 'name'.
Definition at line 131 of file Fl_Tree.cxx.
References Fl_Tree_Item::insert_above().
| int Fl_Tree::is_close | ( | Fl_Tree_Item * | item | ) | const [inline] |
See if the specified item is closed.
| [in] | item | -- the item to be tested |
Definition at line 419 of file Fl_Tree.H.
References Fl_Tree_Item::is_close().
| int Fl_Tree::is_close | ( | const char * | path | ) | const [inline] |
See if item specified by path (eg: "Parent/child/item") is closed.
| [in] | path | -- the tree item's pathname (eg. "Flintstones/Fred") |
Definition at line 431 of file Fl_Tree.H.
References Fl_Tree_Item::is_close().
| int Fl_Tree::is_open | ( | const char * | path | ) | const [inline] |
See if item specified by path (eg: "Parent/child/item") is open.
Items that are 'open' are themselves not necessarily visible; one of the item's parents might be closed.
| [in] | path | -- the tree item's pathname (eg. "Flintstones/Fred") |
Definition at line 406 of file Fl_Tree.H.
References Fl_Tree_Item::is_open().
| int Fl_Tree::is_open | ( | Fl_Tree_Item * | item | ) | const [inline] |
See if item is open.
Items that are 'open' are themselves not necessarily visible; one of the item's parents might be closed.
| [in] | item | -- the item to be tested |
Definition at line 391 of file Fl_Tree.H.
References Fl_Tree_Item::is_open().
| int Fl_Tree::is_scrollbar | ( | Fl_Widget * | w | ) | [inline] |
See if widget w is one of the Fl_Tree widget's scrollbars. Use this to skip over the scrollbars when walking the child() array. Example:
for ( int i=0; i<tree->children(); i++ ) { // walk children Fl_Widget *w= tree->child(i); if ( brow->is_scrollbar(w) ) continue; // skip scrollbars ..do work here.. }
| [in] | w | Widget to test |
w is a scrollbar, 0 if not. | int Fl_Tree::is_selected | ( | Fl_Tree_Item * | item | ) | const [inline] |
See if the specified item is selected.
| [in] | item | -- the item to be tested |
Definition at line 577 of file Fl_Tree.H.
References Fl_Tree_Item::is_selected().
| int Fl_Tree::is_selected | ( | const char * | path | ) | [inline] |
| void Fl_Tree::item_clicked | ( | Fl_Tree_Item * | val | ) | [protected] |
Set the item that was last clicked. Should only be used by subclasses needing to change this value. Normally Fl_Tree manages this value.
Deprecated: use callback_item() instead.
Definition at line 342 of file Fl_Tree.cxx.
References val.
| Fl_Tree_Item* Fl_Tree::item_clicked | ( | ) | [inline] |
Return the item that was last clicked.
Valid only from within the callback().
Deprecated: use callback_item() instead.
| int Fl_Tree::item_pathname | ( | char * | pathname, |
| int | pathnamelen, | ||
| const Fl_Tree_Item * | item | ||
| ) | const |
Find the pathname for the specified item. If item is NULL, root() is used. The tree's root will be included in the pathname of showroot() is on.
| [in] | pathname | The string to use to return the pathname |
| [in] | pathnamelen | The maximum length of the string (including NULL). Must not be zero. |
| [in] | item | The item whose pathname is to be returned. |
pathname returns the item's pathname)Definition at line 205 of file Fl_Tree.cxx.
References Fl_Tree_Item::is_root(), Fl_Tree_Item::label(), name, Fl_Tree_Item::parent(), SAFE_RCAT, and showroot().
| int Fl_Tree::labelfont | ( | ) | const [inline] |
Get the default font face used for item's labels when new items are created.
Don't use this if you want to change an existing label() size; use item->labelfont() instead.
Reimplemented from Fl_Widget.
| void Fl_Tree::labelfont | ( | int | val | ) | [inline] |
Set the default font face used for item's labels when new items are created.
Don't use this if you want to change an existing label() size; use item->labelfont(int) instead.
Reimplemented from Fl_Widget.
| int Fl_Tree::labelsize | ( | ) | const [inline] |
| void Fl_Tree::labelsize | ( | int | val | ) | [inline] |
Set the default label font size used for creating new items. To change the font size on a per-item basis, use Fl_Tree_Item::labelsize(int)
Reimplemented from Fl_Widget.
| Fl_Tree_Item * Fl_Tree::last | ( | ) |
Returns the last item in the tree.
This can be used to walk the tree in reverse, eg:
for ( Fl_Tree_Item *item = tree->last(); item; item = tree->prev() ) { printf("Item: %s\n", item->label()); }
Definition at line 417 of file Fl_Tree.cxx.
References Fl_Tree_Item::child(), Fl_Tree_Item::children(), and Fl_Tree_Item::has_children().
Referenced by next_visible_item().
| void Fl_Tree::load | ( | class Fl_Preferences & | prefs | ) |
Load FLTK preferences.
Read a preferences database into the tree widget. A preferences database is a hierarchical collection of data which can be directly loaded into the tree view for inspection.
| [in] | prefs | the Fl_Preferences database |
Definition at line 873 of file Fl_Tree.cxx.
References add(), Fl_Preferences::entries(), Fl_Preferences::entry(), Fl_Preferences::get(), Fl_Preferences::groups(), i, key, Fl_Preferences::path(), and val.
| int Fl_Tree::marginleft | ( | ) | const [inline] |
| void Fl_Tree::marginleft | ( | int | val | ) | [inline] |
Set the amount of white space (in pixels) that should appear between the widget's left border and the left side of the tree's contents.
Definition at line 642 of file Fl_Tree.H.
References Fl_Widget::redraw().
| int Fl_Tree::margintop | ( | ) | const [inline] |
| void Fl_Tree::margintop | ( | int | val | ) | [inline] |
Sets the amount of white space (in pixels) that should appear between the widget's top border and the top of the tree's contents.
Definition at line 655 of file Fl_Tree.H.
References Fl_Widget::redraw().
| Fl_Tree_Item * Fl_Tree::next | ( | Fl_Tree_Item * | item = 0 | ) |
Return the next item after item, or 0 if no more items.
Use this code to walk the entire tree:
for ( Fl_Tree_Item *item = tree->first(); item; item = tree->next(item) ) { printf("Item: %s\n", item->label()); }
| [in] | item | The item to use to find the next item. If NULL, returns NULL |
Definition at line 377 of file Fl_Tree.cxx.
References Fl_Tree_Item::next().
Referenced by deselect_all(), and select_all().
| Fl_Tree_Item * Fl_Tree::next_selected_item | ( | Fl_Tree_Item * | item = 0 | ) |
Returns the next selected item after item. If item is 0, search starts at the first item (root).
Use this to walk the tree looking for all the selected items, eg:
for ( Fl_Tree_Item *item = tree->first_selected_item(); item; item = tree->next_selected_item(item) ) { printf("Item: %s\n", item->label()); }
| [in] | item | The item to use to find the next selected item. If NULL, first() is used. |
Definition at line 456 of file Fl_Tree.cxx.
References first(), Fl_Tree_Item::is_selected(), and Fl_Tree_Item::next().
Referenced by first_selected_item().
| Fl_Tree_Item * Fl_Tree::next_visible_item | ( | Fl_Tree_Item * | item, |
| int | dir | ||
| ) | [protected] |
Returns next visible item above (dir==Fl_Up) or below (dir==Fl_Down) the specified item. If item is 0, returns first() if dir is Fl_Up, or last() if dir is FL_Down.
| [in] | item | The item above/below which we'll find the next visible item |
| [in] | dir | The direction to search. Can be FL_Up or FL_Down. |
item. Definition at line 294 of file Fl_Tree.cxx.
References first(), FL_Down, FL_Up, last(), Fl_Tree_Item::next_displayed(), Fl_Tree_Item::prev_displayed(), and Fl_Tree_Item::visible_r().
Referenced by handle().
| int Fl_Tree::open | ( | const char * | path, |
| int | docallback = 1 |
||
| ) | [inline] |
Opens the item specified by path (eg: "Parent/child/item"). This causes the item's children (if any) to be shown. Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | path | -- the tree item's pathname (eg. "Flintstones/Fred") |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
| int Fl_Tree::open | ( | Fl_Tree_Item * | item, |
| int | docallback = 1 |
||
| ) | [inline] |
Open the specified 'item'. This causes the item's children (if any) to be shown. Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | -- the item to be opened |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 270 of file Fl_Tree.H.
References FL_TREE_REASON_OPENED, Fl_Tree_Item::is_open(), Fl_Tree_Item::open(), and Fl_Widget::redraw().
Referenced by handle().
| void Fl_Tree::open_toggle | ( | Fl_Tree_Item * | item, |
| int | docallback = 1 |
||
| ) | [inline] |
Toggle the open state of item. Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | -- the item to be opened |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 320 of file Fl_Tree.H.
References Fl_Tree_Item::is_open().
Referenced by handle().
| int Fl_Tree::openchild_marginbottom | ( | ) | const [inline] |
| void Fl_Tree::openchild_marginbottom | ( | int | val | ) | [inline] |
Set the amount of white space (in pixels) that should appear below an open child tree's contents.
Definition at line 668 of file Fl_Tree.H.
References Fl_Widget::redraw().
| Fl_Image* Fl_Tree::openicon | ( | ) | const [inline] |
| void Fl_Tree::openicon | ( | Fl_Image * | val | ) | [inline] |
Sets the icon to be used as the 'open' icon. This overrides the built in default '[+]' icon.
| [in] | val | -- The new image, or zero to use the default [+] icon. |
Definition at line 716 of file Fl_Tree.H.
References Fl_Widget::redraw().
| Fl_Tree_Item * Fl_Tree::prev | ( | Fl_Tree_Item * | item = 0 | ) |
Return the previous item before item, or 0 if no more items.
This can be used to walk the tree in reverse, eg:
for ( Fl_Tree_Item *item = tree->first(); item; item = tree->prev(item) ) { printf("Item: %s\n", item->label()); }
| [in] | item | The item to use to find the previous item. If NULL, returns NULL |
Definition at line 398 of file Fl_Tree.cxx.
References Fl_Tree_Item::prev().
| int Fl_Tree::remove | ( | Fl_Tree_Item * | item | ) | [inline] |
Remove the specified item from the tree. If it has children, all those are removed too.
Definition at line 191 of file Fl_Tree.H.
References Fl_Group::clear(), Fl_Tree_Item::parent(), and Fl_Tree_Item::remove_child().
| Fl_Tree_Item* Fl_Tree::root | ( | ) | [inline] |
| void Fl_Tree::root_label | ( | const char * | new_label | ) | [inline] |
| int Fl_Tree::scrollbar_size | ( | ) | const [inline] |
Gets the current size of the scrollbars' troughs, in pixels.
If this value is zero (default), this widget will use the global Fl::scrollbar_size() value as the scrollbar's width.
Definition at line 840 of file Fl_Tree.H.
Referenced by draw().
| void Fl_Tree::scrollbar_size | ( | int | size | ) | [inline] |
Sets the pixel size of the scrollbars' troughs to the size, in pixels.
Normally you should not need this method, and should use the global Fl::scrollbar_size(int) instead to manage the size of ALL your widgets' scrollbars. This ensures your application has a consistent UI, is the default behavior, and is normally what you want.
Only use THIS method if you really need to override the global scrollbar size. The need for this should be rare.
Setting size to the special value of 0 causes the widget to track the global Fl::scrollbar_size(), which is the default.
| [in] | size | Sets the scrollbar size in pixels. If 0 (default), scrollbar size tracks the global Fl::scrollbar_size() |
Definition at line 861 of file Fl_Tree.H.
References Fl_Widget::h(), Fl::scrollbar_size(), Fl_Widget::size(), Fl_Widget::w(), and Fl_Widget::x().
| int Fl_Tree::select | ( | const char * | path, |
| int | docallback = 1 |
||
| ) | [inline] |
Select the item specified by path (eg: "Parent/child/item"). Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | path | -- the tree item's pathname (eg. "Flintstones/Fred") |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 484 of file Fl_Tree.H.
References select().
| int Fl_Tree::select | ( | Fl_Tree_Item * | item, |
| int | docallback = 1 |
||
| ) | [inline] |
Select the specified item. Use 'deselect()' to de-select it. Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | -- the item to be selected |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 454 of file Fl_Tree.H.
References FL_TREE_REASON_SELECTED, Fl_Tree_Item::is_selected(), Fl_Widget::redraw(), Fl_Tree_Item::select(), and Fl_Widget::set_changed().
Referenced by handle(), select_all(), and select_only().
| int Fl_Tree::select_all | ( | Fl_Tree_Item * | item = 0, |
| int | docallback = 1 |
||
| ) |
Select item and all its children. If item is NULL, first() is used. Handles calling redraw() if anything was changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | The item that will be selected (along with all its children). If NULL, first() is assumed. |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 725 of file Fl_Tree.cxx.
References first(), Fl_Tree_Item::is_selected(), next(), and select().
| int Fl_Tree::select_only | ( | Fl_Tree_Item * | selitem, |
| int | docallback = 1 |
||
| ) |
Select only the specified item, deselecting all others that might be selected. If item is 0, first() is used. Handles calling redraw() if anything was changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | selitem | The item to be selected. If NULL, first() is used. |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 754 of file Fl_Tree.cxx.
References Fl_Widget::changed(), deselect(), first(), Fl_Tree_Item::is_selected(), Fl_Tree_Item::next(), and select().
Referenced by handle().
| void Fl_Tree::select_toggle | ( | Fl_Tree_Item * | item, |
| int | docallback = 1 |
||
| ) | [inline] |
Toggle the select state of the specified item. Handles redrawing if anything was actually changed. Invokes the callback depending on the value of optional parameter docallback.
The callback can use callback_item() and callback_reason() respectively to determine the item changed and the reason the callback was called.
| [in] | item | -- the item to be selected |
| [in] | docallback | -- A flag that determines if the callback() is invoked or not:
|
Definition at line 502 of file Fl_Tree.H.
References FL_TREE_REASON_DESELECTED, FL_TREE_REASON_SELECTED, Fl_Tree_Item::is_selected(), Fl_Widget::redraw(), Fl_Tree_Item::select_toggle(), and Fl_Widget::set_changed().
Referenced by handle().
| Fl_Boxtype Fl_Tree::selectbox | ( | ) | const [inline] |
Sets the style of box used to draw selected items. This is an fltk Fl_Boxtype. The default is influenced by FLTK's current Fl::scheme()
| void Fl_Tree::selectbox | ( | Fl_Boxtype | val | ) | [inline] |
Gets the style of box used to draw selected items. This is an fltk Fl_Boxtype. The default is influenced by FLTK's current Fl::scheme()
Definition at line 795 of file Fl_Tree.H.
References Fl_Widget::redraw().
| void Fl_Tree::selectmode | ( | Fl_Tree_Select | val | ) | [inline] |
| Fl_Tree_Select Fl_Tree::selectmode | ( | ) | const [inline] |
| void Fl_Tree::set_item_focus | ( | Fl_Tree_Item * | item | ) |
Set the item that currently should have keyboard focus. Handles calling redraw() to update the focus box (if its visible).
| [in] | item | The item that should take focus. If NULL, none will have focus. |
Definition at line 312 of file Fl_Tree.cxx.
References Fl_Widget::redraw(), and Fl_Widget::visible_focus().
Referenced by handle().
| void Fl_Tree::show_item | ( | Fl_Tree_Item * | item | ) |
Adjust the vertical scroll bar to show item at the top of the display IF it is currently off-screen (eg. show_item_top()). If it is already on-screen, no change is made.
Definition at line 809 of file Fl_Tree.cxx.
References displayed(), and show_item_top().
| void Fl_Tree::show_item | ( | Fl_Tree_Item * | item, |
| int | yoff | ||
| ) |
Adjust the vertical scroll bar so that item is visible yoff pixels from the top of the Fl_Tree widget's display.
For instance, yoff=0 will position the item at the top.
If yoff is larger than the vertical scrollbar's limit, the value will be clipped. So if yoff=100, but scrollbar's max is 50, then 50 will be used.
Definition at line 784 of file Fl_Tree.cxx.
References _vscroll, int, Fl_Valuator::maximum(), Fl_Valuator::minimum(), Fl_Widget::redraw(), Fl_Scrollbar::value(), Fl_Widget::y(), and Fl_Tree_Item::y().
Referenced by handle(), show_item_bottom(), show_item_middle(), and show_item_top().
| void Fl_Tree::show_item_bottom | ( | Fl_Tree_Item * | item | ) |
Adjust the vertical scrollbar so that item is at the bottom of the display.
Definition at line 829 of file Fl_Tree.cxx.
References first(), Fl_Tree_Item::h(), Fl_Widget::h(), and show_item().
Referenced by handle().
| void Fl_Tree::show_item_middle | ( | Fl_Tree_Item * | item | ) |
Adjust the vertical scrollbar so that item is in the middle of the display.
Definition at line 822 of file Fl_Tree.cxx.
References first(), Fl_Tree_Item::h(), Fl_Widget::h(), and show_item().
Referenced by display().
| void Fl_Tree::show_item_top | ( | Fl_Tree_Item * | item | ) |
Adjust the vertical scrollbar so that item is at the top of the display.
Definition at line 815 of file Fl_Tree.cxx.
References first(), and show_item().
Referenced by handle(), and show_item().
| void Fl_Tree::show_self | ( | ) | [inline] |
| void Fl_Tree::showcollapse | ( | int | val | ) | [inline] |
Set if we should show the collapse icon or not. If collapse icons are disabled, the user will not be able to interactively collapse items in the tree, unless the application provides some other means via open() and close().
| [in] | val | 1: shows collapse icons (default), 0: hides collapse icons. |
Definition at line 748 of file Fl_Tree.H.
References Fl_Widget::redraw().
| int Fl_Tree::showcollapse | ( | ) | const [inline] |
| void Fl_Tree::showroot | ( | int | val | ) | [inline] |
Set if the root item should be shown or not.
| [in] | val | 1 -- show the root item (default) 0 -- hide the root item. |
Definition at line 760 of file Fl_Tree.H.
References Fl_Widget::redraw().
| int Fl_Tree::showroot | ( | ) | const [inline] |
Returns 1 if the root item is to be shown, or 0 if not.
Definition at line 753 of file Fl_Tree.H.
Referenced by item_pathname().
| void Fl_Tree::sortorder | ( | Fl_Tree_Sort | val | ) | [inline] |
| Fl_Tree_Sort Fl_Tree::sortorder | ( | ) | const [inline] |
| Fl_Image* Fl_Tree::usericon | ( | ) | const [inline] |
| void Fl_Tree::usericon | ( | Fl_Image * | val | ) | [inline] |
Sets the Fl_Image to be used as the default user icon for all newly created items.
If you want to specify user icons on a per-item basis, use Fl_Tree_Item::usericon() instead.
| [in] | val | -- The new image to be used, or zero to disable user icons. |
Definition at line 700 of file Fl_Tree.H.
References Fl_Widget::redraw().
| void Fl_Tree::vposition | ( | int | pos | ) |
Sets the vertical scroll offset to position pos. The position is how many pixels of the tree are scrolled off the top edge of the screen. Example: A position of '3' scrolls the top three pixels of the tree off the top edge of the screen.
| [in] | pos | The vertical position (in pixels) to scroll the browser to. |
Definition at line 851 of file Fl_Tree.cxx.
References _vscroll, Fl_Valuator::maximum(), Fl_Widget::redraw(), and Fl_Scrollbar::value().
| int Fl_Tree::vposition | ( | ) | const |
Returns the vertical scroll position as a pixel offset. The position returned is how many pixels of the tree are scrolled off the top edge of the screen. Example: A position of '3' indicates the top 3 pixels of the tree are scrolled off the top edge of the screen.
Definition at line 841 of file Fl_Tree.cxx.
References _vscroll, and Fl_Scrollbar::value().
Referenced by handle().
Fl_Scrollbar* Fl_Tree::_vscroll [protected] |
Vertical scrollbar.
Definition at line 144 of file Fl_Tree.H.
Referenced by draw(), Fl_Tree(), handle(), show_item(), and vposition().