gwenhywfar  5.10.1
gui_virtual.c
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Fri Feb 07 2003
3  copyright : (C) 2021 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * *
8  * This library is free software; you can redistribute it and/or *
9  * modify it under the terms of the GNU Lesser General Public *
10  * License as published by the Free Software Foundation; either *
11  * version 2.1 of the License, or (at your option) any later version. *
12  * *
13  * This library is distributed in the hope that it will be useful, *
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16  * Lesser General Public License for more details. *
17  * *
18  * You should have received a copy of the GNU Lesser General Public *
19  * License along with this library; if not, write to the Free Software *
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
21  * MA 02111-1307 USA *
22  * *
23  ***************************************************************************/
24 
25 /* included from gui.c */
26 
27 
28 
31 {
33 
34  assert(gui);
35  of=gui->messageBoxFn;
36  gui->messageBoxFn=f;
37  return of;
38 }
39 
40 
41 
44 {
46 
47  assert(gui);
48  of=gui->inputBoxFn;
49  gui->inputBoxFn=f;
50  return of;
51 }
52 
53 
54 
57 {
59 
60  assert(gui);
61  of=gui->showBoxFn;
62  gui->showBoxFn=f;
63  return of;
64 }
65 
66 
67 
70 {
72 
73  assert(gui);
74  of=gui->hideBoxFn;
75  gui->hideBoxFn=f;
76  return of;
77 }
78 
79 
80 
82 {
84 
85  assert(gui);
86  of=gui->progressStartFn;
87  gui->progressStartFn=f;
88  return of;
89 }
90 
91 
92 
94 {
96 
97  assert(gui);
98  of=gui->progressAdvanceFn;
99  gui->progressAdvanceFn=f;
100  return of;
101 }
102 
103 
104 
106 {
108 
109  assert(gui);
110  of=gui->progressSetTotalFn;
111  gui->progressSetTotalFn=f;
112  return of;
113 }
114 
115 
116 
118 {
120 
121  assert(gui);
122  of=gui->progressLogFn;
123  gui->progressLogFn=f;
124  return of;
125 }
126 
127 
128 
130 {
132 
133  assert(gui);
134  of=gui->progressEndFn;
135  gui->progressEndFn=f;
136  return of;
137 }
138 
139 
140 
143 {
145 
146  assert(gui);
147  of=gui->printFn;
148  gui->printFn=f;
149  return of;
150 }
151 
152 
153 
156 {
158 
159  assert(gui);
160  of=gui->getPasswordFn;
161  gui->getPasswordFn=f;
162  return of;
163 }
164 
165 
166 
169 {
171 
172  assert(gui);
173  of=gui->setPasswordStatusFn;
174  gui->setPasswordStatusFn=f;
175  return of;
176 }
177 
178 
179 
182 {
184 
185  assert(gui);
186  of=gui->logHookFn;
187  gui->logHookFn=f;
188 
189  return of;
190 }
191 
192 
193 
196 {
198 
199  assert(gui);
200  of=gui->waitForSocketsFn;
201  gui->waitForSocketsFn=f;
202 
203  return of;
204 }
205 
206 
207 
209 {
211 
212  assert(gui);
213  of=gui->checkCertFn;
214  gui->checkCertFn=f;
215 
216  return of;
217 }
218 
219 
220 
222 {
224 
225  assert(gui);
226  of=gui->execDialogFn;
227  gui->execDialogFn=f;
228 
229  return of;
230 }
231 
232 
233 
235 {
237 
238  assert(gui);
239  of=gui->openDialogFn;
240  gui->openDialogFn=f;
241 
242  return of;
243 }
244 
245 
246 
248 {
250 
251  assert(gui);
252  of=gui->closeDialogFn;
253  gui->closeDialogFn=f;
254 
255  return of;
256 }
257 
258 
259 
261 {
263 
264  assert(gui);
265  of=gui->runDialogFn;
266  gui->runDialogFn=f;
267 
268  return of;
269 }
270 
271 
272 
274 {
276 
277  assert(gui);
278  of=gui->readDialogPrefsFn;
279  gui->readDialogPrefsFn=f;
280 
281  return of;
282 }
283 
284 
285 
287 {
289 
290  assert(gui);
291  of=gui->writeDialogPrefsFn;
292  gui->writeDialogPrefsFn=f;
293 
294  return of;
295 }
296 
297 
298 
300 {
302 
303  assert(gui);
304  of=gui->getFileNameFn;
305  gui->getFileNameFn=f;
306 
307  return of;
308 }
309 
310 
311 
313 {
315 
316  assert(gui);
317  of=gui->getSyncIoFn;
318  gui->getSyncIoFn=f;
319 
320  return of;
321 }
322 
323 
324 
327 {
329 
330  assert(gui);
331  of=gui->keyDataFromTextOpenSslFn;
332  gui->keyDataFromTextOpenSslFn=f;
333 
334  return of;
335 
336 }
337 
338 
339 
340 
341 
342 int GWEN_Gui_MessageBox(uint32_t flags,
343  const char *title,
344  const char *text,
345  const char *b1,
346  const char *b2,
347  const char *b3,
348  uint32_t guiid)
349 {
350  GWEN_GUI *gui;
351 
352  gui=GWEN_Gui_GetGui();
353  if (gui && gui->messageBoxFn)
354  return gui->messageBoxFn(gui, flags, title, text, b1, b2, b3, guiid);
356 }
357 
358 
359 
360 int GWEN_Gui_InputBox(uint32_t flags,
361  const char *title,
362  const char *text,
363  char *buffer,
364  int minLen,
365  int maxLen,
366  uint32_t guiid)
367 {
368  GWEN_GUI *gui;
369 
370  gui=GWEN_Gui_GetGui();
371  if (gui && gui->inputBoxFn)
372  return gui->inputBoxFn(gui, flags, title, text, buffer, minLen, maxLen, guiid);
374 }
375 
376 
377 
378 uint32_t GWEN_Gui_ShowBox(uint32_t flags,
379  const char *title,
380  const char *text,
381  uint32_t guiid)
382 {
383  GWEN_GUI *gui;
384 
385  gui=GWEN_Gui_GetGui();
386  if (gui && gui->showBoxFn)
387  return gui->showBoxFn(gui, flags, title, text, guiid);
388  return 0;
389 }
390 
391 
392 
393 void GWEN_Gui_HideBox(uint32_t id)
394 {
395  GWEN_GUI *gui;
396 
397  gui=GWEN_Gui_GetGui();
398  if (gui && gui->hideBoxFn)
399  return gui->hideBoxFn(gui, id);
400 }
401 
402 
403 
404 uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags,
405  const char *title,
406  const char *text,
407  uint64_t total,
408  uint32_t guiid)
409 {
410  GWEN_GUI *gui;
411 
412  gui=GWEN_Gui_GetGui();
413  if (gui && gui->progressStartFn)
414  return gui->progressStartFn(gui, progressFlags, title, text, total, guiid);
415  return 0;
416 }
417 
418 
419 
420 int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress)
421 {
422  GWEN_GUI *gui;
423 
424  gui=GWEN_Gui_GetGui();
425  if (gui && gui->progressAdvanceFn)
426  return gui->progressAdvanceFn(gui, id, progress);
427  return 0;
428 }
429 
430 
431 
432 int GWEN_Gui_ProgressSetTotal(uint32_t id, uint64_t total)
433 {
434  GWEN_GUI *gui;
435 
436  gui=GWEN_Gui_GetGui();
437  if (gui && gui->progressSetTotalFn)
438  return gui->progressSetTotalFn(gui, id, total);
439  return 0;
440 }
441 
442 
443 
444 int GWEN_Gui_ProgressLog(uint32_t id,
445  GWEN_LOGGER_LEVEL level,
446  const char *text)
447 {
448  GWEN_GUI *gui;
449 
450  gui=GWEN_Gui_GetGui();
451  if (gui && gui->progressLogFn)
452  return gui->progressLogFn(gui, id, level, text);
453  return 0;
454 }
455 
456 
457 
458 int GWEN_Gui_ProgressLog2(uint32_t id,
459  GWEN_LOGGER_LEVEL level,
460  const char *fmt, ...)
461 {
462  va_list list;
463  char msgbuffer[2048];
464  int rv;
465 
466  /* prepare list for va_arg */
467  va_start(list, fmt);
468  rv=vsnprintf(msgbuffer, sizeof(msgbuffer), fmt, list);
469  if (rv<0 || rv>=(int)(sizeof(msgbuffer))) {
470  DBG_WARN(GWEN_LOGDOMAIN, "Internal buffer too small for message, truncating (%d>%d)",
471  rv, (int)(sizeof(msgbuffer)));
472  }
473  va_end(list);
474 
475  return GWEN_Gui_ProgressLog(id, level, msgbuffer);
476 }
477 
478 
479 
480 int GWEN_Gui_ProgressEnd(uint32_t id)
481 {
482  GWEN_GUI *gui;
483 
484  gui=GWEN_Gui_GetGui();
485  if (gui && gui->progressEndFn)
486  return gui->progressEndFn(gui, id);
488 }
489 
490 
491 
492 int GWEN_Gui_Print(const char *docTitle,
493  const char *docType,
494  const char *descr,
495  const char *text,
496  uint32_t guiid)
497 {
498  GWEN_GUI *gui;
499 
500  gui=GWEN_Gui_GetGui();
501  if (gui && gui->printFn)
502  return gui->printFn(gui, docTitle, docType, descr, text, guiid);
504 }
505 
506 
507 
508 int GWEN_Gui_LogHook(const char *logDomain,
509  GWEN_LOGGER_LEVEL priority, const char *s)
510 {
511  GWEN_GUI *gui;
512 
513  gui=GWEN_Gui_GetGui();
514  if (gui && gui->logHookFn) {
515  if (priority>=GWEN_LoggerLevel_Debug &&
516  logDomain &&
517  strcasecmp(logDomain, "gwenhywfar")==0)
518  /* don't send possibly sensitive data to the log function because
519  * some application tend to store the messages indiscriminately.
520  * In some cases sensitive information can be send to this function
521  * which we don't want the application to store */
522  return 0;
523  else {
524  int rv;
525 
526  if (gui->inLogHook==0) {
527  /* otherwise the log message seems to be uncritical, convey it */
528  gui->inLogHook++;
529  rv=gui->logHookFn(gui, logDomain, priority, s);
530  gui->inLogHook--;
531  return rv;
532  }
533  else
534  /* loghook recursion, don't convey */
535  return 0;
536  }
537  }
538  else
539  /* handle as usual */
540  return 0;
541 }
542 
543 
544 
545 int GWEN_Gui_KeyDataFromText_OpenSSL(const char *text,
546  unsigned char *buffer,
547  unsigned int bufLength)
548 {
549  GWEN_GUI *gui;
550 
551  gui=GWEN_Gui_GetGui();
552  if (gui && gui->keyDataFromTextOpenSslFn)
553  return gui->keyDataFromTextOpenSslFn(gui, text, buffer, bufLength);
555 }
556 
557 
558 
559 int GWEN_Gui_ExecDialog(GWEN_DIALOG *dlg, uint32_t guiid)
560 {
561  GWEN_GUI *gui;
562 
563  gui=GWEN_Gui_GetGui();
564  if (gui && gui->execDialogFn)
565  return gui->execDialogFn(gui, dlg, guiid);
567 }
568 
569 
570 
571 int GWEN_Gui_OpenDialog(GWEN_DIALOG *dlg, uint32_t guiid)
572 {
573  GWEN_GUI *gui;
574 
575  gui=GWEN_Gui_GetGui();
576  if (gui && gui->openDialogFn)
577  return gui->openDialogFn(gui, dlg, guiid);
579 }
580 
581 
582 
584 {
585  GWEN_GUI *gui;
586 
587  gui=GWEN_Gui_GetGui();
588  if (gui && gui->closeDialogFn)
589  return gui->closeDialogFn(gui, dlg);
591 }
592 
593 
594 
595 int GWEN_Gui_RunDialog(GWEN_DIALOG *dlg, int untilEnd)
596 {
597  GWEN_GUI *gui;
598 
599  gui=GWEN_Gui_GetGui();
600  if (gui && gui->runDialogFn)
601  return gui->runDialogFn(gui, dlg, untilEnd);
603 }
604 
605 
606 
607 
608 int GWEN_Gui_GetFileName(const char *caption,
610  uint32_t flags,
611  const char *patterns,
612  GWEN_BUFFER *pathBuffer,
613  uint32_t guiid)
614 {
615  GWEN_GUI *gui;
616 
617  gui=GWEN_Gui_GetGui();
618  if (gui && gui->getFileNameFn)
619  return gui->getFileNameFn(gui, caption, fnt, flags, patterns, pathBuffer, guiid);
621 }
622 
623 
624 
625 int GWEN_Gui_ReadDialogPrefs(const char *groupName,
626  const char *altName,
627  GWEN_DB_NODE **pDb)
628 {
629  GWEN_GUI *gui;
630 
631  gui=GWEN_Gui_GetGui();
632  if (gui && gui->readDialogPrefsFn)
633  return gui->readDialogPrefsFn(gui, groupName, altName, pDb);
635 }
636 
637 
638 
639 int GWEN_Gui_WriteDialogPrefs(const char *groupName,
640  GWEN_DB_NODE *db)
641 {
642  GWEN_GUI *gui;
643 
644  gui=GWEN_Gui_GetGui();
645  if (gui && gui->writeDialogPrefsFn)
646  return gui->writeDialogPrefsFn(gui, groupName, db);
648 }
649 
650 
651 
652 int GWEN_Gui_GetSyncIo(const char *url,
653  const char *defaultProto,
654  int defaultPort,
655  GWEN_SYNCIO **pSio)
656 {
657  GWEN_GUI *gui;
658 
659  gui=GWEN_Gui_GetGui();
660  if (gui && gui->getSyncIoFn)
661  return gui->getSyncIoFn(gui, url, defaultProto, defaultPort, pSio);
663 }
664 
665 
666 
668  GWEN_SOCKET_LIST2 *writeSockets,
669  uint32_t guiid,
670  int msecs)
671 {
672  GWEN_GUI *gui;
673 
674  gui=GWEN_Gui_GetGui();
675  if (gui && gui->waitForSocketsFn)
676  return gui->waitForSocketsFn(gui, readSockets, writeSockets, guiid, msecs);
677  else {
678  uint32_t pid;
679  time_t t0;
680  int wt;
681  int dist;
682 
683  t0=time(0);
684  if (msecs==GWEN_TIMEOUT_NONE) {
685  wt=0;
686  dist=0;
687  }
688  else if (msecs==GWEN_TIMEOUT_FOREVER) {
689  wt=0;
690  dist=500;
691  }
692  else {
693  wt=msecs/1000;
694  dist=500;
695  }
696 
701  I18N("Waiting for Data"),
702  "Waiting for data to become available",
703  wt,
704  0);
705  while (1) {
706  GWEN_SOCKETSET *rset;
707  GWEN_SOCKETSET *wset;
709 
710  rset=GWEN_SocketSet_new();
711  wset=GWEN_SocketSet_new();
712 
713  /* fill read socket set */
714  if (readSockets) {
715  sit=GWEN_Socket_List2_First(readSockets);
716  if (sit) {
717  GWEN_SOCKET *s;
718 
720  assert(s);
721 
722  while (s) {
723  GWEN_SocketSet_AddSocket(rset, s);
725  }
727  }
728  }
729 
730  /* fill write socket set */
731  if (writeSockets) {
732  sit=GWEN_Socket_List2_First(writeSockets);
733  if (sit) {
734  GWEN_SOCKET *s;
735 
737  assert(s);
738 
739  while (s) {
740  GWEN_SocketSet_AddSocket(wset, s);
742  }
744  }
745  }
746 
747  if (GWEN_SocketSet_GetSocketCount(rset)==0 &&
749  /* no sockets to wait for, sleep for a few ms to keep cpu load down */
750  GWEN_SocketSet_free(wset);
751  GWEN_SocketSet_free(rset);
752 
753  if (msecs) {
754  /* only sleep if a timeout was given */
755  DBG_DEBUG(GWEN_LOGDOMAIN, "Sleeping (no socket)");
757  }
759  return GWEN_ERROR_TIMEOUT;
760  }
761  else {
762  int rv;
763  int v=0;
764 
765  rv=GWEN_Socket_Select(rset, wset, NULL, dist);
766  GWEN_SocketSet_free(wset);
767  GWEN_SocketSet_free(rset);
768 
769  if (rv!=GWEN_ERROR_TIMEOUT) {
771  return rv;
772  }
773 
774  if (wt) {
775  time_t t1;
776 
777  t1=time(0);
778  v=difftime(t1, t0);
779  if (v>wt) {
781  return GWEN_ERROR_TIMEOUT;
782  }
783  }
784  rv=GWEN_Gui_ProgressAdvance(pid, v);
785  if (rv==GWEN_ERROR_USER_ABORTED) {
787  return rv;
788  }
789  }
790  } /* loop */
791  }
792 }
793 
794 
GWENHYWFAR_API const char * fmt
Definition: buffer.h:283
int GWEN_Gui_ProgressLog(uint32_t id, GWEN_LOGGER_LEVEL level, const char *text)
Definition: gui_virtual.c:444
#define I18N(m)
Definition: error.c:42
int GWENHYWFAR_CB(* GWEN_GUI_WRITE_DIALOG_PREFS_FN)(GWEN_GUI *gui, const char *groupName, GWEN_DB_NODE *db)
Definition: gui_be.h:257
GWENHYWFAR_API void GWEN_SocketSet_free(GWEN_SOCKETSET *ssp)
int GWEN_Gui_OpenDialog(GWEN_DIALOG *dlg, uint32_t guiid)
Definition: gui_virtual.c:571
int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress)
Definition: gui_virtual.c:420
GWEN_GUI_LOG_HOOK_FN GWEN_Gui_SetLogHookFn(GWEN_GUI *gui, GWEN_GUI_LOG_HOOK_FN f)
Definition: gui_virtual.c:180
struct GWEN_DB_NODE GWEN_DB_NODE
Definition: db.h:228
int GWEN_Gui_WaitForSockets(GWEN_SOCKET_LIST2 *readSockets, GWEN_SOCKET_LIST2 *writeSockets, uint32_t guiid, int msecs)
Definition: gui_virtual.c:667
struct GWEN_SOCKET_LIST2 GWEN_SOCKET_LIST2
Definition: listdoc.h:4030
void GWENHYWFAR_CB(* GWEN_GUI_HIDEBOX_FN)(GWEN_GUI *gui, uint32_t id)
Definition: gui_be.h:385
int GWEN_Gui_LogHook(const char *logDomain, GWEN_LOGGER_LEVEL priority, const char *s)
Definition: gui_virtual.c:508
#define GWEN_GUI_PROGRESS_ALLOW_EMBED
Definition: gui.h:196
int GWENHYWFAR_CB(* GWEN_GUI_PROGRESS_LOG_FN)(GWEN_GUI *gui, uint32_t id, GWEN_LOGGER_LEVEL level, const char *text)
Definition: gui_be.h:419
uint32_t GWEN_Gui_ShowBox(uint32_t flags, const char *title, const char *text, uint32_t guiid)
Definition: gui_virtual.c:378
int GWEN_Gui_WriteDialogPrefs(const char *groupName, GWEN_DB_NODE *db)
Definition: gui_virtual.c:639
int GWEN_Gui_ProgressSetTotal(uint32_t id, uint64_t total)
Definition: gui_virtual.c:432
GWEN_LOGGER_LEVEL
Definition: logger.h:64
#define NULL
Definition: binreloc.c:300
GWEN_GUI_WAITFORSOCKETS_FN GWEN_Gui_SetWaitForSocketsFn(GWEN_GUI *gui, GWEN_GUI_WAITFORSOCKETS_FN f)
Definition: gui_virtual.c:194
GWEN_GUI_PROGRESS_SETTOTAL_FN GWEN_Gui_SetProgressSetTotalFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_SETTOTAL_FN f)
Definition: gui_virtual.c:105
int GWENHYWFAR_CB(* GWEN_GUI_CLOSE_DIALOG_FN)(GWEN_GUI *gui, GWEN_DIALOG *dlg)
Definition: gui_be.h:247
struct GWEN_SOCKETSETSTRUCT GWEN_SOCKETSET
Definition: inetsocket.h:41
#define GWEN_GUI_PROGRESS_DELAY
Definition: gui.h:192
#define DBG_WARN(dbg_logger, format, args...)
Definition: debug.h:125
GWEN_GUI_HIDEBOX_FN GWEN_Gui_SetHideBoxFn(GWEN_GUI *gui, GWEN_GUI_HIDEBOX_FN f)
Definition: gui_virtual.c:68
GWEN_GUI_EXEC_DIALOG_FN GWEN_Gui_SetExecDialogFn(GWEN_GUI *gui, GWEN_GUI_EXEC_DIALOG_FN f)
Definition: gui_virtual.c:221
#define GWEN_LOGDOMAIN
Definition: logger.h:35
GWEN_SOCKET * GWEN_Socket_List2Iterator_Data(GWEN_SOCKET_LIST2_ITERATOR *li)
uint32_t GWENHYWFAR_CB(* GWEN_GUI_SHOWBOX_FN)(GWEN_GUI *gui, uint32_t flags, const char *title, const char *text, uint32_t guiid)
Definition: gui_be.h:375
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)
Definition: gui_virtual.c:342
int GWENHYWFAR_CB(* GWEN_GUI_READ_DIALOG_PREFS_FN)(GWEN_GUI *gui, const char *groupName, const char *altName, GWEN_DB_NODE **pDb)
Definition: gui_be.h:252
GWEN_GUI_PRINT_FN GWEN_Gui_SetPrintFn(GWEN_GUI *gui, GWEN_GUI_PRINT_FN f)
Definition: gui_virtual.c:141
int GWEN_Gui_ExecDialog(GWEN_DIALOG *dlg, uint32_t guiid)
Definition: gui_virtual.c:559
int GWEN_Gui_Print(const char *docTitle, const char *docType, const char *descr, const char *text, uint32_t guiid)
Definition: gui_virtual.c:492
int GWENHYWFAR_CB(* GWEN_GUI_GET_FILENAME_FN)(GWEN_GUI *gui, const char *caption, GWEN_GUI_FILENAME_TYPE fnt, uint32_t flags, const char *patterns, GWEN_BUFFER *pathBuffer, uint32_t guiid)
Definition: gui_be.h:210
struct GWEN_DIALOG GWEN_DIALOG
Definition: dialog.h:54
GWEN_GUI_GETSYNCIO_FN GWEN_Gui_SetGetSyncIoFn(GWEN_GUI *gui, GWEN_GUI_GETSYNCIO_FN f)
Definition: gui_virtual.c:312
int GWENHYWFAR_CB(* GWEN_GUI_RUN_DIALOG_FN)(GWEN_GUI *gui, GWEN_DIALOG *dlg, int timeout)
Definition: gui_be.h:249
int GWEN_Gui_GetSyncIo(const char *url, const char *defaultProto, int defaultPort, GWEN_SYNCIO **pSio)
Definition: gui_virtual.c:652
GWENHYWFAR_API int GWEN_SocketSet_GetSocketCount(GWEN_SOCKETSET *ssp)
int GWENHYWFAR_CB(* GWEN_GUI_EXEC_DIALOG_FN)(GWEN_GUI *gui, GWEN_DIALOG *dlg, uint32_t guiid)
Definition: gui_be.h:238
struct GWEN_SOCKET_LIST2_ITERATOR GWEN_SOCKET_LIST2_ITERATOR
Definition: listdoc.h:4035
GWEN_GUI_CLOSE_DIALOG_FN GWEN_Gui_SetCloseDialogFn(GWEN_GUI *gui, GWEN_GUI_CLOSE_DIALOG_FN f)
Definition: gui_virtual.c:247
GWEN_GUI_GET_FILENAME_FN GWEN_Gui_SetGetFileNameFn(GWEN_GUI *gui, GWEN_GUI_GET_FILENAME_FN f)
Definition: gui_virtual.c:299
GWEN_GUI_FILENAME_TYPE
Definition: gui.h:949
GWEN_GUI_SETPASSWORDSTATUS_FN GWEN_Gui_SetSetPasswordStatusFn(GWEN_GUI *gui, GWEN_GUI_SETPASSWORDSTATUS_FN f)
Definition: gui_virtual.c:167
struct GWEN_SYNCIO GWEN_SYNCIO
Definition: syncio.h:40
int GWENHYWFAR_CB(* GWEN_GUI_GETSYNCIO_FN)(GWEN_GUI *gui, const char *url, const char *defaultProto, int defaultPort, GWEN_SYNCIO **pSio)
Definition: gui_be.h:218
int GWEN_Gui_InputBox(uint32_t flags, const char *title, const char *text, char *buffer, int minLen, int maxLen, uint32_t guiid)
Definition: gui_virtual.c:360
#define DBG_DEBUG(dbg_logger, format, args...)
Definition: debug.h:214
int GWENHYWFAR_CB(* GWEN_GUI_MESSAGEBOX_FN)(GWEN_GUI *gui, uint32_t flags, const char *title, const char *text, const char *b1, const char *b2, const char *b3, uint32_t guiid)
Definition: gui_be.h:349
int GWEN_Gui_ProgressLog2(uint32_t id, GWEN_LOGGER_LEVEL level, const char *fmt,...)
Definition: gui_virtual.c:458
int GWENHYWFAR_CB(* GWEN_GUI_PROGRESS_ADVANCE_FN)(GWEN_GUI *gui, uint32_t id, uint64_t progress)
Definition: gui_be.h:402
uint32_t GWENHYWFAR_CB(* GWEN_GUI_PROGRESS_START_FN)(GWEN_GUI *gui, uint32_t progressFlags, const char *title, const char *text, uint64_t total, uint32_t guiid)
Definition: gui_be.h:391
GWEN_GUI * GWEN_Gui_GetGui(void)
Definition: gui.c:160
int GWENHYWFAR_CB(* GWEN_GUI_PROGRESS_SETTOTAL_FN)(GWEN_GUI *gui, uint32_t id, uint64_t total)
Definition: gui_be.h:411
int GWENHYWFAR_CB(* GWEN_GUI_CHECKCERT_FN)(GWEN_GUI *gui, const GWEN_SSLCERTDESCR *cert, GWEN_SYNCIO *sio, uint32_t guiid)
Definition: gui_be.h:204
GWENHYWFAR_API GWEN_SOCKETSET * GWEN_SocketSet_new(void)
GWEN_GUI_PROGRESS_END_FN GWEN_Gui_SetProgressEndFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_END_FN f)
Definition: gui_virtual.c:129
GWENHYWFAR_API int GWEN_SocketSet_AddSocket(GWEN_SOCKETSET *ssp, const GWEN_SOCKET *sp)
GWEN_GUI_PROGRESS_START_FN GWEN_Gui_SetProgressStartFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_START_FN f)
Definition: gui_virtual.c:81
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition: buffer.h:38
int GWENHYWFAR_CB(* GWEN_GUI_GETPASSWORD_FN)(GWEN_GUI *gui, 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)
Definition: gui_be.h:151
uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags, const char *title, const char *text, uint64_t total, uint32_t guiid)
Definition: gui_virtual.c:404
GWEN_GUI_INPUTBOX_FN GWEN_Gui_SetInputBoxFn(GWEN_GUI *gui, GWEN_GUI_INPUTBOX_FN f)
Definition: gui_virtual.c:42
int GWEN_Gui_KeyDataFromText_OpenSSL(const char *text, unsigned char *buffer, unsigned int bufLength)
Definition: gui_virtual.c:545
int GWEN_Gui_ProgressEnd(uint32_t id)
Definition: gui_virtual.c:480
void GWEN_Gui_HideBox(uint32_t id)
Definition: gui_virtual.c:393
GWEN_GUI_SHOWBOX_FN GWEN_Gui_SetShowBoxFn(GWEN_GUI *gui, GWEN_GUI_SHOWBOX_FN f)
Definition: gui_virtual.c:55
int GWEN_Gui_CloseDialog(GWEN_DIALOG *dlg)
Definition: gui_virtual.c:583
#define GWEN_GUI_CPU_TIMEOUT
Definition: gui.h:180
void GWEN_Socket_List2Iterator_free(GWEN_SOCKET_LIST2_ITERATOR *li)
int GWENHYWFAR_CB(* GWEN_GUI_SETPASSWORDSTATUS_FN)(GWEN_GUI *gui, const char *token, const char *pin, GWEN_GUI_PASSWORD_STATUS status, uint32_t guiid)
Definition: gui_be.h:166
#define GWEN_GUI_PROGRESS_SHOW_PROGRESS
Definition: gui.h:197
GWENHYWFAR_API int GWEN_Socket_Select(GWEN_SOCKETSET *rs, GWEN_SOCKETSET *ws, GWEN_SOCKETSET *xs, int timeout)
int GWENHYWFAR_CB(* GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN)(GWEN_GUI *gui, const char *text, unsigned char *buffer, unsigned int bufLength)
Definition: gui_be.h:224
int GWENHYWFAR_CB(* GWEN_GUI_OPEN_DIALOG_FN)(GWEN_GUI *gui, GWEN_DIALOG *dlg, uint32_t guiid)
Definition: gui_be.h:243
int GWENHYWFAR_CB(* GWEN_GUI_PRINT_FN)(GWEN_GUI *gui, const char *docTitle, const char *docType, const char *descr, const char *text, uint32_t guiid)
Definition: gui_be.h:141
int GWEN_Gui_ReadDialogPrefs(const char *groupName, const char *altName, GWEN_DB_NODE **pDb)
Definition: gui_virtual.c:625
struct GWEN_GUI GWEN_GUI
Definition: gui.h:176
int GWENHYWFAR_CB(* GWEN_GUI_LOG_HOOK_FN)(GWEN_GUI *gui, const char *logDomain, GWEN_LOGGER_LEVEL priority, const char *s)
Definition: gui_be.h:185
GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN GWEN_Gui_SetKeyDataFromTextOpenSslFn(GWEN_GUI *gui, GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN f)
Definition: gui_virtual.c:325
GWEN_GUI_READ_DIALOG_PREFS_FN GWEN_Gui_SetReadDialogPrefsFn(GWEN_GUI *gui, GWEN_GUI_READ_DIALOG_PREFS_FN f)
Definition: gui_virtual.c:273
struct GWEN_SOCKET GWEN_SOCKET
Definition: inetsocket.h:40
GWEN_GUI_CHECKCERT_FN GWEN_Gui_SetCheckCertFn(GWEN_GUI *gui, GWEN_GUI_CHECKCERT_FN f)
Definition: gui_virtual.c:208
GWEN_SOCKET_LIST2_ITERATOR * GWEN_Socket_List2_First(GWEN_SOCKET_LIST2 *l)
#define GWEN_ERROR_TIMEOUT
Definition: error.h:71
GWEN_GUI_PROGRESS_ADVANCE_FN GWEN_Gui_SetProgressAdvanceFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_ADVANCE_FN f)
Definition: gui_virtual.c:93
GWEN_GUI_GETPASSWORD_FN GWEN_Gui_SetGetPasswordFn(GWEN_GUI *gui, GWEN_GUI_GETPASSWORD_FN f)
Definition: gui_virtual.c:154
GWEN_GUI_MESSAGEBOX_FN GWEN_Gui_SetMessageBoxFn(GWEN_GUI *gui, GWEN_GUI_MESSAGEBOX_FN f)
Definition: gui_virtual.c:29
#define GWEN_ERROR_USER_ABORTED
Definition: error.h:65
int GWENHYWFAR_CB(* GWEN_GUI_WAITFORSOCKETS_FN)(GWEN_GUI *gui, GWEN_SOCKET_LIST2 *readSockets, GWEN_SOCKET_LIST2 *writeSockets, int msecs, uint32_t guiid)
Definition: gui_be.h:198
int GWEN_Gui_GetFileName(const char *caption, GWEN_GUI_FILENAME_TYPE fnt, uint32_t flags, const char *patterns, GWEN_BUFFER *pathBuffer, uint32_t guiid)
Definition: gui_virtual.c:608
#define GWEN_TIMEOUT_NONE
GWEN_GUI_PROGRESS_LOG_FN GWEN_Gui_SetProgressLogFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_LOG_FN f)
Definition: gui_virtual.c:117
int GWEN_Gui_RunDialog(GWEN_DIALOG *dlg, int untilEnd)
Definition: gui_virtual.c:595
GWEN_GUI_RUN_DIALOG_FN GWEN_Gui_SetRunDialogFn(GWEN_GUI *gui, GWEN_GUI_RUN_DIALOG_FN f)
Definition: gui_virtual.c:260
GWEN_GUI_OPEN_DIALOG_FN GWEN_Gui_SetOpenDialogFn(GWEN_GUI *gui, GWEN_GUI_OPEN_DIALOG_FN f)
Definition: gui_virtual.c:234
int GWENHYWFAR_CB(* GWEN_GUI_PROGRESS_END_FN)(GWEN_GUI *gui, uint32_t id)
Definition: gui_be.h:427
GWEN_GUI_WRITE_DIALOG_PREFS_FN GWEN_Gui_SetWriteDialogPrefsFn(GWEN_GUI *gui, GWEN_GUI_WRITE_DIALOG_PREFS_FN f)
Definition: gui_virtual.c:286
int GWENHYWFAR_CB(* GWEN_GUI_INPUTBOX_FN)(GWEN_GUI *gui, uint32_t flags, const char *title, const char *text, char *buffer, int minLen, int maxLen, uint32_t guiid)
Definition: gui_be.h:362
#define GWEN_TIMEOUT_FOREVER
GWEN_SOCKET * GWEN_Socket_List2Iterator_Next(GWEN_SOCKET_LIST2_ITERATOR *li)
#define GWEN_GUI_PROGRESS_SHOW_ABORT
Definition: gui.h:194
#define GWEN_ERROR_NOT_IMPLEMENTED
Definition: error.h:108