00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef CTRL_BUTTON_HPP
00026 #define CTRL_BUTTON_HPP
00027
00028 #include "ctrl_generic.hpp"
00029 #include "../utils/fsm.hpp"
00030
00031 class GenericBitmap;
00032 class OSGraphics;
00033 class CmdGeneric;
00034
00035
00037 class CtrlButton: public CtrlGeneric
00038 {
00039 public:
00041 CtrlButton( intf_thread_t *pIntf, const GenericBitmap &rBmpUp,
00042 const GenericBitmap &rBmpOver,
00043 const GenericBitmap &rBmpDown,
00044 CmdGeneric &rCommand, const UString &rTooltip,
00045 const UString &rHelp, VarBool *pVisible );
00046
00047 virtual ~CtrlButton();
00048
00050 virtual void handleEvent( EvtGeneric &rEvent );
00051
00053 virtual bool mouseOver( int x, int y ) const;
00054
00056 virtual void draw( OSGraphics &rImage, int xDest, int yDest );
00057
00059 virtual UString getTooltipText() const { return m_tooltip; }
00060
00062 virtual string getType() const { return "button"; }
00063
00064 private:
00066 FSM m_fsm;
00068 CmdGeneric &m_rCommand;
00070 const UString m_tooltip;
00072 OSGraphics *m_pImgUp, *m_pImgOver, *m_pImgDown;
00074 OSGraphics *m_pImg;
00075
00077 DEFINE_CALLBACK( CtrlButton, UpOverDownOver )
00078 DEFINE_CALLBACK( CtrlButton, DownOverUpOver )
00079 DEFINE_CALLBACK( CtrlButton, DownOverDown )
00080 DEFINE_CALLBACK( CtrlButton, DownDownOver )
00081 DEFINE_CALLBACK( CtrlButton, UpOverUp )
00082 DEFINE_CALLBACK( CtrlButton, UpUpOver )
00083 DEFINE_CALLBACK( CtrlButton, DownUp )
00084 DEFINE_CALLBACK( CtrlButton, UpHidden )
00085 DEFINE_CALLBACK( CtrlButton, HiddenUp )
00086 };
00087
00088
00089 #endif