X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-widgets.h;h=ce3b0386764eb99943f672c5e52c0a0746adde40;hp=09c3b1f448aa4d56cb9dad3805ee4ae214593552;hb=HEAD;hpb=5171b1c54fc57b6f1963e2482cfc07587296100d diff --git a/ui/ncurses/nc-widgets.h b/ui/ncurses/nc-widgets.h index 09c3b1f..ce3b038 100644 --- a/ui/ncurses/nc-widgets.h +++ b/ui/ncurses/nc-widgets.h @@ -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);