00001 #ifdef WIN32
00002 #pragma message(__FILE__ "(2) : warning C9999: Use of mstatus.h is deprecated, use mgui/dlgstatus.h or mi32/mistatus.h instead.")
00003 #endif
00004
00095 #if !defined(INC_MI32_MSTATUS_H) && !defined(NODLLLINKAGE)
00096 #define INC_MI32_MSTATUS_H
00097
00098 #ifndef INC_STDARG_H
00099 #include <stdarg.h>
00100 #define INC_STDARG_H
00101 #endif
00102
00103 #ifndef INC_MI32_MISTATUS_H
00104 #include <mi32/mistatus.h>
00105 #endif
00106
00107 #ifndef INC_MGUI_DLGSTATUS_H
00108 #include <mgui/dlgstatus.h>
00109 #endif
00110
00111
00112 #ifdef WIN32
00113 #pragma warning (push)
00114 #pragma warning (disable:4100) // Disable warning that this needs a DLL interface
00115 #pragma warning (disable:4996) // Disable warning about deprecated declaration within header
00116 #endif
00117
00118
00119
00120
00121 #ifdef USE_MGUI
00124 DEPRECATED class STATUSDIALOG {
00125 public:
00126
00127 enum FLAGS {
00128 FLAG_NoCancel = MGUI::DLG_STATUS::DLGSTYLE_DisableCancel,
00129 FLAG_DelayPopup = MGUI::DLG_STATUS::DLGSTYLE_DelayPopup,
00130 FLAG_None = MGUI::DLG_STATUS::DLGSTYLE_Default
00131 };
00132
00134 STATUSDIALOG (
00135 ): m_pDlgStatus(0) { }
00136
00138 ~STATUSDIALOG (
00139 ) { delete m_pDlgStatus; }
00140
00143 ERRVALUE CheckCancel (
00144 ) const { return ((m_pDlgStatus != 0 && m_pDlgStatus->IsCancelled()) ? EUserCancel : 0); }
00145
00147 ERRVALUE Create (
00148 MDLGPARENT dlgparent,
00149 FLAGS flags = FLAG_None
00150 ) { m_pDlgStatus = new MGUI::DLG_STATUS; m_pDlgStatus->Create(dlgparent,static_cast<MGUI::DLG_STATUS::DLGSTYLE>(flags)); return (0); }
00151
00153 void Destroy (
00154 ) { delete m_pDlgStatus; m_pDlgStatus = 0; }
00155
00157 void DisableCancel (
00158 ) const { if (m_pDlgStatus != 0) m_pDlgStatus->SetCancelEnabled(false); }
00159
00161 void EnableCancel (
00162 ) const { if (m_pDlgStatus != 0) m_pDlgStatus->SetCancelEnabled(true); }
00163
00168 MISTATUSMANAGER* GetHandle (
00169 ) const { return (m_pDlgStatus); }
00170
00172 MTIMER* GetTimer (
00173 ) { return (&m_pDlgStatus->GetTimer()); }
00174
00178 void ReportDone (
00179 TEXTID textid = TEXTID__None
00180 ) const { if (m_pDlgStatus != 0) m_pDlgStatus->ReportDone(textid); }
00181
00183 void ResetCancel (
00184 ) const { if (m_pDlgStatus != 0) m_pDlgStatus->ResetCancelled(); }
00185
00189 MISTATUSMANAGER* SetSelfAsDefault (
00190 ) { return (MISTATUSMANAGER::SetActiveManager(m_pDlgStatus)); }
00191
00193 void WaitForOK (
00194 ) const { }
00195
00196 private:
00197 #ifndef GENERATING_DOXYGEN_OUTPUT
00198 MGUI::DLG_STATUS *m_pDlgStatus;
00199
00200 STATUSDIALOG (const STATUSDIALOG&);
00201 STATUSDIALOG& operator= (const STATUSDIALOG&);
00202
00203 friend class STATUSCONTEXT;
00204 #endif // GENERATING_DOXYGEN_OUTPUT
00205 };
00206 #ifndef GENERATING_DOXYGEN_OUTPUT
00207 DEFINE_ENUM_OP_BITWISE(STATUSDIALOG::FLAGS)
00208 #endif
00209 #endif
00210
00211
00212
00215 DEPRECATED class STATUSCONTEXT {
00216 public:
00217
00219 explicit STATUSCONTEXT (
00220 MISTATUSMANAGER *pStatusMgr = 0,
00221 bool CreateContext = true
00222 ) :
00223 m_pStatusContext(0)
00224 { if (CreateContext) Create(pStatusMgr); }
00225
00226 #ifdef USE_MGUI
00228 explicit STATUSCONTEXT (
00229 STATUSDIALOG& sdialog
00230 ):
00231 m_pStatusContext(0)
00232 { if (sdialog.GetHandle() != 0) Create(sdialog.GetHandle()); }
00233 #endif
00234
00236 ~STATUSCONTEXT (
00237 ) { Destroy(); }
00238
00240 void BarClear (
00241 ) { if (m_pStatusContext != 0) m_pStatusContext->ReportProgress(0); }
00242
00244 int BarIncrement (
00245 INT32 increment = 1,
00246 int line = 0
00247 ) {
00248 if (m_pStatusContext == 0) return (0);
00249 return (m_pStatusContext->ReportProgressIncrement(increment));
00250 }
00251
00253 int BarInit (
00254 INT32 maximum,
00255 int line = 0
00256 ) {
00257 if (m_pStatusContext == 0) return (0);
00258 return (m_pStatusContext->ReportProgressBegin(static_cast<UINT32>(maximum)));
00259 }
00260
00262 int BarUpdate (
00263 INT32 value,
00264 INT32 maximum,
00265 int line = 0
00266 ) {
00267 if (m_pStatusContext == 0) return (0);
00268 return (m_pStatusContext->ReportProgress(100.0*value/maximum));
00269 }
00270
00272 int CheckCancel (
00273 ) { return ((m_pStatusContext != 0 && m_pStatusContext->IsCancelled()) ? EUserCancel : 0); }
00274
00276 void Clear (
00277 ) { if (m_pStatusContext != 0) { m_pStatusContext->ReportProgress(0); m_pStatusContext->ReportMessage(TEXTID__None); } }
00278
00280 void ClearLine (
00281 ) { Clear(); }
00282
00284 void ClearLine (
00285 int
00286 ) { Clear(); }
00287
00289 void Create (
00290 MISTATUSMANAGER* pStatusMgr = 0
00291 ) { m_pStatusContext = (pStatusMgr != 0) ? new MISTATUSCONTEXT(pStatusMgr,TEXTID__None) : new MISTATUSCONTEXT(TEXTID__None); }
00292
00295 void Destroy (
00296 ) { delete m_pStatusContext; m_pStatusContext = 0; }
00297
00298 #ifndef NO_DEPRECATED
00300 void DisableCancel (
00301 ) { }
00302 #endif
00303
00304 #ifndef NO_DEPRECATED
00306 void EnableCancel (
00307 ) { }
00308 #endif
00309
00310 #ifndef NO_DEPRECATED
00312 MISTATUSCONTEXT *GetHandle (
00313 ) const { return (m_pStatusContext); }
00314 #endif
00315
00317 int TextUpdate (
00318 const MISTRING& string,
00319 int line = 0
00320 ) {
00321 if (m_pStatusContext == 0) return (0);
00322 if (m_pStatusContext->IsCancelled()) return (EUserCancel);
00323 m_pStatusContext->ReportMessage(string);
00324 return (0);
00325 }
00326
00327 private:
00328 #ifndef GENERATING_DOXYGEN_OUTPUT
00329 MISTATUSCONTEXT *m_pStatusContext;
00330
00331 STATUSCONTEXT (const STATUSCONTEXT&);
00332 STATUSCONTEXT& operator= (const STATUSCONTEXT&);
00333 #endif // GENERATING_DOXYGEN_OUTPUT
00334 };
00335
00336
00337
00340 DEPRECATED class STATUSDISABLECANCEL {
00341 public:
00342
00344 STATUSDISABLECANCEL (
00345 MISTATUSMANAGER* pStatusMgr = 0,
00346 bool Enable = true
00347 ) :
00348 m_pStatusContext(0)
00349 {
00350 if (Enable) {
00351 if (pStatusMgr == 0) pStatusMgr = MISTATUSMANAGER::GetActiveManager();
00352 if (pStatusMgr != 0) m_pStatusContext = new MISTATUSCONTEXT(pStatusMgr,TEXTID__None,false);
00353 }
00354 }
00355
00357 ~STATUSDISABLECANCEL (
00358 ) { delete m_pStatusContext; }
00359
00360 private:
00361 #ifndef GENERATING_DOXYGEN_OUTPUT
00362 MISTATUSCONTEXT *m_pStatusContext;
00363
00364 STATUSDISABLECANCEL (const STATUSDISABLECANCEL&);
00365 STATUSDISABLECANCEL& operator=(const STATUSDISABLECANCEL&);
00366 #endif // GENERATING_DOXYGEN_OUTPUT
00367 };
00368
00369
00370
00371 #ifdef WIN32
00372 #pragma warning (pop)
00373 #endif
00374
00375 #endif // INC_MI32_MSTATUS_H