aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/groupwndcreate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/skin/groupwndcreate.cpp')
-rw-r--r--Src/Wasabi/api/skin/groupwndcreate.cpp51
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;