#ifndef _MIXER_GRAPHIC_HPP_ #define _MIXER_GRAPHIC_HPP_ #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _COMMON_FONT_HPP_ #include #endif #ifndef _COMMON_RECTANGLE_HPP_ #include #endif class ResBitmap; class DIBitmap; class PureDevice; class Graphic : public Window { public: Graphic(GUIWindow &parentWnd,const String &strBitmapName,UINT controlID,UINT extraStyles=0,const Rect &initRect=Rect(1,1,0,0),const Font &bannerFont=Font("Times New Roman",20,Font::PitchVariable|Font::FamilySwiss,Font::WeightNormal)); virtual ~Graphic(); BOOL setCaption(const String &captionString); const String &getCaption(void)const; WORD indent(void)const; void indent(WORD indent); const Rect &initRect(void)const; GUIWindow &getParent(void); protected: virtual void postPaint(PureDevice &pureDevice); private: enum {Indent=15}; Graphic &operator=(const Graphic &someGraphic); CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); CallbackData::ReturnType eraseBackgroundHandler(CallbackData &someCallbackData); void registerClass(void); void createWindow(GUIWindow &parentWindow,UINT controlID,UINT extraStyles); static char szClassName[]; Callback mCreateHandler; Callback mPaintHandler; Callback mDestroyHandler; Callback mSizeHandler; Callback mEraseBackgroundHandler; SmartPointer mRibbonBitmap; SmartPointer mDIBitmap; SmartPointer mPureDevice; GUIWindow &mParentWnd; String mCaptionString; Font mBannerFont; Rect mInitRect; WORD mxIndent; WORD myIndent; WORD myBorder; }; inline WORD Graphic::indent(void)const { return mxIndent; } inline void Graphic::indent(WORD indent) { mxIndent=indent; } inline GUIWindow &Graphic::getParent(void) { return mParentWnd; } inline const Rect &Graphic::initRect(void)const { return mInitRect; } #endif