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_MOVE_HPP
00026 #define CTRL_MOVE_HPP
00027
00028 #include "../commands/cmd_generic.hpp"
00029 #include "../utils/fsm.hpp"
00030 #include "ctrl_flat.hpp"
00031
00032 class TopWindow;
00033 class WindowManager;
00034
00035
00037 class CtrlMove: public CtrlFlat
00038 {
00039 public:
00040 CtrlMove( intf_thread_t *pIntf, WindowManager &rWindowManager,
00041 CtrlFlat &rCtrl, TopWindow &rWindow,
00042 const UString &rHelp, VarBool *pVisible );
00043 virtual ~CtrlMove() {}
00044
00046 virtual void handleEvent( EvtGeneric &rEvent );
00047
00049 virtual bool mouseOver( int x, int y ) const;
00050
00052 virtual void draw( OSGraphics &rImage, int xDest, int yDest );
00053
00055 virtual void setLayout( GenericLayout *pLayout,
00056 const Position &rPosition );
00057
00059 virtual const Position *getPosition() const;
00060
00062 virtual string getType() const { return m_rCtrl.getType(); }
00063
00064 private:
00065 FSM m_fsm;
00067 WindowManager &m_rWindowManager;
00069 CtrlFlat &m_rCtrl;
00071 TopWindow &m_rWindow;
00073 EvtGeneric *m_pEvt;
00075 int m_xPos, m_yPos;
00076
00078 DEFINE_CALLBACK( CtrlMove, MovingMoving )
00079 DEFINE_CALLBACK( CtrlMove, StillMoving )
00080 DEFINE_CALLBACK( CtrlMove, MovingStill )
00081 };
00082
00083 #endif