FLTK 1.3.4
Fl_Tree_Prefs.H
Go to the documentation of this file.
1 //
2 // "$Id: Fl_Tree_Prefs.H 10723 2015-04-28 19:39:53Z greg.ercolano $"
3 //
4 
5 #ifndef FL_TREE_PREFS_H
6 #define FL_TREE_PREFS_H
7 
8 #include <FL/Fl.H> // needed for ABI version features (via Enumerations.H)
9 
11 // FL/Fl_Tree_Prefs.H
13 //
14 // Fl_Tree_Prefs -- This file is part of the Fl_Tree widget for FLTK
15 // Copyright (C) 2009-2010 by Greg Ercolano.
16 //
17 // This library is free software. Distribution and use rights are outlined in
18 // the file "COPYING" which should have been included with this file. If this
19 // file is missing or damaged, see the license at:
20 //
21 // http://www.fltk.org/COPYING.php
22 //
23 // Please report all bugs and problems on the following page:
24 //
25 // http://www.fltk.org/str.php
26 //
27 
42 
45 
53 };
54 
62 };
63 
73 };
75 
76 #if FLTK_ABI_VERSION >= 10301
84 };
85 
95 };
96 #endif /*FLTK_ABI_VERSION*/
97 
98 #if FLTK_ABI_VERSION >= 10303
99 class Fl_Tree_Item;
100 typedef void (Fl_Tree_Item_Draw_Callback)(Fl_Tree_Item*, void*);
101 #endif
102 
111 class FL_EXPORT Fl_Tree_Prefs {
112  Fl_Font _labelfont; // label's font face
113  Fl_Fontsize _labelsize; // label's font size
114  int _margintop; // --
115  int _marginleft; // |- tree's controllable margins
116 #if FLTK_ABI_VERSION >= 10301
117  int _marginbottom; // --
118 #endif
119  int _openchild_marginbottom; // extra space below an open child tree
120  int _usericonmarginleft; // space to left of user icon (if any)
121  int _labelmarginleft; // space to left of label
122 #if FLTK_ABI_VERSION >= 10301
123  int _widgetmarginleft; // space to left of widget
124 #endif
125  int _connectorwidth; // connector width (right of open/close icon)
126  int _linespacing; // vertical space between lines
127  // Colors
128  Fl_Color _labelfgcolor; // label's foreground color
129  Fl_Color _labelbgcolor; // label's background color
130  Fl_Color _connectorcolor; // connector dotted line color
131  Fl_Tree_Connector _connectorstyle; // connector line style
132  Fl_Image *_openimage; // the 'open' icon [+]
133  Fl_Image *_closeimage; // the 'close' icon [-]
134  Fl_Image *_userimage; // user's own icon
135 #if FLTK_ABI_VERSION >= 10304
136  Fl_Image *_opendeimage; // deactivated 'open' icon
137  Fl_Image *_closedeimage; // deactivated 'close' icon
138  Fl_Image *_userdeimage; // deactivated user icon
139 #endif
140  char _showcollapse; // 1=show collapse icons, 0=don't
141  char _showroot; // show the root item as part of the tree
142  Fl_Tree_Sort _sortorder; // none, ascening, descending, etc.
143  Fl_Boxtype _selectbox; // selection box type
144  Fl_Tree_Select _selectmode; // selection mode
145 #if FLTK_ABI_VERSION >= 10301
146  Fl_Tree_Item_Reselect_Mode _itemreselectmode; // controls item selection callback() behavior
147  Fl_Tree_Item_Draw_Mode _itemdrawmode; // controls how items draw label + widget()
148 #endif /*FLTK_ABI_VERSION*/
149 #if FLTK_ABI_VERSION >= 10303
150  Fl_Tree_Item_Draw_Callback *_itemdrawcallback; // callback to handle drawing items (0=none)
151  void *_itemdrawuserdata; // data for drawing items (0=none)
152 #endif
153 public:
154  Fl_Tree_Prefs();
155 #if FLTK_ABI_VERSION >= 10304
156  ~Fl_Tree_Prefs();
157 #endif
158 
160  // Labels
163  inline Fl_Font item_labelfont() const { return(_labelfont); }
165  inline void item_labelfont(Fl_Font val) { _labelfont = val; }
167  inline Fl_Fontsize item_labelsize() const { return(_labelsize); }
169  inline void item_labelsize(Fl_Fontsize val) { _labelsize = val; }
171  inline Fl_Color item_labelfgcolor() const { return(_labelfgcolor); }
173  inline void item_labelfgcolor(Fl_Color val) { _labelfgcolor = val; }
174 #if FLTK_ABI_VERSION >= 10301
175  inline Fl_Color item_labelbgcolor() const {
180  return _labelbgcolor;
181  }
185  inline void item_labelbgcolor(Fl_Color val) {
186  _labelbgcolor = val;
187  }
188 #else /*FLTK_ABI_VERSION*/
189  inline Fl_Color item_labelbgcolor() const {
191  return(_labelbgcolor);
192  }
194  inline void item_labelbgcolor(Fl_Color val) {
195  _labelbgcolor = val;
196  }
197 #endif /*FLTK_ABI_VERSION*/
198 
200  // Obsolete names - for 1.3.0 backwards compat
203  inline Fl_Font labelfont() const { return(_labelfont); }
205  inline void labelfont(Fl_Font val) { _labelfont = val; }
207  inline Fl_Fontsize labelsize() const { return(_labelsize); }
209  inline void labelsize(Fl_Fontsize val) { _labelsize = val; }
211  inline Fl_Color labelfgcolor() const { return(_labelfgcolor); }
213  inline void labelfgcolor(Fl_Color val) { _labelfgcolor = val; }
215  inline Fl_Color labelbgcolor() const { return(item_labelbgcolor()); }
217  inline void labelbgcolor(Fl_Color val) { item_labelbgcolor(val); }
218 
220  // Margins
223  inline int marginleft() const {
224  return(_marginleft);
225  }
227  inline void marginleft(int val) {
228  _marginleft = val;
229  }
231  inline int margintop() const {
232  return(_margintop);
233  }
235  inline void margintop(int val) {
236  _margintop = val;
237  }
238 #if FLTK_ABI_VERSION >= 10301
239  inline int marginbottom() const {
242  return(_marginbottom);
243  }
246  inline void marginbottom(int val) {
247  _marginbottom = val;
248  }
249 #endif /*FLTK_ABI_VERSION*/
250  inline int openchild_marginbottom() const {
252  return(_openchild_marginbottom);
253  }
255  inline void openchild_marginbottom(int val) {
256  _openchild_marginbottom = val;
257  }
259  inline int usericonmarginleft() const {
260  return(_usericonmarginleft);
261  }
263  inline void usericonmarginleft(int val) {
264  _usericonmarginleft = val;
265  }
267  inline int labelmarginleft() const {
268  return(_labelmarginleft);
269  }
271  inline void labelmarginleft(int val) {
272  _labelmarginleft = val;
273  }
274 #if FLTK_ABI_VERSION >= 10301
275  inline int widgetmarginleft() const {
277  return(_widgetmarginleft);
278  }
280  inline void widgetmarginleft(int val) {
281  _widgetmarginleft = val;
282  }
283 #endif /*FLTK_ABI_VERSION*/
284  inline int linespacing() const {
286  return(_linespacing);
287  }
289  inline void linespacing(int val) {
290  _linespacing = val;
291  }
292 
294  // Colors and Styles
297  inline Fl_Color connectorcolor() const {
298  return(_connectorcolor);
299  }
301  inline void connectorcolor(Fl_Color val) {
302  _connectorcolor = val;
303  }
306  return(_connectorstyle);
307  }
310  _connectorstyle = val;
311  }
313  inline void connectorstyle(int val) {
314  _connectorstyle = Fl_Tree_Connector(val);
315  }
317  inline int connectorwidth() const {
318  return(_connectorwidth);
319  }
321  inline void connectorwidth(int val) {
322  _connectorwidth = val;
323  }
324 
326  // Icons
331  inline Fl_Image *openicon() const {
332  return(_openimage);
333  }
334  void openicon(Fl_Image *val);
338  inline Fl_Image *closeicon() const {
339  return(_closeimage);
340  }
341  void closeicon(Fl_Image *val);
343  inline Fl_Image *usericon() const {
344  return(_userimage);
345  }
349  inline void usericon(Fl_Image *val) {
350  _userimage = val;
351 #if FLTK_ABI_VERSION >= 10304
352  // Update deactivated version of icon..
353  if ( _userdeimage ) delete _userdeimage;
354  if ( _userimage ) {
355  _userdeimage = _userimage->copy();
356  _userdeimage->inactive();
357  } else {
358  _userdeimage = 0;
359  }
360 #endif
361  }
362 
363 #if FLTK_ABI_VERSION >= 10304
364  inline Fl_Image *opendeicon() const {
367  return _opendeimage;
368  }
371  inline Fl_Image *closedeicon() const {
372  return _closedeimage;
373  }
376  inline Fl_Image *userdeicon() const {
377  return _userdeimage;
378  }
379 #endif
380 
382  // Options
385  inline char showcollapse() const {
386  return(_showcollapse);
387  }
396  inline void showcollapse(int val) {
397  _showcollapse = val;
398  }
400  inline Fl_Tree_Sort sortorder() const {
401  return(_sortorder);
402  }
407  inline void sortorder(Fl_Tree_Sort val) {
408  _sortorder = val;
409  }
411  inline Fl_Boxtype selectbox() const {
412  return(_selectbox);
413  }
415  inline void selectbox(Fl_Boxtype val) {
416  _selectbox = val;
417  }
419  inline int showroot() const {
420  return(int(_showroot));
421  }
426  inline void showroot(int val) {
427  _showroot = char(val);
428  }
430  inline Fl_Tree_Select selectmode() const {
431  return(_selectmode);
432  }
438  inline void selectmode(Fl_Tree_Select val) {
439  _selectmode = val;
440  }
441 #if FLTK_ABI_VERSION >= 10301
442  Fl_Tree_Item_Reselect_Mode item_reselect_mode() const {
444  return _itemreselectmode;
445  }
448  _itemreselectmode = mode;
449  }
452  return(_itemdrawmode);
453  }
460  _itemdrawmode = val;
461  }
462 #endif
463 #if FLTK_ABI_VERSION >= 10303
464  void item_draw_callback(Fl_Tree_Item_Draw_Callback *cb, void *data=0) {
465  _itemdrawcallback = cb;
466  _itemdrawuserdata = data;
467  }
468  Fl_Tree_Item_Draw_Callback* item_draw_callback() const {
469  return(_itemdrawcallback);
470  }
471  void* item_draw_user_data() const {
472  return(_itemdrawuserdata);
473  }
474  void do_item_draw_callback(Fl_Tree_Item *o) const {
475  _itemdrawcallback(o, _itemdrawuserdata);
476  }
477 #endif
478 };
479 
480 #endif /*FL_TREE_PREFS_H*/
481 
482 //
483 // End of "$Id: Fl_Tree_Prefs.H 10723 2015-04-28 19:39:53Z greg.ercolano $".
484 //
Fl_Image * openicon() const
Get the current default 'open' icon.
Definition: Fl_Tree_Prefs.H:331
Fl_Image * usericon() const
Gets the default 'user icon' (default is 0)
Definition: Fl_Tree_Prefs.H:343
Add items in ascending sort order.
Definition: Fl_Tree_Prefs.H:51
Fl_Color labelfgcolor() const
Obsolete: Get the default label foreground color. Please use item_labelfgcolor() instead.
Definition: Fl_Tree_Prefs.H:211
Fl_Tree_Sort
Sort order options for items added to the tree.
Definition: Fl_Tree_Prefs.H:49
Fl_Boxtype selectbox() const
Get the default selection box's box drawing style as an Fl_Boxtype.
Definition: Fl_Tree_Prefs.H:411
Fl_Tree_Select selectmode() const
Get the selection mode used for the tree.
Definition: Fl_Tree_Prefs.H:430
void item_labelfont(Fl_Font val)
Set the label's font to val.
Definition: Fl_Tree_Prefs.H:165
Fl_Tree_Select
Tree selection style.
Definition: Fl_Tree_Prefs.H:67
void showroot(int val)
Set if the root item should be shown or not.
Definition: Fl_Tree_Prefs.H:426
Fl static class.
int marginleft() const
Get the left margin's value in pixels.
Definition: Fl_Tree_Prefs.H:223
void selectmode(Fl_Tree_Select val)
Set the selection mode used for the tree to val.
Definition: Fl_Tree_Prefs.H:438
void labelbgcolor(Fl_Color val)
Obsolete: Set the default label background color. Please use item_labelbgcolor(Fl_Color) instead...
Definition: Fl_Tree_Prefs.H:217
Use solid lines connecting items.
Definition: Fl_Tree_Prefs.H:61
Fl_Image * userdeicon() const
Return the deactivated version of the user icon, if any.
Definition: Fl_Tree_Prefs.H:376
int margintop() const
Get the top margin's value in pixels.
Definition: Fl_Tree_Prefs.H:231
Fl_Color item_labelfgcolor() const
Get the default label foreground color.
Definition: Fl_Tree_Prefs.H:171
void usericonmarginleft(int val)
Set the user icon's left margin value in pixels.
Definition: Fl_Tree_Prefs.H:263
Use no lines connecting items.
Definition: Fl_Tree_Prefs.H:59
Enables FL_TREE_REASON_RESELECTED events for callbacks.
Definition: Fl_Tree_Prefs.H:83
Base class for image caching and drawing.
Definition: Fl_Image.H:55
void item_draw_mode(Fl_Tree_Item_Draw_Mode val)
Set the 'item draw mode' used for the tree to val.
Definition: Fl_Tree_Prefs.H:459
void labelfont(Fl_Font val)
Obsolete: Set the label's font to val. Please use item_labelfont(Fl_Font) instead.
Definition: Fl_Tree_Prefs.H:205
void connectorcolor(Fl_Color val)
Set the connector color used for tree connection lines.
Definition: Fl_Tree_Prefs.H:301
void showcollapse(int val)
Set if we should show the collapse icon or not.
Definition: Fl_Tree_Prefs.H:396
void labelfgcolor(Fl_Color val)
Obsolete: Set the default label foreground color. Please use item_labelfgcolor(Fl_Color) instead...
Definition: Fl_Tree_Prefs.H:213
Fl_Boxtype
Definition: Enumerations.H:603
Multiple items can be selected by clicking with SHIFT, CTRL or mouse drags.
Definition: Fl_Tree_Prefs.H:70
If widget() defined, widget()'s height controls item's height.
Definition: Fl_Tree_Prefs.H:94
Fl_Image * closeicon() const
Gets the default 'close' icon Returns the Fl_Image* of the icon, or 0 if none.
Definition: Fl_Tree_Prefs.H:338
Item can only be selected once (default)
Definition: Fl_Tree_Prefs.H:82
void connectorwidth(int val)
Set the tree connection line's width.
Definition: Fl_Tree_Prefs.H:321
void item_labelbgcolor(Fl_Color val)
Set the default label background color.
Definition: Fl_Tree_Prefs.H:185
void inactive()
The inactive() method calls color_average(FL_BACKGROUND_COLOR, 0.33f) to produce an image that appear...
Definition: Fl_Image.H:160
void sortorder(Fl_Tree_Sort val)
Set the default sort order value.
Definition: Fl_Tree_Prefs.H:407
void item_labelfgcolor(Fl_Color val)
Set the default label foreground color.
Definition: Fl_Tree_Prefs.H:173
Fl_Font item_labelfont() const
Return the label's font.
Definition: Fl_Tree_Prefs.H:163
void item_labelsize(Fl_Fontsize val)
Set the label's size in pixels to val.
Definition: Fl_Tree_Prefs.H:169
Fl_Image * closedeicon() const
Return the deactivated version of the close icon, if any.
Definition: Fl_Tree_Prefs.H:371
void connectorstyle(Fl_Tree_Connector val)
Set the connector style.
Definition: Fl_Tree_Prefs.H:309
void connectorstyle(int val)
Set the connector style [integer].
Definition: Fl_Tree_Prefs.H:313
Fl_Fontsize labelsize() const
Obsolete: Return the label's size in pixels. Please use item_labelsize() instead. ...
Definition: Fl_Tree_Prefs.H:207
void widgetmarginleft(int val)
Set the widget's left margin value in pixels.
Definition: Fl_Tree_Prefs.H:280
Fl_Tree_Connector
Defines the style of connection lines between items.
Definition: Fl_Tree_Prefs.H:58
void labelsize(Fl_Fontsize val)
Obsolete: Set the label's size in pixels to val. Please use item_labelsize(Fl_Fontsize) instead...
Definition: Fl_Tree_Prefs.H:209
int Fl_Fontsize
Size of a font in pixels.
Definition: Enumerations.H:906
void marginleft(int val)
Set the left margin's value in pixels.
Definition: Fl_Tree_Prefs.H:227
Nothing selected when items are clicked.
Definition: Fl_Tree_Prefs.H:68
Fl_Tree_Connector connectorstyle() const
Get the connector style.
Definition: Fl_Tree_Prefs.H:305
If widget() defined, include label to the left of the widget.
Definition: Fl_Tree_Prefs.H:93
Fl_Color labelbgcolor() const
Obsolete: Get the default label background color. Please use item_labelbgcolor() instead.
Definition: Fl_Tree_Prefs.H:215
Fl_Tree_Sort sortorder() const
Get the default sort order value.
Definition: Fl_Tree_Prefs.H:400
unsigned int Fl_Color
An FLTK color value; see also Colors.
Definition: Enumerations.H:934
void labelmarginleft(int val)
Set the label's left margin value in pixels.
Definition: Fl_Tree_Prefs.H:271
Fl_Tree_Item_Draw_Mode
Bit flags that control how item's labels and widget()s are drawn in the tree via item_draw_mode().
Definition: Fl_Tree_Prefs.H:90
Tree widget item.
Definition: Fl_Tree_Item.H:67
int Fl_Font
A font number is an index into the internal font table.
Definition: Enumerations.H:877
Add items in descending sort order.
Definition: Fl_Tree_Prefs.H:52
Fl_Font labelfont() const
Obsolete: Return the label's font. Please use item_labelfont() instead.
Definition: Fl_Tree_Prefs.H:203
Fl_Tree_Item_Reselect_Mode
Defines the ways an item can be (re) selected via item_reselect_mode().
Definition: Fl_Tree_Prefs.H:81
void linespacing(int val)
Set the line spacing value in pixels.
Definition: Fl_Tree_Prefs.H:289
void usericon(Fl_Image *val)
Sets the default 'user icon' Returns the Fl_Image* of the icon, or 0 if none (default).
Definition: Fl_Tree_Prefs.H:349
Use dotted lines connecting items (default)
Definition: Fl_Tree_Prefs.H:60
char showcollapse() const
Returns 1 if the collapse icon is enabled, 0 if not.
Definition: Fl_Tree_Prefs.H:385
int usericonmarginleft() const
Get the user icon's left margin value in pixels.
Definition: Fl_Tree_Prefs.H:259
void marginbottom(int val)
Set the bottom margin's value in pixels This is the extra distance the vertical scroller lets you tra...
Definition: Fl_Tree_Prefs.H:246
Tree widget's preferences.
Definition: Fl_Tree_Prefs.H:111
int connectorwidth() const
Get the tree connection line's width.
Definition: Fl_Tree_Prefs.H:317
void margintop(int val)
Set the top margin's value in pixels.
Definition: Fl_Tree_Prefs.H:235
virtual Fl_Image * copy(int W, int H)
The copy() method creates a copy of the specified image.
Definition: Fl_Image.cxx:91
void selectbox(Fl_Boxtype val)
Set the default selection box's box drawing style to val.
Definition: Fl_Tree_Prefs.H:415
Fl_Tree_Item_Draw_Mode item_draw_mode() const
Get the 'item draw mode' used for the tree.
Definition: Fl_Tree_Prefs.H:451
If widget() defined, draw in place of label, and widget() tracks item height (default) ...
Definition: Fl_Tree_Prefs.H:91
void openchild_marginbottom(int val)
Set the margin below an open child in pixels.
Definition: Fl_Tree_Prefs.H:255
Fl_Color connectorcolor() const
Get the connector color used for tree connection lines.
Definition: Fl_Tree_Prefs.H:297
Single item selected when item is clicked (default)
Definition: Fl_Tree_Prefs.H:69
No sorting; items are added in the order defined (default).
Definition: Fl_Tree_Prefs.H:50
int showroot() const
Returns 1 if the root item is to be shown, or 0 if not.
Definition: Fl_Tree_Prefs.H:419
Fl_Fontsize item_labelsize() const
Return the label's size in pixels.
Definition: Fl_Tree_Prefs.H:167
int labelmarginleft() const
Get the label's left margin value in pixels.
Definition: Fl_Tree_Prefs.H:267
void item_reselect_mode(Fl_Tree_Item_Reselect_Mode mode)
Sets the item re/selection mode.
Definition: Fl_Tree_Prefs.H:447
Single items may be selected, and they may be.
Definition: Fl_Tree_Prefs.H:72