From 4424d17b812e1159552d9217cc491e4947d42424 Mon Sep 17 00:00:00 2001 From: toni Date: Wed, 27 Jul 2016 12:21:11 +0200 Subject: fixed build error --- src/Makefile.am | 2 +- src/Makefile.in | 38 ++++++------ src/ui.c | 2 +- src/ui_elements.c | 170 ------------------------------------------------------ src/ui_elements.h | 17 ------ src/ui_nask.c | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/ui_nask.h | 17 ++++++ 7 files changed, 208 insertions(+), 208 deletions(-) delete mode 100644 src/ui_elements.c delete mode 100644 src/ui_elements.h create mode 100644 src/ui_nask.c create mode 100644 src/ui_nask.h (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index ed6b8d4..ff19f79 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,5 @@ bin_PROGRAMS=naskpass naskshell naskpass_check -naskpass_SOURCES=main.c log.c opt.c status.c ui_ani.c ui.c ui_elements.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c +naskpass_SOURCES=main.c log.c opt.c status.c ui_ani.c ui.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c ui_nask.c naskpass_check_SOURCES=check/check.c naskshell_SOURCES=shell/shell.c if DEBUG diff --git a/src/Makefile.in b/src/Makefile.in index ca78767..ee35034 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -96,9 +96,9 @@ PROGRAMS = $(bin_PROGRAMS) am_naskpass_OBJECTS = naskpass-main.$(OBJEXT) naskpass-log.$(OBJEXT) \ naskpass-opt.$(OBJEXT) naskpass-status.$(OBJEXT) \ naskpass-ui_ani.$(OBJEXT) naskpass-ui.$(OBJEXT) \ - naskpass-ui_elements.$(OBJEXT) naskpass-ui_input.$(OBJEXT) \ - naskpass-ui_ipc.$(OBJEXT) naskpass-ui_txtwindow.$(OBJEXT) \ - naskpass-ui_statusbar.$(OBJEXT) + naskpass-ui_input.$(OBJEXT) naskpass-ui_ipc.$(OBJEXT) \ + naskpass-ui_txtwindow.$(OBJEXT) \ + naskpass-ui_statusbar.$(OBJEXT) naskpass-ui_nask.$(OBJEXT) naskpass_OBJECTS = $(am_naskpass_OBJECTS) naskpass_LDADD = $(LDADD) naskpass_LINK = $(CCLD) $(naskpass_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ @@ -273,7 +273,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -naskpass_SOURCES = main.c log.c opt.c status.c ui_ani.c ui.c ui_elements.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c +naskpass_SOURCES = main.c log.c opt.c status.c ui_ani.c ui.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c ui_nask.c naskpass_check_SOURCES = check/check.c naskshell_SOURCES = shell/shell.c @DEBUG_FALSE@naskpass_CFLAGS = -fPIC -fomit-frame-pointer -Os @@ -413,9 +413,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-status.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_ani.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_elements.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_input.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_ipc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_nask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_statusbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_txtwindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@check/$(DEPDIR)/check.Po@am__quote@ @@ -521,20 +521,6 @@ naskpass-ui.obj: ui.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-ui.obj `if test -f 'ui.c'; then $(CYGPATH_W) 'ui.c'; else $(CYGPATH_W) '$(srcdir)/ui.c'; fi` -naskpass-ui_elements.o: ui_elements.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-ui_elements.o -MD -MP -MF $(DEPDIR)/naskpass-ui_elements.Tpo -c -o naskpass-ui_elements.o `test -f 'ui_elements.c' || echo '$(srcdir)/'`ui_elements.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-ui_elements.Tpo $(DEPDIR)/naskpass-ui_elements.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ui_elements.c' object='naskpass-ui_elements.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-ui_elements.o `test -f 'ui_elements.c' || echo '$(srcdir)/'`ui_elements.c - -naskpass-ui_elements.obj: ui_elements.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-ui_elements.obj -MD -MP -MF $(DEPDIR)/naskpass-ui_elements.Tpo -c -o naskpass-ui_elements.obj `if test -f 'ui_elements.c'; then $(CYGPATH_W) 'ui_elements.c'; else $(CYGPATH_W) '$(srcdir)/ui_elements.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-ui_elements.Tpo $(DEPDIR)/naskpass-ui_elements.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ui_elements.c' object='naskpass-ui_elements.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-ui_elements.obj `if test -f 'ui_elements.c'; then $(CYGPATH_W) 'ui_elements.c'; else $(CYGPATH_W) '$(srcdir)/ui_elements.c'; fi` - naskpass-ui_input.o: ui_input.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-ui_input.o -MD -MP -MF $(DEPDIR)/naskpass-ui_input.Tpo -c -o naskpass-ui_input.o `test -f 'ui_input.c' || echo '$(srcdir)/'`ui_input.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-ui_input.Tpo $(DEPDIR)/naskpass-ui_input.Po @@ -591,6 +577,20 @@ naskpass-ui_statusbar.obj: ui_statusbar.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-ui_statusbar.obj `if test -f 'ui_statusbar.c'; then $(CYGPATH_W) 'ui_statusbar.c'; else $(CYGPATH_W) '$(srcdir)/ui_statusbar.c'; fi` +naskpass-ui_nask.o: ui_nask.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-ui_nask.o -MD -MP -MF $(DEPDIR)/naskpass-ui_nask.Tpo -c -o naskpass-ui_nask.o `test -f 'ui_nask.c' || echo '$(srcdir)/'`ui_nask.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-ui_nask.Tpo $(DEPDIR)/naskpass-ui_nask.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ui_nask.c' object='naskpass-ui_nask.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-ui_nask.o `test -f 'ui_nask.c' || echo '$(srcdir)/'`ui_nask.c + +naskpass-ui_nask.obj: ui_nask.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-ui_nask.obj -MD -MP -MF $(DEPDIR)/naskpass-ui_nask.Tpo -c -o naskpass-ui_nask.obj `if test -f 'ui_nask.c'; then $(CYGPATH_W) 'ui_nask.c'; else $(CYGPATH_W) '$(srcdir)/ui_nask.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-ui_nask.Tpo $(DEPDIR)/naskpass-ui_nask.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ui_nask.c' object='naskpass-ui_nask.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-ui_nask.obj `if test -f 'ui_nask.c'; then $(CYGPATH_W) 'ui_nask.c'; else $(CYGPATH_W) '$(srcdir)/ui_nask.c'; fi` + ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am diff --git a/src/ui.c b/src/ui.c index 1a42d15..03a3c8c 100644 --- a/src/ui.c +++ b/src/ui.c @@ -8,11 +8,11 @@ #include "ui.h" #include "ui_ipc.h" -#include "ui_elements.h" #include "ui_ani.h" #include "ui_input.h" #include "ui_statusbar.h" #include "ui_txtwindow.h" +#include "ui_nask.h" #include "status.h" #include "config.h" diff --git a/src/ui_elements.c b/src/ui_elements.c deleted file mode 100644 index 186c5af..0000000 --- a/src/ui_elements.c +++ /dev/null @@ -1,170 +0,0 @@ -#include -#include -#include -#include - -#include "ui.h" -#include "ui_ipc.h" -#include "ui_ani.h" -#include "ui_input.h" -#include "ui_statusbar.h" -#include "ui_txtwindow.h" -#include "ui_elements.h" - -#include "status.h" - -#define PASSWD_WIDTH 35 -#define PASSWD_HEIGHT 5 -#define PASSWD_XRELPOS (unsigned int)(PASSWD_WIDTH / 2) - (PASSWD_WIDTH / 6) -#define PASSWD_YRELPOS (unsigned int)(PASSWD_HEIGHT / 2) + 1 -#define INFOWND_WIDTH 25 -#define INFOWND_HEIGHT 1 -#define BSTR_LEN 3 - -static struct input *pw_input; -static struct anic *heartbeat; -static struct statusbar *higher, *lower; -static struct txtwindow *infownd; -static char *title = NULL; -static char busy_str[BSTR_LEN+1] = ".\0\0\0"; - - -static int -lower_statusbar_update(WINDOW *win, struct statusbar *bar, bool ui_timeout) -{ - if (ui_timeout == FALSE) return DOUI_OK; - char *tmp = get_system_stat(); - set_statusbar_text(bar, tmp); - free(tmp); - return DOUI_OK; -} - -static int -higher_statusbar_update(WINDOW *win, struct statusbar *bar, bool ui_timeout) -{ - return DOUI_OK; -} - -static int -infownd_update(WINDOW *win, struct txtwindow *tw, bool ui_timeout) -{ - if (ui_timeout == TRUE && tw->active == TRUE) { - size_t len = strlen(busy_str); - if (len > BSTR_LEN) { - memset(busy_str, '\0', BSTR_LEN+1); - busy_str[0] = '.'; - } else strcat(busy_str, "."); - } - return DOUI_OK; -} - -void -show_info_wnd(struct txtwindow *wnd, char *_title, char *text, chtype fore, chtype back, bool activate, bool blink) -{ - ui_thrd_suspend(); - set_txtwindow_active(wnd, activate); - set_txtwindow_blink(wnd, blink); - set_txtwindow_color(wnd, fore, back); - set_txtwindow_title(wnd, _title); - set_txtwindow_text(wnd, text); - ui_thrd_resume(); - ui_thrd_force_update(false,false); -} - -static int -passwd_input_cb(WINDOW *wnd, void *data, int key) -{ - struct input *a = (struct input *) data; - char ipc_buf[IPC_MQSIZ+1]; - - memset(ipc_buf, '\0', IPC_MQSIZ+1); - switch (key) { - case UIKEY_ENTER: - ui_thrd_suspend(); - ui_ipc_msgsend(MQ_PW, a->input); - clear_input(wnd, a); - deactivate_input(pw_input); - ui_thrd_resume(); - - ui_ipc_msgrecv(MQ_IF, ipc_buf); - show_info_wnd(infownd, "BUSY", ipc_buf, COLOR_PAIR(5), COLOR_PAIR(5), true, false); - sleep(2); - - if (ui_ipc_msgcount(MQ_IF) > 0) { - ui_ipc_msgrecv(MQ_IF, ipc_buf); - show_info_wnd(infownd, "ERROR", ipc_buf, COLOR_PAIR(4), COLOR_PAIR(4), true, true); - while (ui_wgetchtest(1500, '\n') != DOUI_KEY) { }; - } - - set_txtwindow_active(infownd, false); - activate_input(pw_input); - break; - case UIKEY_BACKSPACE: - del_input(wnd, a); - break; - case UIKEY_ESC: - ui_thrd_suspend(); - clear_input(wnd, a); - deactivate_input(pw_input); - ui_thrd_resume(); - show_info_wnd(infownd, "QUIT", "bye bye", COLOR_PAIR(5), COLOR_PAIR(5), true, true); - sleep(2); - return DOUI_ERR; - case UIKEY_DOWN: - case UIKEY_UP: - case UIKEY_LEFT: - case UIKEY_RIGHT: - break; - case UIKEY_ACTIVATE: - break; - default: - ui_thrd_suspend(); - add_input(wnd, a, key); - ui_thrd_resume(); - } - return DOUI_OK; -} - -void -init_ui_elements(WINDOW *wnd_main, unsigned int max_x, unsigned int max_y) -{ - asprintf(&title, "/* %s-%s */", PKGNAME, VERSION); - pw_input = init_input((unsigned int)(max_x / 2)-PASSWD_XRELPOS, - (unsigned int)(max_y / 2)-PASSWD_YRELPOS, - PASSWD_WIDTH, "PASSWORD: ", - IPC_MQSIZ, COLOR_PAIR(3), COLOR_PAIR(2)); - heartbeat = init_anic_default(0, 0, A_BOLD | COLOR_PAIR(1), "[%c]"); - higher = init_statusbar(0, max_x, A_BOLD | COLOR_PAIR(3), - higher_statusbar_update); - lower = init_statusbar(max_y - 1, max_x, COLOR_PAIR(3), - lower_statusbar_update); - infownd = init_txtwindow_centered(INFOWND_WIDTH, INFOWND_HEIGHT, - infownd_update); - - register_input(NULL, pw_input, passwd_input_cb); - register_statusbar(higher); - register_statusbar(lower); - register_anic_default(heartbeat); - register_txtwindow(infownd); - activate_input(pw_input); - set_statusbar_text(higher, title); -} - -void -free_ui_elements(void) -{ - unregister_ui_elt(lower); - unregister_ui_elt(higher); - unregister_ui_elt(heartbeat); - unregister_ui_elt(pw_input); - free_input(pw_input); - free_anic_default(heartbeat); - free_statusbar(higher); - free_statusbar(lower); - free_txtwindow(infownd); - free_ui(); - if (title) { - free(title); - title = NULL; - } -} diff --git a/src/ui_elements.h b/src/ui_elements.h deleted file mode 100644 index 3d99987..0000000 --- a/src/ui_elements.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef UI_ELEMENTS_H -#define UI_ELEMENTS_H 1 - -#include "config.h" -#include "ui_txtwindow.h" - - -void -show_info_wnd(struct txtwindow *wnd, char *title, char *text, chtype fore, chtype back, bool activate, bool blink); - -void -init_ui_elements(WINDOW *wnd_main, unsigned int max_x, unsigned int max_y); - -void -free_ui_elements(void); - -#endif diff --git a/src/ui_nask.c b/src/ui_nask.c new file mode 100644 index 0000000..5eaf49f --- /dev/null +++ b/src/ui_nask.c @@ -0,0 +1,170 @@ +#include +#include +#include +#include + +#include "ui.h" +#include "ui_ipc.h" +#include "ui_ani.h" +#include "ui_input.h" +#include "ui_statusbar.h" +#include "ui_txtwindow.h" +#include "ui_nask.h" + +#include "status.h" + +#define PASSWD_WIDTH 35 +#define PASSWD_HEIGHT 5 +#define PASSWD_XRELPOS (unsigned int)(PASSWD_WIDTH / 2) - (PASSWD_WIDTH / 6) +#define PASSWD_YRELPOS (unsigned int)(PASSWD_HEIGHT / 2) + 1 +#define INFOWND_WIDTH 25 +#define INFOWND_HEIGHT 1 +#define BSTR_LEN 3 + +static struct input *pw_input; +static struct anic *heartbeat; +static struct statusbar *higher, *lower; +static struct txtwindow *infownd; +static char *title = NULL; +static char busy_str[BSTR_LEN+1] = ".\0\0\0"; + + +static int +lower_statusbar_update(WINDOW *win, struct statusbar *bar, bool ui_timeout) +{ + if (ui_timeout == FALSE) return DOUI_OK; + char *tmp = get_system_stat(); + set_statusbar_text(bar, tmp); + free(tmp); + return DOUI_OK; +} + +static int +higher_statusbar_update(WINDOW *win, struct statusbar *bar, bool ui_timeout) +{ + return DOUI_OK; +} + +static int +infownd_update(WINDOW *win, struct txtwindow *tw, bool ui_timeout) +{ + if (ui_timeout == TRUE && tw->active == TRUE) { + size_t len = strlen(busy_str); + if (len > BSTR_LEN) { + memset(busy_str, '\0', BSTR_LEN+1); + busy_str[0] = '.'; + } else strcat(busy_str, "."); + } + return DOUI_OK; +} + +void +show_info_wnd(struct txtwindow *wnd, char *_title, char *text, chtype fore, chtype back, bool activate, bool blink) +{ + ui_thrd_suspend(); + set_txtwindow_active(wnd, activate); + set_txtwindow_blink(wnd, blink); + set_txtwindow_color(wnd, fore, back); + set_txtwindow_title(wnd, _title); + set_txtwindow_text(wnd, text); + ui_thrd_resume(); + ui_thrd_force_update(false,false); +} + +static int +passwd_input_cb(WINDOW *wnd, void *data, int key) +{ + struct input *a = (struct input *) data; + char ipc_buf[IPC_MQSIZ+1]; + + memset(ipc_buf, '\0', IPC_MQSIZ+1); + switch (key) { + case UIKEY_ENTER: + ui_thrd_suspend(); + ui_ipc_msgsend(MQ_PW, a->input); + clear_input(wnd, a); + deactivate_input(pw_input); + ui_thrd_resume(); + + ui_ipc_msgrecv(MQ_IF, ipc_buf); + show_info_wnd(infownd, "BUSY", ipc_buf, COLOR_PAIR(5), COLOR_PAIR(5), true, false); + sleep(2); + + if (ui_ipc_msgcount(MQ_IF) > 0) { + ui_ipc_msgrecv(MQ_IF, ipc_buf); + show_info_wnd(infownd, "ERROR", ipc_buf, COLOR_PAIR(4), COLOR_PAIR(4), true, true); + while (ui_wgetchtest(1500, '\n') != DOUI_KEY) { }; + } + + set_txtwindow_active(infownd, false); + activate_input(pw_input); + break; + case UIKEY_BACKSPACE: + del_input(wnd, a); + break; + case UIKEY_ESC: + ui_thrd_suspend(); + clear_input(wnd, a); + deactivate_input(pw_input); + ui_thrd_resume(); + show_info_wnd(infownd, "QUIT", "bye bye", COLOR_PAIR(5), COLOR_PAIR(5), true, true); + sleep(2); + return DOUI_ERR; + case UIKEY_DOWN: + case UIKEY_UP: + case UIKEY_LEFT: + case UIKEY_RIGHT: + break; + case UIKEY_ACTIVATE: + break; + default: + ui_thrd_suspend(); + add_input(wnd, a, key); + ui_thrd_resume(); + } + return DOUI_OK; +} + +void +init_ui_elements(WINDOW *wnd_main, unsigned int max_x, unsigned int max_y) +{ + asprintf(&title, "/* %s-%s */", PKGNAME, VERSION); + pw_input = init_input((unsigned int)(max_x / 2)-PASSWD_XRELPOS, + (unsigned int)(max_y / 2)-PASSWD_YRELPOS, + PASSWD_WIDTH, "PASSWORD: ", + IPC_MQSIZ, COLOR_PAIR(3), COLOR_PAIR(2)); + heartbeat = init_anic_default(0, 0, A_BOLD | COLOR_PAIR(1), "[%c]"); + higher = init_statusbar(0, max_x, A_BOLD | COLOR_PAIR(3), + higher_statusbar_update); + lower = init_statusbar(max_y - 1, max_x, COLOR_PAIR(3), + lower_statusbar_update); + infownd = init_txtwindow_centered(INFOWND_WIDTH, INFOWND_HEIGHT, + infownd_update); + + register_input(NULL, pw_input, passwd_input_cb); + register_statusbar(higher); + register_statusbar(lower); + register_anic_default(heartbeat); + register_txtwindow(infownd); + activate_input(pw_input); + set_statusbar_text(higher, title); +} + +void +free_ui_elements(void) +{ + unregister_ui_elt(lower); + unregister_ui_elt(higher); + unregister_ui_elt(heartbeat); + unregister_ui_elt(pw_input); + free_input(pw_input); + free_anic_default(heartbeat); + free_statusbar(higher); + free_statusbar(lower); + free_txtwindow(infownd); + free_ui(); + if (title) { + free(title); + title = NULL; + } +} diff --git a/src/ui_nask.h b/src/ui_nask.h new file mode 100644 index 0000000..3d99987 --- /dev/null +++ b/src/ui_nask.h @@ -0,0 +1,17 @@ +#ifndef UI_ELEMENTS_H +#define UI_ELEMENTS_H 1 + +#include "config.h" +#include "ui_txtwindow.h" + + +void +show_info_wnd(struct txtwindow *wnd, char *title, char *text, chtype fore, chtype back, bool activate, bool blink); + +void +init_ui_elements(WINDOW *wnd_main, unsigned int max_x, unsigned int max_y); + +void +free_ui_elements(void); + +#endif -- cgit v1.2.3