diff options
Diffstat (limited to 'Src/Wasabi/api/skin/groupwndcreate.cpp')
-rw-r--r-- | Src/Wasabi/api/skin/groupwndcreate.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/groupwndcreate.cpp b/Src/Wasabi/api/skin/groupwndcreate.cpp new file mode 100644 index 00000000..adf5daa6 --- /dev/null +++ b/Src/Wasabi/api/skin/groupwndcreate.cpp @@ -0,0 +1,51 @@ +#include <precomp.h> + +#include "groupwndcreate.h" + +#include <api/skin/guitree.h> +#include <api/skin/groupmgr.h> + +// 5/15/2002, removed serving of groups by guid xui param, guid is 'non-overriden window guaranteed', groupid is 'allow override implicitly' + +/*int GroupWndCreateSvc::testGuid(GUID g) { + return (GuiTree::getGroupDef(g) >= 0); +} + +api_window *GroupWndCreateSvc::createWindowByGuid(GUID g, api_window *parent) { + int n = GuiTree::getGroupDef(g); + if (n < 0) return NULL; + + return createGuiTreeItem(n, parent); +}*/ + +ifc_window *GroupWndCreateSvc::createWindowOfType(const wchar_t *windowtype, ifc_window *parent, int i) +{ + SkinItem *item = guiTree->enumGroupDefOfType(windowtype, i); + if (item == NULL) return NULL; + + return createGuiTreeItem(item, parent); +} + +ifc_window *GroupWndCreateSvc::createGuiTreeItem(SkinItem*item, ifc_window *parent) +{ + ifc_window *wnd = GroupMgr::instantiate(NULL, GROUP_GROUP, item); + if (!wnd) return NULL; + wnd->setParent(parent); + group_list.addItem(wnd); + num_group_list = group_list.getNumItems(); + return wnd; +} + +int GroupWndCreateSvc::destroyWindow(ifc_window *w) +{ + if (group_list.haveItem(w)) + { + group_list.removeItem(w); + WASABI_API_SKIN->group_destroy(w); + num_group_list = group_list.getNumItems(); + return 1; + } + return 0; +} + +int GroupWndCreateSvc::num_group_list = 0; |