gdb/tui: Place window titles in the center of the border

In tui-wingeneral.c:box_win () a comment suggest we should display
titles like this:

  +-WINDOW TITLE GOES HERE-+

However, we actually display them like this:

  +--WINDOW TITLE GOES HERE+

The former seems nicer to me, so that's what this commit does.  Short
titles will appear as:

  +-SHORT TITLE------------+

We previously didn't test the horizontal windows borders in the test
suite, however, I've updated things so that we do now check for the
'+-' and '-+' on the upper border, this will give us some protection.

gdb/ChangeLog:

	* tui/tui-wingeneral.c (box_win): Position the title in the center
	of the border.

gdb/testsuite/ChangeLog:

	* lib/tuiterm.exp (Term::_check_box): Check some parts of the top
	border.

Change-Id: Iead6910e3b4e68bdf6871f861f23d2efd699faf0
This commit is contained in:
Andrew Burgess 2020-01-10 00:04:25 +00:00
parent d8b2f9e333
commit 9a6d629ccf
4 changed files with 26 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2020-01-13 Andrew Burgess <andrew.burgess@embecosm.com>
* tui/tui-wingeneral.c (box_win): Position the title in the center
of the border.
2020-01-13 Simon Marchi <simon.marchi@polymtl.ca>
* corelow.c (core_target::get_core_register_section): Use

View File

@ -1,3 +1,8 @@
2020-01-13 Andrew Burgess <andrew.burgess@embecosm.com>
* lib/tuiterm.exp (Term::_check_box): Check some parts of the top
border.
2020-01-10 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
* gdb.multi/multi-target.exp (setup): Factor out "info

View File

@ -569,9 +569,20 @@ namespace eval Term {
return "lr corner"
}
# Note we do not check the horizonal borders of the box. The
# top will contain a title, and the bottom may as well, if it
# is overlapped by some other border.
# Note we do not check the full horizonal borders of the box.
# The top will contain a title, and the bottom may as well, if
# it is overlapped by some other border. However, at most a
# title should appear as '+-VERY LONG TITLE-+', so we can
# check for the '+-' on the left, and '-+' on the right.
if {[get_char [expr {$x + 1}] $y] != "-"} {
return "ul title padding"
}
if {[get_char [expr {$x2 - 1}] $y] != "-"} {
return "ul title padding"
}
# Now check the vertical borders.
for {set i [expr {$y + 1}]} {$i < $y2 - 1} {incr i} {
if {[get_char $x $i] != "|"} {
return "left side $i"

View File

@ -75,13 +75,13 @@ box_win (struct tui_win_info *win_info,
int max_len = win_info->width - 2 - 2;
if (win_info->title.size () <= max_len)
mvwaddstr (win, 0, 3, win_info->title.c_str ());
mvwaddstr (win, 0, 2, win_info->title.c_str ());
else
{
std::string truncated
= "..." + win_info->title.substr (win_info->title.size ()
- max_len + 3);
mvwaddstr (win, 0, 3, truncated.c_str ());
mvwaddstr (win, 0, 2, truncated.c_str ());
}
}
wattroff (win, attrs);