gdb/tui: Place window titles in the center of the border
authorAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 10 Jan 2020 00:04:25 +0000 (00:04 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Mon, 13 Jan 2020 22:56:48 +0000 (22:56 +0000)
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

gdb/ChangeLog
gdb/testsuite/ChangeLog
gdb/testsuite/lib/tuiterm.exp
gdb/tui/tui-wingeneral.c

index f1904051985a0c630c37f1b0ea17350cb0c5b51a..f966da85c8aa594b6910d572a32d43c8093805f7 100644 (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
index e83e2195fa4e87b37bea7971f9944dbf229feae3..10d7cbec0743ed1781237dc9e24754297e2677c4 100644 (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
index 7adaf1b71ab8a8ee4da1f7217ef01d1324cd7988..da5580324a9273619cd4b772b7644ed4f65bca1a 100644 (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"
index 0a9fc5238d6121ca59a772bd8f5cb656a4774310..4331f6363585bace8304a207ba7348c1e83b9bc1 100644 (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);