sptk2 logo
SPTK Home Page
Public Member Functions | Protected Member Functions | List of all members
sptk::CButtonGroup Class Referenceabstract

#include <CButtonGroup.h>

Inheritance diagram for sptk::CButtonGroup:
sptk::CControl sptk::CLayoutClient sptk::CRadioButtons sptk::CCheckButtons

Public Member Functions

void buttons (const Strings &buttonList)
 
const Stringsbuttons () const
 
virtual void clearButtons ()
 
Variant data () const override
 
void data (const Variant &v) override
 
void load (Query *) override
 
void save (Query *) override
 
void load (const xdoc::SNode &node, CLayoutXMLmode xmlMode) override
 
void load (const xdoc::SNode &node) override
 Loads control data from XML. More...
 
void save (const xdoc::SNode &node, CLayoutXMLmode xmlMode) const override
 
void save (const xdoc::SNode &node) const override
 Saves control data to XML. More...
 
bool valid () const override
 
bool preferredSize (int &w, int &h) override
 
Fl_Button * otherButton () const
 
CInput_otherInput () const
 
- 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
 

Protected Member Functions

virtual void controlDataChanged ()
 
int buttonIndex (const char *buttonLabel)
 
void deselectAllButtons ()
 
virtual Fl_Button * createButton (const char *label, int sz=10, CLayoutAlign layoutAlignment=CLayoutAlign::TOP)=0
 
void ctor_init ()
 
 CButtonGroup (const char *label=nullptr, int layoutSize=20, CLayoutAlign layoutAlignment=CLayoutAlign::TOP)
 
- 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)
 

Additional Inherited Members

- 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 Public Attributes inherited from sptk::CControl
static const Fl_Menu_Item defaultControlMenu []
 CControl default menu.
 
- Static Protected Member Functions inherited from sptk::CControl
static void internalCallback (Fl_Widget *internalWidget, void *data)
 Internal callback function.
 
- 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

Base class for CCheckButtons and CRadioButtons.

Implements the most important data communication methods for these button groups.

Constructor & Destructor Documentation

◆ CButtonGroup()

sptk::CButtonGroup::CButtonGroup ( const char *  label = nullptr,
int  layoutSize = 20,
CLayoutAlign  layoutAlignment = CLayoutAlign::TOP 
)
protected

SPTK-style constructor

Parameters
labelconst char *, the widget label
layoutSizeint, the size of widget in layout
layoutAlignmentCLayoutAlign, widget align in the layout

Member Function Documentation

◆ buttonIndex()

int sptk::CButtonGroup::buttonIndex ( const char *  buttonLabel)
protected

Finds a button by label

Parameters
buttonLabelconst char *, button label
Returns
button index, or -1 if not found

◆ buttons() [1/2]

const Strings & sptk::CButtonGroup::buttons ( ) const
inline

Returns the list of the buttons.

◆ buttons() [2/2]

void sptk::CButtonGroup::buttons ( const Strings buttonList)

Sets the list of the buttons.

Parameters
buttonListlist of the buttons

◆ clearButtons()

virtual void sptk::CButtonGroup::clearButtons ( )
virtual

Clears the list of buttons.

◆ controlDataChanged()

virtual void sptk::CButtonGroup::controlDataChanged ( )
protectedvirtual

Internal callback processing

◆ createButton()

virtual Fl_Button * sptk::CButtonGroup::createButton ( const char *  label,
int  sz = 10,
CLayoutAlign  layoutAlignment = CLayoutAlign::TOP 
)
protectedpure virtual

Creates button. Should be implemented in the derived class.

Implemented in sptk::CCheckButtons, and sptk::CRadioButtons.

◆ ctor_init()

void sptk::CButtonGroup::ctor_init ( )
protected

Constructor initializer

◆ data() [1/2]

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

Returns the currently selected button(s) as pipe ('|') separated string

Reimplemented from sptk::CControl.

Reimplemented in sptk::CCheckButtons.

◆ data() [2/2]

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

Sets the currently selected button(s)

Buttons are presented as pipe ('|') separated string. If the button group allows only one button to be selected at a time (like radio buttons), only the first item of the string will be used.

Reimplemented from sptk::CControl.

Reimplemented in sptk::CCheckButtons.

◆ deselectAllButtons()

void sptk::CButtonGroup::deselectAllButtons ( )
protected

Deselects all buttons

◆ load() [1/3]

void sptk::CButtonGroup::load ( const xdoc::SNode &  node)
inlineoverride

Loads control data from XML.

Layout information may also include widget size and position, as well as visible() and active() states

Parameters
nodethe XML node

References DATA.

◆ load() [2/3]

void sptk::CButtonGroup::load ( const xdoc::SNode &  node,
CLayoutXMLmode  xmlMode 
)
overridevirtual

Loads control data from XML

Layout information may also include widget size and position, as well as visible() and active() states

Parameters
nodethe XML node
xmlModethe mode defining how the layout and/or data should be stored

Reimplemented from sptk::CLayoutClient.

◆ load() [3/3]

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

Loads the the currently selected button(s)

Buttons should be presented as pipe ('|') separated string.

Reimplemented from sptk::CControl.

◆ otherButton()

Fl_Button * sptk::CButtonGroup::otherButton ( ) const
inline

The 'Other' Button if requested (add '*' in the button list)

◆ otherInput()

CInput_ * sptk::CButtonGroup::otherInput ( ) const
inline

The 'Other' Input if requested (add '*' in the button list)

◆ preferredSize()

bool sptk::CButtonGroup::preferredSize ( int &  w,
int &  h 
)
overridevirtual

Computes the preferred size of the button group based on its contents

Parameters
wthe optimal width
hthe optimal height
Returns
true if the size is stable (doesn't depend on input sizes)

Reimplemented from sptk::CLayoutClient.

◆ save() [1/3]

void sptk::CButtonGroup::save ( const xdoc::SNode &  node) const
inlineoverridevirtual

Saves control data to XML.

Layout information may also include widget size and position, as well as visible() and active() states

Parameters
nodethe XML node

Reimplemented from sptk::CControl.

References DATA.

◆ save() [2/3]

void sptk::CButtonGroup::save ( const xdoc::SNode &  node,
CLayoutXMLmode  xmlMode 
) const
override

Saves control data to XML

Layout information may also include widget size and position, as well as visible() and active() states

Parameters
nodethe XML node
xmlModethe mode defining how the layout and/or data should be stored

◆ save() [3/3]

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

Saves the the currently selected button(s)

Buttons are presented as pipe ('|') separated string

Reimplemented from sptk::CControl.

◆ valid()

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

Tells if the the current data content is valid

Always true for this widget.

Implements sptk::CControl.


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

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