Files
wxWidgets/utils/configtool/src/settingsdialog.cpp
Włodzimierz Skiba 90c0f5a958 Source cleaning.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-26 12:44:28 +00:00

420 lines
12 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: utils/configtool/src/settingsdialog.cpp
// Purpose: Settings dialog
// Author: Julian Smart
// Modified by:
// Created: 2003-06-12
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/intl.h"
#include "wx/statline.h"
#include "wx/splitter.h"
#include "wx/scrolwin.h"
#include "wx/spinctrl.h"
#include "wx/spinbutt.h"
#include "wx/sizer.h"
#include "wx/statbox.h"
#include "wx/dirdlg.h"
#include "wx/stattext.h"
#include "wx/choice.h"
#endif
#include "wx/cshelp.h"
#include "wx/notebook.h"
#include "wx/valgen.h"
#include "wxconfigtool.h"
#include "settingsdialog.h"
////@begin XPM images
////@end XPM images
/*!
* ctSettingsDialog type definition
*/
IMPLEMENT_CLASS( ctSettingsDialog, wxDialog )
/*!
* ctSettingsDialog event table definition
*/
BEGIN_EVENT_TABLE( ctSettingsDialog, wxDialog )
////@begin ctSettingsDialog event table entries
EVT_BUTTON( wxID_OK, ctSettingsDialog::OnOk )
EVT_BUTTON( wxID_CANCEL, ctSettingsDialog::OnCancel )
EVT_BUTTON( wxID_HELP, ctSettingsDialog::OnHelp )
////@end ctSettingsDialog event table entries
END_EVENT_TABLE()
/*!
* ctSettingsDialog constructor
*/
ctSettingsDialog::ctSettingsDialog( wxWindow* parent )
{
SetExtraStyle(wxDIALOG_EX_CONTEXTHELP|wxWS_EX_VALIDATE_RECURSIVELY);
wxDialog::Create( parent, wxID_ANY, _("Configuration Settings"));
CreateControls();
}
/*!
* Control creation for ctSettingsDialog
*/
void ctSettingsDialog::CreateControls()
{
////@begin ctSettingsDialog content construction
ctSettingsDialog* item1 = this;
wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);
item1->SetSizer(item2);
m_notebook = new wxNotebook(item1, wxID_ANY, wxDefaultPosition, wxSize(200, 200), wxBK_TOP);
ctGeneralSettingsDialog* item4 = new ctGeneralSettingsDialog(m_notebook, ID_GENERAL_SETTINGS_DIALOG, wxDefaultPosition, wxSize(100, 80), 0);
m_notebook->AddPage(item4, _("General"));
ctLocationSettingsDialog* item11 = new ctLocationSettingsDialog(m_notebook, ID_LOCATION_SETTINGS_DIALOG, wxDefaultPosition, wxSize(100, 80), 0);
m_notebook->AddPage(item11, _("Locations"));
item2->Add(m_notebook, 0, wxGROW|wxALL, 5);
wxBoxSizer* item21 = new wxBoxSizer(wxHORIZONTAL);
item2->Add(item21, 0, wxGROW|wxALL, 5);
item21->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* item23 = new wxButton(item1, wxID_OK);
item23->SetDefault();
item21->Add(item23, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* item24 = new wxButton(item1, wxID_CANCEL);
item21->Add(item24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* item25 = new wxButton(item1, wxID_HELP);
item21->Add(item25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
#if defined(__WXGTK__) || defined(__WXMAC__)
wxContextHelpButton* item26 = new wxContextHelpButton(item1, wxID_CONTEXT_HELP, wxDefaultPosition, wxSize(20, wxDefaultCoord), wxBU_AUTODRAW);
item21->Add(item26, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
#endif
GetSizer()->Fit(this);
GetSizer()->SetSizeHints(this);
Centre();
////@end ctSettingsDialog content construction
}
/*!
* Event handler for wxID_OK
*/
void ctSettingsDialog::OnOk( wxCommandEvent& event )
{
// Replace with custom code
event.Skip();
}
/*!
* Event handler for wxID_CANCEL
*/
void ctSettingsDialog::OnCancel( wxCommandEvent& event )
{
// Replace with custom code
event.Skip();
}
/*!
* Event handler for wxID_HELP
*/
void ctSettingsDialog::OnHelp( wxCommandEvent& WXUNUSED(event) )
{
if(m_notebook)
{
int sel = m_notebook->GetSelection();
wxASSERT_MSG( (sel != -1), wxT("A notebook tab should always be selected."));
wxWindow* page = (wxWindow*) m_notebook->GetPage(sel);
wxString helpTopic;
if (page->GetId() == ID_GENERAL_SETTINGS_DIALOG)
{
helpTopic = wxT("General settings dialog");
}
else if (page->GetId() == ID_LOCATION_SETTINGS_DIALOG)
{
helpTopic = wxT("Location settings dialog");
}
if (!helpTopic.empty())
{
wxGetApp().GetHelpController().DisplaySection(helpTopic);
}
}
}
/*!
* Should we show tooltips?
*/
bool ctSettingsDialog::ShowToolTips()
{
return true;
}
/*!
* ctGeneralSettingsDialog type definition
*/
IMPLEMENT_CLASS( ctGeneralSettingsDialog, wxPanel )
/*!
* ctGeneralSettingsDialog event table definition
*/
BEGIN_EVENT_TABLE( ctGeneralSettingsDialog, wxPanel )
////@begin ctGeneralSettingsDialog event table entries
////@end ctGeneralSettingsDialog event table entries
END_EVENT_TABLE()
/*!
* ctGeneralSettingsDialog constructor
*/
ctGeneralSettingsDialog::ctGeneralSettingsDialog( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
wxPanel::Create( parent, id, pos, size, style );
CreateControls();
}
/*!
* Control creation for ctGeneralSettingsDialog
*/
void ctGeneralSettingsDialog::CreateControls()
{
////@begin ctGeneralSettingsDialog content construction
ctGeneralSettingsDialog* item4 = this;
wxBoxSizer* item5 = new wxBoxSizer(wxVERTICAL);
item4->SetSizer(item5);
wxStaticBox* item6Static = new wxStaticBox(item4, wxID_ANY, _("General settings"));
wxStaticBoxSizer* item6 = new wxStaticBoxSizer(item6Static, wxVERTICAL);
item5->Add(item6, 1, wxGROW|wxALL, 5);
wxCheckBox* item7 = new wxCheckBox(item4, ID_LOAD_LAST_DOCUMENT, _("&Load last document"), wxDefaultPosition, wxDefaultSize, 0);
item7->SetValue(false);
item7->SetHelpText(_("Check to load the last document on startup"));
#if wxUSE_TOOLTIPS
if (ShowToolTips())
item7->SetToolTip(_("Check to load the last document on startup"));
#endif
item6->Add(item7, 0, wxALIGN_LEFT|wxALL, 5);
wxCheckBox* item8 = new wxCheckBox(item4, ID_SHOW_TOOLTIPS, _("&Show tooltips"), wxDefaultPosition, wxDefaultSize, 0);
item8->SetValue(false);
item8->SetHelpText(_("Check to show tooltips"));
#if wxUSE_TOOLTIPS
if (ShowToolTips())
item8->SetToolTip(_("Check to show tooltips"));
#endif
item6->Add(item8, 0, wxALIGN_LEFT|wxALL, 5);
wxStaticText* item9 = new wxStaticText(item4, wxID_STATIC, _("&Default file kind to save when using the Go command:"), wxDefaultPosition, wxDefaultSize, 0);
item6->Add(item9, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxString item10Strings[] = {
_("Setup file"),
_("Configure script")
};
wxChoice* item10 = new wxChoice(item4, ID_DEFAULT_FILE_KIND, wxDefaultPosition, wxSize(200, wxDefaultCoord), 2, item10Strings, 0);
item10->SetStringSelection(_("Setup file"));
item10->SetHelpText(_("Select the default kind of file to save using Go"));
#if wxUSE_TOOLTIPS
if (ShowToolTips())
item10->SetToolTip(_("Select the default kind of file to save using Go"));
#endif
item6->Add(item10, 0, wxGROW|wxALL, 5);
GetSizer()->Fit(this);
////@end ctGeneralSettingsDialog content construction
item7->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_loadLastDocument));
item8->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_useToolTips));
item10->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_defaultFileKind));
}
/*!
* Should we show tooltips?
*/
bool ctGeneralSettingsDialog::ShowToolTips()
{
return true;
}
/*!
* ctLocationSettingsDialog type definition
*/
IMPLEMENT_CLASS( ctLocationSettingsDialog, wxPanel )
/*!
* ctLocationSettingsDialog event table definition
*/
BEGIN_EVENT_TABLE( ctLocationSettingsDialog, wxPanel )
////@begin ctLocationSettingsDialog event table entries
EVT_UPDATE_UI( ID_WXWIN_HIERARCHY, ctLocationSettingsDialog::OnUpdateWxwinHierarchy )
EVT_BUTTON( ID_CHOOSE_WXWIN_HIERARCHY, ctLocationSettingsDialog::OnChooseWxwinHierarchy )
EVT_UPDATE_UI( ID_CHOOSE_WXWIN_HIERARCHY, ctLocationSettingsDialog::OnUpdateChooseWxwinHierarchy )
////@end ctLocationSettingsDialog event table entries
END_EVENT_TABLE()
/*!
* ctLocationSettingsDialog constructor
*/
ctLocationSettingsDialog::ctLocationSettingsDialog( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
wxPanel::Create( parent, id, pos, size, style );
CreateControls();
}
/*!
* Control creation for ctLocationSettingsDialog
*/
void ctLocationSettingsDialog::CreateControls()
{
////@begin ctLocationSettingsDialog content construction
ctLocationSettingsDialog* item11 = this;
wxBoxSizer* item12 = new wxBoxSizer(wxVERTICAL);
item11->SetSizer(item12);
wxStaticBox* item13Static = new wxStaticBox(item11, wxID_ANY, _("Locations"));
wxStaticBoxSizer* item13 = new wxStaticBoxSizer(item13Static, wxVERTICAL);
item12->Add(item13, 1, wxGROW|wxALL, 5);
wxStaticText* item14 = new wxStaticText(item11, wxID_STATIC, _("&wxWidgets hierarchy:"), wxDefaultPosition, wxDefaultSize, 0);
item13->Add(item14, 0, wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* item15 = new wxBoxSizer(wxHORIZONTAL);
item13->Add(item15, 0, wxGROW, 5);
m_wxWinHierarchy = new wxTextCtrl(item11, ID_WXWIN_HIERARCHY, wxEmptyString, wxDefaultPosition, wxSize(200, wxDefaultCoord), 0);
m_wxWinHierarchy->SetHelpText(_("Enter the root path of the wxWidgets hierarchy"));
#if wxUSE_TOOLTIPS
if (ShowToolTips())
m_wxWinHierarchy->SetToolTip(_("Enter the root path of the wxWidgets hierarchy"));
#endif
item15->Add(m_wxWinHierarchy, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* item17 = new wxButton(item11, ID_CHOOSE_WXWIN_HIERARCHY, _("&Choose..."), wxDefaultPosition, wxDefaultSize, 0);
item17->SetHelpText(_("Click to choose the root path of the wxWidgets hierarchy\\n"));
#if wxUSE_TOOLTIPS
if (ShowToolTips())
item17->SetToolTip(_("Click to choose the root path of the wxWidgets hierarchy\\n"));
#endif
item15->Add(item17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* item18 = new wxBoxSizer(wxHORIZONTAL);
item13->Add(item18, 0, wxGROW, 5);
item18->Add(60, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_wxWinUse = new wxCheckBox(item11, ID_USE_WXWIN, _("&Use WXWIN environment variable"));
m_wxWinUse->SetValue(false);
m_wxWinUse->SetHelpText(_("Check to use the value of WXWIN instead"));
#if wxUSE_TOOLTIPS
if (ShowToolTips())
m_wxWinUse->SetToolTip(_("Check to use the value of WXWIN instead"));
#endif
item18->Add(m_wxWinUse, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
GetSizer()->Fit(this);
////@end ctLocationSettingsDialog content construction
m_wxWinHierarchy->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_frameworkDir));
m_wxWinUse->SetValidator(wxGenericValidator(& wxGetApp().GetSettings().m_useEnvironmentVariable));
}
/*!
* Update event handler for ID_WXWIN_HIERARCHY
*/
void ctLocationSettingsDialog::OnUpdateWxwinHierarchy( wxUpdateUIEvent& event )
{
if(m_wxWinUse)
event.Enable(!m_wxWinUse->GetValue());
}
/*!
* Event handler for ID_CHOOSE_WXWIN_HIERARCHY
*/
void ctLocationSettingsDialog::OnChooseWxwinHierarchy( wxCommandEvent& WXUNUSED(event) )
{
if (m_wxWinHierarchy)
{
wxString defaultPath = m_wxWinHierarchy->GetValue();
wxDirDialog dialog(this, _("Choose the location of the wxWidgets hierarchy"),
defaultPath);
if (dialog.ShowModal() == wxID_OK)
{
m_wxWinHierarchy->SetValue(dialog.GetPath());
}
}
}
/*!
* Update event handler for ID_CHOOSE_WXWIN_HIERARCHY
*/
void ctLocationSettingsDialog::OnUpdateChooseWxwinHierarchy( wxUpdateUIEvent& event )
{
if (m_wxWinUse)
event.Enable(!m_wxWinUse->GetValue());
}
/*!
* Should we show tooltips?
*/
bool ctLocationSettingsDialog::ShowToolTips()
{
return wxGetApp().GetSettings().m_useToolTips;
}