Change return type of tui_layout_base::adjust_size
This changes tui_layout_base::adjust_size to return a new enum type. I broke this out into a separate patch because it simplifies a subsequent patch. gdb/ChangeLog 2020-02-22 Tom Tromey <tom@tromey.com> * tui/tui-layout.h (enum tui_adjust_result): New. (class tui_layout_base) <adjust_size>: Return tui_adjust_result. (class tui_layout_window) <adjust_size>: Return tui_adjust_result. Rewrite. (class tui_layout_split) <adjust_size>: Return tui_adjust_result. * tui/tui-layout.c (tui_layout_split::adjust_size): Update. Change-Id: I821b48ab06a9b9485875e147bd08a3bc46b900a0
This commit is contained in:
parent
c22fef7e4c
commit
6bc5664858
3 changed files with 34 additions and 12 deletions
|
@ -1,3 +1,12 @@
|
|||
2020-02-22 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* tui/tui-layout.h (enum tui_adjust_result): New.
|
||||
(class tui_layout_base) <adjust_size>: Return tui_adjust_result.
|
||||
(class tui_layout_window) <adjust_size>: Return
|
||||
tui_adjust_result. Rewrite.
|
||||
(class tui_layout_split) <adjust_size>: Return tui_adjust_result.
|
||||
* tui/tui-layout.c (tui_layout_split::adjust_size): Update.
|
||||
|
||||
2020-02-22 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* tui/tui-layout.h (class tui_layout_split) <add_split>: Change
|
||||
|
|
|
@ -487,7 +487,7 @@ tui_layout_split::set_weights_from_heights ()
|
|||
|
||||
/* See tui-layout.h. */
|
||||
|
||||
bool
|
||||
tui_adjust_result
|
||||
tui_layout_split::adjust_size (const char *name, int new_height)
|
||||
{
|
||||
/* Look through the children. If one is a layout holding the named
|
||||
|
@ -496,10 +496,11 @@ tui_layout_split::adjust_size (const char *name, int new_height)
|
|||
int found_index = -1;
|
||||
for (int i = 0; i < m_splits.size (); ++i)
|
||||
{
|
||||
if (m_splits[i].layout->adjust_size (name, new_height))
|
||||
return true;
|
||||
const char *win_name = m_splits[i].layout->get_name ();
|
||||
if (win_name != nullptr && strcmp (name, win_name) == 0)
|
||||
tui_adjust_result adjusted
|
||||
= m_splits[i].layout->adjust_size (name, new_height);
|
||||
if (adjusted == HANDLED)
|
||||
return HANDLED;
|
||||
if (adjusted == FOUND)
|
||||
{
|
||||
found_index = i;
|
||||
break;
|
||||
|
@ -507,9 +508,9 @@ tui_layout_split::adjust_size (const char *name, int new_height)
|
|||
}
|
||||
|
||||
if (found_index == -1)
|
||||
return false;
|
||||
return NOT_FOUND;
|
||||
if (m_splits[found_index].layout->height == new_height)
|
||||
return true;
|
||||
return HANDLED;
|
||||
|
||||
set_weights_from_heights ();
|
||||
int delta = m_splits[found_index].weight - new_height;
|
||||
|
@ -557,7 +558,7 @@ tui_layout_split::adjust_size (const char *name, int new_height)
|
|||
apply (x, y, width, height);
|
||||
}
|
||||
|
||||
return true;
|
||||
return HANDLED;
|
||||
}
|
||||
|
||||
/* See tui-layout.h. */
|
||||
|
|
|
@ -27,6 +27,18 @@
|
|||
#include "tui/tui.h"
|
||||
#include "tui/tui-data.h"
|
||||
|
||||
/* Values that can be returned when handling a request to adjust a
|
||||
window's size. */
|
||||
enum tui_adjust_result
|
||||
{
|
||||
/* Requested window was not found here. */
|
||||
NOT_FOUND,
|
||||
/* Window was found but not handled. */
|
||||
FOUND,
|
||||
/* Window was found and handled. */
|
||||
HANDLED
|
||||
};
|
||||
|
||||
/* The basic object in a TUI layout. This represents a single piece
|
||||
of screen real estate. Subclasses determine the exact
|
||||
behavior. */
|
||||
|
@ -64,7 +76,7 @@ public:
|
|||
|
||||
/* Adjust the size of the window named NAME to NEW_HEIGHT, updating
|
||||
the sizes of the other windows around it. */
|
||||
virtual bool adjust_size (const char *name, int new_height) = 0;
|
||||
virtual tui_adjust_result adjust_size (const char *name, int new_height) = 0;
|
||||
|
||||
/* Remove some windows from the layout, leaving the command window
|
||||
and the window being passed in here. */
|
||||
|
@ -111,9 +123,9 @@ public:
|
|||
return m_contents.c_str ();
|
||||
}
|
||||
|
||||
bool adjust_size (const char *name, int new_height) override
|
||||
tui_adjust_result adjust_size (const char *name, int new_height) override
|
||||
{
|
||||
return false;
|
||||
return m_contents == name ? FOUND : NOT_FOUND;
|
||||
}
|
||||
|
||||
bool top_boxed_p () const override;
|
||||
|
@ -165,7 +177,7 @@ public:
|
|||
|
||||
void apply (int x, int y, int width, int height) override;
|
||||
|
||||
bool adjust_size (const char *name, int new_height) override;
|
||||
tui_adjust_result adjust_size (const char *name, int new_height) override;
|
||||
|
||||
bool top_boxed_p () const override;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue