-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMiniDocConfigPanel.cpp
128 lines (105 loc) · 4.26 KB
/
MiniDocConfigPanel.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "MiniDocConfigPanel.h"
#include <sdk.h>
#ifndef CB_PRECOMP
#include <algorithm>
#include <wx/xrc/xmlres.h>
#include <wx/button.h>
#include <wx/checkbox.h>
#include <wx/colordlg.h>
#include <wx/stattext.h>
#include <wx/spinctrl.h>
#include <configmanager.h>
#include <editormanager.h>
#include <logmanager.h>
#endif
#include <cbcolourmanager.h>
#include "MiniDocPanel.h"
//(*InternalHeaders(MiniDocConfigPanel)
#include <wx/button.h>
#include <wx/checkbox.h>
#include <wx/choice.h>
#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/xrc/xmlres.h>
//*)
//(*IdInit(MiniDocConfigPanel)
//*)
BEGIN_EVENT_TABLE(MiniDocConfigPanel,wxPanel)
//(*EventTable(MiniDocConfigPanel)
//*)
END_EVENT_TABLE()
MiniDocConfigPanel::MiniDocConfigPanel(wxWindow* parent, MiniDocPanel *panel)
{
panel_ = panel;
BuildContent(parent);
}
void MiniDocConfigPanel::BuildContent(wxWindow* parent)
{
//(*Initialize(MiniDocConfigPanel)
wxXmlResource::Get()->LoadObject(this,parent,_T("MiniDocConfigPanel"),_T("wxPanel"));
syncPositionCheckBox = (wxCheckBox*)FindWindow(XRCID("ID_CHECKBOX_SYNC_POS"));
showDesignatorCheckBox = (wxCheckBox*)FindWindow(XRCID("ID_CHECKBOX_SHOW_DESIGNATOR"));
colorSelButton = (wxButton*)FindWindow(XRCID("ID_COLOR_BUTTON"));
inverseDesignatorCheckBox = (wxCheckBox*)FindWindow(XRCID("ID_CHECKBOX_INVERSE_DES"));
showScrollbarCheckBox = (wxCheckBox*)FindWindow(XRCID("ID_CHECKBOX_SHOW_SCROLLBAR"));
StaticText2 = (wxStaticText*)FindWindow(XRCID("ID_STATICTEXT2"));
adjustPositionChoice = (wxChoice*)FindWindow(XRCID("ID_CHOICE1"));
Connect(XRCID("ID_CHECKBOX_SHOW_DESIGNATOR"),wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&MiniDocConfigPanel::OnShowDesignator);
Connect(XRCID("ID_COLOR_BUTTON"),wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&MiniDocConfigPanel::OnColorSelButtonClick);
//*)
ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("editor"));
if(!cfg) return;
wxColour backgroundColour = Manager::Get()->GetColourManager()->GetColour(wxT("minidoc_background"));
colorSelButton->SetBackgroundColour(backgroundColour);
const bool enableDesignator = cfg->ReadBool(_T("/mini_doc/show_designator"), false);
syncPositionCheckBox->SetValue(cfg->ReadBool(_T("/mini_doc/sync_to_main_doc"), true));
showDesignatorCheckBox->SetValue(enableDesignator);
inverseDesignatorCheckBox->SetValue(cfg->ReadBool(_T("/mini_doc/inverse_designator"), false));
inverseDesignatorCheckBox->Enable(enableDesignator);
colorSelButton->Enable(enableDesignator);
showScrollbarCheckBox->SetValue(cfg->ReadBool(_T("/mini_doc/show_vertical_scrollbar"), true));
adjustPositionChoice->SetSelection(cfg->ReadInt(_T("/mini_doc/pos_of_main"), 2));
}
MiniDocConfigPanel::~MiniDocConfigPanel()
{
//(*Destroy(MiniDocConfigPanel)
//*)
}
void MiniDocConfigPanel::OnColorSelButtonClick(wxCommandEvent& event)
{
wxColourData data;
data.SetColour(colorSelButton->GetBackgroundColour());
wxColourDialog dlg(this, &data);
PlaceWindow(&dlg);
if (dlg.ShowModal() == wxID_OK)
{
wxColour colour = dlg.GetColourData().GetColour();
colorSelButton->SetBackgroundColour(colour);
}
}
void MiniDocConfigPanel::OnApply()
{
// save any changes
ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("editor"));
wxColour backgroundColour = colorSelButton->GetBackgroundColour();
Manager::Get()->GetColourManager()->SetColour(wxT("minidoc_background"), backgroundColour);
cfg->Write(_T("/mini_doc/sync_to_main_doc"), syncPositionCheckBox->GetValue());
cfg->Write(_T("/mini_doc/show_designator"), showDesignatorCheckBox->GetValue());
cfg->Write(_T("/mini_doc/inverse_designator"), inverseDesignatorCheckBox->GetValue());
cfg->Write(_T("/mini_doc/show_vertical_scrollbar"), showScrollbarCheckBox->GetValue());
cfg->Write(_T("/mini_doc/pos_of_main"), adjustPositionChoice->GetSelection());
panel_->UpdateConfig();
}
wxString MiniDocConfigPanel::GetTitle() const
{
return _("MiniDoc");
}
wxString MiniDocConfigPanel::GetBitmapBaseName() const
{
return _T("MiniDoc");
}
void MiniDocConfigPanel::OnShowDesignator(wxCommandEvent& event)
{
inverseDesignatorCheckBox->Enable(showDesignatorCheckBox->GetValue());
colorSelButton->Enable(showDesignatorCheckBox->GetValue());
}