X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-scr.h;h=298aa7d2f44b5dc1f0f8aad8fe7cd1f31a8abe65;hp=c08fcd49792f5636566eea43347b3a3039769302;hb=47bc66a0c744f68a84147b0bd616ab25a242fb70;hpb=863c609797ca6d556dd3a4586fc07a6f4a5472d4 diff --git a/ui/ncurses/nc-scr.h b/ui/ncurses/nc-scr.h index c08fcd4..298aa7d 100644 --- a/ui/ncurses/nc-scr.h +++ b/ui/ncurses/nc-scr.h @@ -19,18 +19,37 @@ #if !defined(_PB_NC_SCR_H) #define _PB_NC_SCR_H -#include +#include /* This must be included before ncurses.h */ +#if defined HAVE_NCURSESW_CURSES_H +# include +#elif defined HAVE_NCURSESW_H +# include +#elif defined HAVE_NCURSES_CURSES_H +# include +#elif defined HAVE_NCURSES_H +# include +#elif defined HAVE_CURSES_H +# include +#else +# error "Curses header file not found." +#endif +#ifdef DEBUG #define DBG(fmt, args...) pb_log("DBG: " fmt, ## args) #define DBGS(fmt, args...) \ pb_log("DBG:%s:%d: " fmt, __func__, __LINE__, ## args) +#else +#define DBG(fmt, args...) +#define DBGS(fmt, args...) +#endif + enum pb_nc_sig { - pb_cui_sig = 111, - pb_pmenu_sig = 222, - pb_item_sig = 333, - pb_ked_sig = 444, - pb_removed_sig = -555, + pb_cui_sig = 111, + pb_pmenu_sig = 222, + pb_item_sig = 333, + pb_boot_editor_sig = 444, + pb_removed_sig = -555, }; void nc_start(void); @@ -45,6 +64,7 @@ static inline void nc_flush_keys(void) enum nc_scr_pos { nc_scr_pos_title = 0, nc_scr_pos_title_sep = 1, + nc_scr_pos_lrtitle_space = 2, nc_scr_pos_sub = 2, nc_scr_pos_help_sep = 3, @@ -55,7 +75,8 @@ enum nc_scr_pos { }; struct nc_frame { - char *title; + char *ltitle; + char *rtitle; char *help; char *status; }; @@ -68,13 +89,13 @@ struct nc_scr { void *ui_ctx; int (*post)(struct nc_scr *scr); int (*unpost)(struct nc_scr *scr); - void (*process_key)(struct nc_scr *scr); + void (*process_key)(struct nc_scr *scr, int key); void (*resize)(struct nc_scr *scr); }; int nc_scr_init(struct nc_scr *scr, enum pb_nc_sig sig, int begin_x, void *ui_ctx, - void (*process_key)(struct nc_scr *), + void (*process_key)(struct nc_scr *, int), int (*post)(struct nc_scr *), int (*unpost)(struct nc_scr *), void (*resize)(struct nc_scr *));