]> git.ozlabs.org Git - petitboot/blobdiff - ui/ncurses/nc-widgets.h
discover/grub2: Allow to separate the --id argument using a space char
[petitboot] / ui / ncurses / nc-widgets.h
index 09c3b1f448aa4d56cb9dad3805ee4ae214593552..ce3b0386764eb99943f672c5e52c0a0746adde40 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #ifndef NC_WIDGETS_H
+#define NC_WIDGETS_H
 
 struct nc_widgetset;
 struct nc_widget_label;
@@ -27,8 +28,12 @@ struct nc_widget_label *widget_new_label(struct nc_widgetset *set,
                int y, int x, char *str);
 struct nc_widget_checkbox *widget_new_checkbox(struct nc_widgetset *set,
                int y, int x, bool checked);
+struct nc_widget_textbox *widget_new_textbox_hidden(struct nc_widgetset *set,
+               int y, int x, int len, char *str, bool hide_input);
 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,
@@ -38,8 +43,15 @@ struct nc_widget_button *widget_new_button(struct nc_widgetset *set,
 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_ip(struct nc_widget_textbox *textbox);
+void widget_textbox_set_validator_ip_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);
@@ -49,6 +61,16 @@ 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);
@@ -56,6 +78,7 @@ 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);