/* Copyright (C) 2017-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: Dk4WxProgressDialog.wxc */ #ifndef DK4WXPROGRESSDIALOG_H_INCLUDED /** Avoid multiple inclusions. */ #define DK4WXPROGRESSDIALOG_H_INCLUDED 1 #line 56 "Dk4WxProgressDialog.wxc" /** @file Dk4WxProgressDialog.h Progress dialog. */ #ifndef DK4CONF_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4conf.h" #else #include #endif #endif #ifndef DK4TYPES_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4types.h" #else #include #endif #endif #ifndef WX_WXPREC_H_INCLUDED #include #define WX_WXPREC_H_INCLUDED 1 #endif #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #ifndef WX_WX_H_INCLUDED #include #define WX_WX_H_INCLUDED 1 #endif #endif #ifndef DK4WXAPPLICATIONHELPER_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "Dk4WxApplicationHelper.h" #else #include #endif #endif #ifndef DK4WXPROGRESSCONTROLLERBASE_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "Dk4WxProgressControllerBase.h" #else #include #endif #endif #line 108 "Dk4WxProgressDialog.wxc" /** Progress dialog (progress bar and cancel button). */ class Dk4WxProgressDialog : public wxDialog, public Dk4WxProgressControllerWorkerBase, Dk4WxProgressControllerOwnerBase { private: /** Event table. */ #if wxCHECK_VERSION(3,0,0) wxDECLARE_EVENT_TABLE(); #else DECLARE_EVENT_TABLE() #endif protected: /** Synchronize access from multiple threads. */ wxCriticalSection csProtect; /** Text for dialog title. */ wxString sDialogTitle; /** Text for dialog box. */ wxString sDialogText; /** Three text strings shown in the dialog. */ const wxChar *sText[3]; /** Current gauge value. */ int iOld; /** New gauge value, set by worker thread. */ int iNew; /** Dialog box style. */ int iDialogStyle; /** Flag: Aborted via Cancel button. */ bool bAborted; /** Worker thread finished. */ bool bFinished; /** Success indicator from worker thread. */ bool bSuccess; /** Flag: Still active, not yet closed. */ bool bActive; /** Flag: Data to show a message box is available. */ bool bHaveDialog; public: /** Constructor. */ Dk4WxProgressDialog( wxFrame *parent, Dk4WxApplicationHelper *pAppHelp ); /** Handler for idle events. @param event Event to process. */ void OnIdle(wxIdleEvent & event); /** Handler for cancel button. @param event Event to process. */ void OnCancel(wxCommandEvent & event); /** Set new gauge value, called from worker thread. */ void SetGauge(int value); /** Indicate that a dialog box should be shown by the main thread after the worker thread has finished. @param title Message box title. @param msg Message box text. @param st Message box style. */ void SetDialogData( const wxString & title, const wxString & msg, int st = wxID_OK ); /** Start processing. Does nothing, just implement the Dk4WxProgressControllerBase interface. */ void StartProcessing(void); /** Indicate end of processing, called from worker thread. @param success Flag: Successful processing. */ void EndProcessing(bool success = true); /** Check whether we can continue. */ bool CanContinue(void); /** Check whether the worker thread is finished. @return True if the worker thread is finished, false while running. */ bool IsFinished(void); /** Retrieve gauge value. @return Current value for progress gauge. */ int GetGauge(void); /** Abort processing. Called from the progress dialogs Cancel button. */ void AbortProcessing(void); /** Check whether the worker thread finished successfully. @return True to indicate success, false otherwise. */ bool GetSuccess(void); /** Check whether a dialog should be shown. @param title Result variable for message box title. @param msg Result variable for message text. @param style Result variable for dialog box style. @return True to show a dialog, false otherwise. */ bool GetDialogData(wxString & title, wxString & msg, int & style); /** Flag: GUI ok. */ bool dkctGUILayoutOK; /** GUI element sDialog. */ #line 11 "Dk4WxProgressDialog.wxc" wxBoxSizer *sDialog; /** GUI element verticalSizer. */ #line 19 "Dk4WxProgressDialog.wxc" wxBoxSizer *verticalSizer; /** GUI element sttInProgress. */ #line 39 "Dk4WxProgressDialog.wxc" wxStaticText *sttInProgress; /** GUI element gaugeProgress. */ #line 33 "Dk4WxProgressDialog.wxc" wxGauge *gaugeProgress; /** GUI element sttWait. */ #line 43 "Dk4WxProgressDialog.wxc" wxStaticText *sttWait; /** GUI element bCancel. */ #line 49 "Dk4WxProgressDialog.wxc" wxButton *bCancel; #line 265 "Dk4WxProgressDialog.wxc" }; #line 268 "Dk4WxProgressDialog.wxc" #endif