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:
parent
da248a8a7d
commit
fc83e20dfb
42 changed files with 49 additions and 70 deletions
|
@ -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)
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -74,7 +74,6 @@ private:
|
|||
DISABLED,
|
||||
PRESSED,
|
||||
FOCUSED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
void set_state(const state_t state);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>(
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -85,7 +85,6 @@ private:
|
|||
enum state_t {
|
||||
ENABLED,
|
||||
DISABLED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
void set_state(const state_t state);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -219,7 +219,6 @@ private:
|
|||
enum state_t {
|
||||
ENABLED,
|
||||
DISABLED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
||||
{
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -110,7 +110,6 @@ private:
|
|||
DISABLED,
|
||||
PRESSED,
|
||||
FOCUSED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
void set_state(const state_t state);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -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_()
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace gui2
|
|||
REGISTER_WIDGET(multimenu_button)
|
||||
|
||||
multimenu_button::multimenu_button()
|
||||
: styled_widget(COUNT)
|
||||
: styled_widget()
|
||||
, state_(ENABLED)
|
||||
, retval_(0)
|
||||
, values_()
|
||||
|
|
|
@ -156,7 +156,6 @@ private:
|
|||
DISABLED,
|
||||
PRESSED,
|
||||
FOCUSED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
void set_state(const state_t state);
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -84,7 +84,6 @@ private:
|
|||
DISABLED,
|
||||
PRESSED,
|
||||
FOCUSED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
void set_state(const state_t state);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace gui2
|
|||
{
|
||||
|
||||
scrollbar_base::scrollbar_base()
|
||||
: styled_widget(COUNT)
|
||||
: styled_widget()
|
||||
, state_(ENABLED)
|
||||
, item_count_(0)
|
||||
, item_position_(0)
|
||||
|
|
|
@ -120,7 +120,6 @@ public:
|
|||
DISABLED,
|
||||
PRESSED,
|
||||
FOCUSED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
/***** ***** ***** setters / getters for members ***** ****** *****/
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ class size_lock : public container_base
|
|||
|
||||
public:
|
||||
size_lock() :
|
||||
container_base(1),
|
||||
container_base(),
|
||||
widget_(nullptr)
|
||||
{}
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
||||
/**
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace gui2
|
|||
{
|
||||
|
||||
text_box_base::text_box_base()
|
||||
: styled_widget(COUNT)
|
||||
: styled_widget()
|
||||
, state_(ENABLED)
|
||||
, text_()
|
||||
, selection_start_(0)
|
||||
|
|
|
@ -258,7 +258,6 @@ private:
|
|||
ENABLED,
|
||||
DISABLED,
|
||||
FOCUSED,
|
||||
COUNT
|
||||
};
|
||||
|
||||
void set_state(const state_t state);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace gui2
|
|||
REGISTER_WIDGET(toggle_panel)
|
||||
|
||||
toggle_panel::toggle_panel()
|
||||
: panel(COUNT)
|
||||
: panel()
|
||||
, state_(ENABLED)
|
||||
, state_num_(0)
|
||||
, retval_(0)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue