summaryrefslogtreecommitdiff
path: root/Application.h
blob: 42c425a758a824cc6ac9288ba2e246e1095e24e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/***************************************************************
 * Name:      FreeFileSyncApp.h
 * Purpose:   Defines Application Class
 * Author:    ZenJu (zhnmju123@gmx.de)
 * Created:   2008-07-16
 * Copyright: ZenJu ()
 * License:
 **************************************************************/

#ifndef FREEFILESYNCAPP_H
#define FREEFILESYNCAPP_H

#include <wx/app.h>
#include <wx/cmdline.h>
#include "ui/smallDialogs.h"
#include "library/misc.h"
#include "library/processXml.h"

class Application : public wxApp
{
public:
    bool OnInit();
    int  OnRun();
    int  OnExit();
    bool OnExceptionInMainLoop();

    void initialize();
    bool ProcessIdle(); //virtual method!

private:
    void runBatchMode(const wxString& filename, xmlAccess::XmlGlobalSettings& globalSettings);

    bool applicationRunsInBatchWithoutWindows;
    CustomLocale programLanguage;

    int returnValue;
    xmlAccess::XmlGlobalSettings globalSettings; //settings used by GUI, batch mode or both
};

class LogFile;

class BatchStatusUpdater : public StatusHandler
{
public:
    BatchStatusUpdater(bool ignoreAllErrors, bool silent, LogFile* log);
    ~BatchStatusUpdater();

    virtual void updateStatusText(const wxString& text);
    virtual void initNewProcess(int objectsTotal, double dataTotal, Process processID);
    virtual void updateProcessedData(int objectsProcessed, double dataProcessed);
    virtual ErrorHandler::Response reportError(const wxString& text);
    virtual void forceUiRefresh();

    wxWindow* getWindow();
    void setFinalStatus(const wxString& message, SyncStatus::SyncStatusID id); //overwrite final status message text

private:
    virtual void abortThisProcess();

    LogFile* m_log;
    SyncStatus* syncStatusFrame;
    bool ignoreErrors;
    bool silentMode;

    wxArrayString unhandledErrors; //list of non-resolved errors
    Process currentProcess;

    wxString customStatusMessage; //final status message written by service consumer
    SyncStatus::SyncStatusID customStatusId;
};


#endif // FREEFILESYNCAPP_H
bgstack15