21 #ifndef __ANTARES_TOOLBOX_JOB_H__
22 #define __ANTARES_TOOLBOX_JOB_H__
24 #include <antares/logs/logs.h>
25 #include <yuni/core/slist/slist.h>
26 #include <yuni/thread/thread.h>
27 #include <yuni/thread/timer.h>
29 #include <wx/dialog.h>
31 #include <wx/animate.h>
32 #include <wx/stattext.h>
34 #include <wx/stattext.h>
36 #include "../components/progressbar.h"
37 #include "../create.h"
38 #include <ui/common/component/panel.h>
44 namespace Antares::Toolbox::Jobs
48 class TimerElapsedTime;
49 class TimerRemainingTime;
52 class Job:
public wxDialog,
public Yuni::IEventObserver<Job>
60 Job(
const wxString& title,
const wxString& subTitle,
const char* icon);
70 bool displayProgression()
const
72 return pDisplayProgression;
75 void displayProgression(
const bool v)
77 pDisplayProgression = v;
84 bool canCancel()
const
89 void canCancel(
const bool v)
103 void result(
const bool v)
118 return !(!pJobIsRunning);
199 void evtOnClose(wxCloseEvent& evt);
201 void onLogMessage(
int,
const std::string& message);
214 wxSizer* createPnlLoading(wxWindow* parent);
221 void displayMessage(
const wxString& line);
223 void onUIUpdateProgression(uint value);
224 void onUIUpdateMessage();
225 void onUIUpdateLabelErrors();
227 void onUIUpdateElapsedTime(
const Yuni::String& text);
228 void onUIUpdateRemainingTime(
const Yuni::String& text);
230 void evtOnInit(wxInitDialogEvent& event);
232 void deleteAllThreads();
234 void recomputeWindowSize();
236 void disableAllComponents();
240 const wxString& pTitle;
241 const wxString& pSubTitle;
243 bool pDisplayProgression;
246 long pMemoryFootprint;
249 wxSizer* pGaugeSizer;
250 wxSizer* pGaugeParentSizer;
251 wxSizer* pRemainingSizer;
253 wxSizer* pCancelSizer;
255 wxStaticText* pProgrText;
256 wxStaticText* pProgrSubText;
257 wxStaticText* pElapsedTimeText;
258 wxStaticText* pRemainingTimeText;
259 wxStaticText* pReadWriteStats;
261 Yuni::String::ListPtr pWarningList;
262 Yuni::String::ListPtr pErrorList;
264 std::atomic<int> pJobIsRunning;
265 std::atomic<int> pGUICanUpdate;
268 DECLARE_EVENT_TABLE()
277 mutable Yuni::Thread::IThread::Ptr pThread;
278 wxAnimationCtrl* pAnim;
279 wxStaticText* pLblErrors;
280 wxString pLastNoticeMessage;
281 wxButton* pBtnCancel;
284 wxString pLogEntryLevelTmp;
285 wxString pLogEntryTmp;
287 bool pCatchLogEvents;
290 wxString pSubMessage;
293 std::mutex pErrorMutex;
297 wxColour pDefaultBGColor;
298 Component::Panel* pPanelButtons;
299 Component::Panel* pPanelHeader;
301 wxWindow* pWndCancelOperation;
304 wxTimer* pTimerMessageUpdater;
305 wxTimer* pTimerReadWriteStats;
A simple panel with a caption.
Definition: progressbar.h:32