ui: possibility to hide input value
This commit is contained in:
@@ -85,7 +85,7 @@ group_t *init_group(WINDOW **win, widget_t *w_parent, group_el_init_t *children,
|
||||
break;
|
||||
case w_input:
|
||||
elements[i].element =
|
||||
init_input(win, &(group->w), children[i].label, children[i].length);
|
||||
init_input(win, &(group->w), children[i].label, children[i].length, children[i].is_hidden_value);
|
||||
w = &(((input_t *)elements[i].element)->w);
|
||||
break;
|
||||
case w_progress:
|
||||
|
||||
@@ -19,6 +19,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
enum w_type type;
|
||||
uint32_t is_default : 1;
|
||||
uint32_t is_hidden_value : 1;
|
||||
char label[DIALOGUE_TITLE];
|
||||
uint32_t length;
|
||||
} group_el_init_t;
|
||||
|
||||
+11
-3
@@ -8,7 +8,7 @@
|
||||
#include "input.h"
|
||||
|
||||
input_t *init_input(WINDOW **win, widget_t *w_parent, char *label,
|
||||
uint32_t length) {
|
||||
uint32_t length, uint32_t is_hidden_value) {
|
||||
input_t *input = malloc(sizeof(input_t));
|
||||
init_widget(&(input->w), w_parent, win, label);
|
||||
input->is_disabled = 0;
|
||||
@@ -21,10 +21,12 @@ input_t *init_input(WINDOW **win, widget_t *w_parent, char *label,
|
||||
input->value[0] = '\0';
|
||||
input->value_len = 0;
|
||||
input->max_len = length;
|
||||
input->is_hidden = is_hidden_value;
|
||||
return input;
|
||||
}
|
||||
|
||||
int32_t draw_input(input_t *input, uint32_t active_id) {
|
||||
const char stars[] = "*******************";
|
||||
WINDOW *win = *(input->w.parent_win);
|
||||
uint32_t margin_y = input->w.m_y + input->w.w_parent->m_y;
|
||||
uint32_t margin_x = input->w.m_x + input->w.w_parent->m_x;
|
||||
@@ -54,8 +56,14 @@ int32_t draw_input(input_t *input, uint32_t active_id) {
|
||||
}
|
||||
|
||||
uint32_t x_c = 0;
|
||||
mvwprintw(win, margin_y + 1, margin_x, "%s%*s", input->value,
|
||||
input->w.x - input->value_len - 2, "");
|
||||
if (input->is_hidden) {
|
||||
mvwprintw(win, margin_y + 1, margin_x, "%.*s%*s", (int) input->value_len, stars,
|
||||
input->w.x - input->value_len - 2, "");
|
||||
} else {
|
||||
mvwprintw(win, margin_y + 1, margin_x, "%s%*s", input->value,
|
||||
input->w.x - input->value_len - 2, "");
|
||||
}
|
||||
|
||||
input->w.cur.y = margin_y + 1;
|
||||
input->w.cur.x = margin_x;
|
||||
|
||||
|
||||
@@ -11,9 +11,11 @@ typedef struct {
|
||||
uint32_t value_len;
|
||||
uint32_t max_len;
|
||||
uint32_t is_disabled : 1;
|
||||
uint32_t is_hidden : 1;
|
||||
} input_t;
|
||||
|
||||
input_t *init_input(WINDOW **win, widget_t *w_parent, char *label, uint32_t size);
|
||||
input_t *init_input(WINDOW **win, widget_t *w_parent, char *label,
|
||||
uint32_t size, uint32_t is_hidden_value);
|
||||
int32_t draw_input(input_t *input, uint32_t active_id);
|
||||
void destroy_input(input_t *input);
|
||||
#endif
|
||||
Reference in New Issue
Block a user