#include "pluginstructure.h" skindesignerapi::cPluginStructure::cPluginStructure(void) { name = ""; libskindesignerAPIVersion = "undefined"; id = -1; rootview = ""; }; skindesignerapi::cPluginStructure::~cPluginStructure(void) { for (map::iterator it = menus.begin(); it != menus.end(); it++) { delete (it->second).tokenContainer; } }; void skindesignerapi::cPluginStructure::RegisterMenu(int key, int type, string tpl, skindesignerapi::cTokenContainer *tk) { tk->CreateContainers(); sPlugMenu s; s.type = type; s.tplname = tpl; s.tokenContainer = tk; menus.insert(pair(key, s)); } skindesignerapi::cTokenContainer *skindesignerapi::cPluginStructure::GetMenuTokenContainer(int key) { map::iterator hit = menus.find(key); if (hit == menus.end()) return NULL; return hit->second.tokenContainer; } void skindesignerapi::cPluginStructure::RegisterRootView(string templateName) { rootview = templateName; } void skindesignerapi::cPluginStructure::RegisterSubView(int subView, string templateName) { subviews.insert(pair(subView, templateName)); } void skindesignerapi::cPluginStructure::RegisterViewElement(int view, int viewElement, string name, skindesignerapi::cTokenContainer *tk) { tk->CreateContainers(); sPlugViewElement ve; ve.id = viewElement; ve.viewId = view; ve.name = name; ve.tokenContainer = tk; viewelements.insert(pair(view, ve)); } void skindesignerapi::cPluginStructure::RegisterViewGrid(int view, int viewGrid, string name, skindesignerapi::cTokenContainer *tk) { tk->CreateContainers(); sPlugViewGrid vg; vg.id = viewGrid; vg.viewId = view; vg.name = name; vg.tokenContainer = tk; viewgrids.insert(pair(view, vg)); } void skindesignerapi::cPluginStructure::RegisterViewTab(int view, skindesignerapi::cTokenContainer *tk) { tk->CreateContainers(); viewtabs.insert(pair(view, tk)); } skindesignerapi::cTokenContainer *skindesignerapi::cPluginStructure::GetTokenContainerVE(int viewId, int veId) { pair::iterator, multimap::iterator> range; range = viewelements.equal_range(viewId); for (multimap::iterator it=range.first; it!=range.second; ++it) { sPlugViewElement *ve = &it->second; if (ve->id == veId) return ve->tokenContainer; } return NULL; } skindesignerapi::cTokenContainer *skindesignerapi::cPluginStructure::GetTokenContainerGE(int viewId, int geId) { pair::iterator, multimap::iterator> range; range = viewgrids.equal_range(viewId); for (multimap::iterator it=range.first; it!=range.second; ++it) { sPlugViewGrid *ge = &it->second; if (ge->id == geId) return ge->tokenContainer; } return NULL; } skindesignerapi::cTokenContainer *skindesignerapi::cPluginStructure::GetTokenContainerTab(int viewId) { map::iterator hit = viewtabs.find(viewId); if (hit == viewtabs.end()) return NULL; return hit->second; }