#include <CDialog.h>
Public Member Functions | |
CDialog (int w, int h, const char *label=nullptr) | |
~CDialog () override | |
virtual bool | reset () |
int | handle (int event) override |
bool | showModal () |
void | alert (const String &s) const |
void | defaultButton (CButton *btn) |
virtual void | database (PoolDatabaseConnection *db) |
PoolDatabaseConnection * | database () const |
void | table (const String &tableName) |
String | table () const |
void | table (PoolDatabaseConnection *db, const String &tableName, const String &keyFieldName) |
Fast setup of the database connection. More... | |
void | keyField (const String &keyFieldName) |
String | keyField () const |
void | keyValue (int val) |
int | keyValue () const |
virtual Fl_Group * | newPage (const char *label, bool autoColor) |
virtual Fl_Group * | newScroll (const char *label, bool autoColor) |
CButton * | addExtraButton (CButtonKind buttonKind, const char *label, Fl_Callback_p callback) |
uint32_t | fieldCount () const |
CControl & | operator[] (const String &fieldName) |
Index operator to access controls with defined field name. More... | |
void | rescan () |
Makes dialog to scan the widgets inside. | |
void | load (const xdoc::SNode &node) override |
void | save (const xdoc::SNode &node) const override |
CDialogModalResult | modalResult () const |
String | className () const override |
Returns widget class name (internal SPTK RTTI). More... | |
Public Member Functions inherited from sptk::CWindow | |
CWindow (int w, int h, const char *label=0L) | |
Constructor. More... | |
CWindow (int x, int y, int w, int h, const char *label=0L) | |
Constructor. More... | |
void | draw () override |
Draws a window, including an optional background image. | |
void | show () override |
Custom show method. | |
void | show (int argc, char *argv[]) |
Custom show method. More... | |
void | hide () override |
Custom hide method. | |
virtual void | relayout () |
Relayouts window's widgets that have CLayoutClient interface. | |
void | clear () override |
Removes all the widgets inside the window. More... | |
void | resize (int x, int y, int w, int h) override |
Resizes the window and inside widgets. More... | |
bool | preferredSize (int &w, int &h) override |
Computes the optimal window size. More... | |
int | handle (int event) override |
Custom window events handle. More... | |
void | load (const std::shared_ptr< xdoc::Node > &node, CLayoutXMLmode xmlMode) override |
Loads window coordinates and widgets from XML node. More... | |
void | load (const std::shared_ptr< xdoc::Node > &node) override |
Loads window coordinates and widgets from XML node. More... | |
void | save (const std::shared_ptr< xdoc::Node > &node, CLayoutXMLmode xmlMode) const override |
Saves window coordinates and widgets into XML node. More... | |
virtual void | save (const xdoc::SNode &node) const |
Saves window coordinates and widgets into XML node. More... | |
void | loadPosition (const xdoc::SNode &node) |
Loads the window position from XML node. More... | |
void | savePosition (const xdoc::SNode &node) const |
Saves the window position into XML node. More... | |
const String & | label () const override |
Returns the current label. More... | |
String | className () const override |
Returns widget class name (internal SPTK RTTI). More... | |
virtual void | label (const String &l) |
virtual const String & | label () const |
Public Member Functions inherited from sptk::CLayoutManager | |
CLayoutManager (Fl_Group *group, int layoutSize, CLayoutAlign ca) | |
~CLayoutManager () override=default | |
virtual void | clear () |
Removes all the children. More... | |
int | layoutSpacing () const |
void | layoutSpacing (int ls) |
void | layoutGrowMode (CLayoutGrowMode gm=CLayoutGrowMode::LGM_AUTO_GROW) |
CLayoutGrowMode | layoutGrowMode () const |
void | relayout () |
void | frame (CFrame *frame, bool drawBackground=true) |
Defines frame. More... | |
const CFrame * | frame () const |
Returnes the current frame. | |
uint32_t | frameWidth () const |
Returns frame width. | |
virtual void | loadLayout (const xdoc::SNode &node, CLayoutXMLmode xmlMode) |
Loads group controls data from XML node. More... | |
virtual void | saveLayout (const xdoc::SNode &node, CLayoutXMLmode xmlMode) const |
Saves group controls data into XML node. More... | |
void | nameIndex (CWidgetNamesMap &index, bool recursive, bool clean=true) const |
Builds an index of internal widget names. More... | |
bool | noXml () const |
Returns flag of blocking XML processing. More... | |
void | noXml (bool noXml) |
Sets flag of blocking XML processing. More... | |
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 String & | label () const |
void | name (const char *aname) |
void | name (const String &aname) |
const String & | name () 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 |
Public Member Functions inherited from sptk::CWindowShape | |
CWindowShape (sptk::CWindow *window) | |
Constructor. More... | |
virtual | ~CWindowShape () |
Destructor. | |
bool | shapeResizing () |
Returns true if the window is resizing as a result of border drag. More... | |
Protected Member Functions | |
virtual bool | okPressed () |
virtual bool | cancelPressed () |
virtual void | scanControls () |
virtual bool | buildQueries () |
virtual bool | load () |
virtual bool | save () |
Protected Member Functions inherited from sptk::CLayoutManager | |
bool | autoLayout (int x, int y, int &w, int &h, bool resizeWidgets) const |
virtual void | paintBackground () |
Protected Member Functions inherited from sptk::CLayoutClient | |
int | lastPreferredH () const |
int | lastPreferredW () const |
void | lastPreferredH (int height) |
void | lastPreferredW (int width) |
Protected Member Functions inherited from sptk::CWindowShape | |
int | mouseZone (int mouseX, int mouseY) const |
Computes mouse zone from window coordinates. More... | |
void | changeSize (int mouseX, int mouseY) |
Resizes the window based on mouse zone and mouse screen coordinates. More... | |
virtual int | shapeCursorHandle (int event) |
Changes the window cursor based on the mouse position in the window. More... | |
void | initShapeExtension () |
Initializes shape extension. More... | |
bool | borderCleared () const |
Returns true if border was cleared for the shape. | |
void | shapeApply () |
Sets the shape to the window during window->draw() | |
void | resizingShape (int w, int h) |
Calls resizeShape() from inside CWindow::resize() | |
virtual void | shapeResize (int w, int h) |
Shape resize. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from sptk::CLayoutManager | |
static void | registerControl (std::string typeName, createControlCallback creator) noexcept |
Register control type for loading layouts. More... | |
static const std::map< std::string, Fl_Boxtype > & | boxTypeNames () |
Returns a read-only map of box type names and corresponding constants. | |
Static Protected Attributes inherited from sptk::CLayoutManager | |
static std::map< std::string, Fl_Boxtype > | m_boxTypeNames |
static createControlCallbackMap | controlCreator |
Dialog window.
Shows a modal window on the screen. CDialog has support for the database data exchange to edit a database record. The required SQL queries in this case are created on the fly, from the list of controls inside the dialog. Controls should have the field names defined, though. And don't forget to define a table name and key field name.
sptk::CDialog::CDialog | ( | int | w, |
int | h, | ||
const char * | label = nullptr |
||
) |
Constructor
w | Dialog width |
h | Dialog height |
label | Dialog caption |
|
override |
Destructor
CButton * sptk::CDialog::addExtraButton | ( | CButtonKind | buttonKind, |
const char * | label, | ||
Fl_Callback_p | callback | ||
) |
Adds a user-defined button to the dialog.
User-defined buttons usually do something in the dialog without closing the dialog.
buttonKind | CButtonKind, button type |
label | const char *, button label |
callback | Fl_Callback_p, button callback |
void sptk::CDialog::alert | ( | const String & | s | ) | const |
Shows an alert box
|
protectedvirtual |
Builds database interface queries using table(), keyField(), and control field names
If m_queriesBuilt is already true, does nothing.
|
protectedvirtual |
Ok button callback
If it returns true the dialog closes. False indicates an error and dialog stays open.
|
inlineoverridevirtual |
Returns widget class name (internal SPTK RTTI).
Reimplemented from sptk::CLayoutClient.
PoolDatabaseConnection * sptk::CDialog::database | ( | ) | const |
Returns current database connection
|
virtual |
Sets the database connection
db | Database connection |
void sptk::CDialog::defaultButton | ( | CButton * | btn | ) |
Defines the default button
btn | Button in dialog to become the default button |
|
inline |
Returns the number of controls inside the dialog with defined field names
|
override |
Own handle() method to process dialog events the special way
event | FLTK event |
|
inline |
Returns the key field name for the database table.
void sptk::CDialog::keyField | ( | const String & | keyFieldName | ) |
Sets the key field name for the database table.
The key field contains the unique value to find the database record.
keyFieldName | Name of the key field in the database table |
int sptk::CDialog::keyValue | ( | ) | const |
Returns the current database record key value.
void sptk::CDialog::keyValue | ( | int | val | ) |
Finds the database record by the value in previously defined key field.
|
protectedvirtual |
Loads data into dialog
Returns true upon success. If you're overwriting this method make sure you're calling the original CDialog::load() and use the result of it.
|
override |
Loads the dialog controls data from XML
node | XML node to load data from |
|
inline |
Returns the modal result of the dialog.
|
virtual |
Creates a new page as CGroup
Page | label |
autoColor | If true the page color is assigned automatically |
|
virtual |
Creates a new page as CScroll
label | Page label |
autoColor | If true the page color is assigned automatically |
|
protectedvirtual |
Ok button callback
If it returns true the dialog closes. False indicates an error and dialog stays open.
Reimplemented in sptk::CDirOpenDialog, sptk::CFileOpenDialog, and sptk::CFileSaveDialog.
Index operator to access controls with defined field name.
fieldName | The control field name |
|
virtual |
Resets all the controls inside the dialog tabs by calling reset() for every control
|
protectedvirtual |
Saves data from dialog
Returns true upon success. If you're overwriting this method make sure you're calling the original CDialog::save() and use the result of it.
|
overridevirtual |
Saves the dialog controls into XML
node | XML node to save data into |
Reimplemented from sptk::CWindow.
|
protectedvirtual |
Scans dialog controls
If m_controlsScanned is already true, does nothing.
bool sptk::CDialog::showModal | ( | ) |
Shows modal dialog
|
inline |
Returnes used database table
void sptk::CDialog::table | ( | const String & | tableName | ) |
Defines database table to use
tableName | Name of the database table |
void sptk::CDialog::table | ( | PoolDatabaseConnection * | db, |
const String & | tableName, | ||
const String & | keyFieldName | ||
) |
Fast setup of the database connection.
db | Database connection |
tableName | Name of the database table |
keyFieldName | Name of the key field in the database table |
|
protected |
The list of all controls (CControl-descendants)
|
protected |
The group buttons are placed on.
|
protected |
Standard Cancel button
|
protected |
Database interface: The flag indicating if available controls were scanned for field names.
|
protected |
Pointer to the default button
|
protected |
Database interface: The list of controls for standard processing
|
protected |
Database interface: The query to insert a new database record
|
protected |
Database interface: table key field name
|
protected |
Database interface: table key field value for the record to edit
|
protected |
The result of exiting the modal mode.
|
protected |
Standard Ok button
|
protected |
The tabs
|
protected |
Database interface: The flag indicating if queries are created from available controls.
|
protected |
Database interface: The query to select a database record
|
protected |
Database interface: The list of the controls to exclude from standard database queries.
|
protected |
Database interface: table name
|
protected |
Database interface: The query to update a database record