]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/spinctlg.cpp
Fix broken and missing DataView interface items for Phoenix
[wxWidgets.git] / src / generic / spinctlg.cpp
index 6887f4eae78f012b30192d715d8b2eb2cc8ae52c..64d00b43ffa7e05542077dae0d069d2998d18ef5 100644 (file)
@@ -65,7 +65,11 @@ class wxSpinCtrlTextGeneric : public wxTextCtrl
 public:
     wxSpinCtrlTextGeneric(wxSpinCtrlGenericBase *spin, const wxString& value, long style=0)
         : wxTextCtrl(spin->GetParent(), wxID_ANY, value, wxDefaultPosition, wxDefaultSize,
-                     style & (wxALIGN_MASK | wxTE_PROCESS_ENTER))
+                     // This is tricky: we want to honour any alignment flags
+                     // but not wxALIGN_CENTER_VERTICAL because it's the same
+                     // as wxTE_PASSWORD and we definitely don't want to show
+                     // asterisks in spin control.
+                     style & (wxALIGN_MASK | wxTE_PROCESS_ENTER) & ~wxTE_PASSWORD)
     {
         m_spin = spin;
 
@@ -88,10 +92,8 @@ public:
             event.Skip();
     }
 
-    void OnTextEnter(wxCommandEvent& event)
+    void OnTextEvent(wxCommandEvent& event)
     {
-        // We need to forward this event to the spin control itself as it's
-        // supposed to generate it if wxTE_PROCESS_ENTER is used with it.
         wxCommandEvent eventCopy(event);
         eventCopy.SetEventObject(m_spin);
         eventCopy.SetId(m_spin->GetId());
@@ -114,7 +116,15 @@ private:
 
 BEGIN_EVENT_TABLE(wxSpinCtrlTextGeneric, wxTextCtrl)
     EVT_CHAR(wxSpinCtrlTextGeneric::OnChar)
-    EVT_TEXT_ENTER(wxID_ANY, wxSpinCtrlTextGeneric::OnTextEnter)
+
+    // Forward the text events to wxSpinCtrl itself adjusting them slightly in
+    // the process.
+    EVT_TEXT(wxID_ANY, wxSpinCtrlTextGeneric::OnTextEvent)
+
+    // And we need to forward this one too as wxSpinCtrl is supposed to
+    // generate it if wxTE_PROCESS_ENTER is used with it (and if it isn't,
+    // we're never going to get EVT_TEXT_ENTER in the first place).
+    EVT_TEXT_ENTER(wxID_ANY, wxSpinCtrlTextGeneric::OnTextEvent)
 
     EVT_KILL_FOCUS(wxSpinCtrlTextGeneric::OnKillFocus)
 END_EVENT_TABLE()