From 809fbda03c5014ba9cd361f5113d1d717cd41ea6 Mon Sep 17 00:00:00 2001 From: louis Date: Tue, 26 Jan 2016 18:32:38 +0100 Subject: Version 0.8.0 beta --- extensions/pluginmanager.h | 71 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 extensions/pluginmanager.h (limited to 'extensions/pluginmanager.h') diff --git a/extensions/pluginmanager.h b/extensions/pluginmanager.h new file mode 100644 index 0000000..399c1d8 --- /dev/null +++ b/extensions/pluginmanager.h @@ -0,0 +1,71 @@ +#ifndef __PLUGINMANAGER_H +#define __PLUGINMANAGER_H + +#include +#include +#include "libskindesignerapi/skindesignerapi.h" + +using namespace std; + +class cSDPluginManager { +private: + int lastId; + //plugin id --> plugin name + map < int, string > registeredPlugins; + //Basic Plugin Interface + //plugin id --> plugin definition + map < int, map < int, skindesignerapi::sPlugMenu > > pluginMenus; + map < int, map < int, skindesignerapi::sPlugMenu > >::iterator plugMenuIt; + //plugin id - menuId --> subviewid + map < int, map > subViewMapping; + + //Advanced Plugin Interface + //plugin id --> rootview templatename definition + map< int, string > rootviews; + map< int, string >::iterator rootViewsIt; + //plugin id --> subviewid /templatename definition + map< int, map< int, string > > subviews; + map< int, string> subviewsCurrent; + map< int, string>::iterator svIt; + bool subviewsfound; + //plugin id --> view id --> viewelement definition + map< int, multimap< int, skindesignerapi::sPlugViewElement > > viewelements; + pair::iterator, multimap::iterator> veRange; + multimap::iterator veIt; + //plugin id --> view id --> viewgrid definition + map< int, multimap< int, skindesignerapi::sPlugViewGrid > > viewgrids; + pair::iterator, multimap::iterator> gRange; + multimap::iterator gIt; + //plugin id --> view id --> tokencontainer of detailedview definition + map< int, map< int, skindesignerapi::cTokenContainer* > > viewtabs; +public: + cSDPluginManager(void); + ~cSDPluginManager(void); + void Reset(void); + //Basic Plugin Interface + void RegisterBasicPlugin(skindesignerapi::cPluginStructure *plugStructure); + int GetNumPluginMenus(void); + void InitPluginMenuIterator(void); + map *GetPluginMenus(string &name, int &id); + skindesignerapi::cTokenContainer *GetTokenContainer(int plugId, int plugMenuId); + void AddSubviewMapping(int plugId, int plugMenuId, int subViewId); + int GetSubviewId(int plugId, int plugMenuId); + //Advanced Plugin Interface + void RegisterAdvancedPlugin(skindesignerapi::cPluginStructure *plugStructure); + void InitPluginViewIterator(void); + bool GetNextPluginView(string &plugName, int &plugId, string &tplName); + int GetNumSubviews(int plugId); + void InitPluginSubviewIterator(int plugId); + bool GetNextSubView(int &id, string &tplname); + int GetNumViewElements(int plugId, int viewId); + void InitViewElementIterator(int plugId, int viewId); + bool GetNextViewElement(int &veId, string &veName); + skindesignerapi::cTokenContainer *GetTokenContainerVE(int plugId, int viewId, int veId); + int GetNumViewGrids(int plugId, int viewId); + void InitViewGridIterator(int plugId, int viewId); + bool GetNextViewGrid(int &gId, string &gName); + skindesignerapi::cTokenContainer *GetTokenContainerGE(int plugId, int viewId, int gId); + skindesignerapi::cTokenContainer *GetTokenContainerTab(int plugId, int viewId); +}; + +#endif //__PLUGINMANAGER_H \ No newline at end of file -- cgit v1.2.3