gwenhywfar
5.11.1beta
|
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/list1.h>
#include <gwenhywfar/list2.h>
#include <gwenhywfar/xml.h>
#include <gwenhywfar/db.h>
Go to the source code of this file.
Typedefs | |
typedef struct GWEN_DIALOG | GWEN_DIALOG |
typedef int GWENHYWFAR_CB(* | GWEN_DIALOG_SIGNALHANDLER) (GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender) |
typedef int GWENHYWFAR_CB(* | GWEN_DIALOG_SIGNALHANDLER2) (GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender, int intArg, const char *stringArg) |
Functions | |
GWENHYWFAR_API void | GWEN_Dialog_AddMediaPath (GWEN_DIALOG *dlg, const char *s) |
GWENHYWFAR_API void | GWEN_Dialog_AddMediaPathsFromPathManager (GWEN_DIALOG *dlg, const char *destlib, const char *pathName, const char *relPath) |
GWENHYWFAR_API int | GWEN_Dialog_AddSubDialog (GWEN_DIALOG *dlg, const char *parentWidgetName, GWEN_DIALOG *subdlg) |
GWENHYWFAR_API GWEN_DIALOG * | GWEN_Dialog_CreateAndLoadWithPath (const char *dialogId, const char *pmLibName, const char *pmDataDir, const char *fileName) |
GWENHYWFAR_API void | GWEN_Dialog_free (GWEN_DIALOG *dlg) |
GWENHYWFAR_API uint32_t | GWEN_Dialog_GetGuiId (const GWEN_DIALOG *dlg) |
GWENHYWFAR_API const char * | GWEN_Dialog_GetId (const GWEN_DIALOG *dlg) |
GWENHYWFAR_API GWEN_DIALOG * | GWEN_Dialog_new (const char *dialogId) |
GWENHYWFAR_API int | GWEN_Dialog_ReadXml (GWEN_DIALOG *dlg, GWEN_XMLNODE *node) |
GWENHYWFAR_API int | GWEN_Dialog_ReadXmlFile (GWEN_DIALOG *dlg, const char *fname) |
GWENHYWFAR_API int | GWEN_Dialog_RemoveWidget (GWEN_DIALOG *dlg, const char *name) |
GWENHYWFAR_API GWEN_DIALOG_SIGNALHANDLER | GWEN_Dialog_SetSignalHandler (GWEN_DIALOG *dlg, GWEN_DIALOG_SIGNALHANDLER fn) |
GWENHYWFAR_API GWEN_DIALOG_SIGNALHANDLER2 | GWEN_Dialog_SetSignalHandler2 (GWEN_DIALOG *dlg, GWEN_DIALOG_SIGNALHANDLER2 fn) |
Functions Available After Init Event | |
Functions in this group can only be called while in a GWEN_Gui_ExecDialog loop or between calls to GWEN_Gui_OpenDialog() and GWEN_Gui_CloseDialog() because these functions directly manipulate GUI widgets which are only valid in the intervals mentioned above. | |
GWENHYWFAR_API const char * | GWEN_Dialog_GetCharProperty (GWEN_DIALOG *dlg, const char *name, GWEN_DIALOG_PROPERTY prop, int index, const char *defaultValue) |
GWENHYWFAR_API int | GWEN_Dialog_GetIntProperty (GWEN_DIALOG *dlg, const char *name, GWEN_DIALOG_PROPERTY prop, int index, int defaultValue) |
GWENHYWFAR_API int | GWEN_Dialog_SetCharProperty (GWEN_DIALOG *dlg, const char *name, GWEN_DIALOG_PROPERTY prop, int index, const char *value, int doSignal) |
GWENHYWFAR_API int | GWEN_Dialog_SetIntProperty (GWEN_DIALOG *dlg, const char *name, GWEN_DIALOG_PROPERTY prop, int index, int value, int doSignal) |
Functions Available After Construction | |
These functions manipulate the descriptions of dialogs and widgets, the don't operate on the GUI widgets. That's why they are immediately available after construction. | |
GWENHYWFAR_API void | GWEN_Dialog_AddWidgetFlags (GWEN_DIALOG *dlg, const char *name, uint32_t fl) |
GWENHYWFAR_API GWEN_DB_NODE * | GWEN_Dialog_GetPreferences (const GWEN_DIALOG *dlg) |
GWENHYWFAR_API int | GWEN_Dialog_GetWidgetColumns (const GWEN_DIALOG *dlg, const char *name) |
GWENHYWFAR_API uint32_t | GWEN_Dialog_GetWidgetFlags (const GWEN_DIALOG *dlg, const char *name) |
GWENHYWFAR_API int | GWEN_Dialog_GetWidgetRows (const GWEN_DIALOG *dlg, const char *name) |
GWENHYWFAR_API const char * | GWEN_Dialog_GetWidgetText (const GWEN_DIALOG *dlg, const char *name) |
GWENHYWFAR_API void | GWEN_Dialog_SetWidgetColumns (GWEN_DIALOG *dlg, const char *name, int i) |
GWENHYWFAR_API void | GWEN_Dialog_SetWidgetFlags (GWEN_DIALOG *dlg, const char *name, uint32_t fl) |
GWENHYWFAR_API void | GWEN_Dialog_SetWidgetRows (GWEN_DIALOG *dlg, const char *name, int i) |
GWENHYWFAR_API void | GWEN_Dialog_SetWidgetText (GWEN_DIALOG *dlg, const char *name, const char *t) |
GWENHYWFAR_API void | GWEN_Dialog_SubWidgetFlags (GWEN_DIALOG *dlg, const char *name, uint32_t fl) |
Localisation | |
GWENHYWFAR_API const char * | GWEN_Dialog_GetI18nDomain (const GWEN_DIALOG *dlg) |
GWENHYWFAR_API void | GWEN_Dialog_SetI18nDomain (GWEN_DIALOG *dlg, const char *s) |
GWENHYWFAR_API const char * | GWEN_Dialog_TranslateString (const GWEN_DIALOG *dlg, const char *s) |
Convenience Functions | |
GWENHYWFAR_API char * | GWEN_Dialog_ListGetFirstColumnData (GWEN_DIALOG *dlg, const char *widgetName, int row) |
GWENHYWFAR_API int | GWEN_Dialog_ListGetItemMatchingFirstColumn (GWEN_DIALOG *dlg, const char *widgetName, const char *dataToMatch) |
GWENHYWFAR_API void | GWEN_Dialog_ListReadColumnSettings (GWEN_DIALOG *dlg, const char *widgetName, const char *variablePrefix, int maxColumns, int minColumnSize, GWEN_DB_NODE *dbPrefs) |
GWENHYWFAR_API void | GWEN_Dialog_ListWriteColumnSettings (GWEN_DIALOG *dlg, const char *widgetName, const char *variablePrefix, int maxColumns, int minColumnSize, GWEN_DB_NODE *dbPrefs) |
typedef struct GWEN_DIALOG GWEN_DIALOG |
typedef int GWENHYWFAR_CB(* GWEN_DIALOG_SIGNALHANDLER) (GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender) |
The signal handler should return one of the event result code (see GWEN_DialogEvent_ResultHandled and following) or a GWEN_ERROR code.
typedef int GWENHYWFAR_CB(* GWEN_DIALOG_SIGNALHANDLER2) (GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender, int intArg, const char *stringArg) |
anonymous enum |
These are the predefined result codes to be returned by a signal handler. (Note: this is not a typedef because the signal handler has to be able to return GWEN_ERROR codes as well).
Enumerator | |
---|---|
GWEN_DialogEvent_ResultHandled | |
GWEN_DialogEvent_ResultNotHandled | |
GWEN_DialogEvent_ResultAccept | |
GWEN_DialogEvent_ResultReject |
enum GWEN_DIALOG_PROPERTY |
GWENHYWFAR_API void GWEN_Dialog_AddMediaPath | ( | GWEN_DIALOG * | dlg, |
const char * | s | ||
) |
Add a path where to find media such as icons, images etc when used e.g. with pushbuttons or images.
GWENHYWFAR_API void GWEN_Dialog_AddMediaPathsFromPathManager | ( | GWEN_DIALOG * | dlg, |
const char * | destlib, | ||
const char * | pathName, | ||
const char * | relPath | ||
) |
Add paths from the given path manager. For each entry of the given path managers path list that entry is concatenated with the relPath argument (if not NULL) and added to the dialogs list of media paths.
dlg | dialog to which media paths are to be added |
destlib | see the argument of the same name in GWEN_PathManager_GetPaths |
pathName | see the argument of the same name in GWEN_PathManager_GetPaths |
relPath | optional relative path to be added to each entry of the given path manager's entry to form a media path for this dialog |
GWENHYWFAR_API int GWEN_Dialog_AddSubDialog | ( | GWEN_DIALOG * | dlg, |
const char * | parentWidgetName, | ||
GWEN_DIALOG * | subdlg | ||
) |
Inserts a sub-dialog into the given dialog. The widgets of the subdialog become children of the main dialog below the widget referenced to by parentName. Please take care that the subdialog doesn't contain widgets with the same name as the main dialog. This only works if GWEN_Gui_ExecDialog has not been called yet! Takes over ownership of the given subdialog.
GWENHYWFAR_API void GWEN_Dialog_AddWidgetFlags | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
uint32_t | fl | ||
) |
GWENHYWFAR_API GWEN_DIALOG* GWEN_Dialog_CreateAndLoadWithPath | ( | const char * | dialogId, |
const char * | pmLibName, | ||
const char * | pmDataDir, | ||
const char * | fileName | ||
) |
Create a dialog and try to load its definition file.
dialogId | name of the dialog to create |
pmLibName | library name as registered with GWEN_PATHMANAGER (used for GWEN_PathManager_FindFile) |
pmDataDir | datapath name as registered with GWEN_PATHMANAGER (used for GWEN_PathManager_FindFile) |
fileName | name of the file to load (relative to the destination, e.g. "aqbanking/backends/aqhbci/dialogs/dlg_ddvcard.dlg") |
GWENHYWFAR_API void GWEN_Dialog_free | ( | GWEN_DIALOG * | dlg | ) |
GWENHYWFAR_API const char* GWEN_Dialog_GetCharProperty | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
GWEN_DIALOG_PROPERTY | prop, | ||
int | index, | ||
const char * | defaultValue | ||
) |
Returns a string property.
If the pointer returned is not the defaultValue
but rather a pointer generated by the dialog framework implementation then the pointer is only guaranteed to be valid until the next call with the same values of name
and property
.
Example: If you cycle through all entries of a listbox (by modifying index
) each successive call overwrites the string previously returned. However, when you call this function once with the property GWEN_DialogProperty_Title and next time with a property of GWEN_DialogProperty_Value those two pointers will not influence each other.
dlg | pointer to the dialog to be inspected |
name | name of the widget of the dialog whose property is to be read. Use NULL or an empty string to select the dialog itself |
prop | property to read (see GWEN_DialogProperty_Title ff) |
index | (see GWEN_Dialog_SetIntProperty for an explanation) |
defaultValue | default value to be returned if the real value is unavailable (e.g. if the current value is an empty string) |
GWENHYWFAR_API uint32_t GWEN_Dialog_GetGuiId | ( | const GWEN_DIALOG * | dlg | ) |
GWENHYWFAR_API const char* GWEN_Dialog_GetI18nDomain | ( | const GWEN_DIALOG * | dlg | ) |
Returns the I18N domain of the dialog. This is normally taken from the dialog description file (attribute "i18n" of the "dialog" element). This domain is used to localize strings of the dialog description file by using it as first argument to GWEN_I18N_Translate(). This allows for translation within the context of the dialog. AqBanking's dialogs use "aqbanking" as I18N domain, so the translation for its dialogs also appear in its pot files.
GWENHYWFAR_API const char* GWEN_Dialog_GetId | ( | const GWEN_DIALOG * | dlg | ) |
The dialog id is in most cases hardcoded into the describing XML file. It is the unique name of the dialog. This name is used to read/write dialog preferences.
GWENHYWFAR_API int GWEN_Dialog_GetIntProperty | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
GWEN_DIALOG_PROPERTY | prop, | ||
int | index, | ||
int | defaultValue | ||
) |
This function returns the value of an integer property.
dlg | pointer to the dialog to be inspected |
name | name of the widget of the dialog whose property is to be read. Use NULL or an empty string to select the dialog itself |
prop | property to read (see GWEN_DialogProperty_Title ff) |
index | (see GWEN_Dialog_SetIntProperty for an explanation) |
defaultValue | default value to be returned if the real value is unavailable |
GWENHYWFAR_API GWEN_DB_NODE* GWEN_Dialog_GetPreferences | ( | const GWEN_DIALOG * | dlg | ) |
Returns a DB which can be used to read and store preference for the dialog. Most dialogs in AqBanking use this to remember the dialog geometry or the widths of columns in lists etc. This DB is automatically read from within the constructor (GWEN_Dialog_new) and written from within the destructor (GWEN_Dialog_free). This is achieved by calling the virtual functions GWEN_Gui_ReadDialogPrefs and GWEN_Gui_WriteDialogPrefs respectively. However, the current GWEN_GUI implementation must implement these functions. Fortunately, AqBanking's GUI implementation (use it with AB_Gui_Extend) does that. It reads/writes those dialog settings from/into its shared settings database.
GWENHYWFAR_API int GWEN_Dialog_GetWidgetColumns | ( | const GWEN_DIALOG * | dlg, |
const char * | name | ||
) |
This is another attribute from the dialog description file. It is used with widgets like GWEN_Widget_TypeLineEdit to specify the widget width in number of characters. It is also used for GWEN_Widget_TypeGridLayout to specify the number of columns.
dlg | pointer to the dialog to be inspected |
name | name of the widget of the dialog whose attribute is to be read. |
GWENHYWFAR_API uint32_t GWEN_Dialog_GetWidgetFlags | ( | const GWEN_DIALOG * | dlg, |
const char * | name | ||
) |
GWENHYWFAR_API int GWEN_Dialog_GetWidgetRows | ( | const GWEN_DIALOG * | dlg, |
const char * | name | ||
) |
This is another attribute from the dialog description file. It is used with widgets GWEN_Widget_TypeGridLayout to specify the number of rows.
dlg | pointer to the dialog to be inspected |
name | name of the widget of the dialog whose attribute is to be read. |
GWENHYWFAR_API const char* GWEN_Dialog_GetWidgetText | ( | const GWEN_DIALOG * | dlg, |
const char * | name | ||
) |
GWENHYWFAR_API char* GWEN_Dialog_ListGetFirstColumnData | ( | GWEN_DIALOG * | dlg, |
const char * | widgetName, | ||
int | row | ||
) |
Get the content of the first column of a given list entry (or whole content if only single column).
dlg | dialog containing the widget to handle |
widgetName | name of the widget to handle |
row | index of the list item (beginning with 0) |
GWENHYWFAR_API int GWEN_Dialog_ListGetItemMatchingFirstColumn | ( | GWEN_DIALOG * | dlg, |
const char * | widgetName, | ||
const char * | dataToMatch | ||
) |
Return index of list element whose content of the first column matches the given string.
The idea is to have the first column of a list entry contain a unique id by which the list can be searched.
dlg | dialog containing the widget to handle |
widgetName | name of the widget to handle |
dataToMatch | string to match against |
GWENHYWFAR_API void GWEN_Dialog_ListReadColumnSettings | ( | GWEN_DIALOG * | dlg, |
const char * | widgetName, | ||
const char * | variablePrefix, | ||
int | maxColumns, | ||
int | minColumnSize, | ||
GWEN_DB_NODE * | dbPrefs | ||
) |
GWENHYWFAR_API void GWEN_Dialog_ListWriteColumnSettings | ( | GWEN_DIALOG * | dlg, |
const char * | widgetName, | ||
const char * | variablePrefix, | ||
int | maxColumns, | ||
int | minColumnSize, | ||
GWEN_DB_NODE * | dbPrefs | ||
) |
Write current config of a list widget supporting columns (like GWEN_Widget_TypeListBox).
dlg | dialog containing the widget to handle |
widgetName | name of the widget to handle |
variablePrefix | prefix for the different settings, this will be prepended to the variable names used in the given dbPrefs settings. The following variable names will be used:
|
maxColumns | maximum number of columns to handle |
minColumnSize | minimum width of each column |
dbPrefs | GWEN_DB_NODE to store the settings in |
GWENHYWFAR_API GWEN_DIALOG* GWEN_Dialog_new | ( | const char * | dialogId | ) |
GWENHYWFAR_API int GWEN_Dialog_ReadXml | ( | GWEN_DIALOG * | dlg, |
GWEN_XMLNODE * | node | ||
) |
Read dialog description from the given XML element.
GWENHYWFAR_API int GWEN_Dialog_ReadXmlFile | ( | GWEN_DIALOG * | dlg, |
const char * | fname | ||
) |
Read dialog description from the given XML file.
GWENHYWFAR_API int GWEN_Dialog_RemoveWidget | ( | GWEN_DIALOG * | dlg, |
const char * | name | ||
) |
GWENHYWFAR_API int GWEN_Dialog_SetCharProperty | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
GWEN_DIALOG_PROPERTY | prop, | ||
int | index, | ||
const char * | value, | ||
int | doSignal | ||
) |
Modify a string property.
This might invalidate a pointer previously returned via GWEN_Dialog_GetCharProperty.
GWENHYWFAR_API void GWEN_Dialog_SetI18nDomain | ( | GWEN_DIALOG * | dlg, |
const char * | s | ||
) |
Set the I18N domain (see GWEN_Dialog_GetI18nDomain).
GWENHYWFAR_API int GWEN_Dialog_SetIntProperty | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
GWEN_DIALOG_PROPERTY | prop, | ||
int | index, | ||
int | value, | ||
int | doSignal | ||
) |
This function sets the value of an integer property.
dlg | pointer to the dialog to be manipulated |
name | name of the widget of the dialog whose property is to be manipulated. Use NULL or an empty string to select the dialog itself |
prop | property to modify (see GWEN_DialogProperty_Title ff) |
index | for widgets with array like data this is the index into that array. Normally this value is 0. However, there are examples when this parameter does not equal 0. The property GWEN_DialogProperty_ColumnWidth of a GWEN_Widget_TypeListBox is such an example. Here the index selects the column whose width is to be changed. |
value | the value to set |
doSignal | some implementations send the GWEN_DialogEvent_TypeValueChanged signal when values are manipulated. Set this parameter to 0 if you don't need that. However, this is just a hint for the implementation, you should not rely on it actually being regarded by the implementation. So you might or might not get such a signal upon manipulation of a property. |
GWENHYWFAR_API GWEN_DIALOG_SIGNALHANDLER GWEN_Dialog_SetSignalHandler | ( | GWEN_DIALOG * | dlg, |
GWEN_DIALOG_SIGNALHANDLER | fn | ||
) |
Sets the signal handler of the dialog. Please note that this doesn't set the signal handler of any sub-dialog, so each dialog will only receive its own signals.
GWENHYWFAR_API GWEN_DIALOG_SIGNALHANDLER2 GWEN_Dialog_SetSignalHandler2 | ( | GWEN_DIALOG * | dlg, |
GWEN_DIALOG_SIGNALHANDLER2 | fn | ||
) |
Sets the new signal handler of the dialog. Please note that this doesn't set the signal handler of any sub-dialog, so each dialog will only receive its own signals.
GWENHYWFAR_API void GWEN_Dialog_SetWidgetColumns | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
int | i | ||
) |
Set the number of columns (see GWEN_Dialog_GetWidgetColumns).
GWENHYWFAR_API void GWEN_Dialog_SetWidgetFlags | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
uint32_t | fl | ||
) |
GWENHYWFAR_API void GWEN_Dialog_SetWidgetRows | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
int | i | ||
) |
Set the number of columns (see GWEN_Dialog_GetWidgetRows).
GWENHYWFAR_API void GWEN_Dialog_SetWidgetText | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
const char * | t | ||
) |
GWENHYWFAR_API void GWEN_Dialog_SubWidgetFlags | ( | GWEN_DIALOG * | dlg, |
const char * | name, | ||
uint32_t | fl | ||
) |
GWENHYWFAR_API const char* GWEN_Dialog_TranslateString | ( | const GWEN_DIALOG * | dlg, |
const char * | s | ||
) |
Translates a string within the I18N domain of the dialog (see GWEN_Dialog_GetI18nDomain).