gwenhywfar 5.12.0
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
342int 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
360int 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
378uint32_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
393void 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
404uint32_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
420int 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
432int 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
444int 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
458int 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
480int 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
492int 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
508int 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
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
559int 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
571int 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
595int 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
608int 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
625int 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
639int 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
652int 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) {
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) {
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 */
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);
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
#define NULL
Definition binreloc.c:300
GWENHYWFAR_API const char * fmt
Definition buffer.h:283
struct GWEN_DB_NODE GWEN_DB_NODE
Definition db.h:228
#define DBG_WARN(dbg_logger, format,...)
Definition debug.h:125
#define DBG_DEBUG(dbg_logger, format,...)
Definition debug.h:214
struct GWEN_DIALOG GWEN_DIALOG
Definition dialog.h:54
#define I18N(m)
Definition error.c:42
#define GWEN_ERROR_NOT_IMPLEMENTED
Definition error.h:108
#define GWEN_ERROR_TIMEOUT
Definition error.h:71
#define GWEN_ERROR_USER_ABORTED
Definition error.h:65
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
GWENHYWFAR_API int GWEN_SocketSet_GetSocketCount(GWEN_SOCKETSET *ssp)
GWENHYWFAR_API void GWEN_SocketSet_free(GWEN_SOCKETSET *ssp)
GWENHYWFAR_API int GWEN_SocketSet_AddSocket(GWEN_SOCKETSET *ssp, const GWEN_SOCKET *sp)
GWENHYWFAR_API GWEN_SOCKETSET * GWEN_SocketSet_new(void)
GWENHYWFAR_API int GWEN_Socket_Select(GWEN_SOCKETSET *rs, GWEN_SOCKETSET *ws, GWEN_SOCKETSET *xs, int timeout)
GWEN_GUI * GWEN_Gui_GetGui(void)
Definition gui.c:160
#define GWEN_GUI_PROGRESS_DELAY
Definition gui.h:192
#define GWEN_GUI_PROGRESS_SHOW_PROGRESS
Definition gui.h:197
GWEN_GUI_FILENAME_TYPE
Definition gui.h:949
#define GWEN_GUI_CPU_TIMEOUT
Definition gui.h:180
#define GWEN_GUI_PROGRESS_SHOW_ABORT
Definition gui.h:194
struct GWEN_GUI GWEN_GUI
Definition gui.h:176
#define GWEN_GUI_PROGRESS_ALLOW_EMBED
Definition gui.h:196
int GWENHYWFAR_CB(* GWEN_GUI_EXEC_DIALOG_FN)(GWEN_GUI *gui, GWEN_DIALOG *dlg, uint32_t guiid)
Definition gui_be.h:238
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
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 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 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
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
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
int GWENHYWFAR_CB(* GWEN_GUI_RUN_DIALOG_FN)(GWEN_GUI *gui, GWEN_DIALOG *dlg, int timeout)
Definition gui_be.h:249
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 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 GWENHYWFAR_CB(* GWEN_GUI_CLOSE_DIALOG_FN)(GWEN_GUI *gui, GWEN_DIALOG *dlg)
Definition gui_be.h:247
int GWENHYWFAR_CB(* GWEN_GUI_PROGRESS_END_FN)(GWEN_GUI *gui, uint32_t id)
Definition gui_be.h:427
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
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
void GWENHYWFAR_CB(* GWEN_GUI_HIDEBOX_FN)(GWEN_GUI *gui, uint32_t id)
Definition gui_be.h:385
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
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_PROGRESS_ADVANCE_FN)(GWEN_GUI *gui, uint32_t id, uint64_t progress)
Definition gui_be.h:402
int GWENHYWFAR_CB(* GWEN_GUI_WRITE_DIALOG_PREFS_FN)(GWEN_GUI *gui, const char *groupName, GWEN_DB_NODE *db)
Definition gui_be.h:257
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_PROGRESS_SETTOTAL_FN)(GWEN_GUI *gui, uint32_t id, uint64_t total)
Definition gui_be.h:411
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 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
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_CloseDialog(GWEN_DIALOG *dlg)
int GWEN_Gui_ReadDialogPrefs(const char *groupName, const char *altName, GWEN_DB_NODE **pDb)
GWEN_GUI_RUN_DIALOG_FN GWEN_Gui_SetRunDialogFn(GWEN_GUI *gui, GWEN_GUI_RUN_DIALOG_FN f)
GWEN_GUI_GET_FILENAME_FN GWEN_Gui_SetGetFileNameFn(GWEN_GUI *gui, GWEN_GUI_GET_FILENAME_FN f)
GWEN_GUI_PROGRESS_START_FN GWEN_Gui_SetProgressStartFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_START_FN f)
Definition gui_virtual.c:81
GWEN_GUI_OPEN_DIALOG_FN GWEN_Gui_SetOpenDialogFn(GWEN_GUI *gui, GWEN_GUI_OPEN_DIALOG_FN f)
GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN GWEN_Gui_SetKeyDataFromTextOpenSslFn(GWEN_GUI *gui, GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN f)
GWEN_GUI_WAITFORSOCKETS_FN GWEN_Gui_SetWaitForSocketsFn(GWEN_GUI *gui, GWEN_GUI_WAITFORSOCKETS_FN f)
GWEN_GUI_CLOSE_DIALOG_FN GWEN_Gui_SetCloseDialogFn(GWEN_GUI *gui, GWEN_GUI_CLOSE_DIALOG_FN f)
GWEN_GUI_CHECKCERT_FN GWEN_Gui_SetCheckCertFn(GWEN_GUI *gui, GWEN_GUI_CHECKCERT_FN f)
int GWEN_Gui_WriteDialogPrefs(const char *groupName, GWEN_DB_NODE *db)
int GWEN_Gui_InputBox(uint32_t flags, const char *title, const char *text, char *buffer, int minLen, int maxLen, uint32_t guiid)
uint32_t GWEN_Gui_ProgressStart(uint32_t progressFlags, const char *title, const char *text, uint64_t total, uint32_t guiid)
uint32_t GWEN_Gui_ShowBox(uint32_t flags, const char *title, const char *text, uint32_t guiid)
int GWEN_Gui_RunDialog(GWEN_DIALOG *dlg, int untilEnd)
GWEN_GUI_GETPASSWORD_FN GWEN_Gui_SetGetPasswordFn(GWEN_GUI *gui, GWEN_GUI_GETPASSWORD_FN f)
int GWEN_Gui_ProgressEnd(uint32_t id)
int GWEN_Gui_GetSyncIo(const char *url, const char *defaultProto, int defaultPort, GWEN_SYNCIO **pSio)
GWEN_GUI_WRITE_DIALOG_PREFS_FN GWEN_Gui_SetWriteDialogPrefsFn(GWEN_GUI *gui, GWEN_GUI_WRITE_DIALOG_PREFS_FN f)
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)
GWEN_GUI_SETPASSWORDSTATUS_FN GWEN_Gui_SetSetPasswordStatusFn(GWEN_GUI *gui, GWEN_GUI_SETPASSWORDSTATUS_FN f)
GWEN_GUI_READ_DIALOG_PREFS_FN GWEN_Gui_SetReadDialogPrefsFn(GWEN_GUI *gui, GWEN_GUI_READ_DIALOG_PREFS_FN f)
void GWEN_Gui_HideBox(uint32_t id)
GWEN_GUI_EXEC_DIALOG_FN GWEN_Gui_SetExecDialogFn(GWEN_GUI *gui, GWEN_GUI_EXEC_DIALOG_FN f)
int GWEN_Gui_ProgressAdvance(uint32_t id, uint32_t progress)
GWEN_GUI_LOG_HOOK_FN GWEN_Gui_SetLogHookFn(GWEN_GUI *gui, GWEN_GUI_LOG_HOOK_FN f)
int GWEN_Gui_Print(const char *docTitle, const char *docType, const char *descr, const char *text, uint32_t guiid)
int GWEN_Gui_LogHook(const char *logDomain, GWEN_LOGGER_LEVEL priority, const char *s)
int GWEN_Gui_WaitForSockets(GWEN_SOCKET_LIST2 *readSockets, GWEN_SOCKET_LIST2 *writeSockets, uint32_t guiid, int msecs)
GWEN_GUI_PRINT_FN GWEN_Gui_SetPrintFn(GWEN_GUI *gui, GWEN_GUI_PRINT_FN f)
GWEN_GUI_PROGRESS_ADVANCE_FN GWEN_Gui_SetProgressAdvanceFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_ADVANCE_FN f)
Definition gui_virtual.c:93
int GWEN_Gui_GetFileName(const char *caption, GWEN_GUI_FILENAME_TYPE fnt, uint32_t flags, const char *patterns, GWEN_BUFFER *pathBuffer, uint32_t guiid)
int GWEN_Gui_KeyDataFromText_OpenSSL(const char *text, unsigned char *buffer, unsigned int bufLength)
GWEN_GUI_PROGRESS_END_FN GWEN_Gui_SetProgressEndFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_END_FN f)
GWEN_GUI_PROGRESS_LOG_FN GWEN_Gui_SetProgressLogFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_LOG_FN f)
int GWEN_Gui_ProgressLog(uint32_t id, GWEN_LOGGER_LEVEL level, const char *text)
GWEN_GUI_GETSYNCIO_FN GWEN_Gui_SetGetSyncIoFn(GWEN_GUI *gui, GWEN_GUI_GETSYNCIO_FN f)
GWEN_GUI_HIDEBOX_FN GWEN_Gui_SetHideBoxFn(GWEN_GUI *gui, GWEN_GUI_HIDEBOX_FN f)
Definition gui_virtual.c:68
int GWEN_Gui_ExecDialog(GWEN_DIALOG *dlg, uint32_t guiid)
int GWEN_Gui_OpenDialog(GWEN_DIALOG *dlg, uint32_t guiid)
int GWEN_Gui_ProgressSetTotal(uint32_t id, uint64_t total)
GWEN_GUI_INPUTBOX_FN GWEN_Gui_SetInputBoxFn(GWEN_GUI *gui, GWEN_GUI_INPUTBOX_FN f)
Definition gui_virtual.c:42
GWEN_GUI_SHOWBOX_FN GWEN_Gui_SetShowBoxFn(GWEN_GUI *gui, GWEN_GUI_SHOWBOX_FN f)
Definition gui_virtual.c:55
GWEN_GUI_PROGRESS_SETTOTAL_FN GWEN_Gui_SetProgressSetTotalFn(GWEN_GUI *gui, GWEN_GUI_PROGRESS_SETTOTAL_FN f)
int GWEN_Gui_ProgressLog2(uint32_t id, GWEN_LOGGER_LEVEL level, const char *fmt,...)
GWEN_GUI_MESSAGEBOX_FN GWEN_Gui_SetMessageBoxFn(GWEN_GUI *gui, GWEN_GUI_MESSAGEBOX_FN f)
Definition gui_virtual.c:29
#define GWEN_TIMEOUT_FOREVER
#define GWEN_TIMEOUT_NONE
struct GWEN_SOCKETSETSTRUCT GWEN_SOCKETSET
Definition inetsocket.h:41
struct GWEN_SOCKET GWEN_SOCKET
Definition inetsocket.h:40
GWEN_SOCKET * GWEN_Socket_List2Iterator_Next(GWEN_SOCKET_LIST2_ITERATOR *li)
struct GWEN_SOCKET_LIST2_ITERATOR GWEN_SOCKET_LIST2_ITERATOR
Definition listdoc.h:4035
void GWEN_Socket_List2Iterator_free(GWEN_SOCKET_LIST2_ITERATOR *li)
struct GWEN_SOCKET_LIST2 GWEN_SOCKET_LIST2
Definition listdoc.h:4030
GWEN_SOCKET * GWEN_Socket_List2Iterator_Data(GWEN_SOCKET_LIST2_ITERATOR *li)
GWEN_SOCKET_LIST2_ITERATOR * GWEN_Socket_List2_First(GWEN_SOCKET_LIST2 *l)
#define GWEN_LOGDOMAIN
Definition logger.h:35
GWEN_LOGGER_LEVEL
Definition logger.h:64
@ GWEN_LoggerLevel_Debug
Definition logger.h:72
struct GWEN_SYNCIO GWEN_SYNCIO
Definition syncio.h:40