top: extend 'Ctrl' bottom window for 'memu' selections
This commit adds a prototype for a potential extension of that tabbed bottom window capability. It introduces a 'menu' which then provides for users' selections. It does not actually do anything meaningful and will only be enabled with the new #define called 'BOT_PICK_YES'. [ since it's just a proof of concept, no attempt has ] [ been made to add the usual NLS translation support ] Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
parent
de22afc4c2
commit
659590b068
51
top/top.c
51
top/top.c
@ -109,6 +109,9 @@ static int Screen_cols, Screen_rows, Max_lines;
|
|||||||
#define BOT_UNFOCUS -1 // tab focus not established
|
#define BOT_UNFOCUS -1 // tab focus not established
|
||||||
#define BOT_TAB_YES -1 // tab focus could be active
|
#define BOT_TAB_YES -1 // tab focus could be active
|
||||||
#define BOT_MISC_NS +1 // data for namespaces req'd
|
#define BOT_MISC_NS +1 // data for namespaces req'd
|
||||||
|
#ifdef BOT_MENU_YES
|
||||||
|
# define BOT_MENU_ON -2 // in menu, tab focus active
|
||||||
|
#endif
|
||||||
// 1 for horizontal separator
|
// 1 for horizontal separator
|
||||||
#define BOT_RSVD 1
|
#define BOT_RSVD 1
|
||||||
#define BOT_KEEP Bot_func = NULL
|
#define BOT_KEEP Bot_func = NULL
|
||||||
@ -5093,6 +5096,36 @@ static void bot_misc_toggle (int what, char sep) {
|
|||||||
Bot_task = PID_VAL(EU_PID, s_int, Curwin->ppt[Curwin->begtask]);
|
Bot_task = PID_VAL(EU_PID, s_int, Curwin->ppt[Curwin->begtask]);
|
||||||
}
|
}
|
||||||
} // end: bot_misc_toggle
|
} // end: bot_misc_toggle
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef BOT_MENU_YES
|
||||||
|
/*
|
||||||
|
* This guy manages that bottom margin window |
|
||||||
|
* when it is used as a menu of user choices. | */
|
||||||
|
static void bot_pick_show (void) {
|
||||||
|
bot_focus(Bot_name, "selection #1\t selection #2\t selecttion #3");
|
||||||
|
BOT_KEEP;
|
||||||
|
} // end: bot_pick_show
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This guy can toggle between displaying the |
|
||||||
|
* bottom window or arranging to turn it off. | */
|
||||||
|
static void bot_pick_toggle (void) {
|
||||||
|
// if already in menu mode, assume user wants to exit ...
|
||||||
|
if (Bot_what == BOT_MENU_ON) {
|
||||||
|
BOT_TOSS;
|
||||||
|
} else {
|
||||||
|
Bot_sep = '\t';
|
||||||
|
Bot_what = BOT_MENU_ON;
|
||||||
|
Bot_indx = 0;
|
||||||
|
Bot_item[0] = BOT_DELIMIT;
|
||||||
|
Bot_name = (char*)"a menu, please choose among the following ...";
|
||||||
|
Bot_func = bot_pick_show;
|
||||||
|
Bot_task = PID_VAL(EU_PID, s_int, Curwin->ppt[Curwin->begtask]);
|
||||||
|
}
|
||||||
|
} // end: bot_pick_toggle
|
||||||
|
#endif
|
||||||
|
|
||||||
/*###### Interactive Input Tertiary support ############################*/
|
/*###### Interactive Input Tertiary support ############################*/
|
||||||
|
|
||||||
@ -5471,6 +5504,11 @@ static void keys_global (int ch) {
|
|||||||
case kbd_CtrlG:
|
case kbd_CtrlG:
|
||||||
bot_item_toggle(EU_CGR, "control groups", '/');
|
bot_item_toggle(EU_CGR, "control groups", '/');
|
||||||
break;
|
break;
|
||||||
|
#ifdef BOT_MENU_YES
|
||||||
|
case kbd_CtrlH:
|
||||||
|
bot_pick_toggle();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case kbd_CtrlI:
|
case kbd_CtrlI:
|
||||||
if (Bot_what) {
|
if (Bot_what) {
|
||||||
++Bot_indx;
|
++Bot_indx;
|
||||||
@ -5516,11 +5554,15 @@ static void keys_global (int ch) {
|
|||||||
case kbd_CtrlU:
|
case kbd_CtrlU:
|
||||||
bot_item_toggle(EU_SGN, "supplementary groups", ',');
|
bot_item_toggle(EU_SGN, "supplementary groups", ',');
|
||||||
break;
|
break;
|
||||||
case kbd_ENTER: // these two have the effect of waking us
|
case kbd_ENTER: // fall through
|
||||||
|
#ifdef BOT_MENU_YES
|
||||||
|
if (Bot_what == BOT_MENU_ON && Bot_indx != BOT_UNFOCUS)
|
||||||
|
show_msg(fmtmk("thanks for selecting menu item #%d", Bot_indx + 1));
|
||||||
|
#endif // the enter plus space keys will wake us
|
||||||
case kbd_SPACE: // from 'pselect', refreshing the display
|
case kbd_SPACE: // from 'pselect', refreshing the display
|
||||||
break; // and updating any hot-plugged resources
|
break; // and updating any hot-plugged resources
|
||||||
default: // keep gcc happy
|
default:
|
||||||
break;
|
break; // keep gcc happy
|
||||||
}
|
}
|
||||||
} // end: keys_global
|
} // end: keys_global
|
||||||
|
|
||||||
@ -6357,6 +6399,9 @@ static void do_key (int ch) {
|
|||||||
{ '?', 'B', 'd', 'E', 'e', 'f', 'g', 'H', 'h'
|
{ '?', 'B', 'd', 'E', 'e', 'f', 'g', 'H', 'h'
|
||||||
, 'I', 'k', 'r', 's', 'X', 'Y', 'Z', '0'
|
, 'I', 'k', 'r', 's', 'X', 'Y', 'Z', '0'
|
||||||
, kbd_CtrlE, kbd_CtrlG, kbd_CtrlI, kbd_CtrlK, kbd_CtrlN, kbd_CtrlP, kbd_CtrlR, kbd_CtrlU
|
, kbd_CtrlE, kbd_CtrlG, kbd_CtrlI, kbd_CtrlK, kbd_CtrlN, kbd_CtrlP, kbd_CtrlR, kbd_CtrlU
|
||||||
|
#ifdef BOT_MENU_YES
|
||||||
|
, kbd_CtrlH
|
||||||
|
#endif
|
||||||
, kbd_ENTER, kbd_SPACE, '\0' } },
|
, kbd_ENTER, kbd_SPACE, '\0' } },
|
||||||
{ keys_summary,
|
{ keys_summary,
|
||||||
{ '!', '1', '2', '3', '4', 'C', 'l', 'm', 't', '\0' } },
|
{ '!', '1', '2', '3', '4', 'C', 'l', 'm', 't', '\0' } },
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
/* Development/Debugging defines ----------------------------------- */
|
/* Development/Debugging defines ----------------------------------- */
|
||||||
//#define ATEOJ_RPTSTD /* report on some miscellany at end-of-job */
|
//#define ATEOJ_RPTSTD /* report on some miscellany at end-of-job */
|
||||||
//#define BOT_DEAD_ZAP /* zap Ctrl bottom window when target dies */
|
//#define BOT_DEAD_ZAP /* zap Ctrl bottom window when target dies */
|
||||||
|
//#define BOT_MENU_YES /* enable bottom window for menu prototype */
|
||||||
//#define CASEUP_HEXES /* show all those hex values in upper case */
|
//#define CASEUP_HEXES /* show all those hex values in upper case */
|
||||||
//#define CASEUP_SUFIX /* show time/mem/cnts suffix in upper case */
|
//#define CASEUP_SUFIX /* show time/mem/cnts suffix in upper case */
|
||||||
//#define EQUCOLHDRYES /* yes, equalize the column header lengths */
|
//#define EQUCOLHDRYES /* yes, equalize the column header lengths */
|
||||||
@ -173,6 +174,9 @@ char *strcasestr(const char *haystack, const char *needle);
|
|||||||
#define kbd_DEL 139
|
#define kbd_DEL 139
|
||||||
#define kbd_CtrlE '\005'
|
#define kbd_CtrlE '\005'
|
||||||
#define kbd_CtrlG '\007'
|
#define kbd_CtrlG '\007'
|
||||||
|
#ifdef BOT_MENU_YES
|
||||||
|
#define kbd_CtrlH '\010'
|
||||||
|
#endif
|
||||||
#define kbd_CtrlI '\011'
|
#define kbd_CtrlI '\011'
|
||||||
#define kbd_CtrlK '\013'
|
#define kbd_CtrlK '\013'
|
||||||
#define kbd_CtrlN '\016'
|
#define kbd_CtrlN '\016'
|
||||||
@ -743,6 +747,10 @@ typedef struct WIN_t {
|
|||||||
//atic char *bot_misc_hlp (struct pids_stack *p);
|
//atic char *bot_misc_hlp (struct pids_stack *p);
|
||||||
//atic void bot_misc_show (void);
|
//atic void bot_misc_show (void);
|
||||||
//atic void bot_misc_toggle (int what, char sep);
|
//atic void bot_misc_toggle (int what, char sep);
|
||||||
|
#ifdef BOT_MENU_YES
|
||||||
|
//atic void bot_pick_show (void);
|
||||||
|
//atic void bot_pick_toggle (void);
|
||||||
|
#endif
|
||||||
/*------ Interactive Input Tertiary support ----------------------------*/
|
/*------ Interactive Input Tertiary support ----------------------------*/
|
||||||
//atic inline int find_ofs (const WIN_t *q, const char *buf);
|
//atic inline int find_ofs (const WIN_t *q, const char *buf);
|
||||||
//atic void find_string (int ch);
|
//atic void find_string (int ch);
|
||||||
|
Loading…
Reference in New Issue
Block a user