]> git.ozlabs.org Git - petitboot/blobdiff - ui/ncurses/nc-widgets.h
ui/ncurses: Validate URL field
[petitboot] / ui / ncurses / nc-widgets.h
index d598d5aa440dc4c87a5cebac8b7fd470c814ddbd..aa9263fbaa04bf44f4957ad968f5eb5dd461cef2 100644 (file)
@@ -29,12 +29,27 @@ struct nc_widget_checkbox *widget_new_checkbox(struct nc_widgetset *set,
                int y, int x, bool checked);
 struct nc_widget_textbox *widget_new_textbox(struct nc_widgetset *set,
                int y, int x, int len, char *str);
+struct nc_widget_subset *widget_new_subset(struct nc_widgetset *set,
+               int y, int x, int len, void *screen_cb);
 struct nc_widget_select *widget_new_select(struct nc_widgetset *set,
                int y, int x, int len);
 struct nc_widget_button *widget_new_button(struct nc_widgetset *set,
                int y, int x, int size, const char *str,
                void (*click)(void *), void *arg);
 
+void widget_textbox_set_fixed_size(struct nc_widget_textbox *textbox);
+void widget_textbox_set_validator_integer(struct nc_widget_textbox *textbox,
+               long min, long max);
+void widget_textbox_set_validator_ipv4(struct nc_widget_textbox *textbox);
+void widget_textbox_set_validator_ipv4_multi(struct nc_widget_textbox *textbox);
+void widget_textbox_set_validator_url(struct nc_widget_textbox *textbox);
+
+void widget_subset_add_option(struct nc_widget_subset *subset, const char *text);
+void widget_subset_make_active(struct nc_widget_subset *subset, int idx);
+
+void widget_subset_on_change(struct nc_widget_subset *subset,
+               void (*on_change)(void *arg, int value), void *arg);
+
 void widget_select_add_option(struct nc_widget_select *select, int value,
                const char *text, bool selected);
 
@@ -43,12 +58,24 @@ void widget_select_on_change(struct nc_widget_select *select,
 
 char *widget_textbox_get_value(struct nc_widget_textbox *textbox);
 bool widget_checkbox_get_value(struct nc_widget_checkbox *checkbox);
+int widget_subset_get_order(void *ctx, unsigned int **order,
+               struct nc_widget_subset *subset);
+void widget_subset_show_inactive(struct nc_widget_subset *subset,
+               struct nc_widget_select *select);
+int widget_subset_n_inactive(struct nc_widget_subset *subset);
+int widget_subset_height(struct nc_widget_subset *subset);
+void widget_subset_drop_options(struct nc_widget_subset *subset);
+void widget_subset_clear_active(struct nc_widget_subset *subset);
+void widget_subset_callback(void *arg,
+               struct nc_widget_subset *subset, int idx);
 int widget_select_get_value(struct nc_widget_select *select);
 int widget_select_height(struct nc_widget_select *select);
+void widget_select_drop_options(struct nc_widget_select *select);
 
 /* generic widget API */
 struct nc_widget *widget_textbox_base(struct nc_widget_textbox *textbox);
 struct nc_widget *widget_checkbox_base(struct nc_widget_checkbox *checkbox);
+struct nc_widget *widget_subset_base(struct nc_widget_subset *subset);
 struct nc_widget *widget_select_base(struct nc_widget_select *select);
 struct nc_widget *widget_label_base(struct nc_widget_label *label);
 struct nc_widget *widget_button_base(struct nc_widget_button *button);
@@ -66,6 +93,8 @@ typedef void (*widget_focus_cb)(struct nc_widget *widget, void *arg);
 struct nc_widgetset *widgetset_create(void *ctx, WINDOW *main, WINDOW *sub);
 void widgetset_set_widget_focus(struct nc_widgetset *set,
                widget_focus_cb cb, void *arg);
+void widgetset_set_windows(struct nc_widgetset *widgetset,
+               WINDOW *main, WINDOW *sub);
 void widgetset_post(struct nc_widgetset *set);
 void widgetset_unpost(struct nc_widgetset *set);
 bool widgetset_process_key(struct nc_widgetset *set, int key);