ctrl_button.hpp
Go to the documentation of this file.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 #include "../src/anim_bitmap.hpp"
00031
00032 class GenericBitmap;
00033 class CmdGeneric;
00034
00035
00036
00037 class CtrlButton: public CtrlGeneric, public Observer<AnimBitmap>
00038 {
00039 public:
00040
00041 CtrlButton( intf_thread_t *pIntf, const GenericBitmap &rBmpUp,
00042 const GenericBitmap &rBmpOver, const GenericBitmap &rBmpDown,
00043 CmdGeneric &rCommand, const UString &rTooltip,
00044 const UString &rHelp, VarBool *pVisible );
00045
00046 virtual ~CtrlButton();
00047
00048
00049 virtual void setLayout( GenericLayout *pLayout,
00050 const Position &rPosition );
00051 virtual void unsetLayout();
00052
00053
00054 virtual void handleEvent( EvtGeneric &rEvent );
00055
00056
00057 virtual bool mouseOver( int x, int y ) const;
00058
00059
00060 virtual void draw( OSGraphics &rImage, int xDest, int yDest );
00061
00062
00063 virtual UString getTooltipText() const { return m_tooltip; }
00064
00065
00066 virtual string getType() const { return "button"; }
00067
00068 private:
00069
00070 FSM m_fsm;
00071
00072 CmdGeneric &m_rCommand;
00073
00074 const UString m_tooltip;
00075
00076 AnimBitmap m_imgUp, m_imgOver, m_imgDown;
00077
00078 AnimBitmap *m_pImg;
00079
00080
00081 DEFINE_CALLBACK( CtrlButton, UpOverDownOver )
00082 DEFINE_CALLBACK( CtrlButton, DownOverUpOver )
00083 DEFINE_CALLBACK( CtrlButton, DownOverDown )
00084 DEFINE_CALLBACK( CtrlButton, DownDownOver )
00085 DEFINE_CALLBACK( CtrlButton, UpOverUp )
00086 DEFINE_CALLBACK( CtrlButton, UpUpOver )
00087 DEFINE_CALLBACK( CtrlButton, DownUp )
00088 DEFINE_CALLBACK( CtrlButton, UpHidden )
00089 DEFINE_CALLBACK( CtrlButton, HiddenUp )
00090
00091
00092 void setImage( AnimBitmap *pImg );
00093
00094
00095 virtual void onUpdate( Subject<AnimBitmap> &rBitmap, void* );
00096
00097
00098 virtual void onUpdate( Subject<VarBool> &rVariable , void* );
00099
00100 };
00101
00102
00103 #endif