Make setting TUI border attributes take effect immediately

gdb/
2015-01-16  Eli Zaretskii  <eliz@gnu.org>

     * tui/tui-win.c (tui_rehighlight_all, tui_set_var_cmd): New
     functions.
     (_initialize_tui_win) <border-kind, border-mode>:
     <active-border-mode>: Use tui_set_var_cmd as the "set" function.
     * tui/tui-win.h: Add prototype for tui_rehighlight_all.
This commit is contained in:
Eli Zaretskii 2015-01-16 18:24:16 +02:00
parent cb86fcc13b
commit 6cdb25f4df
3 changed files with 29 additions and 3 deletions

View File

@ -1,5 +1,11 @@
2015-01-16 Eli Zaretskii <eliz@gnu.org> 2015-01-16 Eli Zaretskii <eliz@gnu.org>
* tui/tui-win.c (tui_rehighlight_all, tui_set_var_cmd): New
functions.
(_initialize_tui_win) <border-kind, border-mode>:
<active-border-mode>: Use tui_set_var_cmd as the "set" function.
* tui/tui-win.h: Add prototype for tui_rehighlight_all.
* tui/tui-win.c (tui_scroll_left_command, tui_scroll_right_command): * tui/tui-win.c (tui_scroll_left_command, tui_scroll_right_command):
Doc fix. Doc fix.
(tui_set_tab_width_command): Delete and recreate the source and (tui_set_tab_width_command): Delete and recreate the source and

View File

@ -344,6 +344,15 @@ tui_get_cmd_list (void)
return &tuilist; return &tuilist;
} }
/* The set_func hook of "set tui ..." commands that affect the window
borders on the TUI display. */
void
tui_set_var_cmd (char *null_args, int from_tty, struct cmd_list_element *c)
{
if (tui_update_variables () && tui_active)
tui_rehighlight_all ();
}
/* Function to initialize gdb commands, for tui window /* Function to initialize gdb commands, for tui window
manipulation. */ manipulation. */
@ -420,7 +429,7 @@ This variable controls the border of TUI windows:\n\
space use a white space\n\ space use a white space\n\
ascii use ascii characters + - | for the border\n\ ascii use ascii characters + - | for the border\n\
acs use the Alternate Character Set"), acs use the Alternate Character Set"),
NULL, tui_set_var_cmd,
show_tui_border_kind, show_tui_border_kind,
&tui_setlist, &tui_showlist); &tui_setlist, &tui_showlist);
@ -436,7 +445,7 @@ half use half bright\n\
half-standout use half bright and standout mode\n\ half-standout use half bright and standout mode\n\
bold use extra bright or bold\n\ bold use extra bright or bold\n\
bold-standout use extra bright or bold with standout mode"), bold-standout use extra bright or bold with standout mode"),
NULL, tui_set_var_cmd,
show_tui_border_mode, show_tui_border_mode,
&tui_setlist, &tui_showlist); &tui_setlist, &tui_showlist);
@ -452,7 +461,7 @@ half use half bright\n\
half-standout use half bright and standout mode\n\ half-standout use half bright and standout mode\n\
bold use extra bright or bold\n\ bold use extra bright or bold\n\
bold-standout use extra bright or bold with standout mode"), bold-standout use extra bright or bold with standout mode"),
NULL, tui_set_var_cmd,
show_tui_active_border_mode, show_tui_active_border_mode,
&tui_setlist, &tui_showlist); &tui_setlist, &tui_showlist);
} }
@ -646,6 +655,14 @@ tui_refresh_all_win (void)
tui_show_locator_content (); tui_show_locator_content ();
} }
void
tui_rehighlight_all (void)
{
enum tui_win_type type;
for (type = SRC_WIN; type < MAX_MAJOR_WINDOWS; type++)
tui_check_and_display_highlight_if_needed (tui_win_list[type]);
}
/* Resize all the windows based on the terminal size. This function /* Resize all the windows based on the terminal size. This function
gets called from within the readline sinwinch handler. */ gets called from within the readline sinwinch handler. */

View File

@ -55,4 +55,7 @@ extern void tui_update_gdb_sizes (void);
/* Create or get the TUI command list. */ /* Create or get the TUI command list. */
struct cmd_list_element **tui_get_cmd_list (void); struct cmd_list_element **tui_get_cmd_list (void);
/* Set a TUI variable. */
void tui_set_var_cmd (char *, int, struct cmd_list_element *);
#endif #endif