void tlistbox::finalize(tbuilder_grid_const_ptr header, tbuilder_grid_const_ptr footer, const std::vector<string_map>& list_data) { // "Inherited." tscrollbar_container::finalize_setup(); assert(generator_); if(header) { swap_grid(&grid(), content_grid(), header->build(), "_header_grid"); } tgrid& p = find_widget<tgrid>(this, "_header_grid", false); for(unsigned i = 0, max = std::max(p.get_cols(), p.get_rows()); i < max; ++i) { if(tselectable_* selectable = find_widget<tselectable_>(&p, "sort_" + std::to_string(i), false, false)) { selectable->set_callback_state_change(std::bind(&tlistbox::order_by_column, this, i, _1)); if(orders_.size() < max ) { orders_.resize(max); } orders_[i].first = selectable; } } if(footer) { swap_grid(&grid(), content_grid(), footer->build(), "_footer_grid"); } generator_->create_items( -1, list_builder_, list_data, callback_list_item_clicked); swap_grid(nullptr, content_grid(), generator_, "_list_grid"); }
void tmulti_page::finalize( const std::vector<string_map>& page_data) { assert(generator_); generator_->create_items(-1, page_builder_, page_data, NULL); swap_grid(NULL, &grid(), generator_, "_content_grid"); }
void listbox::finalize(builder_grid_const_ptr header, builder_grid_const_ptr footer, const std::vector<std::map<std::string, string_map>>& list_data) { // "Inherited." scrollbar_container::finalize_setup(); assert(generator_); if(header) { swap_grid(&get_grid(), content_grid(), header->build(), "_header_grid"); } grid& p = find_widget<grid>(this, "_header_grid", false); for(unsigned i = 0, max = std::max(p.get_cols(), p.get_rows()); i < max; ++i) { // // TODO: I had to change this to case to a toggle_button in order to use a signal handler. // Should probably look into a way to make it more general like it was before (used to be // cast to selectable_item). // // - vultraz, 2017-08-23 // if(toggle_button* selectable = find_widget<toggle_button>(&p, "sort_" + std::to_string(i), false, false)) { // Register callback to sort the list. connect_signal_notify_modified(*selectable, std::bind(&listbox::order_by_column, this, i, _1)); if(orders_.size() < max) { orders_.resize(max); } orders_[i].first = selectable; } } if(footer) { 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)); swap_grid(nullptr, content_grid(), generator_, "_list_grid"); }
void tlistbox::finalize(tbuilder_grid_const_ptr header, tbuilder_grid_const_ptr footer, const std::vector<string_map>& list_data) { // "Inherited." tscrollbar_container::finalize_setup(); assert(generator_); if(header) { swap_grid(&grid(), content_grid(), header->build(), "_header_grid"); } if(footer) { swap_grid(&grid(), content_grid(), footer->build(), "_footer_grid"); } generator_->create_items( -1, list_builder_, list_data, callback_list_item_clicked); swap_grid(NULL, content_grid(), generator_, "_list_grid"); }
void stacked_widget::finalize(std::vector<builder_grid_const_ptr> widget_builder) { assert(generator_); string_map empty_data; for(const auto & builder : widget_builder) { generator_->create_item(-1, builder, empty_data, nullptr); } swap_grid(nullptr, &get_grid(), generator_, "_content_grid"); select_layer(-1); }