46EVT_KEY_DOWN(PopUpDSlide::OnKeyDown)
47EVT_MOVE(PopUpDSlide::OnMove)
48EVT_COMMAND_SCROLL_THUMBRELEASE(-1, PopUpDSlide::OnChangeValue)
49EVT_COMMAND_SCROLL_LINEUP(-1, PopUpDSlide::OnChangeValue)
50EVT_COMMAND_SCROLL_LINEDOWN(-1, PopUpDSlide::OnChangeValue)
51EVT_COMMAND_SCROLL_PAGEUP(-1, PopUpDSlide::OnChangeValue)
52EVT_COMMAND_SCROLL_PAGEDOWN(-1, PopUpDSlide::OnChangeValue)
53EVT_COMMAND_SCROLL_BOTTOM(-1, PopUpDSlide::OnChangeValue)
54EVT_COMMAND_SCROLL_TOP(-1, PopUpDSlide::OnChangeValue)
55EVT_CLOSE(PopUpDSlide::OnClose)
59 ChartFamilyEnum ChartF, const wxPoint& pos,
60 const wxSize& size,
long style,
61 const wxString& title) {
63 if (Create(parent, ID_CM93ZOOMG, ChartT, ChartF, pos, size, style, title)) {
64 m_p_DetailSlider->Connect(
65 wxEVT_KEY_DOWN, wxKeyEventHandler(PopUpDSlide::OnKeyDown), NULL,
this);
69PopUpDSlide::~PopUpDSlide() {
delete m_p_DetailSlider; }
71void PopUpDSlide::Init() { m_p_DetailSlider = NULL; }
73bool PopUpDSlide::Create(wxWindow* parent, wxWindowID
id, ChartTypeEnum ChartT,
74 ChartFamilyEnum ChartF,
const wxPoint& pos,
75 const wxSize& size,
long style,
76 const wxString& title) {
81 if ((ChartType == CHART_TYPE_CM93COMP) || (ChartType == CHART_TYPE_CM93)) {
82 value = g_cm93_zoom_factor;
83 WindowText = _(
"CM93 Detail Level");
84 }
else if ((ChartType == CHART_TYPE_KAP) || (ChartType == CHART_TYPE_GEO) ||
85 (ChartFam == CHART_FAMILY_RASTER)) {
86 value = g_chart_zoom_modifier_raster;
87 WindowText = _(
"Rasterchart Zoom/Scale Weighting");
88 }
else if ((ChartType == CHART_TYPE_S57) ||
89 (ChartFam == CHART_FAMILY_VECTOR)) {
90 value = g_chart_zoom_modifier_vector;
91 WindowText = _(
"Vectorchart Zoom/Scale Weighting");
97 long wstyle = wxDEFAULT_DIALOG_STYLE | wxFRAME_FLOAT_ON_PARENT;
99 if (!wxFrame::Create(parent,
id, WindowText, pos, size, wstyle))
return false;
105 m_p_DetailSlider =
new wxSlider(
106 this,
id, value, minValue, maxValue, wxPoint(0, 0), wxDefaultSize,
107 wxSL_HORIZONTAL | wxSL_AUTOTICKS | wxSL_LABELS, wxDefaultValidator,
110 m_p_DetailSlider->SetSize(wxSize(350, -1));
112 m_p_DetailSlider->InvalidateBestSize();
113 wxSize bs = m_p_DetailSlider->GetBestSize();
115 m_p_DetailSlider->SetSize(wxSize(350, bs.y));
118 m_p_DetailSlider->SetValue(value);
125void PopUpDSlide::OnCancelClick(wxCommandEvent& event) {
126 g_bShowDetailSlider =
false;
130void PopUpDSlide::OnClose(wxCloseEvent& event) {
131 g_bShowDetailSlider =
false;
133 if (m_p_DetailSlider)
134 m_p_DetailSlider->Disconnect(
135 wxEVT_KEY_DOWN, wxKeyEventHandler(PopUpDSlide::OnKeyDown), NULL,
this);
140void PopUpDSlide::OnKeyDown(wxKeyEvent& event) {
141 int key_char =
event.GetKeyCode();
142 if (key_char == WXK_ESCAPE || key_char ==
'D') {
143 g_bShowDetailSlider =
false;
148void PopUpDSlide::OnMove(wxMoveEvent& event) {
150 wxPoint p =
event.GetPosition();
151 g_detailslider_dialog_x = p.x;
152 g_detailslider_dialog_y = p.y;
157void PopUpDSlide::OnChangeValue(wxScrollEvent& event)
160 ::wxBeginBusyCursor();
162 if ((ChartType == CHART_TYPE_CM93COMP) || (ChartType == CHART_TYPE_CM93)) {
163 g_cm93_zoom_factor = m_p_DetailSlider->GetValue();
166 parentCanvas->ReloadVP();
167 parentCanvas->Refresh();
172 if ((ChartType == CHART_TYPE_KAP) || (ChartType == CHART_TYPE_GEO) ||
173 (ChartFam == CHART_FAMILY_RASTER)) {
174 g_chart_zoom_modifier_raster = m_p_DetailSlider->GetValue();
177 if ((ChartType == CHART_TYPE_S57) || (ChartFam == CHART_FAMILY_VECTOR)) {
178 g_chart_zoom_modifier_vector = m_p_DetailSlider->GetValue();
181 top_frame::Get()->ProcessOptionsDialog(S52_CHANGED | FORCE_UPDATE);
Charts database management
Generic Chart canvas base.
ChartCanvas - Main chart display and interaction component.
Global variables stored in configuration file.
PopUpDSlide * pPopupDetailSlider
Global instance.
Chart display details slider.
PopUpDSlide * pPopupDetailSlider
Global instance.
GUI constant definitions.
Abstract gFrame/MyFrame interface.