X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-widgets.h;h=4b67da7463d24613d061bf9f15ec26a4255b175c;hp=53f158334fdac1cde76ae666e5669bb32bae97de;hb=75c97cfd449b2bac8e61af1017a83bdf43f5e8fe;hpb=43e9c8147f74fba794fd280fa0fdb57af8b968f4 diff --git a/ui/ncurses/nc-widgets.h b/ui/ncurses/nc-widgets.h index 53f1583..4b67da7 100644 --- a/ui/ncurses/nc-widgets.h +++ b/ui/ncurses/nc-widgets.h @@ -29,12 +29,26 @@ 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_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 +57,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); @@ -59,12 +85,15 @@ int widget_height(struct nc_widget *widget); int widget_width(struct nc_widget *widget); int widget_y(struct nc_widget *widget); int widget_x(struct nc_widget *widget); +int widget_focus_y(struct nc_widget *widget); /* widgetset API */ 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);