~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/updater/Updater.h

  • Committer: cecilios
  • Date: 2007-05-19 11:39:03 UTC
  • Revision ID: svn-v4:2587a929-2f0e-0410-ae78-fe6f687d5efe:trunk:236

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//--------------------------------------------------------------------------------------
 
2
//    LenMus Phonascus: The teacher of music
 
3
//    Copyright (c) 2002-2007 Cecilio Salmeron
 
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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, 
 
15
//    Fifth Floor, Boston, MA  02110-1301, USA.
 
16
//
 
17
//    For any comment, suggestion or feature request, please contact the manager of 
 
18
//    the project at cecilios@users.sourceforge.net
 
19
//
 
20
//-------------------------------------------------------------------------------------
 
21
/*! @file Updater.h
 
22
    @brief Header file for class lmUpdater
 
23
    @ingroup updates_management
 
24
*/
 
25
#ifndef __UPDATER_H__        //to avoid nested includes
 
26
#define __UPDATER_H__
 
27
 
 
28
// For compilers that support precompilation, includes "wx/wx.h".
 
29
#include "wx/wxprec.h"
 
30
 
 
31
#ifdef __BORLANDC__
 
32
#pragma hdrstop
 
33
#endif
 
34
 
 
35
#ifndef WX_PRECOMP
 
36
#include "wx/wx.h"
 
37
#endif
 
38
 
 
39
#include "wx/xml/xml.h"          // to use wxXmlDocument
 
40
 
 
41
//#include "Downloader.h"
 
42
 
 
43
// values for flag fSilent (method CheckForUpdates)
 
44
#define lmNOT_SILENT    false
 
45
#define lmSILENT        true
 
46
 
 
47
 
 
48
class lmUpdater
 
49
{
 
50
public:
 
51
    lmUpdater();
 
52
    ~lmUpdater();
 
53
 
 
54
    //actions
 
55
    void CheckForUpdates(wxFrame* pParent, bool fSilent);
 
56
    bool DownloadFiles();
 
57
    const wxString& GetVersion() { return m_sVersion; }
 
58
    const wxString& GetPackage() { return m_sPackage; }
 
59
    const wxString& GetDescription() { return m_sDescription; }
 
60
    const wxString& GetUrl() { return m_sUrl; }
 
61
 
 
62
private:
 
63
    //default values and user preferences
 
64
    void LoadUserPreferences();
 
65
    void SaveUserPreferences();
 
66
 
 
67
    bool DoCheck(wxString sPlatform, bool fSilent);     //true if errors in conection or update information download
 
68
 
 
69
    bool CheckInternetConnection();     //true if internet connection operative
 
70
 
 
71
    void ParseDocument(wxXmlNode* pNode);
 
72
    wxString GetText(wxXmlNode* pElement);
 
73
    wxString GetAttribute(wxXmlNode* pNode, wxString sName, wxString sDefault);
 
74
    wxXmlNode* GetFirstChild(wxXmlNode* pNode);
 
75
    wxXmlNode* GetNextSibling(wxXmlNode* pNode);
 
76
 
 
77
 
 
78
 
 
79
 
 
80
        //
 
81
        // member variables
 
82
        //
 
83
 
 
84
    wxFrame*    m_pParent;
 
85
    bool        m_fCheckForUpdates;     //user allows this checking
 
86
    wxString    m_sPlatform;
 
87
    wxString    m_sVersion;
 
88
    wxString    m_sPackage;
 
89
    wxString    m_sDescription;
 
90
    wxString    m_sUrl;                 //url for download
 
91
    bool        m_fNeedsUpdate;
 
92
 
 
93
};
 
94
 
 
95
//global function
 
96
bool LaunchDefaultBrowser(const wxString& url);
 
97
 
 
98
 
 
99
 
 
100
#endif    // __UPDATER_H__
 
101