154 lines
3.9 KiB
C++
154 lines
3.9 KiB
C++
#if defined(__FLAT__)
|
|
#ifndef _COMMON_PROGRESS_HPP_
|
|
#define _COMMON_PROGRESS_HPP_
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
#ifndef _COMMON_FONT_HPP_
|
|
#include <common/font.hpp>
|
|
#endif
|
|
#ifndef _COMMON_COMMCTRL_HPP_
|
|
#include <common/commctrl.hpp>
|
|
#endif
|
|
#ifndef _COMMON_ICONFRAME_HPP_
|
|
#include <common/iconfrm.hpp>
|
|
#endif
|
|
#ifndef _COMMON_MMTIMER_HPP_
|
|
#include <common/mmtimer.hpp>
|
|
#endif
|
|
#ifndef _COMMON_WINDOW_HPP_
|
|
#include <common/window.hpp>
|
|
#endif
|
|
|
|
class Progress : public Window, private MMTimer
|
|
{
|
|
public:
|
|
Progress(GUIWindow &parentWindow);
|
|
Progress(GUIWindow &parentWindow,String captionString);
|
|
Progress(GUIWindow &parentWindow,String captionString,Block<String> &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<String> &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<Progress> mControlColorHandler;
|
|
Callback<Progress> mPaintHandler;
|
|
Callback<Progress> mCreateHandler;
|
|
Callback<Progress> mTimerHandler;
|
|
Callback<Progress> 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
|
|
|