aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/compbuck2.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/compbuck2.h')
-rw-r--r--Src/Wasabi/api/skin/widgets/compbuck2.h156
1 files changed, 156 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/compbuck2.h b/Src/Wasabi/api/skin/widgets/compbuck2.h
new file mode 100644
index 00000000..e08c8aa0
--- /dev/null
+++ b/Src/Wasabi/api/skin/widgets/compbuck2.h
@@ -0,0 +1,156 @@
+//PORTABLE
+#ifndef _COMPBUCK_H
+#define _COMPBUCK_H
+
+#include <api/wnd/wndclass/clickwnd.h>
+#include <api/skin/widgets/text.h>
+#include <api/wnd/wndclass/guiobjwnd.h>
+#include <api/service/svc_enum.h>
+#include <api/script/objects/guiobj.h>
+#include <api/service/svcs/svc_wndcreate.h>
+
+// {97AA3E4D-F4D0-4fa8-817B-0AF22A454983}
+static const GUID cbucketGuid =
+{ 0x97aa3e4d, 0xf4d0, 0x4fa8, { 0x81, 0x7b, 0xa, 0xf2, 0x2a, 0x45, 0x49, 0x83 } };
+
+#define COMPONENTBUCKET2_PARENT GuiObjectWnd
+#define COMPONENTBUCKET2_XMLPARENT GuiObjectWnd
+
+class CompBucketScriptController: public GuiObjectScriptController {
+ public:
+
+ virtual const wchar_t *getClassName();
+ virtual const wchar_t *getAncestorClassName();
+ virtual ScriptObjectController *getAncestorController() { return guiController; }
+ virtual int getNumFunctions();
+ virtual const function_descriptor_struct *getExportedFunctions();
+ virtual GUID getClassGuid();
+ virtual ScriptObject *instantiate();
+ virtual void destroy(ScriptObject *o);
+ virtual void *encapsulate(ScriptObject *o);
+ virtual void deencapsulate(void *o);
+
+ private:
+
+ static function_descriptor_struct exportedFunction[];
+
+};
+
+extern CompBucketScriptController *cbucketController;
+
+class Layout;
+
+class ServiceWndHolder;
+
+class ComponentBucket2 : public COMPONENTBUCKET2_PARENT {
+public:
+ ComponentBucket2();
+ virtual ~ComponentBucket2();
+
+ virtual int onInit();
+ virtual int setXuiParam(int _xuihandle, int id, const wchar_t *name, const wchar_t *strval);
+
+/* virtual int getAutoHeight();
+ virtual int getAutoWidth();*/
+
+ virtual void timerCallback(int id);
+ virtual int childNotify(ifc_window *child, int msg, intptr_t p1, intptr_t p2);
+
+ virtual int onResize();
+ virtual void setLMargin(int i);
+ virtual void setRMargin(int i);
+ virtual void setSpacing(int i);
+ virtual int getLMargin(void);
+ virtual int getRMargin(void);
+ virtual int getSpacing(void);
+
+ void next_page();
+ void prev_page();
+ void next_down();
+ void next_up();
+ void prev_down();
+ void prev_up();
+ static void next_down(Group *l); // next_down on all compbucks in this group
+ static void next_up(Group *l); // next_up on all compbucks in this group
+ static void prev_down(Group *l); // prev_down on all compbucks in this group
+ static void prev_up(Group *l); // prev_up on all compbucks in this group
+ static void prev_page(Group *l); // prev_down on all compbucks in this group
+ static void next_page(Group *l); // prev_up on all compbucks in this group
+
+ void setText(const wchar_t *txt);
+ static void setText(ifc_window *cb , const wchar_t *txt); // set this text for this compbuck's rootwnd
+
+ static void registerText(Text *t, const wchar_t *id=NULL); // id=NULL => register for all compbucks in this group
+ static void unRegisterText(Text *t, const wchar_t *id=NULL); // id=NULL => unregister for all compbucks in this group
+
+ static ComponentBucket2 *getComponentBucket(const wchar_t *cb);
+
+ int getMaxWidth();
+ int getMaxHeight();
+ void setVertical(int v);
+ void setScroll(int v);
+ int getScroll();
+ int getNumChildren();
+ GuiObject *enumChildren(int i);
+
+protected:
+/*static */void CreateXMLParameters(int master_handle);
+ enum {
+ COMPBUCK_LEFTMARGIN=0,
+ COMPBUCK_RIGHTMARGIN,
+ COMPBUCK_SPACING,
+ COMPBUCK_VERTICAL,
+ COMPBUCK_WNDTYPE,
+ };
+
+private:
+
+ void load();
+ void addItems(svc_windowCreate *wc);
+ void doRegisterText(Text *t);
+ void doUnregisterText(Text *t);
+
+ int timeron;
+ static PtrList<ComponentBucket2> cblist;
+ PtrList<Text> txtlist;
+ StringW id;
+ PtrList<ServiceWndHolder> myclients;
+ int lmargin;
+ int rmargin;
+ int spacing;
+
+ int xscroll;
+ int direction;
+ int timerset;
+
+ void startScrollTimer();
+ void stopScrollTimer();
+ uint32_t lastticcount;
+ int vertical;
+ int xuihandle;
+ static XMLParamPair params[];
+ StringW wndtype;
+
+ uint32_t scrollpage_starttime;
+ int scrollpage_timerset;
+ int scrollpage_start;
+ int scrollpage_target;
+ int scrollpage_speed;
+
+public:
+
+ static scriptVar script_vcpu_fake(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+ static scriptVar script_vcpu_getMaxWidth(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+ static scriptVar script_vcpu_getMaxHeight(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+ static scriptVar script_vcpu_getScroll(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+ static scriptVar script_vcpu_setScroll(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar v);
+ static scriptVar script_vcpu_getNumChildren(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+ static scriptVar script_vcpu_enumChildren(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar v);
+};
+
+extern const wchar_t componentBucketXuiObjectStr[];
+extern char componentBucketXuiSvcName[];
+class ComponentBucketXuiSvc : public XuiObjectSvc<ComponentBucket2, componentBucketXuiObjectStr, componentBucketXuiSvcName> {};
+
+
+#endif