void dialog_view_callback(twidget& caller) { D* dialog = dynamic_cast<D*>(caller.dialog()); assert(dialog); twindow* window = dynamic_cast<twindow*>(caller.get_window()); assert(window); (*(dialog->get_view()).*fptr)(*window); }
void tlistbox::resize_content(const twidget& row) { if(row.get_visible() == tvisible::invisible) { return; } DBG_GUI_L << LOG_HEADER << " current size " << content_grid()->get_size() << " row size " << row.get_best_size() << ".\n"; const tpoint content = content_grid()->get_size(); tpoint size = row.get_best_size(); if(size.x < content.x) { size.x = 0; } else { size.x -= content.x; } resize_content(size.x, size.y); }
explicit tbottom_up(twidget& root) : root_(root.create_walker()), stack_() { TST_GUI_I << "Constructor: "; while(!tvisit_child::at_end(*root_)) { stack_.push_back(root_); root_ = tvisit_child::get(*root_)->create_walker(); TST_GUI_I << " Down widget '" << operator*().id() << "'."; } if(!at_end()) { TST_GUI_I << " Finished at '" << operator*().id() << "'.\n"; } else { TST_GUI_I << " Finished at the end.\n"; } }
bool tdispatcher::fire(const tevent event , twidget& target , void*) { /** * @todo The firing needs some polishing. * * Make sure the events can't be added to pre and post chain since they are * not used. */ // Fire it here directly since we need special handling. bool handled = false; bool halt = false; if(target.has_event(event, child)) { tsignal<tsignal_notification_function>& signal = target.signal_notification_queue_.queue[event]; for(std::vector<tsignal_notification_function>::iterator itor = signal.child.begin(); itor != signal.child.end(); ++itor) { (*itor)(*this, event, handled, halt, NULL); if(halt) { assert(handled); break; } } } return handled; }
explicit ttop_down(twidget& root) : root_(root.create_walker()), stack_() { }
void dialog_view_callback(twidget& caller) { D* dialog = dynamic_cast<D*>(caller.dialog()); assert(dialog); (*(dialog->get_view()).*fptr)(); }