#if defined(__FLAT__) #ifndef _COMMON_PROGRESS_HPP_ #define _COMMON_PROGRESS_HPP_ #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_FONT_HPP_ #include #endif #ifndef _COMMON_COMMCTRL_HPP_ #include #endif #ifndef _COMMON_ICONFRAME_HPP_ #include #endif #ifndef _COMMON_MMTIMER_HPP_ #include #endif #ifndef _COMMON_WINDOW_HPP_ #include #endif class Progress : public Window, private MMTimer { public: Progress(GUIWindow &parentWindow); Progress(GUIWindow &parentWindow,String captionString); Progress(GUIWindow &parentWindow,String captionString,Block &iconNames); virtual ~Progress(); WORD operator++(void); WORD operator++(int postFixDummy); WORD operator+=(const String &messageString); WORD setPosition(DWORD position); WORD setText(const String &messageString); WORD getText(String &messageString); WORD setCaption(const String &captionString); WORD range(DWORD itemCount); DWORD itemIndex(void)const; WORD reset(void); void show(WORD onOff); WORD canCancel(void)const; void canCancel(WORD canCancel); WORD isOkay(void)const; private: enum{ProgressBarID=0x10,StaticTextID=0x11}; enum{bkRed=192,bkGreen=192,bkBlue=192}; enum{PWcx=280,PWcy=100}; enum{PCx=5,PCy=40,PCcx=265,PCcy=15}; enum{SCx=5,SCy=60,SCcx=265,SCcy=18}; enum{FullRange=100,EscapeKey=27}; enum MsgType{SetRange=PBM_SETRANGE,SetPos=PBM_SETPOS,DeltaPos=PBM_DELTAPOS,SetStep=PBM_SETSTEP,StepIt=PBM_STEPIT}; Progress(const Progress &someProgress); Progress &operator=(const Progress &someProgress); void progressMessage(MsgType msgType,WPARAM wParam,LPARAM lParam=0L); void staticMessage(const String &messageString); void registerClass(void); void createWindow(void); void createControls(void); void destroyControls(void); void insertHandlers(void); void removeHandlers(void); void initialPoint(const GUIWindow &parentWindow); void insertIcons(Block &iconNames); void shutdown(void); CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType controlColorHandler(CallbackData &someCallbackData); CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); CallbackData::ReturnType timerHandler(CallbackData &someCallbackData); CallbackData::ReturnType charHandler(CallbackData &someCallbackData); static char szClassName[]; static char szFontName[]; Callback mControlColorHandler; Callback mPaintHandler; Callback mCreateHandler; Callback mTimerHandler; Callback mCharHandler; HWND mhParentWindow; HINSTANCE mhProcessInstance; Point mInitialPoint; String mClassName; String mCaptionString; HWND mhProgressControl; HWND mhStaticControl; HBRUSH mhBrush; Font mFont; DWORD mItemIndex; DWORD mItemCount; WORD mCanCancel; IconFrame mIconFrame; }; inline Progress::Progress(const Progress &/*someProgress*/) { // no implementation } inline Progress &Progress::operator=(const Progress &/*someProgress*/) { // no implementation return *this; } inline WORD Progress::operator++(int /*postFixDummy*/) { return ++(*this); } inline void Progress::progressMessage(MsgType msgType,WPARAM wParam,LPARAM lParam) { ::SendMessage(mhProgressControl,msgType,wParam,lParam); } inline void Progress::staticMessage(const String &messageString) { sendMessage(mhStaticControl,WM_SETTEXT,0,(LONG)(LPSTR)messageString); } inline WORD Progress::setCaption(const String &captionString) { return sendMessage(*this,WM_SETTEXT,0,(LONG)(LPSTR)captionString); } inline DWORD Progress::itemIndex(void)const { return mItemIndex; } inline WORD Progress::canCancel(void)const { return mCanCancel; } inline void Progress::canCancel(WORD canCancel) { mCanCancel=canCancel; } inline WORD Progress::isOkay(void)const { return ((HWND)*this&&mhProgressControl&&mhStaticControl); } #endif #endif