Skip to content

Commit

Permalink
GUI2/Listbox: pass list grid builder directly to constructor
Browse files Browse the repository at this point in the history
Also gave the `select` argument a default value and re-ordered the placement type to be the second argument.
  • Loading branch information
Vultraz committed Aug 25, 2017
1 parent 4b0501a commit 19b937a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 26 deletions.
17 changes: 6 additions & 11 deletions src/gui/widgets/listbox.cpp
Expand Up @@ -58,14 +58,15 @@ void callback_list_item_clicked(widget& caller)
} // namespace

listbox::listbox(const implementation::builder_styled_widget& builder,
const generator_base::placement placement,
builder_grid_ptr list_builder,
const bool has_minimum,
const bool has_maximum,
const generator_base::placement placement,
const bool select)
: scrollbar_container(builder, get_control_type())
, generator_(generator_base::build(has_minimum, has_maximum, placement, select))
, is_horizontal_(placement == generator_base::horizontal_list)
, list_builder_(nullptr)
, list_builder_(list_builder)
, need_layout_(false)
, orders_()
{
Expand Down Expand Up @@ -954,9 +955,7 @@ widget* builder_listbox::build() const
return widget;
#else

listbox* widget = new listbox(*this, has_minimum_, has_maximum_, generator_base::vertical_list, true);

widget->set_list_builder(list_builder); // FIXME in finalize???
listbox* widget = new listbox(*this, generator_base::vertical_list, list_builder, has_minimum_, has_maximum_);

widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode);
widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode);
Expand Down Expand Up @@ -1073,9 +1072,7 @@ widget* builder_horizontal_listbox::build() const
return widget;
#else

listbox* widget = new listbox(*this, has_minimum_, has_maximum_, generator_base::horizontal_list, true);

widget->set_list_builder(list_builder); // FIXME in finalize???
listbox* widget = new listbox(*this, generator_base::horizontal_list, list_builder, has_minimum_, has_maximum_);

widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode);
widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode);
Expand Down Expand Up @@ -1192,9 +1189,7 @@ widget* builder_grid_listbox::build() const
return widget;
#else

listbox* widget = new listbox(*this, has_minimum_, has_maximum_, generator_base::table, true);

widget->set_list_builder(list_builder); // FIXME in finalize???
listbox* widget = new listbox(*this, generator_base::table, list_builder, has_minimum_, has_maximum_);

widget->set_vertical_scrollbar_mode(vertical_scrollbar_mode);
widget->set_horizontal_scrollbar_mode(horizontal_scrollbar_mode);
Expand Down
24 changes: 9 additions & 15 deletions src/gui/widgets/listbox.hpp
Expand Up @@ -49,21 +49,20 @@ class listbox : public scrollbar_container
/**
* Constructor.
*
* @param builder The builder for the appropriate listbox
* variant.
* @param has_minimum Does the listbox need to have one item
* selected.
* @param has_maximum Can the listbox only have one item
* selected.
* @param builder The builder for the appropriate listbox variant.
* @param placement How are the items placed.
* @param select Select an item when selected, if false it
* changes the visible state instead.
* @param list_builder Grid builder for the listbox definition grid.
* @param has_minimum Does the listbox need to have one item selected.
* @param has_maximum Can the listbox only have one item selected.
* @param select Select an item when selected. If false it changes
* the visible state instead. Default true.
*/
listbox(const implementation::builder_styled_widget& builder,
const generator_base::placement placement,
builder_grid_ptr list_builder,
const bool has_minimum,
const bool has_maximum,
const generator_base::placement placement,
const bool select);
const bool select = true);

/***** ***** ***** ***** Row handling. ***** ***** ****** *****/
/**
Expand Down Expand Up @@ -253,11 +252,6 @@ class listbox : public scrollbar_container

/***** ***** ***** setters / getters for members ***** ****** *****/

void set_list_builder(builder_grid_ptr list_builder)
{
list_builder_ = list_builder;
}

void order_by(const generator_base::order_func& func);

void set_column_order(unsigned col, const generator_sort_array& func);
Expand Down

0 comments on commit 19b937a

Please sign in to comment.