[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5343] Use textctrls rather than spinctrls for doubles (VS
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5343] Use textctrls rather than spinctrls for doubles (VS) |
Date: |
Wed, 04 Jan 2012 23:03:38 +0000 |
Revision: 5343
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5343
Author: chicares
Date: 2012-01-04 23:03:37 +0000 (Wed, 04 Jan 2012)
Log Message:
-----------
Use textctrls rather than spinctrls for doubles (VS)
Modified Paths:
--------------
lmi/trunk/ChangeLog
lmi/trunk/census_view.cpp
Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2012-01-04 18:25:44 UTC (rev 5342)
+++ lmi/trunk/ChangeLog 2012-01-04 23:03:37 UTC (rev 5343)
@@ -29332,3 +29332,9 @@
zero_test.cpp
Update copyright notices.
+20120104T2303Z <address@hidden> [597]
+
+ census_view.cpp
+Use textctrls rather than spinctrls for doubles (VS). See:
+ http://lists.nongnu.org/archive/html/lmi/2011-12/msg00015.html
+
Modified: lmi/trunk/census_view.cpp
===================================================================
--- lmi/trunk/census_view.cpp 2012-01-04 18:25:44 UTC (rev 5342)
+++ lmi/trunk/census_view.cpp 2012-01-04 23:03:37 UTC (rev 5343)
@@ -53,8 +53,9 @@
#include <wx/menu.h>
#include <wx/msgdlg.h>
#include <wx/spinctrl.h>
+#include <wx/valnum.h>
+#include <wx/wupdlock.h>
#include <wx/xrc/xmlres.h>
-#include <wx/wupdlock.h>
#include <algorithm>
#include <cctype>
@@ -246,42 +247,50 @@
return value_cast<std::string>(spin->GetValue());
}
-// class DoubleSpinRenderer
+// class DoubleRangeRenderer
-class DoubleSpinRenderer
+class DoubleRangeRenderer
:public RangeTypeRenderer
{
public:
- DoubleSpinRenderer() : RangeTypeRenderer() {}
+ DoubleRangeRenderer() : RangeTypeRenderer() {}
protected:
virtual wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect,
tn_range_variant_data const& data);
virtual std::string DoGetValueFromEditor(wxWindow* editor);
};
-wxWindow* DoubleSpinRenderer::DoCreateEditor
+wxWindow* DoubleRangeRenderer::DoCreateEditor
(wxWindow* parent
,wxRect const& rect
,tn_range_variant_data const& data)
{
- return new(wx) wxSpinCtrlDouble
+ wxFloatingPointValidator<double> val;
+ val.SetRange(data.min, data.max);
+
+ wxTextCtrl* ctrl = new(wx) wxTextCtrl
(parent
,wxID_ANY
,data.value
,rect.GetTopLeft()
,rect.GetSize()
- ,wxSP_ARROW_KEYS | wxTE_PROCESS_ENTER
- ,data.min
- ,data.max
- ,value_cast<double>(data.value));
+ ,wxTE_PROCESS_ENTER
+ ,val);
+
+ // select the text in the control an place the cursor at the end
+ // (same as wxDataViewTextRenderer)
+ ctrl->SetInsertionPointEnd();
+ ctrl->SelectAll();
+
+ return ctrl;
}
-std::string DoubleSpinRenderer::DoGetValueFromEditor(wxWindow* editor)
+std::string DoubleRangeRenderer::DoGetValueFromEditor(wxWindow* editor)
{
- wxSpinCtrlDouble* spin = dynamic_cast<wxSpinCtrlDouble*>(editor);
- LMI_ASSERT(spin);
+ wxTextCtrl* ctrl = dynamic_cast<wxTextCtrl*>(editor);
+ LMI_ASSERT(ctrl);
- return value_cast<std::string>(spin->GetValue());
+ return ctrl->GetValue().ToStdString();
}
// class DateRenderer
@@ -600,7 +609,7 @@
public:
virtual wxDataViewRenderer* create_renderer(any_member<Input> const&) const
{
- return new(wx) DoubleSpinRenderer();
+ return new(wx) DoubleRangeRenderer();
}
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5343] Use textctrls rather than spinctrls for doubles (VS),
Greg Chicares <=