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
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045
00046
00047 typedef struct GWEN_GUI GWEN_GUI;
00048 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_GUI, GWENHYWFAR_API)
00049
00050
00051 #define GWEN_GUI_CPU_TIMEOUT 200
00052
00053 #define GWEN_GUI_CHECK_PERIOD 750
00054 #define GWEN_GUI_DELAY_SECS 2
00055
00056
00063 #define GWEN_GUI_PROGRESS_DELAY 0x00000001
00064 #define GWEN_GUI_PROGRESS_SHOW_LOG 0x00000002
00065 #define GWEN_GUI_PROGRESS_SHOW_ABORT 0x00000004
00066 #define GWEN_GUI_PROGRESS_ALLOW_SUBLEVELS 0x00000008
00067 #define GWEN_GUI_PROGRESS_ALLOW_EMBED 0x00000010
00068 #define GWEN_GUI_PROGRESS_SHOW_PROGRESS 0x00000020
00069 #define GWEN_GUI_PROGRESS_KEEP_OPEN 0x00000040
00070 #define GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG 0x00000080
00071
00082 #define GWEN_GUI_INPUT_FLAGS_CONFIRM 0x00000001
00083
00084 #define GWEN_GUI_INPUT_FLAGS_SHOW 0x00000002
00085
00086 #define GWEN_GUI_INPUT_FLAGS_NUMERIC 0x00000004
00087
00088 #define GWEN_GUI_INPUT_FLAGS_RETRY 0x00000008
00089
00091 #define GWEN_GUI_INPUT_FLAGS_ALLOW_DEFAULT 0x00000010
00092
00093 #define GWEN_GUI_INPUT_FLAGS_TAN 0x00000020
00094
00145 #define GWEN_GUI_MSG_FLAGS_TYPE_MASK 0x07
00146
00147 #define GWEN_GUI_MSG_FLAGS_TYPE_INFO 0
00148
00149 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_INFO(fl) \
00150 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_INFO)
00151
00153 #define GWEN_GUI_MSG_FLAGS_TYPE_WARN 1
00154
00155 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_WARN(fl) \
00156 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_WARN)
00157
00159 #define GWEN_GUI_MSG_FLAGS_TYPE_ERROR 2
00160
00161 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_ERROR \
00162 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_ERROR)
00163
00165 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B1 (1<<3)
00166
00167 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B2 (2<<3)
00168
00169 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B3 (3<<3)
00170
00171 #define GWEN_GUI_MSG_FLAGS_CONFIRM_BUTTON(fl) ((fl & 0x3)>>3)
00172
00173
00195 #define GWEN_GUI_MSG_FLAGS_SEVERITY_MASK (0x7<<5)
00196
00197 #define GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL (0x0<<5)
00198 #define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_NORMAL(fl) \
00199 ((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\
00200 GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL)
00201
00203 #define GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS (0x1<<5)
00204 #define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_DANGEROUS(fl) \
00205 ((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\
00206 GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS)
00207
00219 #define GWEN_GUI_SHOWBOX_FLAGS_BEEP 0x00000001
00220
00234 #define GWEN_GUI_PROGRESS_NONE (0xffffffffUL)
00235
00242 #define GWEN_GUI_PROGRESS_ONE (0xfffffffeUL)
00243
00252 typedef enum {
00253 GWEN_Gui_PasswordStatus_Bad=-1,
00254 GWEN_Gui_PasswordStatus_Unknown,
00255 GWEN_Gui_PasswordStatus_Ok,
00256 GWEN_Gui_PasswordStatus_Used,
00257 GWEN_Gui_PasswordStatus_Unused,
00258 GWEN_Gui_PasswordStatus_Remove
00259 } GWEN_GUI_PASSWORD_STATUS;
00260
00261
00266 GWENHYWFAR_API
00267 GWEN_GUI *GWEN_Gui_new();
00268
00269 GWENHYWFAR_API
00270 void GWEN_Gui_free(GWEN_GUI *gui);
00271
00272 GWENHYWFAR_API
00273 void GWEN_Gui_Attach(GWEN_GUI *gui);
00274
00275 GWENHYWFAR_API
00276 void GWEN_Gui_SetGui(GWEN_GUI *gui);
00277
00278 GWENHYWFAR_API
00279 GWEN_GUI *GWEN_Gui_GetGui();
00280
00354 GWENHYWFAR_API
00355 int GWEN_Gui_MessageBox(uint32_t flags,
00356 const char *title,
00357 const char *text,
00358 const char *b1,
00359 const char *b2,
00360 const char *b3,
00361 uint32_t guiid);
00362
00388 GWENHYWFAR_API
00389 int GWEN_Gui_InputBox(uint32_t flags,
00390 const char *title,
00391 const char *text,
00392 char *buffer,
00393 int minLen,
00394 int maxLen,
00395 uint32_t guiid);
00396
00419 GWENHYWFAR_API
00420 uint32_t GWEN_Gui_ShowBox(uint32_t flags,
00421 const char *title,
00422 const char *text,
00423 uint32_t guiid);
00424
00434 GWENHYWFAR_API
00435 void GWEN_Gui_HideBox(uint32_t id);
00436
00437
00468 GWENHYWFAR_API
00469 uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags,
00470 const char *title,
00471 const char *text,
00472 uint64_t total,
00473 uint32_t guiid);
00474
00495 GWENHYWFAR_API
00496 int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress);
00497
00508 GWENHYWFAR_API
00509 int GWEN_Gui_ProgressLog(uint32_t id,
00510 GWEN_LOGGER_LEVEL level,
00511 const char *text);
00512
00530 GWENHYWFAR_API
00531 int GWEN_Gui_ProgressEnd(uint32_t id);
00532
00533
00546 GWENHYWFAR_API
00547 int GWEN_Gui_Print(const char *docTitle,
00548 const char *docType,
00549 const char *descr,
00550 const char *text,
00551 uint32_t guiid);
00552
00553
00554 GWENHYWFAR_API
00555 int GWEN_Gui_GetPassword(uint32_t flags,
00556 const char *token,
00557 const char *title,
00558 const char *text,
00559 char *buffer,
00560 int minLen,
00561 int maxLen,
00562 uint32_t guiid);
00563
00567 GWENHYWFAR_API
00568 int GWEN_Gui_SetPasswordStatus(const char *token,
00569 const char *pin,
00570 GWEN_GUI_PASSWORD_STATUS status,
00571 uint32_t guiid);
00572
00576 GWENHYWFAR_API
00577 int GWEN_Gui_LogHook(const char *logDomain,
00578 GWEN_LOGGER_LEVEL priority, const char *s);
00579
00580
00585 GWENHYWFAR_API
00586 int GWEN_Gui_WaitForSockets(GWEN_SOCKET_LIST2 *readSockets,
00587 GWEN_SOCKET_LIST2 *writeSockets,
00588 uint32_t guiid,
00589 int msecs);
00590
00591
00592 GWENHYWFAR_API
00593 int GWEN_Gui_CheckCert(const GWEN_SSLCERTDESCR *cert,
00594 GWEN_IO_LAYER *io,
00595 uint32_t guiid);
00596
00597
00605 GWENHYWFAR_API
00606 int GWEN_Gui_KeyDataFromText_OpenSSL(const char *text,
00607 unsigned char *buffer,
00608 unsigned int bufLength);
00609
00610
00618 #ifdef __cplusplus
00619 }
00620 #endif
00621
00622
00623 #endif
00624
00625
00626
00627