Exemplo n.º 1
0
Widget::WidgetsList Widget::GetWidgetsByClass( const std::string& class_name ) {
	WidgetsList result;

	for( const auto& root_widget : root_widgets ) {
		if( root_widget->GetClass() == class_name ) {
			result.push_back( root_widget->shared_from_this() );
		}

		auto container = std::dynamic_pointer_cast<Container>(
			root_widget->shared_from_this()
		);

		if( container ) {
			auto container_result = SearchContainerForClass( container, class_name );

			// Splice the 2 vectors.
			if( !container_result.empty() ) {
				result.reserve( container_result.size() );
				result.insert( result.end(), container_result.begin(), container_result.end() );
			}
		}
	}

	return result;
}
Exemplo n.º 2
0
void Description::deleteWidgets()
{
    for (WidgetsList::iterator i = widgets.begin(); 
            i != widgets.end(); i++)
        area.remove(*i);
    widgets.clear();
}
Exemplo n.º 3
0
void ListBox::sortItems()
{
  WidgetsList widgets = getChildren();
  std::sort(widgets.begin(), widgets.end(), &sort_by_text);

  // Remove all children and add then again.
  removeAllChildren();
  for (Widget* child : widgets)
    addChild(child);
}
Exemplo n.º 4
0
void Workspace::updateTabs()
{
  WidgetsList children = this->children();
  while (!children.empty()) {
    Widget* child = children.back();
    children.erase(--children.end());

    if (child->type() == WorkspacePanel::Type())
      static_cast<WorkspacePanel*>(child)->tabs()->updateTabs();

    for (auto subchild : child->children())
      children.push_back(subchild);
  }
}