GUI2: init more members directly from builders when possible
This commit is contained in:
parent
e208a4e776
commit
255b1ad055
11 changed files with 27 additions and 38 deletions
|
@ -51,8 +51,8 @@ REGISTER_WIDGET(addon_list)
|
|||
addon_list::addon_list(const implementation::builder_addon_list& builder)
|
||||
: container_base(builder, type())
|
||||
, addon_vector_()
|
||||
, install_status_visibility_(visibility::visible)
|
||||
, install_buttons_visibility_(visibility::invisible)
|
||||
, install_status_visibility_(builder.install_status_visibility)
|
||||
, install_buttons_visibility_(builder.install_buttons_visibility)
|
||||
, install_function_()
|
||||
, uninstall_function_()
|
||||
, publish_function_()
|
||||
|
@ -447,15 +447,15 @@ static widget::visibility parse_visibility(const std::string& str)
|
|||
|
||||
builder_addon_list::builder_addon_list(const config& cfg)
|
||||
: builder_styled_widget(cfg)
|
||||
, install_status_visibility_(widget::visibility::visible)
|
||||
, install_buttons_visibility_(widget::visibility::invisible)
|
||||
, install_status_visibility(widget::visibility::visible)
|
||||
, install_buttons_visibility(widget::visibility::invisible)
|
||||
{
|
||||
if(cfg.has_attribute("install_status_visibility")) {
|
||||
install_status_visibility_ = parse_visibility(cfg["install_status_visibility"]);
|
||||
install_status_visibility = parse_visibility(cfg["install_status_visibility"]);
|
||||
}
|
||||
|
||||
if(cfg.has_attribute("install_buttons_visibility")) {
|
||||
install_buttons_visibility_ = parse_visibility(cfg["install_buttons_visibility"]);
|
||||
install_buttons_visibility = parse_visibility(cfg["install_buttons_visibility"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -470,10 +470,6 @@ std::unique_ptr<widget> builder_addon_list::build() const
|
|||
assert(conf != nullptr);
|
||||
|
||||
widget->init_grid(*conf->grid);
|
||||
|
||||
widget->set_install_status_visibility(install_status_visibility_);
|
||||
widget->set_install_buttons_visibility(install_buttons_visibility_);
|
||||
|
||||
widget->finalize_setup();
|
||||
|
||||
return widget;
|
||||
|
|
|
@ -210,16 +210,14 @@ namespace implementation
|
|||
|
||||
struct builder_addon_list : public builder_styled_widget
|
||||
{
|
||||
public:
|
||||
explicit builder_addon_list(const config& cfg);
|
||||
|
||||
using builder_styled_widget::build;
|
||||
|
||||
virtual std::unique_ptr<widget> build() const override;
|
||||
|
||||
private:
|
||||
widget::visibility install_status_visibility_;
|
||||
widget::visibility install_buttons_visibility_;
|
||||
widget::visibility install_status_visibility;
|
||||
widget::visibility install_buttons_visibility;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,13 +39,15 @@ namespace gui2
|
|||
|
||||
REGISTER_WIDGET(combobox)
|
||||
|
||||
combobox::combobox(const implementation::builder_styled_widget& builder)
|
||||
combobox::combobox(const implementation::builder_combobox& builder)
|
||||
: text_box_base(builder, type())
|
||||
, max_input_length_(0)
|
||||
, max_input_length_(builder.max_input_length)
|
||||
, text_x_offset_(0)
|
||||
, text_y_offset_(0)
|
||||
, text_height_(0)
|
||||
, dragging_(false)
|
||||
, hint_text_(builder.hint_text)
|
||||
, hint_image_(builder.hint_image)
|
||||
, values_()
|
||||
, selected_(0)
|
||||
{
|
||||
|
@ -441,9 +443,6 @@ std::unique_ptr<widget> builder_combobox::build() const
|
|||
widget->set_values(options_);
|
||||
}
|
||||
|
||||
widget->set_max_input_length(max_input_length);
|
||||
widget->set_hint_data(hint_text, hint_image);
|
||||
|
||||
DBG_GUI_G << "Window builder: placed text box '" << id
|
||||
<< "' with definition '" << definition << "'.";
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ class combobox : public text_box_base
|
|||
friend struct implementation::builder_combobox;
|
||||
|
||||
public:
|
||||
explicit combobox(const implementation::builder_styled_widget& builder);
|
||||
explicit combobox(const implementation::builder_combobox& builder);
|
||||
|
||||
void set_max_input_length(const std::size_t length)
|
||||
{
|
||||
|
|
|
@ -44,12 +44,14 @@ REGISTER_WIDGET(multiline_text)
|
|||
multiline_text::multiline_text(const implementation::builder_multiline_text& builder)
|
||||
: text_box_base(builder, type())
|
||||
, history_()
|
||||
, max_input_length_(0)
|
||||
, max_input_length_(builder.max_input_length)
|
||||
, text_x_offset_(0)
|
||||
, text_y_offset_(0)
|
||||
, text_height_(0)
|
||||
, dragging_(false)
|
||||
, link_aware_(builder.link_aware)
|
||||
, hint_text_(builder.hint_text)
|
||||
, hint_image_(builder.hint_image)
|
||||
{
|
||||
set_wants_mouse_left_double_click();
|
||||
|
||||
|
@ -511,9 +513,6 @@ std::unique_ptr<widget> builder_multiline_text::build() const
|
|||
widget->set_history(history);
|
||||
}
|
||||
|
||||
widget->set_max_input_length(max_input_length);
|
||||
widget->set_hint_data(hint_text, hint_image);
|
||||
|
||||
DBG_GUI_G << "Window builder: placed text box '" << id
|
||||
<< "' with definition '" << definition << "'.";
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ REGISTER_WIDGET(slider)
|
|||
|
||||
slider::slider(const implementation::builder_slider& builder)
|
||||
: slider_base(builder, type())
|
||||
, best_slider_length_(0)
|
||||
, best_slider_length_(builder.best_slider_length)
|
||||
, minimum_value_(0)
|
||||
, step_size_(1)
|
||||
, minimum_value_label_()
|
||||
|
@ -321,7 +321,7 @@ namespace implementation
|
|||
{
|
||||
builder_slider::builder_slider(const config& cfg)
|
||||
: implementation::builder_styled_widget(cfg)
|
||||
, best_slider_length_(cfg["best_slider_length"].to_unsigned())
|
||||
, best_slider_length(cfg["best_slider_length"].to_unsigned())
|
||||
, minimum_value_(cfg["minimum_value"].to_int())
|
||||
, maximum_value_(cfg["maximum_value"].to_int())
|
||||
, step_size_(cfg["step_size"].to_int(1))
|
||||
|
@ -344,7 +344,6 @@ std::unique_ptr<widget> builder_slider::build() const
|
|||
{
|
||||
auto widget = std::make_unique<slider>(*this);
|
||||
|
||||
widget->set_best_slider_length(best_slider_length_);
|
||||
widget->set_value_range(minimum_value_, maximum_value_);
|
||||
widget->set_step_size(step_size_);
|
||||
widget->set_value(value_);
|
||||
|
|
|
@ -265,8 +265,9 @@ struct builder_slider : public builder_styled_widget
|
|||
|
||||
virtual std::unique_ptr<widget> build() const override;
|
||||
|
||||
unsigned best_slider_length;
|
||||
|
||||
private:
|
||||
unsigned best_slider_length_;
|
||||
int minimum_value_;
|
||||
int maximum_value_;
|
||||
unsigned step_size_;
|
||||
|
|
|
@ -42,7 +42,7 @@ toggle_button::toggle_button(const implementation::builder_toggle_button& builde
|
|||
, state_(ENABLED)
|
||||
, state_num_(0)
|
||||
, retval_(retval::NONE)
|
||||
, icon_name_()
|
||||
, icon_name_(builder.icon_name)
|
||||
{
|
||||
connect_signal<event::MOUSE_ENTER>(std::bind(
|
||||
&toggle_button::signal_handler_mouse_enter, this, std::placeholders::_2, std::placeholders::_3));
|
||||
|
@ -223,7 +223,7 @@ namespace implementation
|
|||
|
||||
builder_toggle_button::builder_toggle_button(const config& cfg)
|
||||
: builder_styled_widget(cfg)
|
||||
, icon_name_(cfg["icon"])
|
||||
, icon_name(cfg["icon"])
|
||||
, retval_id_(cfg["return_value_id"])
|
||||
, retval_(cfg["return_value"].to_int())
|
||||
{
|
||||
|
@ -233,7 +233,6 @@ std::unique_ptr<widget> builder_toggle_button::build() const
|
|||
{
|
||||
auto widget = std::make_unique<toggle_button>(*this);
|
||||
|
||||
widget->set_icon_name(icon_name_);
|
||||
widget->set_retval(get_retval(retval_id_, retval_, id));
|
||||
|
||||
DBG_GUI_G << "Window builder: placed toggle button '" << id
|
||||
|
|
|
@ -166,8 +166,9 @@ struct builder_toggle_button : public builder_styled_widget
|
|||
|
||||
virtual std::unique_ptr<widget> build() const override;
|
||||
|
||||
std::string icon_name;
|
||||
|
||||
private:
|
||||
std::string icon_name_;
|
||||
std::string retval_id_;
|
||||
int retval_;
|
||||
};
|
||||
|
|
|
@ -64,7 +64,7 @@ unit_preview_pane::unit_preview_pane(const implementation::builder_unit_preview_
|
|||
, label_details_(nullptr)
|
||||
, tree_details_(nullptr)
|
||||
, button_profile_(nullptr)
|
||||
, image_mods_()
|
||||
, image_mods_(builder.image_mods)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -584,7 +584,7 @@ namespace implementation
|
|||
|
||||
builder_unit_preview_pane::builder_unit_preview_pane(const config& cfg)
|
||||
: builder_styled_widget(cfg)
|
||||
, image_mods_(cfg["image_mods"])
|
||||
, image_mods(cfg["image_mods"])
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -600,7 +600,6 @@ std::unique_ptr<widget> builder_unit_preview_pane::build() const
|
|||
|
||||
widget->init_grid(*conf->grid);
|
||||
widget->finalize_setup();
|
||||
widget->set_image_mods(image_mods_);
|
||||
|
||||
return widget;
|
||||
}
|
||||
|
|
|
@ -135,15 +135,13 @@ namespace implementation
|
|||
|
||||
struct builder_unit_preview_pane : public builder_styled_widget
|
||||
{
|
||||
public:
|
||||
explicit builder_unit_preview_pane(const config& cfg);
|
||||
|
||||
using builder_styled_widget::build;
|
||||
|
||||
virtual std::unique_ptr<widget> build() const override;
|
||||
|
||||
private:
|
||||
const std::string image_mods_;
|
||||
std::string image_mods;
|
||||
};
|
||||
|
||||
} // namespace implementation
|
||||
|
|
Loading…
Add table
Reference in a new issue