mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 02:24:17 +08:00
gdb/tui: add left_boxed_p and right_boxed_p member functions
When I initially saw this code in tui_layout_split::apply, I assumed that this must be a bug: /* Two adjacent boxed windows will share a border, making a bit more size available. */ if (i > 0 && m_splits[i - 1].layout->bottom_boxed_p () && m_splits[i].layout->top_boxed_p ()) ... After all, the apply might be laying out a horizontal layout, right? So checking bottom_boxed_p and top_boxed_p is clearly wrong. Well, it turns on, that due to the implementations of these things, bottom_boxed_p is equivalent to an imagined right_boxed_p, and top_boxed_p is equivalent to an imagined left_boxed_p. In this commit I've renamed both top_boxed_p and bottom_boxed_p to first_edge_has_border_p and last_edge_has_border_p respectively, and extended the comments in tui_layout_base to mention that these methods handle both horizontal and vertical layouts. Now, hopefully, the code shouldn't look like it only applies for vertical layouts. There should be no user visible changes after this commit.
This commit is contained in:
@ -451,7 +451,7 @@ tui_layout_window::get_sizes (bool height, int *min_value, int *max_value)
|
|||||||
/* See tui-layout.h. */
|
/* See tui-layout.h. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
tui_layout_window::top_boxed_p () const
|
tui_layout_window::first_edge_has_border_p () const
|
||||||
{
|
{
|
||||||
gdb_assert (m_window != nullptr);
|
gdb_assert (m_window != nullptr);
|
||||||
return m_window->can_box ();
|
return m_window->can_box ();
|
||||||
@ -460,7 +460,7 @@ tui_layout_window::top_boxed_p () const
|
|||||||
/* See tui-layout.h. */
|
/* See tui-layout.h. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
tui_layout_window::bottom_boxed_p () const
|
tui_layout_window::last_edge_has_border_p () const
|
||||||
{
|
{
|
||||||
gdb_assert (m_window != nullptr);
|
gdb_assert (m_window != nullptr);
|
||||||
return m_window->can_box ();
|
return m_window->can_box ();
|
||||||
@ -561,21 +561,21 @@ tui_layout_split::get_sizes (bool height, int *min_value, int *max_value)
|
|||||||
/* See tui-layout.h. */
|
/* See tui-layout.h. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
tui_layout_split::top_boxed_p () const
|
tui_layout_split::first_edge_has_border_p () const
|
||||||
{
|
{
|
||||||
if (m_splits.empty ())
|
if (m_splits.empty ())
|
||||||
return false;
|
return false;
|
||||||
return m_splits[0].layout->top_boxed_p ();
|
return m_splits[0].layout->first_edge_has_border_p ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See tui-layout.h. */
|
/* See tui-layout.h. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
tui_layout_split::bottom_boxed_p () const
|
tui_layout_split::last_edge_has_border_p () const
|
||||||
{
|
{
|
||||||
if (m_splits.empty ())
|
if (m_splits.empty ())
|
||||||
return false;
|
return false;
|
||||||
return m_splits.back ().layout->top_boxed_p ();
|
return m_splits.back ().layout->last_edge_has_border_p ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See tui-layout.h. */
|
/* See tui-layout.h. */
|
||||||
@ -785,8 +785,8 @@ tui_layout_split::apply (int x_, int y_, int width_, int height_)
|
|||||||
/* Two adjacent boxed windows will share a border, making a bit
|
/* Two adjacent boxed windows will share a border, making a bit
|
||||||
more size available. */
|
more size available. */
|
||||||
if (i > 0
|
if (i > 0
|
||||||
&& m_splits[i - 1].layout->bottom_boxed_p ()
|
&& m_splits[i - 1].layout->last_edge_has_border_p ()
|
||||||
&& m_splits[i].layout->top_boxed_p ())
|
&& m_splits[i].layout->first_edge_has_border_p ())
|
||||||
info[i].share_box = true;
|
info[i].share_box = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,11 +62,13 @@ public:
|
|||||||
HEIGHT is true to fetch height, false to fetch width. */
|
HEIGHT is true to fetch height, false to fetch width. */
|
||||||
virtual void get_sizes (bool height, int *min_value, int *max_value) = 0;
|
virtual void get_sizes (bool height, int *min_value, int *max_value) = 0;
|
||||||
|
|
||||||
/* True if the topmost item in this layout is boxed. */
|
/* True if the topmost (for vertical layouts), or the leftmost (for
|
||||||
virtual bool top_boxed_p () const = 0;
|
horizontal layouts) item in this layout is boxed. */
|
||||||
|
virtual bool first_edge_has_border_p () const = 0;
|
||||||
|
|
||||||
/* True if the bottommost item in this layout is boxed. */
|
/* True if the bottommost (for vertical layouts), or the rightmost (for
|
||||||
virtual bool bottom_boxed_p () const = 0;
|
horizontal layouts) item in this layout is boxed. */
|
||||||
|
virtual bool last_edge_has_border_p () const = 0;
|
||||||
|
|
||||||
/* Return the name of this layout's window, or nullptr if this
|
/* Return the name of this layout's window, or nullptr if this
|
||||||
layout does not represent a single window. */
|
layout does not represent a single window. */
|
||||||
@ -141,9 +143,9 @@ public:
|
|||||||
return m_contents == name ? FOUND : NOT_FOUND;
|
return m_contents == name ? FOUND : NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool top_boxed_p () const override;
|
bool first_edge_has_border_p () const override;
|
||||||
|
|
||||||
bool bottom_boxed_p () const override;
|
bool last_edge_has_border_p () const override;
|
||||||
|
|
||||||
void remove_windows (const char *name) override
|
void remove_windows (const char *name) override
|
||||||
{
|
{
|
||||||
@ -213,9 +215,9 @@ public:
|
|||||||
return set_size (name, new_width, true);
|
return set_size (name, new_width, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool top_boxed_p () const override;
|
bool first_edge_has_border_p () const override;
|
||||||
|
|
||||||
bool bottom_boxed_p () const override;
|
bool last_edge_has_border_p () const override;
|
||||||
|
|
||||||
void remove_windows (const char *name) override;
|
void remove_windows (const char *name) override;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user