wmi_container::wmi_container(const wmi_container& container) : wml_menu_items_() { clear_wmi(); std::map<std::string, wml_menu_item*>::const_iterator itor; for (itor = container.wml_menu_items_.begin(); itor != container.wml_menu_items_.end(); ++itor) { wml_menu_item*& mref = wml_menu_items_[itor->first]; mref = new wml_menu_item(*(itor->second)); } }
void wmi_container::set_menu_items(const config& cfg){ clear_wmi(); BOOST_FOREACH(const config &item, cfg.child_range("menu_item")) { if(!item.has_attribute("id")){ continue; } std::string id = item["id"]; wml_menu_item*& mref = wml_menu_items_[id]; if(mref == NULL) { mref = new wml_menu_item(id, &item); } else { WRN_NG << "duplicate menu item (" << id << ") while loading from config\n"; } } }
~wmi_container() { clear_wmi(); }