gwenhywfar  4.3.3
fox16/cppgui.hpp
Go to the documentation of this file.
00001 /***************************************************************************
00002     copyright   : (C) 2004 by Martin Preuss
00003     email       : martin@libchipcard.de
00004 
00005  ***************************************************************************
00006  *          Please see toplevel file COPYING for license details           *
00007  ***************************************************************************/
00008 
00009 #ifndef CPPGUI_HPP
00010 #define CPPGUI_HPP
00011 
00012 
00013 #include <gwen-gui-fox16/api.h>
00014 
00015 
00016 #include <gwenhywfar/gui_be.h>
00017 #include <gwenhywfar/i18n.h>
00018 
00019 #define I18N(msg) GWEN_I18N_Translate(PACKAGE, msg)
00020 #define I18S(msg) msg
00021 
00022 #include <list>
00023 #include <string>
00024 
00025 class CppGui;
00026 
00027 #include <gwen-gui-fox16/cppdialog.hpp>
00028 
00029 
00039 class FOX16GUI_API CppGui {
00040   friend class CppGuiLinker;
00041 
00042 private:
00043   GWEN_GUI_CHECKCERT_FN _checkCertFn;
00044 
00045   GWEN_DB_NODE *_dbPasswords;
00046   std::list<std::string> _badPasswords;
00047 
00048   GWEN_GUI_PRINT_FN _printFn;
00049   GWEN_GUI_GETPASSWORD_FN _getPasswordFn;
00050   GWEN_GUI_SETPASSWORDSTATUS_FN _setPasswordStatusFn;
00051   GWEN_GUI_EXEC_DIALOG_FN _execDialogFn;
00052   GWEN_GUI_OPEN_DIALOG_FN _openDialogFn;
00053   GWEN_GUI_CLOSE_DIALOG_FN _closeDialogFn;
00054   GWEN_GUI_RUN_DIALOG_FN _runDialogFn;
00055 
00056   GWEN_GUI_GET_FILENAME_FN _getFileNameFn;
00057 
00058 
00059   std::string _getPasswordHash(const char *token, const char *pin);
00060 
00061 public:
00062   CppGui();
00063   virtual ~CppGui();
00064 
00065   static FOX16GUI_API CppGui *getCppGui();
00066 
00067   GWEN_GUI *getCInterface();
00068 
00069 protected:
00070   GWEN_GUI *_gui;
00071 
00076 
00080   virtual int print(const char *docTitle,
00081                     const char *docType,
00082                     const char *descr,
00083                     const char *text,
00084                     uint32_t guiid);
00085 
00086   virtual int getPassword(uint32_t flags,
00087                           const char *token,
00088                           const char *title,
00089                           const char *text,
00090                           char *buffer,
00091                           int minLen,
00092                           int maxLen,
00093                           uint32_t guiid);
00094 
00095   virtual int setPasswordStatus(const char *token,
00096                                 const char *pin,
00097                                 GWEN_GUI_PASSWORD_STATUS status,
00098                                 uint32_t guiid);
00099 
00100   virtual int checkCert(const GWEN_SSLCERTDESCR *cert,
00101                         GWEN_SYNCIO *sio,
00102                         uint32_t guiid);
00103 
00104   virtual int logHook(const char *logDomain,
00105                       GWEN_LOGGER_LEVEL priority, const char *s);
00106 
00107   virtual int execDialog(GWEN_DIALOG *dlg, uint32_t guiid);
00108 
00109   virtual int openDialog(GWEN_DIALOG *dlg, uint32_t guiid);
00110   virtual int closeDialog(GWEN_DIALOG *dlg);
00111   virtual int runDialog(GWEN_DIALOG *dlg, int untilEnd);
00112 
00113   virtual int getFileName(const char *caption,
00114                           GWEN_GUI_FILENAME_TYPE fnt,
00115                           uint32_t flags,
00116                           const char *patterns,
00117                           GWEN_BUFFER *pathBuffer,
00118                           uint32_t guiid);
00119 
00120 
00121   int checkCertBuiltIn(const GWEN_SSLCERTDESCR *cert,
00122                        GWEN_SYNCIO *sio,
00123                        uint32_t guiid);
00124 
00125   };
00126 
00127 
00128 
00129 
00130 #endif /* CPPGUI_HPP */
00131 
00132