aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/groupclickwnd.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/groupclickwnd.h')
-rw-r--r--Src/Wasabi/api/skin/widgets/groupclickwnd.h226
1 files changed, 226 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/groupclickwnd.h b/Src/Wasabi/api/skin/widgets/groupclickwnd.h
new file mode 100644
index 00000000..591f0c7c
--- /dev/null
+++ b/Src/Wasabi/api/skin/widgets/groupclickwnd.h
@@ -0,0 +1,226 @@
+/* This class simulates a very basic button thru the use of a group. the group needs to have a guiobject (ie: a transparent layer)
+ with id "mousetrap" on top of the rest of its content. */
+
+#ifndef __GROUPCLICKWND_H
+#define __GROUPCLICKWND_H
+
+#include <api/wnd/wndclass/guiobjwnd.h>
+#include <api/script/objects/c_script/h_guiobject.h>
+
+class MouseTrap;
+
+
+/**
+ Class
+
+ @short
+ @author Nullsoft
+ @ver 1.0
+ @see
+*/
+class GroupClickWnd : public GuiObjectWnd {
+
+ public:
+
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ GroupClickWnd();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual ~GroupClickWnd();
+
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void content_onLeftButtonDown();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void content_onLeftButtonUp();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void content_onRightButtonDown();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void content_onRightButtonUp();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void content_onEnterArea();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void content_onLeaveArea();
+
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void groupclick_onLeftPush();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void groupclick_onRightPush();
+
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void abstract_onNewContent();
+
+ private:
+
+ int inarea;
+ MouseTrap *trap;
+};
+
+
+/**
+ Class
+
+ @short
+ @author Nullsoft
+ @ver 1.0
+ @see
+*/
+class MouseTrap : public H_GuiObject {
+ public:
+
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ MouseTrap(GroupClickWnd *w, ScriptObject *obj) : H_GuiObject(obj), window(w) { }
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual ~MouseTrap() {}
+
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void hook_onLeftButtonDown(int x, int y);
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void hook_onLeftButtonUp(int x, int y);
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void hook_onRightButtonDown(int x, int y);
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void hook_onRightButtonUp(int x, int y);
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void hook_onEnterArea();
+
+ /**
+ Method
+
+ @see
+ @ret
+ @param
+ */
+ virtual void hook_onLeaveArea();
+
+ private:
+
+ GroupClickWnd *window;
+};
+
+
+#endif