97 lines
2.1 KiB
C++
97 lines
2.1 KiB
C++
|
#include "widget.h"
|
||
|
|
||
|
class GeneralPrefPanePage : public wxPanel {
|
||
|
public:
|
||
|
GeneralPrefPanePage(wxWindow *parent)
|
||
|
: wxPanel(parent)
|
||
|
{
|
||
|
showLineNumbers = new wxCheckBox(this, myID_PREFS_LINE_NUMBERS, "Show line numbers");
|
||
|
showIndentGuides = new wxCheckBox(this, myID_PREFS_IDENT_GUIDES, "Show indent guides");
|
||
|
showCodeFolding = new wxCheckBox(this, myID_PREFS_CODE_FOLDING, "Show code folding");
|
||
|
|
||
|
wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
|
||
|
|
||
|
sizer->Add(showLineNumbers, wxSizerFlags().Border());
|
||
|
sizer->Add(showIndentGuides, wxSizerFlags().Border());
|
||
|
sizer->Add(showCodeFolding, wxSizerFlags().Border());
|
||
|
|
||
|
this->SetSizerAndFit(sizer);
|
||
|
|
||
|
// Change settings on selection, rather than on apply button
|
||
|
// On supported platforms
|
||
|
if (wxPreferencesEditor::ShouldApplyChangesImmediately())
|
||
|
{
|
||
|
// @TODO add event handlers
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Apply current settings to the pref window
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
virtual bool TransferDataToWindow()
|
||
|
{
|
||
|
showLineNumbers->SetValue(true);
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Called on platforms with modal preferences dialog to save
|
||
|
* and apply the changes
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
virtual bool TransferDataFromWindow()
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
~GeneralPrefPanePage()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
private:
|
||
|
wxCheckBox *showLineNumbers;
|
||
|
wxCheckBox *showIndentGuides;
|
||
|
wxCheckBox *showCodeFolding;
|
||
|
};
|
||
|
|
||
|
class GeneralPrefPane: public wxStockPreferencesPage {
|
||
|
public:
|
||
|
GeneralPrefPane() : wxStockPreferencesPage(Kind_General) {}
|
||
|
virtual wxWindow *CreateWindow(wxWindow *parent)
|
||
|
{
|
||
|
return new GeneralPrefPanePage(parent);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
// -----------------------------------------------------------------------------
|
||
|
// ! Implementation of PrefPane Class
|
||
|
// -----------------------------------------------------------------------------
|
||
|
|
||
|
PrefPane::PrefPane()
|
||
|
{
|
||
|
this->pref_window = new wxPreferencesEditor();
|
||
|
this->setupGeneral();
|
||
|
}
|
||
|
|
||
|
PrefPane::~PrefPane()
|
||
|
{
|
||
|
delete this->pref_window;
|
||
|
}
|
||
|
|
||
|
void PrefPane::Show(wxWindow *parent)
|
||
|
{
|
||
|
this->pref_window->Show(parent);
|
||
|
}
|
||
|
|
||
|
void PrefPane::setupGeneral()
|
||
|
{
|
||
|
//this->pref_window.reset(new wxPreferencesEditor);
|
||
|
this->pref_window->AddPage(new GeneralPrefPane());
|
||
|
}
|
||
|
|
||
|
|
||
|
|