00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GWENHYWFAR_GUI_GUI_H
00029 #define GWENHYWFAR_GUI_GUI_H
00030
00031
00032
00033 #include <gwenhywfar/inherit.h>
00034 #include <gwenhywfar/logger.h>
00035 #include <gwenhywfar/inetsocket.h>
00036 #include <gwenhywfar/ssl_cert_descr.h>
00037 #include <gwenhywfar/iolayer.h>
00038
00039 #include <inttypes.h>
00040
00041
00108
00109 #ifdef __cplusplus
00110 extern "C" {
00111 #endif
00112
00113
00114 typedef struct GWEN_GUI GWEN_GUI;
00115 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_GUI, GWENHYWFAR_API)
00116
00117
00118 #define GWEN_GUI_CPU_TIMEOUT 200
00119
00120 #define GWEN_GUI_CHECK_PERIOD 750
00121 #define GWEN_GUI_DELAY_SECS 2
00122
00123
00130 #define GWEN_GUI_PROGRESS_DELAY 0x00000001
00131 #define GWEN_GUI_PROGRESS_SHOW_LOG 0x00000002
00132 #define GWEN_GUI_PROGRESS_SHOW_ABORT 0x00000004
00133 #define GWEN_GUI_PROGRESS_ALLOW_SUBLEVELS 0x00000008
00134 #define GWEN_GUI_PROGRESS_ALLOW_EMBED 0x00000010
00135 #define GWEN_GUI_PROGRESS_SHOW_PROGRESS 0x00000020
00136 #define GWEN_GUI_PROGRESS_KEEP_OPEN 0x00000040
00137 #define GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG 0x00000080
00138
00149 #define GWEN_GUI_INPUT_FLAGS_CONFIRM 0x00000001
00150
00151 #define GWEN_GUI_INPUT_FLAGS_SHOW 0x00000002
00152
00153 #define GWEN_GUI_INPUT_FLAGS_NUMERIC 0x00000004
00154
00155 #define GWEN_GUI_INPUT_FLAGS_RETRY 0x00000008
00156
00158 #define GWEN_GUI_INPUT_FLAGS_ALLOW_DEFAULT 0x00000010
00159
00160 #define GWEN_GUI_INPUT_FLAGS_TAN 0x00000020
00161
00212 #define GWEN_GUI_MSG_FLAGS_TYPE_MASK 0x07
00213
00214 #define GWEN_GUI_MSG_FLAGS_TYPE_INFO 0
00215
00216 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_INFO(fl) \
00217 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_INFO)
00218
00220 #define GWEN_GUI_MSG_FLAGS_TYPE_WARN 1
00221
00222 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_WARN(fl) \
00223 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_WARN)
00224
00226 #define GWEN_GUI_MSG_FLAGS_TYPE_ERROR 2
00227
00228 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_ERROR \
00229 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_ERROR)
00230
00232 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B1 (1<<3)
00233
00234 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B2 (2<<3)
00235
00236 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B3 (3<<3)
00237
00238 #define GWEN_GUI_MSG_FLAGS_CONFIRM_BUTTON(fl) (((fl)>>3) & 0x3)
00239
00240
00262 #define GWEN_GUI_MSG_FLAGS_SEVERITY_MASK (0x7<<5)
00263
00264 #define GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL (0x0<<5)
00265 #define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_NORMAL(fl) \
00266 ((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\
00267 GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL)
00268
00270 #define GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS (0x1<<5)
00271 #define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_DANGEROUS(fl) \
00272 ((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\
00273 GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS)
00274
00286 #define GWEN_GUI_SHOWBOX_FLAGS_BEEP 0x00000001
00287
00301 #define GWEN_GUI_PROGRESS_NONE (0xffffffffUL)
00302
00309 #define GWEN_GUI_PROGRESS_ONE (0xfffffffeUL)
00310
00319 typedef enum {
00320 GWEN_Gui_PasswordStatus_Bad=-1,
00321 GWEN_Gui_PasswordStatus_Unknown,
00322 GWEN_Gui_PasswordStatus_Ok,
00323 GWEN_Gui_PasswordStatus_Used,
00324 GWEN_Gui_PasswordStatus_Unused,
00325 GWEN_Gui_PasswordStatus_Remove
00326 } GWEN_GUI_PASSWORD_STATUS;
00327
00328
00329
00334 GWENHYWFAR_API
00335 GWEN_GUI *GWEN_Gui_new();
00336
00337 GWENHYWFAR_API
00338 void GWEN_Gui_free(GWEN_GUI *gui);
00339
00340 GWENHYWFAR_API
00341 void GWEN_Gui_Attach(GWEN_GUI *gui);
00342
00343 GWENHYWFAR_API
00344 void GWEN_Gui_SetGui(GWEN_GUI *gui);
00345
00346 GWENHYWFAR_API
00347 GWEN_GUI *GWEN_Gui_GetGui();
00348
00423 GWENHYWFAR_API
00424 int GWEN_Gui_MessageBox(uint32_t flags,
00425 const char *title,
00426 const char *text,
00427 const char *b1,
00428 const char *b2,
00429 const char *b3,
00430 uint32_t guiid);
00431
00457 GWENHYWFAR_API
00458 int GWEN_Gui_InputBox(uint32_t flags,
00459 const char *title,
00460 const char *text,
00461 char *buffer,
00462 int minLen,
00463 int maxLen,
00464 uint32_t guiid);
00465
00489 GWENHYWFAR_API
00490 uint32_t GWEN_Gui_ShowBox(uint32_t flags,
00491 const char *title,
00492 const char *text,
00493 uint32_t guiid);
00494
00504 GWENHYWFAR_API
00505 void GWEN_Gui_HideBox(uint32_t id);
00506
00507
00539 GWENHYWFAR_API
00540 uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags,
00541 const char *title,
00542 const char *text,
00543 uint64_t total,
00544 uint32_t guiid);
00545
00566 GWENHYWFAR_API
00567 int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress);
00568
00579 GWENHYWFAR_API
00580 int GWEN_Gui_ProgressLog(uint32_t id,
00581 GWEN_LOGGER_LEVEL level,
00582 const char *text);
00583
00601 GWENHYWFAR_API
00602 int GWEN_Gui_ProgressEnd(uint32_t id);
00603
00604
00618 GWENHYWFAR_API
00619 int GWEN_Gui_Print(const char *docTitle,
00620 const char *docType,
00621 const char *descr,
00622 const char *text,
00623 uint32_t guiid);
00624
00644 GWENHYWFAR_API
00645 int GWEN_Gui_GetPassword(uint32_t flags,
00646 const char *token,
00647 const char *title,
00648 const char *text,
00649 char *buffer,
00650 int minLen,
00651 int maxLen,
00652 uint32_t guiid);
00653
00658 GWENHYWFAR_API
00659 int GWEN_Gui_SetPasswordStatus(const char *token,
00660 const char *pin,
00661 GWEN_GUI_PASSWORD_STATUS status,
00662 uint32_t guiid);
00663
00674 GWENHYWFAR_API
00675 int GWEN_Gui_LogHook(const char *logDomain,
00676 GWEN_LOGGER_LEVEL priority, const char *s);
00677
00678
00687 GWENHYWFAR_API
00688 int GWEN_Gui_WaitForSockets(GWEN_SOCKET_LIST2 *readSockets,
00689 GWEN_SOCKET_LIST2 *writeSockets,
00690 uint32_t guiid,
00691 int msecs);
00692
00701 GWENHYWFAR_API
00702 int GWEN_Gui_CheckCert(const GWEN_SSLCERTDESCR *cert,
00703 GWEN_IO_LAYER *io,
00704 uint32_t guiid);
00705
00706
00717 GWENHYWFAR_API
00718 int GWEN_Gui_KeyDataFromText_OpenSSL(const char *text,
00719 unsigned char *buffer,
00720 unsigned int bufLength);
00721
00722
00733
00735 #define GWEN_GUI_FLAGS_NONINTERACTIVE 0x00000001
00736
00737 #define GWEN_GUI_FLAGS_ACCEPTVALIDCERTS 0x00000002
00738
00739 #define GWEN_GUI_FLAGS_REJECTINVALIDCERTS 0x00000004
00740
00741
00742 GWENHYWFAR_API uint32_t GWEN_Gui_GetFlags(const GWEN_GUI *gui);
00743 GWENHYWFAR_API void GWEN_Gui_SetFlags(GWEN_GUI *gui, uint32_t fl);
00744 GWENHYWFAR_API void GWEN_Gui_AddFlags(GWEN_GUI *gui, uint32_t fl);
00745 GWENHYWFAR_API void GWEN_Gui_SubFlags(GWEN_GUI *gui, uint32_t fl);
00750 #ifdef __cplusplus
00751 }
00752 #endif
00753
00757 #endif
00758
00759
00760
00761