diff options
author | Jorgen Bodde <jorgb@xs4all.nl> | 2005-06-30 19:54:14 (GMT) |
---|---|---|
committer | Jorgen Bodde <jorgb@xs4all.nl> | 2005-06-30 19:54:14 (GMT) |
commit | 8c28e4e9f0b82ec96b4b68c370a8fc50333b093c (patch) | |
tree | ad8c3ff74a3ef384d0c1df3f2b2f7781b9de42bd /Source/WXDialog/aboutdlg.cpp | |
parent | 099587c4ee40f05e99666eeab92a0357cd932a38 (diff) | |
download | CMake-8c28e4e9f0b82ec96b4b68c370a8fc50333b093c.zip CMake-8c28e4e9f0b82ec96b4b68c370a8fc50333b093c.tar.gz CMake-8c28e4e9f0b82ec96b4b68c370a8fc50333b093c.tar.bz2 |
Initial checkin new wx dialog
Diffstat (limited to 'Source/WXDialog/aboutdlg.cpp')
-rw-r--r-- | Source/WXDialog/aboutdlg.cpp | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/Source/WXDialog/aboutdlg.cpp b/Source/WXDialog/aboutdlg.cpp new file mode 100644 index 0000000..e87b96e --- /dev/null +++ b/Source/WXDialog/aboutdlg.cpp @@ -0,0 +1,210 @@ +/*========================================================================= + + Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Author: Jorgen Bodde + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#if defined(__GNUG__) && !defined(__APPLE__) +#pragma implementation "aboutdlg.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +////@begin includes +////@end includes + +#include "cmake_logo.xpm" +#include "aboutdlg.h" + +////@begin XPM images +////@end XPM images + +/*! + * CMAboutDlg type definition + */ + +IMPLEMENT_DYNAMIC_CLASS( CMAboutDlg, wxDialog ) + +/*! + * CMAboutDlg event table definition + */ + +BEGIN_EVENT_TABLE( CMAboutDlg, wxDialog ) + +////@begin CMAboutDlg event table entries + EVT_BUTTON( ID_ABOUT_DLG_OK, CMAboutDlg::OnAboutDlgClick ) + +////@end CMAboutDlg event table entries + +END_EVENT_TABLE() + +/*! + * CMAboutDlg constructors + */ + +CMAboutDlg::CMAboutDlg( ) +{ +} + +CMAboutDlg::CMAboutDlg( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ + Create(parent, id, caption, pos, size, style); +} + +/*! + * CMAboutDlg creator + */ + +bool CMAboutDlg::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +{ +////@begin CMAboutDlg member initialisation + m_cmIcon = NULL; + m_html = NULL; +////@end CMAboutDlg member initialisation + +////@begin CMAboutDlg creation + SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS); + wxDialog::Create( parent, id, caption, pos, size, style ); + + CreateControls(); + GetSizer()->Fit(this); + GetSizer()->SetSizeHints(this); + Centre(); +////@end CMAboutDlg creation + + // set logo on the dialog + wxBitmap bmp(cmake_logo); + m_cmIcon->SetBitmap(bmp); + + return TRUE; +} + +/*! + * Control creation for CMAboutDlg + */ + +void CMAboutDlg::CreateControls() +{ +////@begin CMAboutDlg content construction + CMAboutDlg* itemDialog1 = this; + + wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); + itemDialog1->SetSizer(itemBoxSizer2); + + wxFlexGridSizer* itemFlexGridSizer3 = new wxFlexGridSizer(1, 2, 0, 0); + itemFlexGridSizer3->AddGrowableRow(0); + itemFlexGridSizer3->AddGrowableCol(1); + itemBoxSizer2->Add(itemFlexGridSizer3, 1, wxGROW|wxALL, 5); + + wxBitmap m_cmIconBitmap(wxNullBitmap); + m_cmIcon = new wxStaticBitmap( itemDialog1, wxID_STATIC, m_cmIconBitmap, wxDefaultPosition, wxSize(32, 32), 0 ); + itemFlexGridSizer3->Add(m_cmIcon, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_TOP|wxLEFT|wxRIGHT|wxTOP, 5); + + m_html = new wxHtmlWindow( itemDialog1, ID_HTMLWINDOW, wxDefaultPosition, wxSize(500, 300), wxHW_SCROLLBAR_AUTO|wxNO_BORDER|wxHSCROLL|wxVSCROLL ); + itemFlexGridSizer3->Add(m_html, 1, wxGROW|wxGROW|wxRIGHT|wxTOP|wxBOTTOM, 5); + + wxButton* itemButton6 = new wxButton( itemDialog1, ID_ABOUT_DLG_OK, _("&Ok"), wxDefaultPosition, wxDefaultSize, 0 ); + itemBoxSizer2->Add(itemButton6, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + +////@end CMAboutDlg content construction +} + +/*! + * Should we show tooltips? + */ + +bool CMAboutDlg::ShowToolTips() +{ + return TRUE; +} + +void CMAboutDlg::SetAboutText(const wxString &cmversion, const wxString &cmsversion, const wxArrayString &generators) +{ + // set HTML text in window + + wxString text = _("<html><head><title>CMakeSetup - GUI Build System for CMake</title></head>" + "<body><font color=\"#000080\" size=\"+1\"><em><strong>CMakeSetup - GUI Build System for CMake</strong></em></font>" + "<p><font face=\"Arial, Helvetica, sans-serif\">Welcome to <b>CMake</b>! The cross-platform, open-source make system." + "<b>CMake</b> is used to control the software compilation process using simple platform and compiler independent configuration files. " + "<b>CMake</b> generates native makefiles and workspaces that can be used in the compiler environment of your choice. " + "Please go to <i><b>http://www.cmake.org</b></i> to learn more about CMake.<br><br>" + "CMakeSetup.exe is enhanced and ported by Jorgen Bodde using <i>@WXV@</i>. The original CMakeSetup.exe is " + "written by Bill Hoffman, Ken Martin, Brad King and Andy Cedilnik.<br><br>" + "Current CMakeSetup version is: <b>@B@</b><br>" + "Current CMake build system is: <b>@V@</b><br><br>" + "Current generators are supported:<br>" + "@G@</font></p></body></html>"); + + // compile list of generators in a bulleted list + wxString gens = _("<ul>"); + for(size_t i = 0; i < generators.Count(); i++) + gens << "<li><u>" << generators[i] << "</u></li>"; + gens << _("</ul>"); + + // replace stuff + text.Replace(_("@V@"), cmversion, true); + text.Replace(_("@B@"), cmsversion, true); + text.Replace(_("@G@"), gens, true); + text.Replace(_("@WXV@"), wxVERSION_STRING, true); + + m_html->SetPage(text); + + // set color of HTML window to bg window + m_html->SetBackgroundColour(GetBackgroundColour()); +} + +/*! + * Get bitmap resources + */ + +wxBitmap CMAboutDlg::GetBitmapResource( const wxString& name ) +{ + // Bitmap retrieval +////@begin CMAboutDlg bitmap retrieval + return wxNullBitmap; +////@end CMAboutDlg bitmap retrieval +} + +/*! + * Get icon resources + */ + +wxIcon CMAboutDlg::GetIconResource( const wxString& name ) +{ + // Icon retrieval +////@begin CMAboutDlg icon retrieval + return wxNullIcon; +////@end CMAboutDlg icon retrieval +} +/*! + * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_ABOUT_DLG_OK + */ + +void CMAboutDlg::OnAboutDlgClick( wxCommandEvent& event ) +{ + Close(); +} + + |