GUI2: passed builder_grid references directly to generator create functions
This commit is contained in:
parent
cb4979ac0c
commit
4ada05a2cf
5 changed files with 19 additions and 22 deletions
|
@ -22,9 +22,7 @@
|
|||
|
||||
namespace gui2
|
||||
{
|
||||
|
||||
struct builder_grid;
|
||||
typedef std::shared_ptr<const builder_grid> builder_grid_const_ptr;
|
||||
|
||||
class grid;
|
||||
|
||||
|
@ -176,7 +174,7 @@ public:
|
|||
* @returns A reference to the newly created grid.
|
||||
*/
|
||||
virtual grid& create_item(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const string_map& item_data,
|
||||
const std::function<void(widget&)>& callback)
|
||||
= 0;
|
||||
|
@ -200,7 +198,7 @@ public:
|
|||
*/
|
||||
virtual grid&
|
||||
create_item(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const std::map<std::string /* widget id */, string_map>& data,
|
||||
const std::function<void(widget&)>& callback) = 0;
|
||||
|
||||
|
@ -220,7 +218,7 @@ public:
|
|||
* in the grid is (de)selected.
|
||||
*/
|
||||
virtual void create_items(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const std::vector<string_map>& data,
|
||||
const std::function<void(widget&)>& callback)
|
||||
= 0;
|
||||
|
@ -242,7 +240,7 @@ public:
|
|||
*/
|
||||
virtual void create_items(
|
||||
const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const std::vector<std::map<std::string /*widget id*/, string_map>>&
|
||||
data,
|
||||
const std::function<void(widget&)>& callback) = 0;
|
||||
|
|
|
@ -714,7 +714,7 @@ public:
|
|||
|
||||
/** Inherited from generator_base. */
|
||||
grid& create_item(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const string_map& item_data,
|
||||
const std::function<void(widget&)>& callback) override
|
||||
{
|
||||
|
@ -726,15 +726,14 @@ public:
|
|||
|
||||
/** Inherited from generator_base. */
|
||||
grid& create_item(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const std::map<std::string /* widget id */, string_map>& item_data,
|
||||
const std::function<void(widget&)>& callback) override
|
||||
{
|
||||
assert(list_builder);
|
||||
assert(index == -1 || static_cast<unsigned>(index) <= items_.size());
|
||||
|
||||
child* item = new child;
|
||||
list_builder->build(&item->child_grid);
|
||||
list_builder.build(&item->child_grid);
|
||||
|
||||
init(&item->child_grid, item_data, callback);
|
||||
|
||||
|
@ -757,7 +756,7 @@ public:
|
|||
|
||||
/** Inherited from generator_base. */
|
||||
virtual void create_items(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const std::vector<std::map<std::string /*widget id*/, string_map>>& data,
|
||||
const std::function<void(widget&)>& callback) override
|
||||
{
|
||||
|
@ -766,7 +765,7 @@ public:
|
|||
|
||||
/** Inherited from generator_base. */
|
||||
virtual void create_items(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const std::vector<string_map>& data,
|
||||
const std::function<void(widget&)>& callback) override
|
||||
{
|
||||
|
@ -1072,7 +1071,7 @@ private:
|
|||
*/
|
||||
template<class T>
|
||||
void impl_create_items(const int index,
|
||||
builder_grid_const_ptr list_builder,
|
||||
const builder_grid& list_builder,
|
||||
const std::vector<T>& data,
|
||||
const std::function<void(widget&)>& callback)
|
||||
{
|
||||
|
|
|
@ -67,7 +67,7 @@ listbox::listbox(const implementation::builder_styled_widget& builder,
|
|||
grid& listbox::add_row(const string_map& item, const int index)
|
||||
{
|
||||
assert(generator_);
|
||||
grid& row = generator_->create_item(index, list_builder_, item, std::bind(&listbox::list_item_clicked, this, _1));
|
||||
grid& row = generator_->create_item(index, *list_builder_, item, std::bind(&listbox::list_item_clicked, this, _1));
|
||||
|
||||
resize_content(row);
|
||||
|
||||
|
@ -77,7 +77,7 @@ grid& listbox::add_row(const string_map& item, const int index)
|
|||
grid& listbox::add_row(const std::map<std::string /* widget id */, string_map>& data, const int index)
|
||||
{
|
||||
assert(generator_);
|
||||
grid& row = generator_->create_item(index, list_builder_, data, std::bind(&listbox::list_item_clicked, this, _1));
|
||||
grid& row = generator_->create_item(index, *list_builder_, data, std::bind(&listbox::list_item_clicked, this, _1));
|
||||
|
||||
resize_content(row);
|
||||
|
||||
|
@ -582,7 +582,7 @@ void listbox::finalize(builder_grid_const_ptr header,
|
|||
swap_grid(&get_grid(), content_grid(), footer->build(), "_footer_grid");
|
||||
}
|
||||
|
||||
generator_->create_items(-1, list_builder_, list_data, std::bind(&listbox::list_item_clicked, this, _1));
|
||||
generator_->create_items(-1, *list_builder_, list_data, std::bind(&listbox::list_item_clicked, this, _1));
|
||||
swap_grid(nullptr, content_grid(), generator_, "_list_grid");
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ multi_page::multi_page(const implementation::builder_multi_page& builder)
|
|||
grid& multi_page::add_page(const string_map& item)
|
||||
{
|
||||
assert(generator_);
|
||||
grid& page = generator_->create_item(-1, page_builders_.begin()->second, item, nullptr);
|
||||
grid& page = generator_->create_item(-1, *page_builders_.begin()->second, item, nullptr);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
@ -53,14 +53,14 @@ grid& multi_page::add_page(const std::string& type, int insert_pos, const string
|
|||
assert(generator_);
|
||||
auto it_builder = page_builders_.find(type);
|
||||
VALIDATE(it_builder != page_builders_.end(), "invalid page type '" + type + "'");
|
||||
return generator_->create_item(insert_pos, it_builder->second, item, nullptr);
|
||||
return generator_->create_item(insert_pos, *it_builder->second, item, nullptr);
|
||||
}
|
||||
|
||||
grid& multi_page::add_page(
|
||||
const std::map<std::string /* widget id */, string_map>& data)
|
||||
{
|
||||
assert(generator_);
|
||||
grid& page = generator_->create_item(-1, page_builders_.begin()->second, data, nullptr);
|
||||
grid& page = generator_->create_item(-1, *page_builders_.begin()->second, data, nullptr);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ grid& multi_page::add_page(
|
|||
assert(generator_);
|
||||
auto it_builder = page_builders_.find(type);
|
||||
VALIDATE(it_builder != page_builders_.end(), "invalid page type '" + type + "'");
|
||||
return generator_->create_item(insert_pos, it_builder->second, data, nullptr);
|
||||
return generator_->create_item(insert_pos, *it_builder->second, data, nullptr);
|
||||
}
|
||||
|
||||
void multi_page::remove_page(const unsigned page, unsigned count)
|
||||
|
@ -143,7 +143,7 @@ unsigned multi_page::get_state() const
|
|||
void multi_page::finalize(const std::vector<string_map>& page_data)
|
||||
{
|
||||
assert(generator_);
|
||||
generator_->create_items(-1, page_builders_.begin()->second, page_data, nullptr);
|
||||
generator_->create_items(-1, *page_builders_.begin()->second, page_data, nullptr);
|
||||
swap_grid(nullptr, &get_grid(), generator_, "_content_grid");
|
||||
}
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ stacked_widget::finalize(std::vector<builder_grid_const_ptr> widget_builder)
|
|||
string_map empty_data;
|
||||
for(const auto & builder : widget_builder)
|
||||
{
|
||||
generator_->create_item(-1, builder, empty_data, nullptr);
|
||||
generator_->create_item(-1, *builder, empty_data, nullptr);
|
||||
}
|
||||
swap_grid(nullptr, &get_grid(), generator_, "_content_grid");
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue