GUI2: get rid of all the magic canvas count numbers

These were unnecessary since the canvas vector was automatically resized the match the
available number of canvases when a styled_widget was constructed.
This commit is contained in:
Charles Dang 2017-05-26 21:27:33 +11:00
parent da248a8a7d
commit fc83e20dfb
42 changed files with 49 additions and 70 deletions

View file

@ -39,7 +39,7 @@ class addon_list : public container_base
public:
addon_list()
: container_base(1)
: container_base()
, addon_vector_()
, install_status_visibility_(visibility::visible)
, install_buttons_visibility_(visibility::invisible)

View file

@ -40,7 +40,7 @@ namespace gui2
REGISTER_WIDGET(button)
button::button() : styled_widget(COUNT), clickable_item(), state_(ENABLED), retval_(0)
button::button() : styled_widget(), clickable_item(), state_(ENABLED), retval_(0)
{
connect_signal<event::MOUSE_ENTER>(
std::bind(&button::signal_handler_mouse_enter, this, _2, _3));

View file

@ -74,7 +74,6 @@ private:
DISABLED,
PRESSED,
FOCUSED,
COUNT
};
void set_state(const state_t state);

View file

@ -53,7 +53,7 @@ namespace gui2
REGISTER_WIDGET(chatbox)
chatbox::chatbox()
: container_base(1)
: container_base()
, roomlistbox_(nullptr)
, chat_log_container_(nullptr)
, chat_input_(nullptr)

View file

@ -28,8 +28,8 @@
namespace gui2
{
container_base::container_base(const unsigned canvas_count)
: styled_widget(canvas_count), grid_()
container_base::container_base()
: styled_widget(), grid_()
{
grid_.set_parent(this);
connect_signal<event::REQUEST_PLACEMENT>(

View file

@ -33,7 +33,7 @@ class container_base : public styled_widget
friend class debug_layout_graph;
public:
explicit container_base(const unsigned canvas_count);
container_base();
/**
* Returns the client rect.

View file

@ -35,7 +35,7 @@ namespace gui2
class drawing : public styled_widget
{
public:
drawing() : styled_widget(COUNT), best_size_(0, 0)
drawing() : styled_widget(), best_size_(0, 0)
{
}
@ -97,7 +97,6 @@ private:
*/
enum state_t {
ENABLED,
COUNT
};
/** When we're used as a fixed size item, this holds the best size. */

View file

@ -28,7 +28,7 @@ namespace gui2
class image : public styled_widget
{
public:
image() : styled_widget(COUNT)
image() : styled_widget()
{
}
@ -89,7 +89,6 @@ private:
*/
enum state_t {
ENABLED,
COUNT
};
/** See @ref styled_widget::get_control_type. */

View file

@ -41,7 +41,7 @@ namespace gui2
REGISTER_WIDGET(label)
label::label()
: styled_widget(COUNT)
: styled_widget()
, state_(ENABLED)
, can_wrap_(false)
, characters_per_line_(0)

View file

@ -85,7 +85,6 @@ private:
enum state_t {
ENABLED,
DISABLED,
COUNT
};
void set_state(const state_t state);

View file

@ -43,7 +43,7 @@ list_view::list_view(const bool has_minimum,
const generator_base::tplacement placement,
const bool select,
const builder_grid_const_ptr list_builder)
: container_base(2) // FIXME magic number
: container_base()
, state_(ENABLED)
, generator_(nullptr)
, list_builder_(list_builder)

View file

@ -219,7 +219,6 @@ private:
enum state_t {
ENABLED,
DISABLED,
COUNT
};
/**

View file

@ -64,7 +64,7 @@ listbox::listbox(const bool has_minimum,
const bool has_maximum,
const generator_base::placement placement,
const bool select)
: scrollbar_container(2) // FIXME magic number
: scrollbar_container()
, generator_(generator_base::build(has_minimum, has_maximum, placement, select))
, is_horizonal_(placement == generator_base::horizontal_list)
, list_builder_(nullptr)

View file

@ -51,7 +51,6 @@ protected:
enum state_t {
ENABLED,
DISABLED,
COUNT
};
private:
@ -70,7 +69,7 @@ class control_NEW : public styled_widget, public STATE
public:
control_NEW(const implementation::builder_styled_widget& builder,
const std::string& control_type)
: styled_widget(builder, STATE::COUNT, control_type)
: styled_widget(builder, control_type)
{
}

View file

@ -38,7 +38,7 @@ namespace gui2
REGISTER_WIDGET(menu_button)
menu_button::menu_button()
: styled_widget(COUNT)
: styled_widget()
, selectable_item()
, state_(ENABLED)
, retval_(0)

View file

@ -110,7 +110,6 @@ private:
DISABLED,
PRESSED,
FOCUSED,
COUNT
};
void set_state(const state_t state);

View file

@ -35,7 +35,7 @@ namespace gui2
class minimap : public styled_widget
{
public:
minimap() : styled_widget(1), map_data_(), terrain_(nullptr)
minimap() : styled_widget(), map_data_(), terrain_(nullptr)
{
}

View file

@ -33,7 +33,7 @@ namespace gui2
REGISTER_WIDGET(multi_page)
multi_page::multi_page()
: container_base(0)
: container_base()
, generator_(
generator_base::build(true, true, generator_base::independent, false))
, page_builders_()

View file

@ -40,7 +40,7 @@ namespace gui2
REGISTER_WIDGET(multimenu_button)
multimenu_button::multimenu_button()
: styled_widget(COUNT)
: styled_widget()
, state_(ENABLED)
, retval_(0)
, values_()

View file

@ -156,7 +156,6 @@ private:
DISABLED,
PRESSED,
FOCUSED,
COUNT
};
void set_state(const state_t state);

View file

@ -36,10 +36,8 @@ class panel : public container_base
public:
/**
* Constructor.
*
* @param canvas_count The canvas count for styled_widget.
*/
explicit panel(const unsigned canvas_count = 2) : container_base(canvas_count)
panel() : container_base()
{
}

View file

@ -27,7 +27,7 @@ namespace gui2
class progress_bar : public styled_widget
{
public:
progress_bar() : styled_widget(COUNT), percentage_(static_cast<unsigned>(-1))
progress_bar() : styled_widget(), percentage_(static_cast<unsigned>(-1))
{
// Force canvas update
set_percentage(0);
@ -64,7 +64,6 @@ private:
*/
enum state_t {
ENABLED,
COUNT
};
/** The percentage done. */

View file

@ -36,7 +36,7 @@ namespace gui2
REGISTER_WIDGET(repeating_button)
repeating_button::repeating_button()
: styled_widget(COUNT), clickable_item(), state_(ENABLED), repeat_timer_(0)
: styled_widget(), clickable_item(), state_(ENABLED), repeat_timer_(0)
{
connect_signal<event::MOUSE_ENTER>(std::bind(
&repeating_button::signal_handler_mouse_enter, this, _2, _3));

View file

@ -84,7 +84,6 @@ private:
DISABLED,
PRESSED,
FOCUSED,
COUNT
};
void set_state(const state_t state);

View file

@ -40,7 +40,7 @@ namespace gui2
REGISTER_WIDGET(scroll_label)
scroll_label::scroll_label(bool wrap, const PangoAlignment text_alignment)
: scrollbar_container(COUNT)
: scrollbar_container()
, state_(ENABLED)
, wrap_on_(wrap)
, text_alignment_(text_alignment)

View file

@ -80,7 +80,6 @@ private:
enum state_t {
ENABLED,
DISABLED,
COUNT
};
// It's not needed for now so keep it disabled, no definition exists yet.

View file

@ -28,7 +28,7 @@ namespace gui2
{
scrollbar_base::scrollbar_base()
: styled_widget(COUNT)
: styled_widget()
, state_(ENABLED)
, item_count_(0)
, item_position_(0)

View file

@ -120,7 +120,6 @@ public:
DISABLED,
PRESSED,
FOCUSED,
COUNT
};
/***** ***** ***** setters / getters for members ***** ****** *****/

View file

@ -66,8 +66,8 @@ const std::map<std::string, scrollbar_base::scroll_mode>& scroll_lookup()
} // namespace
scrollbar_container::scrollbar_container(const unsigned canvas_count)
: container_base(canvas_count)
scrollbar_container::scrollbar_container()
: container_base()
, state_(ENABLED)
, vertical_scrollbar_mode_(AUTO_VISIBLE_FIRST_RUN)
, horizontal_scrollbar_mode_(AUTO_VISIBLE_FIRST_RUN)

View file

@ -50,7 +50,7 @@ class scrollbar_container : public container_base
friend struct scrollbar_container_implementation;
public:
explicit scrollbar_container(const unsigned canvas_count);
scrollbar_container();
~scrollbar_container()
{
@ -455,7 +455,6 @@ private:
enum state_t {
ENABLED,
DISABLED,
COUNT
};
/**

View file

@ -42,11 +42,9 @@ class scrollbar_panel : public scrollbar_container
public:
/**
* Constructor.
*
* @param canvas_count The canvas count for styled_widget.
*/
explicit scrollbar_panel(const unsigned canvas_count = 2)
: scrollbar_container(canvas_count)
scrollbar_panel()
: scrollbar_container()
{
}

View file

@ -37,7 +37,7 @@ class size_lock : public container_base
public:
size_lock() :
container_base(1),
container_base(),
widget_(nullptr)
{}

View file

@ -38,7 +38,7 @@ class spacer : public styled_widget
{
public:
spacer(const std::string& w = "0", const std::string& h = "0")
: styled_widget(0)
: styled_widget()
, width_(w)
, height_(h)
{

View file

@ -34,7 +34,7 @@ namespace gui2
REGISTER_WIDGET(stacked_widget)
stacked_widget::stacked_widget()
: container_base(1)
: container_base()
, generator_(generator_base::build(false, false, generator_base::independent, false))
, selected_layer_(-1)
{

View file

@ -43,14 +43,14 @@ namespace gui2
// ------------ WIDGET -----------{
styled_widget::styled_widget(const unsigned canvas_count)
styled_widget::styled_widget()
: definition_("default")
, label_()
, use_markup_(false)
, use_tooltip_on_label_overflow_(true)
, tooltip_()
, help_message_()
, canvas_(canvas_count)
, canvas_()
, config_(nullptr)
, renderer_()
, text_maximum_width_(0)
@ -69,7 +69,6 @@ styled_widget::styled_widget(const unsigned canvas_count)
}
styled_widget::styled_widget(const implementation::builder_styled_widget& builder,
const unsigned canvas_count,
const std::string& control_type)
: widget(builder)
, definition_(builder.definition)
@ -78,7 +77,7 @@ styled_widget::styled_widget(const implementation::builder_styled_widget& builde
, use_tooltip_on_label_overflow_(builder.use_tooltip_on_label_overflow)
, tooltip_(builder.tooltip)
, help_message_(builder.help)
, canvas_(canvas_count)
, canvas_()
, config_(nullptr)
, renderer_()
, text_maximum_width_(0)
@ -460,18 +459,19 @@ void styled_widget::impl_draw_foreground(surface& /*frame_buffer*/
void styled_widget::definition_load_configuration(const std::string& control_type)
{
assert(!config());
assert(!config_);
set_config(get_control(control_type, definition_));
if(get_canvases().size() != config()->state.size())
{
// TODO: Some widgets (toggle panel, toggle button) have a variable canvas count which is determined by its definition.
// I think we should remove the canvas_count from tcontrols constructor and always read it from the definition.
DBG_GUI_L << "Corrected canvas count to " << config()->state.size() << std::endl;
get_canvases() = std::vector<canvas>(config()->state.size());
}
for(size_t i = 0; i < get_canvases().size(); ++i) {
get_canvas(i) = config()->state[i].canvas_;
/**
* Most widgets have a single canvas. However, some widgets such as toggle_panel
* and toggle_button have a variable canvas count determined by their definitions.
*/
canvas_.resize(config_->state.size());
// Fill in each canvas.
for(size_t i = 0; i < canvas_.size(); ++i) {
canvas_[i] = config_->state[i].canvas_;
}
update_canvas();

View file

@ -36,18 +36,15 @@ class styled_widget : public widget
public:
/** @deprecated Used the second overload. */
explicit styled_widget(const unsigned canvas_count);
styled_widget();
/**
* Constructor.
*
* @param builder The builder object with the settings for the
* object.
*
* @param canvas_count The number of canvasses in the styled_widget.
*/
styled_widget(const implementation::builder_styled_widget& builder,
const unsigned canvas_count,
const std::string& control_type);
/**

View file

@ -33,7 +33,7 @@ namespace gui2
{
text_box_base::text_box_base()
: styled_widget(COUNT)
: styled_widget()
, state_(ENABLED)
, text_()
, selection_start_(0)

View file

@ -258,7 +258,6 @@ private:
ENABLED,
DISABLED,
FOCUSED,
COUNT
};
void set_state(const state_t state);

View file

@ -37,7 +37,7 @@ namespace gui2
REGISTER_WIDGET(toggle_button)
toggle_button::toggle_button()
: styled_widget(COUNT)
: styled_widget()
, state_(ENABLED)
, state_num_(0)
, retval_(0)

View file

@ -38,7 +38,7 @@ namespace gui2
REGISTER_WIDGET(toggle_panel)
toggle_panel::toggle_panel()
: panel(COUNT)
: panel()
, state_(ENABLED)
, state_num_(0)
, retval_(0)

View file

@ -38,7 +38,7 @@ namespace gui2
REGISTER_WIDGET(tree_view)
tree_view::tree_view(const std::vector<node_definition>& node_definitions)
: scrollbar_container(2)
: scrollbar_container()
, node_definitions_(node_definitions)
, indentation_step_size_(0)
, need_layout_(false)

View file

@ -42,7 +42,7 @@ class unit_preview_pane : public container_base
public:
unit_preview_pane()
: container_base(1)
: container_base()
, current_type_()
, icon_type_(nullptr)
, icon_race_(nullptr)