winamp/Src/Wasabi/api/skin/widgets/groupclickwnd.h
2024-09-24 14:54:57 +02:00

227 lines
2.9 KiB
C++

/* 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