FLTK 1.3.9
Loading...
Searching...
No Matches
Fl_Tree_Prefs.H
Go to the documentation of this file.
1//
2// "$Id$"
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
54
63
75
76#if FLTK_ABI_VERSION >= 10301
85
96#endif /*FLTK_ABI_VERSION*/
97
98#if FLTK_ABI_VERSION >= 10303
99class Fl_Tree_Item;
100typedef void (Fl_Tree_Item_Draw_Callback)(Fl_Tree_Item*, void*);
101#endif
102
111class 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
153public:
155#if FLTK_ABI_VERSION >= 10304
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
180 return _labelbgcolor;
181 }
185 inline void item_labelbgcolor(Fl_Color val) {
186 _labelbgcolor = val;
187 }
188#else /*FLTK_ABI_VERSION*/
190 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
241 inline int marginbottom() const {
242 return(_marginbottom);
243 }
246 inline void marginbottom(int val) {
247 _marginbottom = val;
248 }
249#endif /*FLTK_ABI_VERSION*/
251 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
276 inline int widgetmarginleft() const {
277 return(_widgetmarginleft);
278 }
280 inline void widgetmarginleft(int val) {
281 _widgetmarginleft = val;
282 }
283#endif /*FLTK_ABI_VERSION*/
285 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
366 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
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$".
484//
int Fl_Font
A font number is an index into the internal font table.
Definition Enumerations.H:875
unsigned int Fl_Color
An FLTK color value; see also Colors
Definition Enumerations.H:932
int Fl_Fontsize
Size of a font in pixels.
Definition Enumerations.H:904
Fl_Boxtype
Definition Enumerations.H:601
Fl static class.
Fl_Tree_Connector
Defines the style of connection lines between items.
Definition Fl_Tree_Prefs.H:58
@ FL_TREE_CONNECTOR_SOLID
Use solid lines connecting items.
Definition Fl_Tree_Prefs.H:61
@ FL_TREE_CONNECTOR_NONE
Use no lines connecting items.
Definition Fl_Tree_Prefs.H:59
@ FL_TREE_CONNECTOR_DOTTED
Use dotted lines connecting items (default)
Definition Fl_Tree_Prefs.H:60
Fl_Tree_Sort
Sort order options for items added to the tree.
Definition Fl_Tree_Prefs.H:49
@ FL_TREE_SORT_ASCENDING
Add items in ascending sort order.
Definition Fl_Tree_Prefs.H:51
@ FL_TREE_SORT_DESCENDING
Add items in descending sort order.
Definition Fl_Tree_Prefs.H:52
@ FL_TREE_SORT_NONE
No sorting; items are added in the order defined (default).
Definition Fl_Tree_Prefs.H:50
Fl_Tree_Item_Reselect_Mode
Defines the ways an item can be (re) selected via item_reselect_mode().
Definition Fl_Tree_Prefs.H:81
@ FL_TREE_SELECTABLE_ALWAYS
Enables FL_TREE_REASON_RESELECTED events for callbacks.
Definition Fl_Tree_Prefs.H:83
@ FL_TREE_SELECTABLE_ONCE
Item can only be selected once (default)
Definition Fl_Tree_Prefs.H:82
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
@ FL_TREE_ITEM_DRAW_DEFAULT
If widget() defined, draw in place of label, and widget() tracks item height (default)
Definition Fl_Tree_Prefs.H:91
@ FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET
If widget() defined, include label to the left of the widget.
Definition Fl_Tree_Prefs.H:93
@ FL_TREE_ITEM_HEIGHT_FROM_WIDGET
If widget() defined, widget()'s height controls item's height.
Definition Fl_Tree_Prefs.H:94
Fl_Tree_Select
Tree selection style.
Definition Fl_Tree_Prefs.H:67
@ FL_TREE_SELECT_NONE
Nothing selected when items are clicked.
Definition Fl_Tree_Prefs.H:68
@ FL_TREE_SELECT_MULTI
Multiple items can be selected by clicking with SHIFT, CTRL or mouse drags.
Definition Fl_Tree_Prefs.H:70
@ FL_TREE_SELECT_SINGLE
Single item selected when item is clicked (default)
Definition Fl_Tree_Prefs.H:69
@ FL_TREE_SELECT_SINGLE_DRAGGABLE
Single items may be selected, and they may be.
Definition Fl_Tree_Prefs.H:72
Base class for image caching and drawing.
Definition Fl_Image.H:55
virtual Fl_Image * copy(int W, int H)
The copy() method creates a copy of the specified image.
Definition Fl_Image.cxx:91
void inactive()
The inactive() method calls color_average(FL_BACKGROUND_COLOR, 0.33f) to produce an image that appear...
Definition Fl_Image.H:160
Tree widget item.
Definition Fl_Tree_Item.H:67
Tree widget's preferences.
Definition Fl_Tree_Prefs.H:111
Fl_Color labelbgcolor() const
Obsolete: Get the default label background color. Please use item_labelbgcolor() instead.
Definition Fl_Tree_Prefs.H:215
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
void connectorstyle(int val)
Set the connector style [integer].
Definition Fl_Tree_Prefs.H:313
Fl_Tree_Connector connectorstyle() const
Get the connector style.
Definition Fl_Tree_Prefs.H:305
int margintop() const
Get the top margin's value in pixels.
Definition Fl_Tree_Prefs.H:231
void labelmarginleft(int val)
Set the label's left margin value in pixels.
Definition Fl_Tree_Prefs.H:271
Fl_Fontsize labelsize() const
Obsolete: Return the label's size in pixels. Please use item_labelsize() instead.
Definition Fl_Tree_Prefs.H:207
void marginleft(int val)
Set the left margin's value in pixels.
Definition Fl_Tree_Prefs.H:227
Fl_Image * usericon() const
Gets the default 'user icon' (default is 0)
Definition Fl_Tree_Prefs.H:343
int showroot() const
Returns 1 if the root item is to be shown, or 0 if not.
Definition Fl_Tree_Prefs.H:419
void selectmode(Fl_Tree_Select val)
Set the selection mode used for the tree to val.
Definition Fl_Tree_Prefs.H:438
Fl_Tree_Item_Draw_Mode item_draw_mode() const
Get the 'item draw mode' used for the tree.
Definition Fl_Tree_Prefs.H:451
void linespacing(int val)
Set the line spacing value in pixels.
Definition Fl_Tree_Prefs.H:289
void margintop(int val)
Set the top margin's value in pixels.
Definition Fl_Tree_Prefs.H:235
Fl_Color item_labelbgcolor() const
Get the default label background color.
Definition Fl_Tree_Prefs.H:179
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
Fl_Tree_Select selectmode() const
Get the selection mode used for the tree.
Definition Fl_Tree_Prefs.H:430
Fl_Tree_Item_Reselect_Mode item_reselect_mode() const
Returns the current item re/selection mode.
Definition Fl_Tree_Prefs.H:443
void sortorder(Fl_Tree_Sort val)
Set the default sort order value.
Definition Fl_Tree_Prefs.H:407
int widgetmarginleft() const
Get the widget()'s left margin value in pixels.
Definition Fl_Tree_Prefs.H:276
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
Fl_Image * openicon() const
Get the current default 'open' icon.
Definition Fl_Tree_Prefs.H:331
Fl_Color connectorcolor() const
Get the connector color used for tree connection lines.
Definition Fl_Tree_Prefs.H:297
void item_labelbgcolor(Fl_Color val)
Set the default label background color.
Definition Fl_Tree_Prefs.H:185
void item_reselect_mode(Fl_Tree_Item_Reselect_Mode mode)
Sets the item re/selection mode.
Definition Fl_Tree_Prefs.H:447
void usericonmarginleft(int val)
Set the user icon's left margin value in pixels.
Definition Fl_Tree_Prefs.H:263
Fl_Color labelfgcolor() const
Obsolete: Get the default label foreground color. Please use item_labelfgcolor() instead.
Definition Fl_Tree_Prefs.H:211
int linespacing() const
Get the line spacing value in pixels.
Definition Fl_Tree_Prefs.H:285
Fl_Image * closedeicon() const
Return the deactivated version of the close icon, if any.
Definition Fl_Tree_Prefs.H:371
int marginbottom() const
Get the bottom margin's value in pixels.
Definition Fl_Tree_Prefs.H:241
Fl_Image * userdeicon() const
Return the deactivated version of the user icon, if any.
Definition Fl_Tree_Prefs.H:376
char showcollapse() const
Returns 1 if the collapse icon is enabled, 0 if not.
Definition Fl_Tree_Prefs.H:385
int marginleft() const
Get the left margin's value in pixels.
Definition Fl_Tree_Prefs.H:223
void openchild_marginbottom(int val)
Set the margin below an open child in pixels.
Definition Fl_Tree_Prefs.H:255
int labelmarginleft() const
Get the label's left margin value in pixels.
Definition Fl_Tree_Prefs.H:267
void connectorcolor(Fl_Color val)
Set the connector color used for tree connection lines.
Definition Fl_Tree_Prefs.H:301
void showroot(int val)
Set if the root item should be shown or not.
Definition Fl_Tree_Prefs.H:426
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
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
void item_labelsize(Fl_Fontsize val)
Set the label's size in pixels to val.
Definition Fl_Tree_Prefs.H:169
int connectorwidth() const
Get the tree connection line's width.
Definition Fl_Tree_Prefs.H:317
int usericonmarginleft() const
Get the user icon's left margin value in pixels.
Definition Fl_Tree_Prefs.H:259
Fl_Color item_labelfgcolor() const
Get the default label foreground color.
Definition Fl_Tree_Prefs.H:171
void connectorwidth(int val)
Set the tree connection line's width.
Definition Fl_Tree_Prefs.H:321
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
int openchild_marginbottom() const
Get the margin below an open child in pixels.
Definition Fl_Tree_Prefs.H:251
void selectbox(Fl_Boxtype val)
Set the default selection box's box drawing style to val.
Definition Fl_Tree_Prefs.H:415
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
void widgetmarginleft(int val)
Set the widget's left margin value in pixels.
Definition Fl_Tree_Prefs.H:280
void showcollapse(int val)
Set if we should show the collapse icon or not.
Definition Fl_Tree_Prefs.H:396
void item_labelfont(Fl_Font val)
Set the label's font to val.
Definition Fl_Tree_Prefs.H:165
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
Fl_Fontsize item_labelsize() const
Return the label's size in pixels.
Definition Fl_Tree_Prefs.H:167
Fl_Image * opendeicon() const
Return the deactivated version of the open icon, if any.
Definition Fl_Tree_Prefs.H:366
void connectorstyle(Fl_Tree_Connector val)
Set the connector style.
Definition Fl_Tree_Prefs.H:309
Fl_Tree_Sort sortorder() const
Get the default sort order value.
Definition Fl_Tree_Prefs.H:400
Fl_Boxtype selectbox() const
Get the default selection box's box drawing style as an Fl_Boxtype.
Definition Fl_Tree_Prefs.H:411
Fl_Font labelfont() const
Obsolete: Return the label's font. Please use item_labelfont() instead.
Definition Fl_Tree_Prefs.H:203