~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to include/lenmus_updater.h

  • Committer: cecilios
  • Date: 2012-07-05 18:23:21 UTC
  • Revision ID: svn-v4:2587a929-2f0e-0410-ae78-fe6f687d5efe:branches/TRY-5.0:706
fix cmakelist

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//---------------------------------------------------------------------------------------
2
 
//    LenMus Phonascus: The teacher of music
3
 
//    Copyright (c) 2002-2012 LenMus project
4
 
//
5
 
//    This program is free software; you can redistribute it and/or modify it under the
6
 
//    terms of the GNU General Public License as published by the Free Software Foundation,
7
 
//    either version 3 of the License, or (at your option) any later version.
8
 
//
9
 
//    This program is distributed in the hope that it will be useful, but WITHOUT ANY
10
 
//    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
 
//    PARTICULAR PURPOSE.  See the GNU General Public License for more details.
12
 
//
13
 
//    You should have received a copy of the GNU General Public License along with this
14
 
//    program. If not, see <http://www.gnu.org/licenses/>.
15
 
//
16
 
//    For any comment, suggestion or feature request, please contact the manager of
17
 
//    the project at cecilios@users.sourceforge.net
18
 
//
19
 
//---------------------------------------------------------------------------------------
20
 
 
21
 
#ifndef __LENMUS_UPDATER_H__        //to avoid nested includes
22
 
#define __LENMUS_UPDATER_H__
23
 
 
24
 
#include "lenmus_injectors.h"
25
 
 
26
 
#ifndef WX_PRECOMP
27
 
#include <wx/wx.h>
28
 
#endif
29
 
 
30
 
#include <wx/xml/xml.h>          // to use wxXmlDocument
31
 
 
32
 
namespace lenmus
33
 
{
34
 
 
35
 
//---------------------------------------------------------------------------------------
36
 
class Updater
37
 
{
38
 
protected:
39
 
    ApplicationScope& m_appScope;
40
 
    wxFrame*    m_pParent;
41
 
    bool        m_fCheckForUpdates;     //user allows this checking
42
 
    wxString    m_sPlatform;
43
 
    wxString    m_sVersion;
44
 
    wxString    m_sPackage;
45
 
    wxString    m_sDescription;
46
 
    wxString    m_sUrl;                 //url for download
47
 
    bool        m_fNeedsUpdate;
48
 
 
49
 
public:
50
 
    Updater(ApplicationScope& appScope);
51
 
    ~Updater();
52
 
 
53
 
    void check_for_updates(wxFrame* pParent, bool fSilent);
54
 
    bool DownloadFiles();
55
 
    const wxString& GetVersion() { return m_sVersion; }
56
 
    const wxString& GetPackage() { return m_sPackage; }
57
 
    const wxString& GetDescription() { return m_sDescription; }
58
 
    const wxString& GetUrl() { return m_sUrl; }
59
 
 
60
 
private:
61
 
    //default values and user preferences
62
 
    void LoadUserPreferences();
63
 
    void SaveUserPreferences();
64
 
 
65
 
    bool DoCheck(wxString sPlatform, bool fSilent);     //true if errors in conection or update information download
66
 
 
67
 
    bool CheckInternetConnection();     //true if internet connection operative
68
 
 
69
 
    void ParseDocument(wxXmlNode* pNode);
70
 
    wxString GetText(wxXmlNode* pElement);
71
 
    wxString GetAttribute(wxXmlNode* pNode, wxString sName, wxString sDefault);
72
 
    wxXmlNode* GetFirstChild(wxXmlNode* pNode);
73
 
    wxXmlNode* GetNextSibling(wxXmlNode* pNode);
74
 
 
75
 
};
76
 
 
77
 
 
78
 
}   // namespace lenmus
79
 
 
80
 
#endif    // __LENMUS_UPDATER_H__
81