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