~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/app/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-2006 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
 
 
42
class lmUpdater
 
43
{
 
44
public:
 
45
    lmUpdater();
 
46
    ~lmUpdater();
 
47
 
 
48
    //actions
 
49
    bool CheckForUpdates(wxString sPlatform = _T("Win32"));         //true if update available
 
50
    const wxString& GetVersion() { return m_sVersion; }
 
51
    const wxString& GetDescription() { return m_sDescription; }
 
52
 
 
53
private:
 
54
    //default values and user preferences
 
55
    void LoadUserPreferences();
 
56
    void SaveUserPreferences();
 
57
 
 
58
    void ParseDocument(wxXmlNode* pNode);
 
59
    wxString GetText(wxXmlNode* pElement);
 
60
    wxString GetAttribute(wxXmlNode* pNode, wxString sName, wxString sDefault);
 
61
    wxXmlNode* GetFirstChild(wxXmlNode* pNode);
 
62
    wxXmlNode* GetNextSibling(wxXmlNode* pNode);
 
63
 
 
64
 
 
65
 
 
66
 
 
67
        //
 
68
        // member variables
 
69
        //
 
70
 
 
71
    static lmUpdater*    m_pInstance;    //the only instance of this class
 
72
 
 
73
    bool        m_fCheckForUpdates;     //user allows this checking
 
74
    wxString    m_sPlatform;
 
75
    wxString    m_sVersion;
 
76
    wxString    m_sDescription;
 
77
    bool        m_fNeedsUpdate;
 
78
 
 
79
};
 
80
 
 
81
 
 
82
#endif    // __UPDATER_H__
 
83