sptk2 logo
SPTK Home Page
Public Member Functions | Static Public Member Functions | Static Protected Member Functions | List of all members
sptk::CTreeView Class Reference

Tree view widget. More...

#include <CTreeView.h>

Inheritance diagram for sptk::CTreeView:
sptk::CControl sptk::CLayoutClient

Public Member Functions

 CTreeView (const char *label=nullptr, int layoutSize=10, CLayoutAlign layoutAlign=CLayoutAlign::TOP)
 Constructor in SPTK style. More...
 
 ~CTreeView () override=default
 Destructor.
 
CControlKind kind () const override
 Returns controls' kind (internal SPTK RTTI). More...
 
String className () const override
 Returns controls' class name (internal SPTK RTTI). More...
 
CTreeItemaddItem (const String &label, const Fl_Image *openedImage, const Fl_Image *closedImage=nullptr, void *data=nullptr)
 Adds a child item to the item. If the closedImage parameter is omitted the openedImage is used instead. More...
 
CTreeItemaddPath (const std::vector< String > &path, const Fl_Image *openedImage, const Fl_Image *closedImage, const Fl_Image *itemImage=nullptr, void *data=nullptr)
 Adds a child item to the item using the path. The required path items are created automatically. More...
 
CTreeItemaddPath (const std::vector< String > &path, const Fl_Image *itemImage=0L, void *data=nullptr)
 Adds a child item to the item using the default folder images. More...
 
void removeItem (CTreeItem *item)
 Removes an item from the parent tree item.
 
CTreeItemselected () const
 Returns currently selected item.
 
String selectedPath () const
 Returns currently selected item path in the tree.
 
virtual void clear ()
 Removes all the tree items.
 
void relayout ()
 Relayouts the tree. May be necessary after you've changed items data a lot.
 
void resize (int x, int y, int w, int h) override
 Resizes the control and inside widgets. More...
 
Variant data () const override
 Returns the currently selected item ID (or user_data) More...
 
void data (const Variant &v) override
 Selects the item with matching ID (or user_data) More...
 
void load (Query *) override
 Data connection isn't implemented yet. More...
 
void save (Query *) override
 Data connection isn't implemented yet. More...
 
void load (const xdoc::SNode &node) override
 Loads the the widget from XML node. More...
 
void save (const xdoc::SNode &node) const override
 Saves the the widget to XML node. More...
 
bool valid () const override
 Returns true if data is valid. More...
 
- Public Member Functions inherited from sptk::CControl
 CControl (const char *label, int layoutSize=20, CLayoutAlign layoutAlign=CLayoutAlign::TOP)
 Constructor in SPTK style. More...
 
void resize (int x, int y, int w, int h) override
 Resizes the control and inside widgets. More...
 
void draw () override
 Draws the control.
 
virtual int tag () const
 Returns the control's user data tag.
 
virtual void tag (int t)
 Sets the control's user data tag.
 
virtual Fl_Font textFont () const
 Returns the control's text font. More...
 
virtual void textFont (Fl_Font)
 Sets the control's text font. More...
 
virtual uchar textSize () const
 Returns the control's text font size. More...
 
virtual void textSize (uchar)
 Sets the control's text font size. More...
 
virtual Fl_Color textColor () const
 Returns the control's text color. More...
 
virtual void textColor (Fl_Color)
 Sets the control's text color. More...
 
virtual Fl_Color labelColor () const
 Returns the control's label color.
 
virtual void labelColor (Fl_Color)
 Sets the control's label color.
 
virtual Fl_Color color () const
 Returns the control's background color.
 
virtual void color (Fl_Color)
 Sets the control's background color.
 
uint32_t flags () const
 Returns the control's flags.
 
void flags (uint32_t flags)
 Sets the control's flags.
 
Fl_Widget * control () const
 Returns main widget inside the container.
 
const Stringlabel () const override
 Returns control's label. More...
 
void label (const String &) override
 Sets control's label. More...
 
Fl_Menu_ * menu () const
 Returns control's menu.
 
void menu (const Fl_Menu_Item *)
 Sets control's menu.
 
Fl_Font labelFont () const
 Returns control's label font.
 
void labelSize (Fl_Font f)
 Sets control's label font.
 
uchar labelSize () const
 Returns control's label font size.
 
void labelSize (uchar)
 Sets control's label font size.
 
uint32_t labelWidth () const
 Returns control's label width.
 
void labelWidth (uint32_t)
 Sets control's label width.
 
void hint (const String &str)
 Sets control's hint (tooltip) More...
 
String hint () const
 Returns control's hint (tooltip)
 
virtual int maxLength () const
 Returns control's max input length, if applicable. More...
 
virtual void maxLength (int)
 Sets control's max input length, if applicable. More...
 
virtual const StringfieldName () const
 Returns control's field name for universal data connection.
 
virtual void fieldName (const String &)
 Sets control's field name for universal data connection.
 
virtual CControlKind kind () const =0
 Returns control's kind (internal SPTK RTTI). More...
 
String className () const override
 Returns control's class name (internal SPTK RTTI). More...
 
virtual void reset ()
 Sets the control to empty text (for the input entries) More...
 
virtual void load (Query *)
 Loads control data from query fields. More...
 
virtual void save (Query *)
 Saves control data to query params. More...
 
void load (const xdoc::SNode &node, CLayoutXMLmode xmlMode) override
 Loads control data from XML. More...
 
void load (const xdoc::SNode &node) override
 Loads control data from XML. More...
 
void save (const xdoc::SNode &node, CLayoutXMLmode xmlMode) const override
 Saves control data to XML. More...
 
virtual void save (const xdoc::SNode &node) const
 Saves control data to XML. More...
 
virtual bool valid () const =0
 Returns true if the control state is valid, and the data is inside the limits (if applicable) More...
 
virtual Variant data () const
 The universal data connector. More...
 
virtual void data (const Variant &v)
 The universal data connector, sets control data. More...
 
void fireEvent (CEvent ev, int32_t arg)
 Fires the event generated by this control.
 
const CEventInfoevent () const
 Returns the last event fired by this control.
 
CEvent eventType () const
 Returns the event type for the last fired by this control.
 
int eventArgument () const
 Returns the event argument for the last fired by this control.
 
CControloperator= (const String &str)
 Control data assignment.
 
CControloperator= (const char *str)
 Control data assignment.
 
CControloperator= (int32_t v)
 Control data assignment.
 
CControloperator= (uint32_t v)
 Control data assignment.
 
CControloperator= (int64_t v)
 Control data assignment.
 
CControloperator= (float v)
 Control data assignment.
 
CControloperator= (double v)
 Control data assignment.
 
CControloperator= (const DateTime &dt)
 Control data assignment.
 
CControloperator= (const Field &fld)
 Control data assignment.
 
 operator String () const
 Control data conversion.
 
 operator int32_t () const
 Control data conversion.
 
 operator uint32_t () const
 Control data conversion.
 
 operator int64_t () const
 Control data conversion.
 
 operator uint64_t () const
 Control data conversion.
 
 operator float () const
 Control data conversion.
 
 operator double () const
 Control data conversion.
 
 operator DateTime () const
 Control data conversion.
 
- Public Member Functions inherited from sptk::CLayoutClient
 CLayoutClient (Fl_Widget *widget, int layoutSize, CLayoutAlign ca)
 
virtual ~CLayoutClient ()
 
CLayoutAlign layoutAlign () const
 
void layoutAlign (CLayoutAlign al)
 
int layoutSize () const
 
void layoutSize (int ls)
 
virtual void label (const String &l)
 
virtual const Stringlabel () const
 
void name (const char *aname)
 
void name (const String &aname)
 
const Stringname () const
 
virtual bool preferredSize (int &w, int &h)
 
virtual bool computeSize (int &w, int &h)
 
virtual String className () const
 
Fl_Widget * widget () const
 
virtual void load (const xdoc::SNode &node, CLayoutXMLmode xmlMode)
 
virtual void load (const std::shared_ptr< xdoc::Node > &node)
 
virtual void save (const std::shared_ptr< xdoc::Node > &node, CLayoutXMLmode xmlMode) const
 

Static Public Member Functions

static CLayoutClientcreator (const xdoc::SNode &node)
 Creates a widget based on the XML node information. More...
 
- Static Public Member Functions inherited from sptk::CControl
static CControlKind controlNameToType (const String &typeName, int &maxLength, const String &values="")
 Converts control name to control kind.
 
static void defaultControlMenuCopy (Fl_Widget *, void *)
 Default callback function to support CControl default menu item 'Copy'.
 
static void defaultControlMenuCut (Fl_Widget *, void *)
 Default callback function to support CControl default menu item 'Delete'.
 
static void defaultControlMenuPaste (Fl_Widget *, void *)
 Default callback function to support CControl default menu item 'Paste'.
 
static void defaultControlMenuClear (Fl_Widget *, void *)
 Default callback function to support CControl default menu item 'Clear'.
 

Static Protected Member Functions

static void internal_callback (Fl_Widget *, void *)
 Internal tree control callback.
 
- Static Protected Member Functions inherited from sptk::CControl
static void internalCallback (Fl_Widget *internalWidget, void *data)
 Internal callback function.
 

Additional Inherited Members

- Static Public Attributes inherited from sptk::CControl
static const Fl_Menu_Item defaultControlMenu []
 CControl default menu.
 
- Protected Member Functions inherited from sptk::CControl
bool containsFocus () const
 Does the control contain focus?
 
void notifyFocus (bool gotFocus=true)
 Internal focus notification on focus change.
 
virtual void onEnter ()
 Internal focus notification on focus change.
 
virtual void onExit ()
 Internal focus notification on focus change. More...
 
uint32_t labelHeight () const
 Computes the label height based on the labelFont() and labelWidth()
 
int handle (int) override
 Special handle() method.
 
- Protected Member Functions inherited from sptk::CLayoutClient
int lastPreferredH () const
 
int lastPreferredW () const
 
void lastPreferredH (int height)
 
void lastPreferredW (int width)
 
- Protected Attributes inherited from sptk::CControl
bool m_limited {false}
 
uint32_t m_labelWidth {0}
 
Fl_Color m_labelColor
 
Fl_Color m_textColor
 
Fl_Font m_textFont
 
uchar m_textSize {0}
 
String m_fieldName
 
String m_hint
 
Fl_Widget * m_control {nullptr}
 
int m_tag {0}
 
uint32_t m_controlFlags {0}
 Control's special flags (a bit combination of InputEntryFlags). More...
 
Fl_Menu_Button * m_menuButton {nullptr}
 
CEventInfo m_event
 
bool m_hasFocus {false}
 
- Protected Attributes inherited from sptk::CLayoutClient
Fl_Widget * m_widget
 
String m_name
 
String m_label
 
CLayoutAlign m_layoutAlign
 

Detailed Description

Tree view widget.

Shows tree items with icons. Can use different icons for opened/closed folders.

Constructor & Destructor Documentation

◆ CTreeView()

sptk::CTreeView::CTreeView ( const char *  label = nullptr,
int  layoutSize = 10,
CLayoutAlign  layoutAlign = CLayoutAlign::TOP 
)

Constructor in SPTK style.

Parameters
labelLabel
layoutSizeWidget align in layout
layoutAlignWidget align in layout

Member Function Documentation

◆ addItem()

CTreeItem * sptk::CTreeView::addItem ( const String label,
const Fl_Image *  openedImage,
const Fl_Image *  closedImage = nullptr,
void *  data = nullptr 
)
inline

Adds a child item to the item. If the closedImage parameter is omitted the openedImage is used instead.

Parameters
labelThe item label
openedImageThe image for the opened state
closedImageThe image for the closed state
datavoid The user data or ID attached to the item
Returns
the new child item

References sptk::CTreeItem::addItem().

◆ addPath() [1/2]

CTreeItem * sptk::CTreeView::addPath ( const std::vector< String > &  path,
const Fl_Image *  itemImage = 0L,
void *  data = nullptr 
)
inline

Adds a child item to the item using the default folder images.

Parameters
pathThe item full path in the tree starting with '/'
itemImageThe image for the child item
dataThe user data or ID attached to the item
Returns
the new child item

References sptk::CTreeItem::addPath().

◆ addPath() [2/2]

CTreeItem * sptk::CTreeView::addPath ( const std::vector< String > &  path,
const Fl_Image *  openedImage,
const Fl_Image *  closedImage,
const Fl_Image *  itemImage = nullptr,
void *  data = nullptr 
)
inline

Adds a child item to the item using the path. The required path items are created automatically.

Parameters
pathThe path to the new child item relatively to the item
openedImageThe image for the opened folder
closedImageThe image for the closed folder
itemImageThe image for the child item
dataThe user data or ID attached to the item
Returns
the new child item

References sptk::CTreeItem::addPath().

◆ className()

String sptk::CTreeView::className ( ) const
inlineoverridevirtual

Returns controls' class name (internal SPTK RTTI).

Reimplemented from sptk::CControl.

◆ creator()

static CLayoutClient * sptk::CTreeView::creator ( const xdoc::SNode &  node)
static

Creates a widget based on the XML node information.

Parameters
nodeXML node with widget information

◆ data() [1/2]

Variant sptk::CTreeView::data ( ) const
overridevirtual

Returns the currently selected item ID (or user_data)

Reimplemented from sptk::CControl.

◆ data() [2/2]

void sptk::CTreeView::data ( const Variant v)
overridevirtual

Selects the item with matching ID (or user_data)

Reimplemented from sptk::CControl.

◆ kind()

CControlKind sptk::CTreeView::kind ( ) const
inlineoverridevirtual

Returns controls' kind (internal SPTK RTTI).

Implements sptk::CControl.

References TREEVIEW.

◆ load() [1/2]

void sptk::CTreeView::load ( const xdoc::SNode &  node)
override

Loads the the widget from XML node.

The widget information may include widget attributes and widget data

Parameters
nodeXML node

◆ load() [2/2]

void sptk::CTreeView::load ( Query )
overridevirtual

Data connection isn't implemented yet.

Reimplemented from sptk::CControl.

◆ resize()

void sptk::CTreeView::resize ( int  x,
int  y,
int  w,
int  h 
)
override

Resizes the control and inside widgets.

Parameters
xX-position
yY-position
wi Width
hHeight

◆ save() [1/2]

void sptk::CTreeView::save ( const xdoc::SNode &  node) const
overridevirtual

Saves the the widget to XML node.

The widget information may include widget attributes and widget data

Parameters
nodeXML node

Reimplemented from sptk::CControl.

◆ save() [2/2]

void sptk::CTreeView::save ( Query )
overridevirtual

Data connection isn't implemented yet.

Reimplemented from sptk::CControl.

◆ valid()

bool sptk::CTreeView::valid ( ) const
inlineoverridevirtual

Returns true if data is valid.

Implements sptk::CControl.


The documentation for this class was generated from the following file:

Fri Oct 14 2022 09:58:41: SPTK 5.4.1