gui.h File Reference
`#include <gwenhywfar/inherit.h>`
`#include <gwenhywfar/logger.h>`
`#include <gwenhywfar/inetsocket.h>`
`#include <gwenhywfar/ssl_cert_descr.h>`
`#include <gwenhywfar/syncio.h>`
`#include <gwenhywfar/dialog.h>`
`#include <gwenhywfar/passwdstore.h>`
`#include <inttypes.h>`

Go to the source code of this file.

## Macros

#define | GWEN_GUI_CHECK_PERIOD 750
#define | GWEN_GUI_CPU_TIMEOUT 200
#define | GWEN_GUI_DELAY_SECS 2
Flags For GWEN_Gui_ProgressStart
These flags are given to GWEN_Gui_ProgressStart to modify its behaviour.
#define | GWEN_GUI_PROGRESS_ALLOW_EMBED 0x00000010
#define | GWEN_GUI_PROGRESS_ALLOW_SUBLEVELS 0x00000008
#define | GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG 0x00000080
#define | GWEN_GUI_PROGRESS_DELAY 0x00000001
#define | GWEN_GUI_PROGRESS_KEEP_OPEN 0x00000040
#define | GWEN_GUI_PROGRESS_SHOW_ABORT 0x00000004
#define | GWEN_GUI_PROGRESS_SHOW_LOG 0x00000002
#define | GWEN_GUI_PROGRESS_SHOW_PROGRESS 0x00000020
Flags For GWEN_Gui_InputBox
These flags are given to GWEN_Gui_InputBox to modify its behaviour.
#define | GWEN_GUI_INPUT_FLAGS_ALLOW_DEFAULT 0x00000010
#define | GWEN_GUI_INPUT_FLAGS_CONFIRM 0x00000001
#define | GWEN_GUI_INPUT_FLAGS_DIRECT 0x00000080
#define | GWEN_GUI_INPUT_FLAGS_NUMERIC 0x00000004
#define | GWEN_GUI_INPUT_FLAGS_OPTICAL 0x00000040
#define | GWEN_GUI_INPUT_FLAGS_RETRY 0x00000008
#define | GWEN_GUI_INPUT_FLAGS_SHOW 0x00000002
#define | GWEN_GUI_INPUT_FLAGS_TAN 0x00000020
Flags For GWEN_Gui_MessageBox

These flags are given to GWEN_Gui_MessageBox to modify its behaviour. You may OR-combine the flags.
Examples:

- normal error message, multiple buttons, first button confirms
  (GWEN_GUI_MSG_FLAGS_TYPE_ERROR |
  GWEN_GUI_MSG_FLAGS_CONFIRM_B1 |
  GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL)
  GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL
  #define GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL
  Definition gui.h:331
  GWEN_GUI_MSG_FLAGS_CONFIRM_B1
  #define GWEN_GUI_MSG_FLAGS_CONFIRM_B1
  Definition gui.h:299
  GWEN_GUI_MSG_FLAGS_TYPE_ERROR
  #define GWEN_GUI_MSG_FLAGS_TYPE_ERROR
  Definition gui.h:293
- dangerous error message, multiple buttons, first button confirms
  (GWEN_GUI_MSG_FLAGS_TYPE_ERROR |
  GWEN_GUI_MSG_FLAGS_CONFIRM_B1 |
  GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS)
  GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS
  #define GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS
  Definition gui.h:337

A note about confirmation buttons: Gwenhywfar has been designed with non-interactive applications in mind. For such an application it is important to know what button-press it has to simulate upon catching of a messagebox callback. This is what the confimation button flags are for. For informative messages the application may simply return the number of the confirmation button and be done.

However, non-interactive applications should return an error (value 0) for messages classified as dangerous (see GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS) to avoid data loss.

#define | GWEN_GUI_MSG_FLAGS_CONFIRM_B1 (1<<3)
#define | GWEN_GUI_MSG_FLAGS_CONFIRM_B2 (2<<3)
#define | GWEN_GUI_MSG_FLAGS_CONFIRM_B3 (3<<3)
#define | GWEN_GUI_MSG_FLAGS_CONFIRM_BUTTON(fl)
#define | GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS (0x1<<5)
#define | GWEN_GUI_MSG_FLAGS_SEVERITY_IS_DANGEROUS(fl)
#define | GWEN_GUI_MSG_FLAGS_SEVERITY_IS_NORMAL(fl)
#define | GWEN_GUI_MSG_FLAGS_SEVERITY_MASK (0x7<<5)
#define | GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL (0x0<<5)
#define | GWEN_GUI_MSG_FLAGS_TYPE_ERROR 2
#define | GWEN_GUI_MSG_FLAGS_TYPE_INFO 0
#define | GWEN_GUI_MSG_FLAGS_TYPE_IS_ERROR ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_ERROR)
#define | GWEN_GUI_MSG_FLAGS_TYPE_IS_INFO(fl)
#define | GWEN_GUI_MSG_FLAGS_TYPE_IS_WARN(fl)
#define | GWEN_GUI_MSG_FLAGS_TYPE_MASK 0x07
#define | GWEN_GUI_MSG_FLAGS_TYPE_WARN 1
Flags For GWEN_Gui_ShowBox
#define | GWEN_GUI_SHOWBOX_FLAGS_BEEP 0x00000001

## Typedefs

typedef struct GWEN_GUI | GWEN_GUI

## Enumerations

enum | GWEN_GUI_PASSWORD_METHOD { GWEN_Gui_PasswordMethod_Unknown =0 , GWEN_Gui_PasswordMethod_Mask =0xffff0000 , GWEN_Gui_PasswordMethod_Text =0x10000 , GWEN_Gui_PasswordMethod_OpticalHHD =0x20000 }

## Functions

Constructor, Destructor etc
GWENHYWFAR_API void | GWEN_Gui_Attach (GWEN_GUI *gui)
GWENHYWFAR_API void | GWEN_Gui_free (GWEN_GUI *gui)
GWENHYWFAR_API GWEN_GUI * | GWEN_Gui_GetGui (void)
GWENHYWFAR_API GWEN_GUI * | GWEN_Gui_new (void)
GWENHYWFAR_API void | GWEN_Gui_SetGui (GWEN_GUI *gui)
Character Set
All messages and texts can be converted from UTF8 automatically. This needs the name of the destination character set. See output of iconv –list for a list of supported character sets.
GWENHYWFAR_API int | GWEN_Gui_ConvertString (const char *text, size_t len, GWEN_BUFFER *tbuf, const char *fromCs, const char *toCs)
GWENHYWFAR_API const char * | GWEN_Gui_GetCharSet (const GWEN_GUI *gui)
GWENHYWFAR_API void | GWEN_Gui_SetCharSet (GWEN_GUI *gui, const char *s)
Virtual User Interaction Functions

All text passed to the frontend via one of the following functions is expected to be an UTF-8 string which may contain newlines but no other control characters. Text delivered as argument called text throughout the documentation in this group may contain HTML tags. If it does a non-HTML version must be supplied, too. The text MUST begin with the non-HTML version, so that a frontend not capable of parsing HTML can simply exclude the HTML part by cutting before "<html".

This is an example for HTML and non-HTML text:

const char *text;
text="This is the non-HTML text"
"<html>"
"And this is the <b>HTML</b> version."
"</html>"

Frontends capable of parsing HTML (such as the KDE frontend) will extract the HTML information and show only that part of the string.

Other frontends have to extract the non-HTML information and show only that.

GWENHYWFAR_API int | GWEN_Gui_CheckCert (const GWEN_SSLCERTDESCR *cert, GWEN_SYNCIO *sio, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_GetPassword (uint32_t flags, const char *token, const char *title, const char *text, char *buffer, int minLen, int maxLen, GWEN_GUI_PASSWORD_METHOD methodId, GWEN_DB_NODE *methodParams, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_GetSyncIo (const char *url, const char *defaultProto, int defaultPort, GWEN_SYNCIO **pSio)
GWENHYWFAR_API GWEN_DEPRECATED void | GWEN_Gui_HideBox (uint32_t id)
GWENHYWFAR_API int | GWEN_Gui_InputBox (uint32_t flags, const char *title, const char *text, char *buffer, int minLen, int maxLen, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_KeyDataFromText_OpenSSL (const char *text, unsigned char *buffer, unsigned int bufLength)
GWENHYWFAR_API int | GWEN_Gui_LogHook (const char *logDomain, GWEN_LOGGER_LEVEL priority, const char *s)
GWENHYWFAR_API int | GWEN_Gui_MessageBox (uint32_t flags, const char *title, const char *text, const char *b1, const char *b2, const char *b3, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_Print (const char *docTitle, const char *docType, const char *descr, const char *text, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_ProgressAdvance (uint32_t id, uint32_t progress)
GWENHYWFAR_API int | GWEN_Gui_ProgressEnd (uint32_t id)
GWENHYWFAR_API int | GWEN_Gui_ProgressLog (uint32_t id, GWEN_LOGGER_LEVEL level, const char *text)
GWENHYWFAR_API int | GWEN_Gui_ProgressLog2 (uint32_t id, GWEN_LOGGER_LEVEL level, const char *text,...)
GWENHYWFAR_API int | GWEN_Gui_ProgressSetTotal (uint32_t id, uint64_t total)
GWENHYWFAR_API uint32_t | GWEN_Gui_ProgressStart (uint32_t progressFlags, const char *title, const char *text, uint64_t total, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_SetPasswordStatus (const char *token, const char *pin, GWEN_GUI_PASSWORD_STATUS status, uint32_t guiid)
GWENHYWFAR_API GWEN_DEPRECATED uint32_t | GWEN_Gui_ShowBox (uint32_t flags, const char *title, const char *text, uint32_t guiid)
GWENHYWFAR_API void | GWEN_Gui_ShowError (const char *title, const char *text,...)
GWENHYWFAR_API int | GWEN_Gui_WaitForSockets (GWEN_SOCKET_LIST2 *readSockets, GWEN_SOCKET_LIST2 *writeSockets, uint32_t guiid, int msecs)
Password Cache
This implementation provides a password cache. This will be consulted upon GWEN_Gui_GetPassword. The implementation of GWEN_Gui_SetPasswordStatus also accesses this password cache. Normally this cache is filled from password files (like those specified via option -P of aqbanking-cli).
GWENHYWFAR_API GWEN_DB_NODE * | GWEN_Gui_GetPasswordDb (const GWEN_GUI *gui)
GWENHYWFAR_API void | GWEN_Gui_SetPasswordDb (GWEN_GUI *gui, GWEN_DB_NODE *dbPasswords, int persistent)
Password Store
This is the second level password storage. It can be used to safely store passwords in an encrypted file. This is used when a pin/password is requested which is not already in the password db (see Password Cache). This store is consulted if a given password is not found in the current pasword db (see GWEN_Gui_SetPasswordDb).
GWEN_SYNCIO * | GWEN_Gui_ExtendSyncIo (const char *url, const char *defaultProto, int defaultPort, GWEN_SYNCIO *baseSio)
GWENHYWFAR_API GWEN_LOGGER_LEVEL | GWEN_Gui_GetMinProgressLogLevel (const GWEN_GUI *gui)
GWENHYWFAR_API GWEN_PASSWD_STORE * | GWEN_Gui_GetPasswdStore (const GWEN_GUI *gui)
GWENHYWFAR_API void | GWEN_Gui_SetMinProgressLogLevel (GWEN_GUI *gui, GWEN_LOGGER_LEVEL ll)
GWENHYWFAR_API void | GWEN_Gui_SetPasswdStore (GWEN_GUI *gui, GWEN_PASSWD_STORE *sto)

## Special Progress Values for GWEN_Gui_ProgressAdvance

enum | GWEN_GUI_PASSWORD_STATUS { GWEN_Gui_PasswordStatus_Bad =-1 , GWEN_Gui_PasswordStatus_Unknown , GWEN_Gui_PasswordStatus_Ok , GWEN_Gui_PasswordStatus_Used , GWEN_Gui_PasswordStatus_Unused , GWEN_Gui_PasswordStatus_Remove }
#define | GWEN_GUI_PROGRESS_NONE (0xffffffffUL)
#define | GWEN_GUI_PROGRESS_ONE (0xfffffffeUL)

## Flags

Functions in this group influence the behaviour of GWEN_GUI implementations. These functions operate on a specific GUI object which applications create.
GWENHYWFAR_API void | GWEN_Gui_AddFlags (GWEN_GUI *gui, uint32_t fl)
#define | GWEN_GUI_FLAGS_ACCEPTVALIDCERTS 0x00000002
#define | GWEN_GUI_FLAGS_DIALOGSUPPORTED 0x80000000
#define | GWEN_GUI_FLAGS_NONINTERACTIVE 0x00000001
#define | GWEN_GUI_FLAGS_PERMPASSWORDS 0x00000008
#define | GWEN_GUI_FLAGS_REJECTINVALIDCERTS 0x00000004
GWENHYWFAR_API uint32_t | GWEN_Gui_GetFlags (const GWEN_GUI *gui)
GWENHYWFAR_API const char * | GWEN_Gui_GetName (void)
GWENHYWFAR_API void | GWEN_Gui_SetFlags (GWEN_GUI *gui, uint32_t fl)
GWENHYWFAR_API void | GWEN_Gui_SubFlags (GWEN_GUI *gui, uint32_t fl)

## Dialogs

Providing dialog functionality is optional for the implementation. The internal implementations of the password and message box functions internally use dialog functions, so if your implementation of GWEN_GUI also implements the dialogs API then you're already set for most of the interactive callbacks.
GWENHYWFAR_API int | GWEN_Gui_CloseDialog (GWEN_DIALOG *dlg)
GWENHYWFAR_API int | GWEN_Gui_ExecDialog (GWEN_DIALOG *dlg, uint32_t guiid)
enum | GWEN_GUI_FILENAME_TYPE { GWEN_Gui_FileNameType_OpenFileName =0 , GWEN_Gui_FileNameType_SaveFileName , GWEN_Gui_FileNameType_OpenDirectory }
GWENHYWFAR_API int | GWEN_Gui_GetFileName (const char *caption, GWEN_GUI_FILENAME_TYPE fnt, uint32_t flags, const char *patterns, GWEN_BUFFER *pathBuffer, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_OpenDialog (GWEN_DIALOG *dlg, uint32_t guiid)
GWENHYWFAR_API int | GWEN_Gui_RunDialog (GWEN_DIALOG *dlg, int untilEnd)

## Macro Definition Documentation

## GWEN_GUI_CHECK_PERIOD

#define GWEN_GUI_CHECK_PERIOD 750

Definition at line 182 of file gui.h.

## GWEN_GUI_CPU_TIMEOUT

#define GWEN_GUI_CPU_TIMEOUT 200

Definition at line 180 of file gui.h.

## GWEN_GUI_DELAY_SECS

#define GWEN_GUI_DELAY_SECS 2

Definition at line 183 of file gui.h.

## GWEN_GUI_FLAGS_ACCEPTVALIDCERTS

#define GWEN_GUI_FLAGS_ACCEPTVALIDCERTS 0x00000002

GUI automatically accepts valid certs

Definition at line 994 of file gui.h.

## GWEN_GUI_FLAGS_DIALOGSUPPORTED

#define GWEN_GUI_FLAGS_DIALOGSUPPORTED 0x80000000

GUI implementation supports dialogs (see MOD_GUI_DIALOG)

Definition at line 1001 of file gui.h.

## GWEN_GUI_FLAGS_NONINTERACTIVE

#define GWEN_GUI_FLAGS_NONINTERACTIVE 0x00000001

GUI is non-interactive

Definition at line 992 of file gui.h.

## GWEN_GUI_FLAGS_PERMPASSWORDS

#define GWEN_GUI_FLAGS_PERMPASSWORDS 0x00000008

GUI uses permanent password storage

Definition at line 998 of file gui.h.

## GWEN_GUI_FLAGS_REJECTINVALIDCERTS

#define GWEN_GUI_FLAGS_REJECTINVALIDCERTS 0x00000004

GUI automatically rejects invalid certs

Definition at line 996 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_ALLOW_DEFAULT

#define GWEN_GUI_INPUT_FLAGS_ALLOW_DEFAULT 0x00000010

allow a default value to be used instead of an entered one. A graphical UI should add a "default" button to the dialog.

Definition at line 220 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_CONFIRM

#define GWEN_GUI_INPUT_FLAGS_CONFIRM 0x00000001

input must be confirmed (e.g. by asking for the same input twice)

Definition at line 211 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_DIRECT

#define GWEN_GUI_INPUT_FLAGS_DIRECT 0x00000080

The input MUST come via user input, not from some sort of password cache

Definition at line 226 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_NUMERIC

#define GWEN_GUI_INPUT_FLAGS_NUMERIC 0x00000004

numeric input is requested (e.g. for PINs)

Definition at line 215 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_OPTICAL

#define GWEN_GUI_INPUT_FLAGS_OPTICAL 0x00000040

The input contains optical data encapsuled in "$OBEGIN$" and "$OEND$" (this is used by GWEN_Gui_GetPassword)

Definition at line 224 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_RETRY

#define GWEN_GUI_INPUT_FLAGS_RETRY 0x00000008

if set then this is a retry (esp. when getting a PIN)

Definition at line 217 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_SHOW

#define GWEN_GUI_INPUT_FLAGS_SHOW 0x00000002

input may be shown (otherwise it should be hidden, e.g. for passwords)

Definition at line 213 of file gui.h.

## GWEN_GUI_INPUT_FLAGS_TAN

#define GWEN_GUI_INPUT_FLAGS_TAN 0x00000020

The input is a TAN (this is used by GWEN_Gui_GetPassword)

Definition at line 222 of file gui.h.

## GWEN_GUI_MSG_FLAGS_CONFIRM_B1

#define GWEN_GUI_MSG_FLAGS_CONFIRM_B1 (1<<3)

button 1 is the confirmation button

Definition at line 299 of file gui.h.

## GWEN_GUI_MSG_FLAGS_CONFIRM_B2

#define GWEN_GUI_MSG_FLAGS_CONFIRM_B2 (2<<3)

button 2 is the confirmation button

Definition at line 301 of file gui.h.

## GWEN_GUI_MSG_FLAGS_CONFIRM_B3

#define GWEN_GUI_MSG_FLAGS_CONFIRM_B3 (3<<3)

button 3 is the confirmation button

Definition at line 303 of file gui.h.

## GWEN_GUI_MSG_FLAGS_CONFIRM_BUTTON

#define GWEN_GUI_MSG_FLAGS_CONFIRM_BUTTON | ( |  | fl | ) |

Value:
(((fl)>>3) & 0x3)

Determine which button is the confirmation button

Definition at line 305 of file gui.h.

## GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS

#define GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS (0x1<<5)

Message is considered dangerous and thus should be attended to by a humanoid ;-)

Definition at line 337 of file gui.h.

## GWEN_GUI_MSG_FLAGS_SEVERITY_IS_DANGEROUS

#define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_DANGEROUS | ( |  | fl | ) |

Value:
((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\
GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS)
GWEN_GUI_MSG_FLAGS_SEVERITY_MASK
#define GWEN_GUI_MSG_FLAGS_SEVERITY_MASK
Definition gui.h:329

Definition at line 338 of file gui.h.

## GWEN_GUI_MSG_FLAGS_SEVERITY_IS_NORMAL

#define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_NORMAL | ( |  | fl | ) |

Value:
((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\
GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL)

Definition at line 332 of file gui.h.

## GWEN_GUI_MSG_FLAGS_SEVERITY_MASK

#define GWEN_GUI_MSG_FLAGS_SEVERITY_MASK (0x7<<5)

Check for the severity of the message. This allows non-interactive backends to react on the message accordingly. The backend calling this function thus allows the frontend to detect when the message is important regarding data security. E.g. a message like "Shall I delete this file" should be considered dangerous (since this might result in a data loss). However, the message "Application started" is not that dangerous ;-)

The following example allows to determine whether a message is dangerous:

if ( ( flags & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK) ==
GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS) {
fprintf(stderr, "This is dangerous.\n");
}

Definition at line 329 of file gui.h.

## GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL

#define GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL (0x0<<5)

Message does not affect security or induce any problem to the system

Definition at line 331 of file gui.h.

## GWEN_GUI_MSG_FLAGS_TYPE_ERROR

#define GWEN_GUI_MSG_FLAGS_TYPE_ERROR 2

The message is a error message

Definition at line 293 of file gui.h.

## GWEN_GUI_MSG_FLAGS_TYPE_INFO

#define GWEN_GUI_MSG_FLAGS_TYPE_INFO 0

The message is a simple information.

Definition at line 281 of file gui.h.

## GWEN_GUI_MSG_FLAGS_TYPE_IS_ERROR

#define GWEN_GUI_MSG_FLAGS_TYPE_IS_ERROR ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_ERROR)

check whether the given flags represent an error message

Definition at line 295 of file gui.h.

## GWEN_GUI_MSG_FLAGS_TYPE_IS_INFO

#define GWEN_GUI_MSG_FLAGS_TYPE_IS_INFO | ( |  | fl | ) |

Value:
((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_INFO)
GWEN_GUI_MSG_FLAGS_TYPE_INFO
#define GWEN_GUI_MSG_FLAGS_TYPE_INFO
Definition gui.h:281
GWEN_GUI_MSG_FLAGS_TYPE_MASK
#define GWEN_GUI_MSG_FLAGS_TYPE_MASK
Definition gui.h:279

check whether the given flags represent an info message

Definition at line 283 of file gui.h.

## GWEN_GUI_MSG_FLAGS_TYPE_IS_WARN

#define GWEN_GUI_MSG_FLAGS_TYPE_IS_WARN | ( |  | fl | ) |

Value:
((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_WARN)
GWEN_GUI_MSG_FLAGS_TYPE_WARN
#define GWEN_GUI_MSG_FLAGS_TYPE_WARN
Definition gui.h:287

check whether the given flags represent a warning message

Definition at line 289 of file gui.h.

## GWEN_GUI_MSG_FLAGS_TYPE_MASK

#define GWEN_GUI_MSG_FLAGS_TYPE_MASK 0x07

Defines the mask to catch the message type. E.g. a check whether a message is a warning could be performed by:

if ( ( flags & GWEN_GUI_MSG_FLAGS_TYPE_MASK) ==
GWEN_GUI_MSG_FLAGS_TYPE_WARN) {
fprintf(stderr, "This is a warning.\n");
}

Definition at line 279 of file gui.h.

## GWEN_GUI_MSG_FLAGS_TYPE_WARN

#define GWEN_GUI_MSG_FLAGS_TYPE_WARN 1

The message is a warning

Definition at line 287 of file gui.h.

## GWEN_GUI_PROGRESS_ALLOW_EMBED

#define GWEN_GUI_PROGRESS_ALLOW_EMBED 0x00000010

Definition at line 196 of file gui.h.

## GWEN_GUI_PROGRESS_ALLOW_SUBLEVELS

#define GWEN_GUI_PROGRESS_ALLOW_SUBLEVELS 0x00000008

Definition at line 195 of file gui.h.

## GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG

#define GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG 0x00000080

Definition at line 199 of file gui.h.

## GWEN_GUI_PROGRESS_DELAY

#define GWEN_GUI_PROGRESS_DELAY 0x00000001

Definition at line 192 of file gui.h.

## GWEN_GUI_PROGRESS_KEEP_OPEN

#define GWEN_GUI_PROGRESS_KEEP_OPEN 0x00000040

Definition at line 198 of file gui.h.

## GWEN_GUI_PROGRESS_NONE

#define GWEN_GUI_PROGRESS_NONE (0xffffffffUL)

This value is used with GWEN_Gui_ProgressAdvance to flag that there really was no progress since the last call to that function but that that function should simply check for user interaction (without the need of updating the progress bar).

Definition at line 368 of file gui.h.

## GWEN_GUI_PROGRESS_ONE

#define GWEN_GUI_PROGRESS_ONE (0xfffffffeUL)

This value is used when the total number of steps is not known to the caller and he just wants to advance the progress by one (e.g. backends use this value when a job has been finished, but the backends do not know how many jobs there still are in AqBanking's queue).

Definition at line 376 of file gui.h.

## GWEN_GUI_PROGRESS_SHOW_ABORT

#define GWEN_GUI_PROGRESS_SHOW_ABORT 0x00000004

Definition at line 194 of file gui.h.

## GWEN_GUI_PROGRESS_SHOW_LOG

#define GWEN_GUI_PROGRESS_SHOW_LOG 0x00000002

Definition at line 193 of file gui.h.

## GWEN_GUI_PROGRESS_SHOW_PROGRESS

#define GWEN_GUI_PROGRESS_SHOW_PROGRESS 0x00000020

Definition at line 197 of file gui.h.

## GWEN_GUI_SHOWBOX_FLAGS_BEEP

#define GWEN_GUI_SHOWBOX_FLAGS_BEEP 0x00000001

Make the frontend beep. This should rarely be used, and only in situations where it is very important to get the users attention (e.g. when asking for a PIN on a card reader).

Definition at line 353 of file gui.h.

## Typedef Documentation

## GWEN_GUI

typedef struct GWEN_GUI GWEN_GUI

Definition at line 176 of file gui.h.

## Enumeration Type Documentation

## GWEN_GUI_FILENAME_TYPE

enum GWEN_GUI_FILENAME_TYPE

Enumerator
GWEN_Gui_FileNameType_OpenFileName |
GWEN_Gui_FileNameType_SaveFileName |
GWEN_Gui_FileNameType_OpenDirectory |

Definition at line 949 of file gui.h.

## GWEN_GUI_PASSWORD_METHOD

enum GWEN_GUI_PASSWORD_METHOD

Password/pin/tan entry method. The method id uses the higher 16 bits of a 32 bit word to define the method. The lower 16 bits are used to define the version of the method. E.g. the method for input using optical data (i.e. flicker code) knows multiple versions, currently 1.3 and 1.4. So the complete method id for optical input method HHD version 1.4 would be 0x20104. Use GWEN_Gui_PasswordMethod_Mask to get the basic method id.

Enumerator
GWEN_Gui_PasswordMethod_Unknown |
GWEN_Gui_PasswordMethod_Mask |
GWEN_Gui_PasswordMethod_Text |
GWEN_Gui_PasswordMethod_OpticalHHD |

Definition at line 163 of file gui.h.

## GWEN_GUI_PASSWORD_STATUS

enum GWEN_GUI_PASSWORD_STATUS

This status is used for passwords, pins and tans, e.g. by the CryptToken code. It can be used by implementations to mark bad pins, used/unused tans etc.

Enumerator
GWEN_Gui_PasswordStatus_Bad |
GWEN_Gui_PasswordStatus_Unknown |
GWEN_Gui_PasswordStatus_Ok |
GWEN_Gui_PasswordStatus_Used |
GWEN_Gui_PasswordStatus_Unused |
GWEN_Gui_PasswordStatus_Remove |

Definition at line 386 of file gui.h.

## Function Documentation

## GWEN_Gui_AddFlags()

GWENHYWFAR_API void GWEN_Gui_AddFlags | ( | GWEN_GUI * | gui,
|  | uint32_t | fl )

References GWENHYWFAR_API.

## GWEN_Gui_Attach()

GWENHYWFAR_API void GWEN_Gui_Attach | ( | GWEN_GUI * | gui | ) |

References GWENHYWFAR_API.

## GWEN_Gui_CheckCert()

GWENHYWFAR_API int GWEN_Gui_CheckCert | ( | const GWEN_SSLCERTDESCR * | cert,
|  | GWEN_SYNCIO * | sio,
|  | uint32_t | guiid )

This function checks the given certificate. The default implementation just shows the given certificate to the user and asks whether to accept it.

Parameters

  cert | certificate description
  io | IO layer from which the certificate was received
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

References GWENHYWFAR_API.

## GWEN_Gui_CloseDialog()

GWENHYWFAR_API int GWEN_Gui_CloseDialog | ( | GWEN_DIALOG * | dlg | ) |

Close a dialog. This function should hide the given dialog and release all its resources.

Returns
  <0: error code

Parameters

  dlg | pointer to the dialog object
  guiid | id as returned by GWEN_Gui_ProgressStart, GWEN_Gui_ShowBox or as can be found via GWEN_Dialog_GetGuiId())

References GWENHYWFAR_API.

## GWEN_Gui_ConvertString()

GWENHYWFAR_API int GWEN_Gui_ConvertString | ( | const char * | text,
|  | size_t | len,
|  | GWEN_BUFFER * | tbuf,
|  | const char * | fromCs,
|  | const char * | toCs )

References GWENHYWFAR_API.

## GWEN_Gui_ExecDialog()

GWENHYWFAR_API int GWEN_Gui_ExecDialog | ( | GWEN_DIALOG * | dlg,
|  | uint32_t | guiid )

This function shows and executes the given dialog and returns the result. See MOD_GUI_DIALOG for a description of the dialog framework.

Returns
  <0: error code, 0: aborted, 1: accepted (e.g. "Ok" pressed)

Parameters

  dlg | pointer to the dialog object
  guiid | id as returned by GWEN_Gui_ProgressStart, GWEN_Gui_ShowBox or as can be found via GWEN_Dialog_GetGuiId())

References GWENHYWFAR_API.

## GWEN_Gui_ExtendSyncIo()

GWEN_SYNCIO * GWEN_Gui_ExtendSyncIo | ( | const char * | url,
|  | const char * | defaultProto,
|  | int | defaultPort,
|  | GWEN_SYNCIO * | baseSio )

Stack sync io layers above the given base layer.

This is a convenience function to extend a base layer (e.g. created by GWEN_SyncIo_Socket_new) to support HTTP or HTTPS over the given base layer.

You can use this function to allow for e.g. HTTPS over a socket created by functions GWEN_Socket_Accept and GWEN_SyncIo_Socket_TakeOver.

The caller is responsible for freeing the object returned (if any).

Returns
  syncio object supporting the given protocol (e.g. HTTP, HTTPS), NULL on error

Parameters

  url | url to which the caller wants to connect to. You should call GWEN_Url_fromString() to get the information required to determine the protocol and destination.
  defaultProto | default protocol name if not specified by the url (e.g. "http", "https")
  defaultPort | default port if not specified by the url
  baseSio | base layer to extend (e.g. created by GWEN_SyncIo_Socket_new)

## GWEN_Gui_free()

GWENHYWFAR_API void GWEN_Gui_free | ( | GWEN_GUI * | gui | ) |

References GWENHYWFAR_API.

## GWEN_Gui_GetCharSet()

GWENHYWFAR_API const char * GWEN_Gui_GetCharSet | ( | const GWEN_GUI * | gui | ) |

References GWENHYWFAR_API.

## GWEN_Gui_GetFileName()

GWENHYWFAR_API int GWEN_Gui_GetFileName | ( | const char * | caption,
|  | GWEN_GUI_FILENAME_TYPE | fnt,
|  | uint32_t | flags,
|  | const char * | patterns,
|  | GWEN_BUFFER * | pathBuffer,
|  | uint32_t | guiid )

This function is used to get the path and name of a single file or folder.

Parameters

  caption | title for the dialog
  fnt | type of the operation (see GWEN_Gui_FileNameType_OpenFileName and following)
  flags | currently reserved, use 0
  patterns | multiple tab-separated entries like in: "All Files (*)\tC++ Sources (*.cpp,*.cc)\tC++ Headers (*.hpp,*.hh,*.h)"
  pathBuffer | upon call this may contain a preselected path/filename, upon return this will contain the selected name

Returns
  0 if ok, !=0 on error

## GWEN_Gui_GetFlags()

GWENHYWFAR_API uint32_t GWEN_Gui_GetFlags | ( | const GWEN_GUI * | gui | ) |

References GWENHYWFAR_API.

## GWEN_Gui_GetGui()

GWENHYWFAR_API GWEN_GUI * GWEN_Gui_GetGui | ( | void |  | ) |

References GWENHYWFAR_API.

## GWEN_Gui_GetMinProgressLogLevel()

GWENHYWFAR_API GWEN_LOGGER_LEVEL GWEN_Gui_GetMinProgressLogLevel | ( | const GWEN_GUI * | gui | ) |

Returns the minimum log level needed to show progress logs

References GWENHYWFAR_API.

## GWEN_Gui_GetName()

GWENHYWFAR_API const char * GWEN_Gui_GetName | ( | void |  | ) |

References GWENHYWFAR_API.

## GWEN_Gui_GetPasswdStore()

GWENHYWFAR_API GWEN_PASSWD_STORE * GWEN_Gui_GetPasswdStore | ( | const GWEN_GUI * | gui | ) |

References GWENHYWFAR_API.

## GWEN_Gui_GetPassword()

GWENHYWFAR_API int GWEN_Gui_GetPassword | ( | uint32_t | flags,
|  | const char * | token,
|  | const char * | title,
|  | const char * | text,
|  | char * | buffer,
|  | int | minLen,
|  | int | maxLen,
|  | GWEN_GUI_PASSWORD_METHOD | methodId,
|  | GWEN_DB_NODE * | methodParams,
|  | uint32_t | guiid )

This function retrieves a password or pin. The implementation might want to use a cache or a password file. The default implementation simply asks the user for input. The function GWEN_Gui_SetPasswordStatus() is used to communicate the status of a password. So if this function here uses a password cache then the callback for GWEN_Gui_SetPasswordStatus() should also be implemented.

NOTE: AqBanking uses GWEN_Gui_PasswordMethod_OpticalHHD as methodId for all optical TAN input methods like "chipTAN optisch" and others. To determine which optical method is actually requested see the DB variable "tanMethodId" inside the methodParams parameter. The data to send to the TAN generator can be found in the toplevel variable "challenge".

Parameters

  flags | flags, see GWEN_GUI_INPUT_FLAGS_CONFIRM ff.
  token | unique identification for the password or pin. This can be used to read the password from a cache or file.
  title | title of the input box
  text | Text of the box: UTF-8, with both a normal text and a HTML variant of the text in the same string. See text restrictions note above.
  buffer | buffer to store the response in. Must have at least room for maxLen bytes
  minLen | minimal length of the password (if 0 then there is no low limit)
  maxLen | size of the buffer including the trailing NULL character. This means that if you want to ask the user for a PIN of at most 4 characters you need to supply a buffer of at least 5 bytes and provide a 5 as maxLen.
  methodId | Id of the pin/password/tan entry.
  methodParams | additional parameters for the pin/password/tan entry, content depends on the methodId (my be NULL for simple text input)
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

References GWENHYWFAR_API.

## GWEN_Gui_GetPasswordDb()

GWENHYWFAR_API GWEN_DB_NODE * GWEN_Gui_GetPasswordDb | ( | const GWEN_GUI * | gui | ) |

Returns a pointer to the internally used password cache. The GUI object remains the owner of the object returned (if any).

## GWEN_Gui_GetSyncIo()

GWENHYWFAR_API int GWEN_Gui_GetSyncIo | ( | const char * | url,
|  | const char * | defaultProto,
|  | int | defaultPort,
|  | GWEN_SYNCIO ** | pSio )

This function creates a base layer GWEN_SYNCIO. The idea is to allow applications to implement their own PROXY handling.

Parameters

  url | url to which the caller wants to connect to. You should call GWEN_Url_fromString() to get the information required to determine the protocol and destination.
  defaultProto | default protocol name if not specified by the url (e.g. "http", "https", "hbci")
  defaultPort | default port if not specified by the url
  pSio | pointer to a variable to receive the created GWEN_SYNCIO.

References GWENHYWFAR_API.

## GWEN_Gui_HideBox()

GWENHYWFAR_API GWEN_DEPRECATED void GWEN_Gui_HideBox | ( | uint32_t | id | ) |

Hides a message box previously shown by a call to GWEN_Gui_ShowBox.

This function MUST return immediately (non-blocking).

This function is deprecated.

Parameters

  id | id returned by GWEN_Gui_ShowBox. If 0 then the last message shown is referred to.

References GWENHYWFAR_API.

## GWEN_Gui_InputBox()

GWENHYWFAR_API int GWEN_Gui_InputBox | ( | uint32_t | flags,
|  | const char * | title,
|  | const char * | text,
|  | char * | buffer,
|  | int | minLen,
|  | int | maxLen,
|  | uint32_t | guiid )

Ask the user for input.

This function is blocking.

Parameters

  flags | flags, see GWEN_GUI_INPUT_FLAGS_CONFIRM ff.
  title | title of the input box
  text | Text of the box: UTF-8, with both a normal text and a HTML variant of the text in the same string. See text restrictions note above.
  buffer | buffer to store the response in. Must have at least room for maxLen bytes
  minLen | minimal length of input (if 0 then there is no low limit)
  maxLen | size of the buffer including the trailing NULL character. This means that if you want to ask the user for a PIN of at most 4 characters you need to supply a buffer of at least 5 bytes and provide a 5 as maxLen.
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

Returns
  Zero on success, less than zero when the user requested abort or there was any error. The special value AB_ERROR_DEFAULT_VALUE should be returned if the flag GWEN_GUI_INPUT_FLAGS_ALLOW_DEFAULT was given and the user has chosen to use the default value (e.g. pressed the "default" button in a GUI). A return value of "1" means the result may be stored by the application. This value is returned when the user ticks the checkbox "Store permanently".

References GWEN_DEPRECATED, and GWENHYWFAR_API.

## GWEN_Gui_KeyDataFromText_OpenSSL()

GWENHYWFAR_API int GWEN_Gui_KeyDataFromText_OpenSSL | ( | const char * | text,
|  | unsigned char * | buffer,
|  | unsigned int | bufLength )

This function is not officially part of the API but is needed for some ancient OpenHBCI keyfiles. License issues forbid us to link against OpenSSL so we leave it up to the application to implement this function. A converter tool might use this function once to convert an anciant OpenHBCI key file.

Parameters

  text | phrase to generate a key from
  buffer | buffer to write the keydata generated from the given passphrase
  bufLengthr | size of that buffer

References GWENHYWFAR_API.

## GWEN_Gui_LogHook()

GWENHYWFAR_API int GWEN_Gui_LogHook | ( | const char * | logDomain,
|  | GWEN_LOGGER_LEVEL | priority,
|  | const char * | s )

This function is called internally by GWEN_Logger_Log. PLEASE NOTE: If you save the information in a file make sure to ignore messages from the log domain "gwenhywfar" with log level debug or higher, because those might contain sensitive information! Information of that level is not supposed to be saved to a file!

Parameters

  logDomain | logdomain of the given log message (e.g. "gwenhywfar")
  priority | priority of the message
  s | string to log

References GWENHYWFAR_API.

## GWEN_Gui_MessageBox()

GWENHYWFAR_API int GWEN_Gui_MessageBox | ( | uint32_t | flags,
|  | const char * | title,
|  | const char * | text,
|  | const char * | b1,
|  | const char * | b2,
|  | const char * | b3,
|  | uint32_t | guiid )

Show a message box with optional buttons. The message box may either contain 1, 2 or three buttons. If only one button is wanted then b1 should hold a pointer to the button text (b2 and b3 must be NULL) In two-button mode b1 and b2 must be valid (b3 must be NULL) In three-button-mode b1, b2 and b3 must be valid pointers. The return value tells which button the user pressed:

- 1: button 1
- 2: button 2
- 3: button 3

If the frontend can not determine which button has been pressed (e.g. if no button was pressed but the user rather aborted the dialog by simply closing the box) it should return 0.

This function is blocking.

Returns
  the number of the button pressed (1=b1, 2=b2, 3=b3), any other value should be considered an error, including 0)

Parameters

  flags | flags, see GWEN_GUI_MSG_FLAGS_TYPE_MASK ff.
  title | title of the message box
  text | Text of the box: UTF-8, with both a normal text and a HTML variant of the text in the same string. See text restrictions note above.
  b1 | text for the first button (required), should be something like "Ok" (see text restrictions note above)
  b2 | text for the optional second button
  b3 | text for the optional third button
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

References GWENHYWFAR_API.

## GWEN_Gui_new()

GWENHYWFAR_API GWEN_GUI * GWEN_Gui_new | ( | void |  | ) |

References GWENHYWFAR_API.

## GWEN_Gui_OpenDialog()

GWENHYWFAR_API int GWEN_Gui_OpenDialog | ( | GWEN_DIALOG * | dlg,
|  | uint32_t | guiid )

Open a dialog. This function should create all the necessary dialog resources (=windows) and return.

Returns
  <0: error code

Parameters

  dlg | pointer to the dialog object
  guiid | id as returned by GWEN_Gui_ProgressStart, GWEN_Gui_ShowBox or as can be found via GWEN_Dialog_GetGuiId())

References GWENHYWFAR_API.

## GWEN_Gui_Print()

GWENHYWFAR_API int GWEN_Gui_Print | ( | const char * | docTitle,
|  | const char * | docType,
|  | const char * | descr,
|  | const char * | text,
|  | uint32_t | guiid )

This function makes the application print something.

Parameters

  docTitle | title of the document. This might be presented to the user
  docType | an unique identifier of the document to be printed. This can be used by the application to separate printer settings for different document types. The name itself has no meaning and can be choosen freely by the caller. However, backends should append their name and a colon to keep this argument unique. This argument should not be translated.
  descr | an optional description about what the document contains. This might be shown to the user (see text restriction notes above).
  text | text to be printed (see text restriction notes above).
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

References GWENHYWFAR_API.

## GWEN_Gui_ProgressAdvance()

GWENHYWFAR_API int GWEN_Gui_ProgressAdvance | ( | uint32_t | id,
|  | uint32_t | progress )

Advances the progress bar an application might present to the user and checks whether the user wants to abort the operation currently in progress.

On graphical user interfaces this function should also check for user interaction and/or update the GUI (e.g. by calling qApp->processEvents() when using QT/KDE).

This function MUST return immediately (non-blocking).

Returns
  0 if ok, !=0 if the current operation is to be aborted

Parameters

  id | id assigned by GWEN_Gui_ProgressStart (if 0 then the last started progress dialog is referred to)
  progress | new value for progress. A special value is GWEN_GUI_PROGRESS_NONE which means that the progress is unchanged. This might be used as a keepalive call to a GUI.

References GWENHYWFAR_API.

## GWEN_Gui_ProgressEnd()

GWENHYWFAR_API int GWEN_Gui_ProgressEnd | ( | uint32_t | id | ) |

Flags the end of the current operation. In graphical user interfaces this call should allow the user to close the progress dialog window.

On graphical user interfaces a call to this function should disable the abort button. It would be best not to close the dialog on receiption of this call but to simply enable a dialog closing (otherwise the user will not be able to see the log messages).

Whether this function is blocking or not depends on the status of the progress dialog and its initial flags. If the dialog needs to stay open for the user to read the log messages etc then this function only needs to return after the user manually closes the dialog.

If there is no reason to keep the dialog open then this function should simply close the dialog window and return immediately.

Parameters

  id | id assigned by GWEN_Gui_ProgressStart (if 0 then the last started progress dialog is referred to)

References GWENHYWFAR_API.

## GWEN_Gui_ProgressLog()

GWENHYWFAR_API int GWEN_Gui_ProgressLog | ( | uint32_t | id,
|  | GWEN_LOGGER_LEVEL | level,
|  | const char * | text )

Adds a log message to the referred process dialog.

This function MUST return immediately (non-blocking).

Parameters

  id | id assigned by GWEN_Gui_ProgressStart (if 0 then the last started progress dialog is referred to)
  level | log level (see GWEN_Gui_LogLevelPanic ff.)
  text | Text of the box: UTF-8, with both a normal text and a HTML variant of the text in the same string. See text restrictions note above.

References GWENHYWFAR_API.

## GWEN_Gui_ProgressLog2()

GWENHYWFAR_API int GWEN_Gui_ProgressLog2 | ( | uint32_t | id,
|  | GWEN_LOGGER_LEVEL | level,
|  | const char * | text,
|  |  | ... )

Adds a log message to the referred process dialog and returns immediately.

This is a convenience function to be used with variable number of arguments (like printf). It uses the given arguments to prepare a buffer which is then handed to GWEN_Gui_ProgressLog.

Parameters

  id | id assigned by GWEN_Gui_ProgressStart (if 0 then the last started progress dialog is referred to)
  level | log level (see GWEN_Gui_LogLevelPanic ff.)
  text | Text of the box (possibly including printf format string characters): UTF-8, with both a normal text and a HTML variant of the text in the same string. See text restrictions note above.

References GWENHYWFAR_API.

## GWEN_Gui_ProgressSetTotal()

GWENHYWFAR_API int GWEN_Gui_ProgressSetTotal | ( | uint32_t | id,
|  | uint64_t | total )

References GWENHYWFAR_API.

## GWEN_Gui_ProgressStart()

GWENHYWFAR_API uint32_t GWEN_Gui_ProgressStart | ( | uint32_t | progressFlags,
|  | const char * | title,
|  | const char * | text,
|  | uint64_t | total,
|  | uint32_t | guiid )

This function is called when a long term operation is started. Theoretically nesting is allowed, however, you should refrain from opening multiple progress dialogs to avoid confusion of the user.

This function must return immediately (i.e. it MUST NOT wait for user interaction).

On graphical user interfaces such a dialog should contain a widget for the text presented here, a progress bar, a text widget to collect the log messages received via GWEN_Gui_ProgressLog and a button to allow the user to abort the current operation monitored by this dialog window.

Between a call to this function and one to GWEN_Gui_ProgressEnd the user should not be allowed to close the dialog window.

This function MUST return immediately (non-blocking).

Returns
  id to be used with the other GWEN_Gui_Progress functions.

Parameters

  title | title of the dialog
  text | Text of the box: UTF-8, with both a normal text and a HTML variant of the text in the same string. See text restrictions note above.
  total | total number of steps of the operation started (i.e. value which represents 100%)
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

References GWENHYWFAR_API.

## GWEN_Gui_RunDialog()

GWENHYWFAR_API int GWEN_Gui_RunDialog | ( | GWEN_DIALOG * | dlg,
|  | int | untilEnd )

Run a dialog. This function should run the given dialog and return when the user is done with it.

Returns
  <0: error code, 0: aborted, 1: accepted (e.g. "Ok" pressed)

Parameters

  dlg | pointer to the dialog object
  untilEnd | if not zero, the dialog should run until completely finished (e.g. "OK" pressed)

## GWEN_Gui_SetCharSet()

GWENHYWFAR_API void GWEN_Gui_SetCharSet | ( | GWEN_GUI * | gui,
|  | const char * | s )

References GWENHYWFAR_API.

## GWEN_Gui_SetFlags()

GWENHYWFAR_API void GWEN_Gui_SetFlags | ( | GWEN_GUI * | gui,
|  | uint32_t | fl )

References GWENHYWFAR_API.

## GWEN_Gui_SetGui()

GWENHYWFAR_API void GWEN_Gui_SetGui | ( | GWEN_GUI * | gui | ) |

References GWENHYWFAR_API.

## GWEN_Gui_SetMinProgressLogLevel()

GWENHYWFAR_API void GWEN_Gui_SetMinProgressLogLevel | ( | GWEN_GUI * | gui,
|  | GWEN_LOGGER_LEVEL | ll )

References GWENHYWFAR_API.

## GWEN_Gui_SetPasswdStore()

GWENHYWFAR_API void GWEN_Gui_SetPasswdStore | ( | GWEN_GUI * | gui,
|  | GWEN_PASSWD_STORE * | sto )

References GWENHYWFAR_API.

## GWEN_Gui_SetPasswordDb()

GWENHYWFAR_API void GWEN_Gui_SetPasswordDb | ( | GWEN_GUI * | gui,
|  | GWEN_DB_NODE * | dbPasswords,
|  | int | persistent )

Set the password DB. Takes over the given DB.

Parameters

  gui | GUI object
  dbPasswords | password cache
  persistent | if !=0 then the passwords come from a password file and a request to clear the password cache will be ignored.

References GWENHYWFAR_API.

## GWEN_Gui_SetPasswordStatus()

GWENHYWFAR_API int GWEN_Gui_SetPasswordStatus | ( | const char * | token,
|  | const char * | pin,
|  | GWEN_GUI_PASSWORD_STATUS | status,
|  | uint32_t | guiid )

This functions sets the status of a password.

Parameters

  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

References GWENHYWFAR_API.

## GWEN_Gui_ShowBox()

GWENHYWFAR_API GWEN_DEPRECATED uint32_t GWEN_Gui_ShowBox | ( | uint32_t | flags,
|  | const char * | title,
|  | const char * | text,
|  | uint32_t | guiid )

Shows a box with the given text. This function should return immediately, it should especially NOT wait for user input. This is used to show very important notices the user should see but which don't need user interaction. The message box will be removed later via GWEN_Gui_HideBox. It is ok to allow the user to prematurely close the box.

It is required for every call to this function to be followed later by a corresponding call to GWEN_Gui_HideBox.

This function MUST return immediately (non-blocking).

This function is deprecated (please use GWEN_Gui_ProgressLog() or others).

Returns
  returns an id to be presented to GWEN_Gui_HideBox.

Parameters

  flags | flags, see GWEN_GUI_SHOWBOX_FLAGS_BEEP ff
  title | title of the box
  text | Text of the box: UTF-8, with both a normal text and a HTML variant of the text in the same string. See text restrictions note above.
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)

References GWEN_DEPRECATED, and GWENHYWFAR_API.

## GWEN_Gui_ShowError()

GWENHYWFAR_API void GWEN_Gui_ShowError | ( | const char * | title,
|  | const char * | text,
|  |  | ... )

This is a convenience function which calls GWEN_Gui_MessageBox showing the given message and a single "Close" button. It is especially well suited to show an error message.

References GWENHYWFAR_API.

## GWEN_Gui_SubFlags()

GWENHYWFAR_API void GWEN_Gui_SubFlags | ( | GWEN_GUI * | gui,
|  | uint32_t | fl )

References GWENHYWFAR_API.

## GWEN_Gui_WaitForSockets()

GWENHYWFAR_API int GWEN_Gui_WaitForSockets | ( | GWEN_SOCKET_LIST2 * | readSockets,
|  | GWEN_SOCKET_LIST2 * | writeSockets,
|  | uint32_t | guiid,
|  | int | msecs )

This function waits for activity on the given sockets. it is called by GWEN_Io_Manager_Wait(). The default implementation uses GWEN_Socket_Select() for this purpose.

Parameters

  readSockets | list of sockets to wait for to become readable
  writeSockets | list of sockets to wait for to become writeable
  guiid | id as returned by GWEN_Gui_ProgressStart or GWEN_Gui_ShowBox)
  msecs | time in milliseconds to wait for at max

References GWENHYWFAR_API.