X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ui%2Fncurses%2Fnc-cui.h;h=b310f4a5662f7b238f4cf6c84294bdd40442971b;hb=24ccb34938342f414b888553882ef2ee976d02a0;hp=417126f8d57b38d99b4b3772ac7fc7bc9f13c977;hpb=e596e8e66b014161116c207daa8d42cff849bfd2;p=petitboot diff --git a/ui/ncurses/nc-cui.h b/ui/ncurses/nc-cui.h index 417126f..b310f4a 100644 --- a/ui/ncurses/nc-cui.h +++ b/ui/ncurses/nc-cui.h @@ -26,8 +26,11 @@ #include "nc-helpscreen.h" struct cui_opt_data { - const char *name; - struct pb_boot_data *bd; + char *name; + union { + struct pb_boot_data *bd; + struct pb_plugin_data *pd; + }; /* optional data */ const struct device *dev; @@ -53,14 +56,22 @@ struct cui { sig_atomic_t resize; struct nc_scr *current; struct pmenu *main; + struct pmenu *plugin_menu; + unsigned int n_plugins; struct waitset *waitset; struct discover_client *client; struct system_info *sysinfo; + struct statuslog *statuslog; struct sysinfo_screen *sysinfo_screen; struct config *config; struct config_screen *config_screen; + struct add_url_screen *add_url_screen; + struct plugin_screen *plugin_screen; struct boot_editor *boot_editor; + struct lang_screen *lang_screen; struct help_screen *help_screen; + struct subset_screen *subset_screen; + struct statuslog_screen *statuslog_screen; struct pjs *pjs; void *platform_info; unsigned int default_item; @@ -69,16 +80,25 @@ struct cui { struct cui *cui_init(void* platform_info, int (*js_map)(const struct js_event *e), - int start_deamon); + int start_daemon, int timeout); struct nc_scr *cui_set_current(struct cui *cui, struct nc_scr *scr); int cui_run(struct cui *cui); void cui_item_edit(struct pmenu_item *item); void cui_item_new(struct pmenu *menu); void cui_show_sysinfo(struct cui *cui); void cui_show_config(struct cui *cui); +void cui_show_lang(struct cui *cui); +void cui_show_statuslog(struct cui *cui); void cui_show_help(struct cui *cui, const char *title, const struct help_text *text); +void cui_show_subset(struct cui *cui, const char *title, + void *arg); +void cui_show_add_url(struct cui *cui); +void cui_show_plugin(struct pmenu_item *item); +void cui_show_plugin_menu(struct cui *cui); int cui_send_config(struct cui *cui, struct config *config); +int cui_send_url(struct cui *cui, char *url); +int cui_send_plugin_install(struct cui *cui, char *file); void cui_send_reinit(struct cui *cui); /* convenience routines */ @@ -87,7 +107,8 @@ void cui_abort(struct cui *cui); void cui_resize(struct cui *cui); void cui_on_exit(struct pmenu *menu); void cui_on_open(struct pmenu *menu); -int cui_run_cmd(struct pmenu_item *item); +int cui_run_cmd(struct cui *cui, const char **cmd_argv); +int cui_run_cmd_from_item(struct pmenu_item *item); static inline struct cui *cui_from_arg(void *arg) {