aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/groupclickwnd.h
diff options
context:
space:
mode:
authorJean-Francois Mauguit <jfmauguit@mac.com>2024-09-24 09:03:25 -0400
committerGitHub <noreply@github.com>2024-09-24 09:03:25 -0400
commitbab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/skin/widgets/groupclickwnd.h
parent4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff)
parent20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff)
downloadwinamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz
Merge pull request #5 from WinampDesktop/community
Merge to main
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