56class Job :
public wxDialog,
public Yuni::IEventObserver<Job>
64 Job(
const wxString& title,
const wxString& subTitle,
const char* icon);
73 bool displayProgression()
const
75 return pDisplayProgression;
77 void displayProgression(
const bool v)
79 pDisplayProgression = v;
85 bool canCancel()
const
89 void canCancel(
const bool v)
101 void result(
const bool v)
115 return !(!pJobIsRunning);
196 void evtOnClose(wxCloseEvent& evt);
198 void onLogMessage(
int,
const std::string& message);
211 wxSizer* createPnlLoading(wxWindow* parent);
218 void displayMessage(
const wxString& line);
220 void onUIUpdateProgression(uint value);
222 void onUIUpdateLabelErrors();
224 void onUIUpdateElapsedTime(
const Yuni::String& text);
225 void onUIUpdateRemainingTime(
const Yuni::String& text);
227 void evtOnInit(wxInitDialogEvent& event);
229 void deleteAllThreads();
231 void recomputeWindowSize();
233 void disableAllComponents();
237 const wxString& pTitle;
238 const wxString& pSubTitle;
240 bool pDisplayProgression;
243 long pMemoryFootprint;
246 wxSizer* pGaugeSizer;
247 wxSizer* pGaugeParentSizer;
248 wxSizer* pRemainingSizer;
250 wxSizer* pCancelSizer;
252 wxStaticText* pProgrText;
253 wxStaticText* pProgrSubText;
254 wxStaticText* pElapsedTimeText;
255 wxStaticText* pRemainingTimeText;
256 wxStaticText* pReadWriteStats;
258 Yuni::String::ListPtr pWarningList;
259 Yuni::String::ListPtr pErrorList;
261 std::atomic<int> pJobIsRunning;
262 std::atomic<int> pGUICanUpdate;
265 DECLARE_EVENT_TABLE()
274 mutable Yuni::Thread::IThread::Ptr pThread;
275 wxAnimationCtrl* pAnim;
276 wxStaticText* pLblErrors;
277 wxString pLastNoticeMessage;
278 wxButton* pBtnCancel;
281 wxString pLogEntryLevelTmp;
282 wxString pLogEntryTmp;
284 bool pCatchLogEvents;
287 wxString pSubMessage;
290 std::mutex pErrorMutex;
294 wxColour pDefaultBGColor;
295 Component::Panel* pPanelButtons;
296 Component::Panel* pPanelHeader;
298 wxWindow* pWndCancelOperation;
301 wxTimer* pTimerMessageUpdater;
302 wxTimer* pTimerReadWriteStats;