~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/updater/UpdaterDlg.cpp

  • 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 UpdaterDlg.cpp
 
22
    @brief Implementation file for all dialog classes used only by the updater
 
23
    @ingroup updates_management
 
24
*/
 
25
#if defined(__GNUG__) && !defined(__APPLE__)
 
26
#pragma implementation "UpdaterDlg.h"
 
27
#endif
 
28
 
 
29
// For compilers that support precompilation, includes "wx/wx.h".
 
30
#include "wx/wxprec.h"
 
31
 
 
32
#ifdef __BORLANDC__
 
33
#pragma hdrstop
 
34
#endif
 
35
 
 
36
#ifndef WX_PRECOMP
 
37
#include "wx/wx.h"
 
38
#endif
 
39
 
 
40
#include "wx/xrc/xmlres.h"
 
41
#include <wx/listctrl.h>
 
42
 
 
43
 
 
44
 
 
45
 
 
46
#include "UpdaterDlg.h"
 
47
//#include "Updater.h"
 
48
 
 
49
 
 
50
 
 
51
//-----------------------------------------------------------------------------
 
52
// Implementation of class lmUpdaterDlgStart
 
53
//-----------------------------------------------------------------------------
 
54
 
 
55
 
 
56
BEGIN_EVENT_TABLE(lmUpdaterDlgStart, wxDialog)
 
57
    EVT_BUTTON( XRCID( "btnProceed" ), lmUpdaterDlgStart::OnProceedClicked )
 
58
    EVT_BUTTON( XRCID( "btnCancel" ), lmUpdaterDlgStart::OnCancelClicked )
 
59
 
 
60
END_EVENT_TABLE()
 
61
 
 
62
 
 
63
 
 
64
lmUpdaterDlgStart::lmUpdaterDlgStart(wxWindow* parent)
 
65
{
 
66
    // create the dialog controls
 
67
    wxXmlResource::Get()->LoadDialog(this, parent, _T("UpdaterDlgStart"));
 
68
 
 
69
        //
 
70
        //get pointers to all controls
 
71
        //
 
72
 
 
73
    //load updater logo
 
74
    wxStaticBitmap* pBmpUpdaterLogo = XRCCTRL(*this, "bmpUpdaterLogo", wxStaticBitmap);
 
75
    pBmpUpdaterLogo->SetBitmap( wxArtProvider::GetIcon(_T("banner_updater"), wxART_OTHER) );
 
76
 
 
77
    CentreOnParent();
 
78
 
 
79
}
 
80
 
 
81
 
 
82
 
 
83
 
 
84
//-----------------------------------------------------------------------------
 
85
// Implementation of class lmUpdaterDlgInfo
 
86
//-----------------------------------------------------------------------------
 
87
 
 
88
 
 
89
BEGIN_EVENT_TABLE(lmUpdaterDlgInfo, wxDialog)
 
90
    EVT_BUTTON( XRCID( "btnDownload" ), lmUpdaterDlgInfo::OnDownloadClicked )
 
91
    EVT_BUTTON( XRCID( "btnCancel" ), lmUpdaterDlgInfo::OnCancelClicked )
 
92
 
 
93
    // global UI updates
 
94
    EVT_UPDATE_UI(wxID_ANY, lmUpdaterDlgInfo::OnUpdateUI)
 
95
 
 
96
END_EVENT_TABLE()
 
97
 
 
98
 
 
99
 
 
100
lmUpdaterDlgInfo::lmUpdaterDlgInfo(wxWindow* parent, lmUpdater* pUpdater)
 
101
{
 
102
    // create the dialog controls
 
103
    wxXmlResource::Get()->LoadDialog(this, parent, _T("UpdaterDlgInfo"));
 
104
 
 
105
        //
 
106
        //get pointers to all controls
 
107
        //
 
108
    m_pUpdates = XRCCTRL(*this, "lstUpdates", wxCheckListBox);
 
109
    m_pDescription = XRCCTRL(*this, "txtDescription", wxStaticText);
 
110
    m_pBtnDownload = XRCCTRL(*this, "btnDownload", wxButton);
 
111
 
 
112
    //load updater logo
 
113
    wxStaticBitmap* pBmpUpdaterLogo = XRCCTRL(*this, "bmpUpdaterLogo", wxStaticBitmap);
 
114
    pBmpUpdaterLogo->SetBitmap( wxArtProvider::GetIcon(_T("banner_updater"), wxART_OTHER) );
 
115
 
 
116
    //initializations
 
117
    m_nNumItems = 0;
 
118
    m_pUpdater = pUpdater;
 
119
 
 
120
    CentreOnParent();
 
121
 
 
122
}
 
123
 
 
124
void lmUpdaterDlgInfo::AddPackage(wxString sPackage, wxString sDescription)
 
125
{
 
126
    m_pUpdates->Set(1, &sPackage);
 
127
    m_pUpdates->Check(m_nNumItems, true);
 
128
    m_pDescription->SetLabel(sDescription);
 
129
    m_nNumItems++;
 
130
 
 
131
}
 
132
 
 
133
void lmUpdaterDlgInfo::OnDownloadClicked(wxCommandEvent& WXUNUSED(event))
 
134
{
 
135
    m_pUpdater->DownloadFiles();
 
136
    EndDialog(wxID_OK);
 
137
 
 
138
}
 
139
 
 
140
void lmUpdaterDlgInfo::OnUpdateUI(wxUpdateUIEvent& WXUNUSED(event))
 
141
{
 
142
    //enable / disable download button
 
143
    bool fEnableDownload = false;
 
144
    int i;
 
145
    for (i=0; i < m_nNumItems; i++) {
 
146
        if (m_pUpdates->IsChecked(i) ) {
 
147
            fEnableDownload = true;
 
148
            break;
 
149
        }
 
150
    }
 
151
    m_pBtnDownload->Enable(fEnableDownload);
 
152
 
 
153
}