NumeRe v1.1.4
NumeRe: Framework für Numerische Rechnungen
AboutChameleonDialog.cpp
Go to the documentation of this file.
1
2// Name: AboutChameleonDialog.cpp
3// Purpose:
4// Author:
5// Modified by:
6// Created: 04/20/04 01:22:14
7// RCS-ID:
8// Copyright:
9// Licence:
11
12#ifdef __GNUG__
13#pragma implementation "AboutChameleonDialog.h"
14#endif
15
16// For compilers that support precompilation, includes "wx/wx.h".
17#include "wx/wxprec.h"
18#include <wx/msw/private.h>
19#include <wx/filename.h>
20#include <wx/stdpaths.h>
21#include <wx/textctrl.h>
22
23#ifdef __BORLANDC__
24#pragma hdrstop
25#endif
26
27
29#include "../../kernel/core/ui/language.hpp"
30#include "../../kernel/core/version.h"
31
32class AboutDialogTextCtrl : public wxTextCtrl
33{
34 public:
35 AboutDialogTextCtrl(wxWindow* parent, const wxString& contents) : wxTextCtrl(parent, wxID_ANY, contents, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_BESTWRAP | wxTE_READONLY | wxTE_AUTO_URL)
36 {
37 SetFont(wxFont(10, wxSWISS, wxNORMAL, wxNORMAL, false, "Arial"));
38 }
39
40 void OnUrlClick(wxTextUrlEvent &event)
41 {
42 wxMouseEvent mouseEvent = event.GetMouseEvent();
43
44 if (mouseEvent.IsButton())
45 {
46 wxString url = GetRange(event.GetURLStart(), event.GetURLEnd());
47 wxLaunchDefaultBrowser(url);
48 }
49 }
50
51 DECLARE_EVENT_TABLE()
52};
53
54BEGIN_EVENT_TABLE(AboutDialogTextCtrl, wxTextCtrl)
55 EVT_TEXT_URL(-1, AboutDialogTextCtrl::OnUrlClick)
57
58
59
63IMPLEMENT_CLASS( AboutChameleonDialog, wxDialog )
64
69BEGIN_EVENT_TABLE( AboutChameleonDialog, wxDialog )
70
72 EVT_BUTTON( ID_BUTTONOK, AboutChameleonDialog::OnButtonOKClick )
73
75
77
78extern Language _guilang;
79extern const std::string sVersion;
80
86{
87}
88
89AboutChameleonDialog::AboutChameleonDialog( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
90{
91 Create(parent, id, caption, pos, size, style);
92}
93
98bool AboutChameleonDialog::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
99{
101 m_sizerProgram = NULL;
102 m_lblVersion = NULL;
104
106 SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS);
107 wxDialog::Create( parent, id, caption, pos, size, style );
108
110 if (GetSizer())
111 {
112 GetSizer()->SetSizeHints(this);
113 }
114 Centre();
116
117 m_lblVersion->SetLabel("v"+sVersion);
118 m_sizerProgram->Layout();
119 return TRUE;
120}
121
127{
128 wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
129 this->SetSizer(itemBoxSizer2);
130
131 wxNotebook* aboutDialogNoteBook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxNB_TOP);
132
133#if !wxCHECK_VERSION(2,5,2)
134 wxNotebookSizer* itemNotebook3Sizer = new wxNotebookSizer(aboutDialogNoteBook);
135#endif
136
137 // MAIN PAGE
138 wxPanel* mainAboutPanel = new wxPanel( aboutDialogNoteBook, ID_PROGPANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
139 mainAboutPanel->SetForegroundColour(wxColour(0, 0, 0));
140 mainAboutPanel->SetBackgroundColour(wxColour(255, 255, 255));
141 m_sizerProgram = new wxBoxSizer(wxVERTICAL);
142 mainAboutPanel->SetSizer(m_sizerProgram);
143
144 wxBitmap itemStaticBitmap6Bitmap(this->GetBitmapResource(wxT("chamlogo_1.xpm")));
145 wxStaticBitmap* itemStaticBitmap6 = new wxStaticBitmap( mainAboutPanel, wxID_STATIC, itemStaticBitmap6Bitmap, wxDefaultPosition, wxSize(300, 300), 0 );
146 itemStaticBitmap6->SetBackgroundColour(wxColour(255, 255, 255));
147 m_sizerProgram->Add(itemStaticBitmap6, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
148
149 wxStaticText* mainStaticText = new wxStaticText( mainAboutPanel, wxID_STATIC, _("NumeRe:\nFramework für Numerische Rechnungen"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE );
150 mainStaticText->SetForegroundColour(wxColour(0, 0, 0));
151 mainStaticText->SetBackgroundColour(wxColour(255, 255, 255));
152 mainStaticText->SetFont(wxFont(12, wxSWISS, wxNORMAL, wxBOLD, false, _T("Arial")));
153 m_sizerProgram->Add(mainStaticText, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5);
154
155 m_lblVersion = new wxStaticText( mainAboutPanel, wxID_STATIC, _("Version 9.8.7.6"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxNO_BORDER );
156 m_lblVersion->SetForegroundColour(wxColour(0, 0, 0));
157 m_lblVersion->SetBackgroundColour(wxColour(255, 255, 255));
158 m_lblVersion->SetFont(wxFont(12, wxSWISS, wxNORMAL, wxBOLD, false, _T("Arial")));
159 m_sizerProgram->Add(m_lblVersion, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5);
160
161 wxStaticText* licenceStaticText = new wxStaticText( mainAboutPanel, wxID_STATIC, _(_guilang.get("GUI_ABOUT_LICENCE_SHORT", AutoVersion::YEAR)), wxDefaultPosition, wxDefaultSize, 0 );
162 licenceStaticText->SetFont(wxFont(10, wxSWISS, wxNORMAL, wxNORMAL, false, _T("Arial")));
163 m_sizerProgram->Add(licenceStaticText, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxADJUST_MINSIZE, 5);
164
165 aboutDialogNoteBook->AddPage(mainAboutPanel, "NumeRe");
166
167 // TEAM PAGE
168 wxPanel* teamPanel = new wxPanel( aboutDialogNoteBook, ID_TEAMPANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
169 teamPanel->SetForegroundColour(wxColour(255, 255, 255));
170 teamPanel->SetBackgroundColour(wxColour(255, 255, 255));
171 wxBoxSizer* teamBoxSizer = new wxBoxSizer(wxVERTICAL);
172 teamPanel->SetSizer(teamBoxSizer);
173
174 wxStaticText* teamStaticText = new wxStaticText( teamPanel, wxID_STATIC, _(_guilang.get("GUI_ABOUT_TEAM_INTRO")), wxDefaultPosition, wxDefaultSize, 0 );
175 teamStaticText->SetForegroundColour(wxColour(0, 0, 0));
176 teamStaticText->SetBackgroundColour(wxColour(255, 255, 255));
177 teamStaticText->SetFont(wxFont(10, wxSWISS, wxNORMAL, wxNORMAL, false, _T("Arial")));
178 teamBoxSizer->Add(teamStaticText, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
179
180 AboutDialogTextCtrl* aboutTextCtrl = new AboutDialogTextCtrl(teamPanel, _guilang.get("GUI_ABOUT_TEAM"));
181 teamBoxSizer->Add(aboutTextCtrl, 1, wxGROW | wxEXPAND | wxALL, 5);
182
183 aboutDialogNoteBook->AddPage(teamPanel, "Team");
184
185 // INFO PAGE
186 wxPanel* infoPanel = new wxPanel(aboutDialogNoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
187 infoPanel->SetForegroundColour(*wxBLACK);
188 infoPanel->SetBackgroundColour(*wxWHITE);
189 wxBoxSizer* infoBoxSizer = new wxBoxSizer(wxVERTICAL);
190 infoPanel->SetSizer(infoBoxSizer);
191
192 AboutDialogTextCtrl* infoTextCtrl = new AboutDialogTextCtrl(infoPanel, _guilang.get("GUI_ABOUT_INFO"));
193 infoBoxSizer->Add(infoTextCtrl, 1, wxGROW | wxEXPAND | wxALL, 5);
194
195 aboutDialogNoteBook->AddPage(infoPanel, "Info");
196
197 // CREDITS PAGE
198 wxPanel* creditsPanel = new wxPanel(aboutDialogNoteBook, ID_CREDITSPANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
199 creditsPanel->SetForegroundColour(wxColour(0, 0, 0));
200 creditsPanel->SetBackgroundColour(wxColour(255, 255, 255));
201 wxBoxSizer* creditsBoxSizer = new wxBoxSizer(wxVERTICAL);
202 creditsPanel->SetSizer(creditsBoxSizer);
203
204 AboutDialogTextCtrl* creditsTextCtrl = new AboutDialogTextCtrl(creditsPanel, _guilang.get("GUI_ABOUT_CREDITS"));
205 creditsBoxSizer->Add(creditsTextCtrl, 1, wxGROW | wxEXPAND | wxALL, 5);
206
207 aboutDialogNoteBook->AddPage(creditsPanel, "Credits");
208
209 // STATS PAGE
210 wxPanel* statsPanel = new wxPanel(aboutDialogNoteBook, ID_STATSPANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
211 statsPanel->SetForegroundColour(wxColour(0, 0, 0));
212 statsPanel->SetBackgroundColour(wxColour(255, 255, 255));
213 wxBoxSizer* statsBoxSizer = new wxBoxSizer(wxVERTICAL);
214 statsPanel->SetSizer(statsBoxSizer);
215
216 AboutDialogTextCtrl* statsTextCtrl = new AboutDialogTextCtrl(statsPanel, _guilang.get("GUI_ABOUT_STATS"));
217 statsBoxSizer->Add(statsTextCtrl, 1, wxGROW | wxEXPAND | wxALL, 5);
218
219 aboutDialogNoteBook->AddPage(statsPanel, "Stats");
220
221 // JOIN PAGE
222 wxPanel* joinPanel = new wxPanel(aboutDialogNoteBook, ID_STATSPANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
223 joinPanel->SetForegroundColour(wxColour(0, 0, 0));
224 joinPanel->SetBackgroundColour(wxColour(255, 255, 255));
225 wxBoxSizer* joinBoxSizer = new wxBoxSizer(wxVERTICAL);
226 joinPanel->SetSizer(joinBoxSizer);
227
228 AboutDialogTextCtrl* joinTextCtrl = new AboutDialogTextCtrl(joinPanel, _guilang.get("GUI_ABOUT_JOIN"));
229 joinBoxSizer->Add(joinTextCtrl, 1, wxGROW | wxEXPAND | wxALL, 5);
230
231 aboutDialogNoteBook->AddPage(joinPanel, "Contribute");
232
233#if !wxCHECK_VERSION(2,5,2)
234 itemBoxSizer2->Add(itemNotebook3Sizer, 0, wxGROW|wxALL, 5);
235#else
236 itemBoxSizer2->Add(aboutDialogNoteBook, 0, wxGROW|wxALL, 5);
237#endif
238
239 wxBoxSizer* itemBoxSizer21 = new wxBoxSizer(wxHORIZONTAL);
240 itemBoxSizer2->Add(itemBoxSizer21, 0, wxALIGN_RIGHT|wxALL, 0);
241
242 wxButton* itemButton22 = new wxButton(this, ID_BUTTONOK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
243 itemBoxSizer21->Add(itemButton22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
244
246}
247
253{
254 return TRUE;
255}
260void AboutChameleonDialog::OnButtonOKClick( wxCommandEvent& event )
261{
262 // Insert custom code here
263 event.Skip();
264 EndModal(wxOK);
265}
266
267
268
274{
275 // Bitmap retrieval
277 wxFileName f(wxStandardPaths::Get().GetExecutablePath());
278 wxUnusedVar(name);
279 if (name == _T("chamlogo_1.xpm"))
280 {
281 wxBitmap bitmap(f.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR)+"icons\\folder.png", wxBITMAP_TYPE_PNG);
282 return bitmap;
283 }
284 /*else if (name == _T("team_1.xpm"))
285 {
286 wxBitmap bitmap(team_1_xpm);
287 return bitmap;
288 }*/
289 return wxNullBitmap;
291}
292
298{
299 // Icon retrieval
301 wxUnusedVar(name);
302 return wxNullIcon;
304}
Language _guilang
const std::string sVersion
#define ID_BUTTONOK
#define ID_STATSPANEL
#define ID_NOTEBOOK
#define ID_TEAMPANEL
#define ID_PROGPANEL
#define ID_CREDITSPANEL
wxBitmap GetBitmapResource(const wxString &name)
Retrieves bitmap resources.
bool Create(wxWindow *parent, wxWindowID id=SYMBOL_ABOUTCHAMELEONDIALOG_IDNAME, const wxString &caption=SYMBOL_ABOUTCHAMELEONDIALOG_TITLE, const wxPoint &pos=SYMBOL_ABOUTCHAMELEONDIALOG_POSITION, const wxSize &size=SYMBOL_ABOUTCHAMELEONDIALOG_SIZE, long style=SYMBOL_ABOUTCHAMELEONDIALOG_STYLE)
Creation.
void OnButtonOKClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTONOK
void CreateControls()
Creates the controls and sizers.
wxIcon GetIconResource(const wxString &name)
Retrieves icon resources.
AboutChameleonDialog()
Constructors.
static bool ShowToolTips()
Should we show tooltips?
void OnUrlClick(wxTextUrlEvent &event)
AboutDialogTextCtrl(wxWindow *parent, const wxString &contents)
This class handles the internal language system and returns the language strings of the selected lang...
Definition: language.hpp:38
std::string get(const std::string &sMessage, const std::vector< std::string > &vTokens) const
This member function returns the language string for the passed language identifier and replaces all ...
Definition: language.cpp:292
#define _T(x)
Definition: muParserDef.h:72
static const char YEAR[]
Definition: version.h:9
Definition: http.cpp:32
#define TRUE
Definition: resampler.cpp:38
char name[32]
Definition: resampler.cpp:371
END_EVENT_TABLE()