#ifndef _COMMON_RUBBERCONTROL_HPP_ #define _COMMON_RUBBERCONTROL_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif class GUIWindow; class RubberControl { public: RubberControl(void); RubberControl(const RubberControl &someRubberControl); virtual ~RubberControl(); RubberControl &operator=(const RubberControl &someRubberControl); void initControl(GUIWindow &parentWindow); void moveControl(GUIWindow &parentWindow,int width,int height); void alignControl(GUIWindow &parentWindow); protected: virtual GUIWindow &controlWindow(void)=0; private: enum{Left,Top,Right,Bottom}; enum{VectorPoints=4}; void calcRatios(GUIWindow &parentWindow); void zeroInit(void); float mRatios[VectorPoints]; int mControlID; }; inline RubberControl::RubberControl(void) { zeroInit(); } inline RubberControl::RubberControl(const RubberControl &someRubberControl) { *this=someRubberControl; } inline RubberControl &RubberControl::operator=(const RubberControl &someRubberControl) { mRatios[Left]=someRubberControl.mRatios[Left]; mRatios[Top]=someRubberControl.mRatios[Top]; mRatios[Right]=someRubberControl.mRatios[Right]; mRatios[Bottom]=someRubberControl.mRatios[Bottom]; mControlID=someRubberControl.mControlID; return *this; } inline void RubberControl::initControl(GUIWindow &parentWindow) { calcRatios(parentWindow); } inline void RubberControl::alignControl(GUIWindow &parentWindow) { calcRatios(parentWindow); } inline void RubberControl::zeroInit(void) { mRatios[Left]=0.00; mRatios[Top]=0.00; mRatios[Right]=0.00; mRatios[Bottom]=0.00; mControlID=-1; } #endif