00001 00036 #ifndef INC_MGUI_DLGSTATUS_H 00037 #define INC_MGUI_DLGSTATUS_H 00038 00039 #ifndef INC_MGUI_DLGSHELL_H 00040 #include <mgui/dlgshell.h> 00041 #endif 00042 00043 #ifndef INC_MGUI_CANVAS_H 00044 #include <mgui/canvas.h> 00045 #endif 00046 00047 #ifndef INC_MGUI_TIMER_H 00048 #include <mgui/timer.h> 00049 #endif 00050 00051 #ifndef INC_MI32_MISTATUS_H 00052 #include <mi32/mistatus.h> 00053 #endif 00054 00055 namespace MGUI { 00056 //===================================================================================================================== 00057 00058 class DLG_STATUS : public MISTATUSLOGGER, private MGUI::DLGSHELL { 00059 public: 00060 00062 enum DLGSTYLE { 00063 DLGSTYLE_Default = 0x0000, 00064 DLGSTYLE_DisableCancel = 0x0001, 00065 DLGSTYLE_DelayPopup = 0x0002, 00066 DLGSTYLE_EnableThreading = 0x0004, 00067 }; 00068 00070 static MISTATUSMANAGER* CreateManager (); 00071 00073 DLG_STATUS (); 00074 00076 ~DLG_STATUS (); 00077 00079 void Close ( 00080 ) { DLGSHELL::Close(); } 00081 00083 void Create ( 00084 MDLGPARENT dlgparent, 00085 DLGSTYLE dlgstyle = DLGSTYLE_Default 00086 ); 00087 00090 void ReportDone ( 00091 TEXTID textid = TEXTID__None 00092 ); 00093 00095 void ReportDone ( 00096 const MISTRING& msgstr 00097 ); 00098 00099 private: 00100 #ifndef GENERATING_DOXYGEN_OUTPUT 00101 typedef DLG_STATUS THISCLASS; 00102 class PRIVCONTEXT; 00103 MDLGPARENT m_dlgparent; 00104 DLGSTYLE m_dlgstyle; 00105 MGUI::CANVAS m_Canvas; 00106 MGUI::CTRL_LABEL m_Graphic; 00107 MGUI::CTRL_TEXT m_TextElapsed; 00108 MGUI::CTRL_SEPARATOR m_Separator; 00109 MGUI::CTRL_PUSHBUTTON *m_pBtnCancel; 00110 MGUI::CTRL_PUSHBUTTON *m_pBtnOK; 00111 MGUI::TIMER m_UpdateTimer; 00112 bool m_CancelPressed; 00113 bool m_NeedRecalcRows; 00114 bool m_NeedRecalcWidth; 00115 INT16 m_NumRows; 00116 INT16 m_Width; 00117 INT16 m_RowHeight; 00118 INT16 m_TextAscent; 00119 UINT32 m_LastTime; 00120 MGD::CONTEXT *m_pGC; 00121 00122 void OnCanvasPaint (MGD::CONTEXT *gc); 00123 void OnTimerUpdate (); 00124 void Update (bool RedrawAll = false, MGD::CONTEXT *gc = 0); 00125 void WaitForOK (); 00126 00127 // MISTATUSMANAGER/LOGGER overrides. 00128 virtual CONTEXT_PRIV* v_ContextPrivCreate (MISTATUSCONTEXT& Context); 00129 virtual bool v_IsCancelled (); 00130 virtual void v_ReportMessage (MISTATUSCONTEXT& context, const MISTRING& msgstr); 00131 virtual void v_ReportProgress (MISTATUSCONTEXT& context, double pctdone); 00132 virtual void v_ReportTimerValue (const MTIMER& timer); 00133 virtual void v_SetCancelEnabled (bool enabled); 00134 virtual void v_UpdateUI (); 00135 00136 // DLGSHELL overrides. 00137 virtual ERRVALUE v_CreateContent (); 00138 virtual void v_OnCancel (); 00139 virtual void v_OnOpen (); 00140 00141 // Unimplemented. 00142 DLG_STATUS (const DLG_STATUS&); 00143 DLG_STATUS& operator= (const DLG_STATUS&); 00144 #endif 00145 }; 00146 00147 #ifndef GENERATING_DOXYGEN_OUTPUT 00148 DEFINE_ENUM_OP_BITWISE(DLG_STATUS::DLGSTYLE) 00149 #endif 00150 00151 //===================================================================================================================== 00152 00153 } // End namespace MGUI 00154 00155 #endif // INC_MGUI_DLGSTATUS_H
1.6.1