void GUIManager::populateDatalists ( std::vector<DataManager *> const & list ) { CEGUI::WindowManager & wm = CEGUI::WindowManager::getSingleton(); auto populate = [&]( std::string const & name, DataManagerType const & type ) { CEGUI::Listbox *lb = static_cast<CEGUI::Listbox *>(wm.getWindow( "Sheet/DatasetFrame/TabControl/"+name+"/Listbox")); unsigned int i = 0; for (DataManager *p : list) { if (p != NULL && p->type == type) { ListboxItem *item = new ListboxItem(p->name, i); item->setUserData(p); lb->addItem(item); } i++; } }; populate("HTab", DM_Height); populate("PTab", DM_Pattern); populate("CTab", DM_Color); }