gwenhywfar
4.3.3
|
00001 /*************************************************************************** 00002 begin : Tue Oct 02 2002 00003 copyright : (C) 2002-2010 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * * 00008 * This library is free software; you can redistribute it and/or * 00009 * modify it under the terms of the GNU Lesser General Public * 00010 * License as published by the Free Software Foundation; either * 00011 * version 2.1 of the License, or (at your option) any later version. * 00012 * * 00013 * This library is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00016 * Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public * 00019 * License along with this library; if not, write to the Free Software * 00020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * 00021 * MA 02111-1307 USA * 00022 * * 00023 ***************************************************************************/ 00024 00025 #ifndef GWENHYWFAR_GUI_GUI_H 00026 #define GWENHYWFAR_GUI_GUI_H 00027 00028 00029 00030 #include <gwenhywfar/inherit.h> 00031 #include <gwenhywfar/logger.h> 00032 #include <gwenhywfar/inetsocket.h> 00033 #include <gwenhywfar/ssl_cert_descr.h> 00034 #include <gwenhywfar/syncio.h> 00035 #include <gwenhywfar/dialog.h> 00036 00037 #include <inttypes.h> 00038 00039 00106 00107 #ifdef __cplusplus 00108 extern "C" { 00109 #endif 00110 00111 00112 typedef struct GWEN_GUI GWEN_GUI; 00113 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_GUI, GWENHYWFAR_API) 00114 00115 00116 #define GWEN_GUI_CPU_TIMEOUT 200 00117 00118 #define GWEN_GUI_CHECK_PERIOD 750 00119 #define GWEN_GUI_DELAY_SECS 2 00120 00121 00128 #define GWEN_GUI_PROGRESS_DELAY 0x00000001 00129 #define GWEN_GUI_PROGRESS_SHOW_LOG 0x00000002 00130 #define GWEN_GUI_PROGRESS_SHOW_ABORT 0x00000004 00131 #define GWEN_GUI_PROGRESS_ALLOW_SUBLEVELS 0x00000008 00132 #define GWEN_GUI_PROGRESS_ALLOW_EMBED 0x00000010 00133 #define GWEN_GUI_PROGRESS_SHOW_PROGRESS 0x00000020 00134 #define GWEN_GUI_PROGRESS_KEEP_OPEN 0x00000040 00135 #define GWEN_GUI_PROGRESS_ALWAYS_SHOW_LOG 0x00000080 00136 00147 #define GWEN_GUI_INPUT_FLAGS_CONFIRM 0x00000001 00148 00149 #define GWEN_GUI_INPUT_FLAGS_SHOW 0x00000002 00150 00151 #define GWEN_GUI_INPUT_FLAGS_NUMERIC 0x00000004 00152 00153 #define GWEN_GUI_INPUT_FLAGS_RETRY 0x00000008 00154 00156 #define GWEN_GUI_INPUT_FLAGS_ALLOW_DEFAULT 0x00000010 00157 00158 #define GWEN_GUI_INPUT_FLAGS_TAN 0x00000020 00159 00160 #define GWEN_GUI_INPUT_FLAGS_OPTICAL 0x00000040 00161 00213 #define GWEN_GUI_MSG_FLAGS_TYPE_MASK 0x07 00214 00215 #define GWEN_GUI_MSG_FLAGS_TYPE_INFO 0 00216 00217 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_INFO(fl) \ 00218 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_INFO) 00219 00221 #define GWEN_GUI_MSG_FLAGS_TYPE_WARN 1 00222 00223 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_WARN(fl) \ 00224 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_WARN) 00225 00227 #define GWEN_GUI_MSG_FLAGS_TYPE_ERROR 2 00228 00229 #define GWEN_GUI_MSG_FLAGS_TYPE_IS_ERROR \ 00230 ((fl & GWEN_GUI_MSG_FLAGS_TYPE_MASK)==GWEN_GUI_MSG_FLAGS_TYPE_ERROR) 00231 00233 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B1 (1<<3) 00234 00235 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B2 (2<<3) 00236 00237 #define GWEN_GUI_MSG_FLAGS_CONFIRM_B3 (3<<3) 00238 00239 #define GWEN_GUI_MSG_FLAGS_CONFIRM_BUTTON(fl) (((fl)>>3) & 0x3) 00240 00241 00263 #define GWEN_GUI_MSG_FLAGS_SEVERITY_MASK (0x7<<5) 00264 00265 #define GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL (0x0<<5) 00266 #define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_NORMAL(fl) \ 00267 ((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\ 00268 GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL) 00269 00271 #define GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS (0x1<<5) 00272 #define GWEN_GUI_MSG_FLAGS_SEVERITY_IS_DANGEROUS(fl) \ 00273 ((fl & GWEN_GUI_MSG_FLAGS_SEVERITY_MASK)==\ 00274 GWEN_GUI_MSG_FLAGS_SEVERITY_DANGEROUS) 00275 00287 #define GWEN_GUI_SHOWBOX_FLAGS_BEEP 0x00000001 00288 00302 #define GWEN_GUI_PROGRESS_NONE (0xffffffffUL) 00303 00310 #define GWEN_GUI_PROGRESS_ONE (0xfffffffeUL) 00311 00320 typedef enum { 00321 GWEN_Gui_PasswordStatus_Bad=-1, 00322 GWEN_Gui_PasswordStatus_Unknown, 00323 GWEN_Gui_PasswordStatus_Ok, 00324 GWEN_Gui_PasswordStatus_Used, 00325 GWEN_Gui_PasswordStatus_Unused, 00326 GWEN_Gui_PasswordStatus_Remove 00327 } GWEN_GUI_PASSWORD_STATUS; 00328 00329 00330 00335 GWENHYWFAR_API 00336 GWEN_GUI *GWEN_Gui_new(void); 00337 00338 GWENHYWFAR_API 00339 void GWEN_Gui_free(GWEN_GUI *gui); 00340 00341 GWENHYWFAR_API 00342 void GWEN_Gui_Attach(GWEN_GUI *gui); 00343 00344 GWENHYWFAR_API 00345 void GWEN_Gui_SetGui(GWEN_GUI *gui); 00346 00347 GWENHYWFAR_API 00348 GWEN_GUI *GWEN_Gui_GetGui(void); 00349 00362 GWENHYWFAR_API 00363 const char *GWEN_Gui_GetCharSet(const GWEN_GUI *gui); 00364 00365 GWENHYWFAR_API 00366 void GWEN_Gui_SetCharSet(GWEN_GUI *gui, const char *s); 00441 GWENHYWFAR_API 00442 int GWEN_Gui_MessageBox(uint32_t flags, 00443 const char *title, 00444 const char *text, 00445 const char *b1, 00446 const char *b2, 00447 const char *b3, 00448 uint32_t guiid); 00449 00455 GWENHYWFAR_API 00456 void GWEN_Gui_ShowError(const char *title, const char *text, ...); 00457 00458 00484 GWENHYWFAR_API 00485 int GWEN_Gui_InputBox(uint32_t flags, 00486 const char *title, 00487 const char *text, 00488 char *buffer, 00489 int minLen, 00490 int maxLen, 00491 uint32_t guiid); 00492 00516 GWENHYWFAR_API 00517 uint32_t GWEN_Gui_ShowBox(uint32_t flags, 00518 const char *title, 00519 const char *text, 00520 uint32_t guiid); 00521 00531 GWENHYWFAR_API 00532 void GWEN_Gui_HideBox(uint32_t id); 00533 00534 00566 GWENHYWFAR_API 00567 uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags, 00568 const char *title, 00569 const char *text, 00570 uint64_t total, 00571 uint32_t guiid); 00572 00593 GWENHYWFAR_API 00594 int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress); 00595 00596 GWENHYWFAR_API 00597 int GWEN_Gui_ProgressSetTotal(uint32_t id, uint64_t total); 00598 00609 GWENHYWFAR_API 00610 int GWEN_Gui_ProgressLog(uint32_t id, 00611 GWEN_LOGGER_LEVEL level, 00612 const char *text); 00613 00626 GWENHYWFAR_API 00627 int GWEN_Gui_ProgressLog2(uint32_t id, 00628 GWEN_LOGGER_LEVEL level, 00629 const char *text, ...); 00630 00655 GWENHYWFAR_API 00656 int GWEN_Gui_ProgressEnd(uint32_t id); 00657 00658 00672 GWENHYWFAR_API 00673 int GWEN_Gui_Print(const char *docTitle, 00674 const char *docType, 00675 const char *descr, 00676 const char *text, 00677 uint32_t guiid); 00678 00698 GWENHYWFAR_API 00699 int GWEN_Gui_GetPassword(uint32_t flags, 00700 const char *token, 00701 const char *title, 00702 const char *text, 00703 char *buffer, 00704 int minLen, 00705 int maxLen, 00706 uint32_t guiid); 00707 00712 GWENHYWFAR_API 00713 int GWEN_Gui_SetPasswordStatus(const char *token, 00714 const char *pin, 00715 GWEN_GUI_PASSWORD_STATUS status, 00716 uint32_t guiid); 00717 00728 GWENHYWFAR_API 00729 int GWEN_Gui_LogHook(const char *logDomain, 00730 GWEN_LOGGER_LEVEL priority, const char *s); 00731 00732 00741 GWENHYWFAR_API 00742 int GWEN_Gui_WaitForSockets(GWEN_SOCKET_LIST2 *readSockets, 00743 GWEN_SOCKET_LIST2 *writeSockets, 00744 uint32_t guiid, 00745 int msecs); 00746 00755 GWENHYWFAR_API 00756 int GWEN_Gui_CheckCert(const GWEN_SSLCERTDESCR *cert, 00757 GWEN_SYNCIO *sio, 00758 uint32_t guiid); 00759 00760 00771 GWENHYWFAR_API 00772 int GWEN_Gui_KeyDataFromText_OpenSSL(const char *text, 00773 unsigned char *buffer, 00774 unsigned int bufLength); 00775 00783 GWENHYWFAR_API 00784 int GWEN_Gui_ExecDialog(GWEN_DIALOG *dlg, uint32_t guiid); 00785 00786 00787 00788 GWENHYWFAR_API 00789 int GWEN_Gui_OpenDialog(GWEN_DIALOG *dlg, uint32_t guiid); 00790 00791 GWENHYWFAR_API 00792 int GWEN_Gui_CloseDialog(GWEN_DIALOG *dlg); 00793 00794 GWENHYWFAR_API 00795 int GWEN_Gui_RunDialog(GWEN_DIALOG *dlg, int untilEnd); 00796 00797 00798 typedef enum { 00799 GWEN_Gui_FileNameType_OpenFileName=0, 00800 GWEN_Gui_FileNameType_SaveFileName, 00801 GWEN_Gui_FileNameType_OpenDirectory 00802 00803 } GWEN_GUI_FILENAME_TYPE; 00804 00805 00823 GWENHYWFAR_API 00824 int GWEN_Gui_GetFileName(const char *caption, 00825 GWEN_GUI_FILENAME_TYPE fnt, 00826 uint32_t flags, 00827 const char *patterns, 00828 GWEN_BUFFER *pathBuffer, 00829 uint32_t guiid); 00830 00840 GWENHYWFAR_API 00841 int GWEN_Gui_GetSyncIo(const char *url, 00842 const char *defaultProto, 00843 int defaultPort, 00844 GWEN_SYNCIO **pSio); 00845 00846 00857 00859 #define GWEN_GUI_FLAGS_NONINTERACTIVE 0x00000001 00860 00861 #define GWEN_GUI_FLAGS_ACCEPTVALIDCERTS 0x00000002 00862 00863 #define GWEN_GUI_FLAGS_REJECTINVALIDCERTS 0x00000004 00864 00865 #define GWEN_GUI_FLAGS_DIALOGSUPPORTED 0x80000000 00866 00867 GWENHYWFAR_API uint32_t GWEN_Gui_GetFlags(const GWEN_GUI *gui); 00868 GWENHYWFAR_API void GWEN_Gui_SetFlags(GWEN_GUI *gui, uint32_t fl); 00869 GWENHYWFAR_API void GWEN_Gui_AddFlags(GWEN_GUI *gui, uint32_t fl); 00870 GWENHYWFAR_API void GWEN_Gui_SubFlags(GWEN_GUI *gui, uint32_t fl); 00874 GWENHYWFAR_API const char *GWEN_Gui_GetName(void); 00875 00876 00877 #ifdef __cplusplus 00878 } 00879 #endif 00880 00884 #endif 00885 00886 00887 00888