GUI2/Widget: add convenience visibility setters

This commit is contained in:
Charles Dang 2024-12-10 09:28:21 -05:00
parent c8df594a74
commit 66e94c9a6b
8 changed files with 22 additions and 13 deletions

View file

@ -137,7 +137,7 @@ int mp_options_helper::remove_nodes_for_type(const std::string& type)
void mp_options_helper::update_status_label()
{
// No custom options, display a message
no_options_notice_.set_visible(options_tree_.empty() ? widget::visibility::visible : widget::visibility::invisible);
no_options_notice_.set_visible(options_tree_.empty());
}
template<typename T>

View file

@ -379,7 +379,7 @@ void mp_staging::on_controller_select(const ng::side_engine_ptr& side, grid& row
menu_button& controller_selection = row_grid.find_widget<menu_button>("controller");
if(side->controller_changed(controller_selection.get_value())) {
ai_selection.set_visible(side->controller() == ng::CNTR_COMPUTER ? widget::visibility::visible : widget::visibility::hidden);
ai_selection.set_hidden(side->controller() == ng::CNTR_COMPUTER);
set_state_changed();
}

View file

@ -245,8 +245,7 @@ void preferences_dialog::update_friends_list_controls(listbox& list)
find_widget<button>("remove").set_active(!list_empty);
find_widget<label>("no_friends_notice").set_visible(
list_empty ? widget::visibility::visible : widget::visibility::invisible);
find_widget<label>("no_friends_notice").set_visible(list_empty);
}
void preferences_dialog::add_friend_list_entry(const bool is_friend, text_box& textbox)

View file

@ -356,7 +356,7 @@ void title_screen::init_callbacks()
auto clock = find_widget<button>("clock", false, false);
if(clock) {
clock->set_visible(show_debug_clock_button ? widget::visibility::visible : widget::visibility::invisible);
clock->set_visible(show_debug_clock_button);
}
//
@ -367,7 +367,7 @@ void title_screen::init_callbacks()
auto test_dialog = find_widget<button>("test_dialog", false, false);
if(test_dialog) {
test_dialog->set_visible(show_debug_clock_button ? widget::visibility::visible : widget::visibility::invisible);
test_dialog->set_visible(show_debug_clock_button);
}
//

View file

@ -521,7 +521,7 @@ struct show : public virtual generator_base
{
void select(grid& grid, const bool show)
{
grid.set_visible(show ? widget::visibility::visible : widget::visibility::hidden);
grid.set_hidden(show);
}
/**
@ -638,7 +638,7 @@ public:
if(items_[index]->shown != show) {
/*** Set the proper visible state. ***/
items_[index]->shown = show;
items_[index]->child_grid.set_visible(show ? widget::visibility::visible : widget::visibility::invisible);
items_[index]->child_grid.set_visible(show);
/*** Update the selection. ***/
minimum_selection::set_item_shown(index, show);

View file

@ -186,9 +186,7 @@ void pane::filter(const filter_functor_t& filter_functor)
{
for(auto & item : items_)
{
item.item_grid->set_visible(filter_functor(item)
? widget::visibility::visible
: widget::visibility::invisible);
item.item_grid->set_visible(filter_functor(item));
}
set_origin_children();

View file

@ -334,7 +334,7 @@ static void set_scrollbar_mode(grid* scrollbar_grid,
if(scrollbar_mode == scrollbar_container::AUTO_VISIBLE) {
const bool scrollbar_needed = items > visible_items;
scrollbar_grid->set_visible(scrollbar_needed ? widget::visibility::visible : widget::visibility::hidden);
scrollbar_grid->set_hidden(scrollbar_needed);
} else if(scrollbar_mode == scrollbar_container::AUTO_VISIBLE_FIRST_RUN) {
if(items <= visible_items && content_grid != nullptr
&& scrollbar_grid->get_visible() == widget::visibility::visible
@ -394,7 +394,7 @@ static void adjust_scrollbar_mode(grid* scrollbar_grid,
if(scrollbar_mode == scrollbar_container::AUTO_VISIBLE) {
const bool scrollbar_needed = items_after > visible_items;
scrollbar_grid->set_visible(scrollbar_needed ? widget::visibility::visible : widget::visibility::hidden);
scrollbar_grid->set_hidden(scrollbar_needed);
}
}

View file

@ -633,6 +633,18 @@ public:
void set_visible(const visibility visible);
visibility get_visible() const;
/** Sets widget to visible if @a visible is true, else invisible. */
void set_visible(bool visible)
{
set_visible(visible ? visibility::visible : visibility::invisible);
}
/** Sets widget to visible if @a hidden is true, else hidden. */
void set_hidden(bool hidden)
{
set_visible(hidden ? visibility::visible : visibility::hidden);
}
redraw_action get_drawing_action() const;
void set_debug_border_mode(const debug_border debug_border_mode);