X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4a99d87f2c19020173dffe91d62a11d37b8f860f..18680f86512504f043ad5d0b222afc7be87aa3e9:/src/mac/carbon/spinctrl.cpp?ds=sidebyside diff --git a/src/mac/carbon/spinctrl.cpp b/src/mac/carbon/spinctrl.cpp index 70b6845265..9e258d0e54 100644 --- a/src/mac/carbon/spinctrl.cpp +++ b/src/mac/carbon/spinctrl.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp +// Name: src/mac/carbon/spinbutt.cpp // Purpose: wxSpinCtrl // Author: Robert // Modified by: Mark Newsam (Based on GTK file) @@ -13,9 +13,13 @@ #if wxUSE_SPINCTRL #include "wx/spinbutt.h" -#include "wx/spinctrl.h" -#include "wx/textctrl.h" +#ifndef WX_PRECOMP + #include "wx/textctrl.h" +#endif + +#include "wx/spinctrl.h" +#include "wx/containr.h" // ---------------------------------------------------------------------------- // constants @@ -38,11 +42,20 @@ public: : wxTextCtrl(spin , -1, value, wxDefaultPosition, wxSize(40, -1)) { m_spin = spin; - + // remove the default minsize, the spinctrl will have one instead SetSizeHints(-1,-1); } + bool ProcessEvent(wxEvent &event) + { + // Hand button down events to wxSpinCtrl. Doesn't work. + if (event.GetEventType() == wxEVT_LEFT_DOWN && m_spin->ProcessEvent( event )) + return true; + + return wxTextCtrl::ProcessEvent( event ); + } + protected: void OnTextChange(wxCommandEvent& event) { @@ -72,15 +85,6 @@ protected: event.Skip(); } - bool ProcessEvent(wxEvent &event) - { - // Hand button down events to wxSpinCtrl. Doesn't work. - if (event.GetEventType() == wxEVT_LEFT_DOWN && m_spin->ProcessEvent( event )) - return TRUE; - - return wxTextCtrl::ProcessEvent( event ); - } - private: wxSpinCtrl *m_spin; @@ -137,7 +141,14 @@ BEGIN_EVENT_TABLE(wxSpinCtrlButton, wxSpinButton) END_EVENT_TABLE() IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl) - + +BEGIN_EVENT_TABLE(wxSpinCtrl, wxControl) + WX_EVENT_TABLE_CONTROL_CONTAINER(wxSpinCtrl) +END_EVENT_TABLE() + +WX_DELEGATE_TO_CONTROL_CONTAINER(wxSpinCtrl) + + // ============================================================================ // implementation // ============================================================================ @@ -150,6 +161,7 @@ void wxSpinCtrl::Init() { m_text = NULL; m_btn = NULL; + m_container.SetContainerWindow(this); } bool wxSpinCtrl::Create(wxWindow *parent, @@ -184,7 +196,7 @@ bool wxSpinCtrl::Create(wxWindow *parent, wxSize csize = size ; m_text = new wxSpinCtrlText(this, value); m_btn = new wxSpinCtrlButton(this, style); - + m_btn->SetRange(min, max); m_btn->SetValue(initial); @@ -193,17 +205,17 @@ bool wxSpinCtrl::Create(wxWindow *parent, } if ( size.y == -1 ) { - csize.y = m_text->GetSize().y + 2 * TEXTBORDER ; //allow for text border highlights - if ( m_btn->GetSize().y > csize.y ) - csize.y = m_btn->GetSize().y ; + csize.y = m_text->GetSize().y + 2 * TEXTBORDER ; //allow for text border highlights + if ( m_btn->GetSize().y > csize.y ) + csize.y = m_btn->GetSize().y ; } - + //SetSize(csize); - + //MacPostControlCreate(pos, csize); SetInitialBestSize(csize); - return TRUE; + return true; } wxSpinCtrl::~wxSpinCtrl() @@ -225,7 +237,7 @@ wxSize wxSpinCtrl::DoGetBestSize() const { if (!m_btn || !m_text) return GetSize(); - + wxSize sizeBtn = m_btn->GetBestSize(), sizeText = m_text->GetBestSize(); @@ -237,7 +249,7 @@ wxSize wxSpinCtrl::DoGetBestSize() const height = sizeText.y; else height = sizeBtn.y; - + return wxSize(sizeBtn.x + sizeText.x + MARGIN, height ); } @@ -246,11 +258,11 @@ void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height) // position the subcontrols inside the client area wxSize sizeBtn = m_btn->GetSize(); wxSize sizeText = m_text->GetSize(); - + wxControl::DoMoveWindow(x, y, width, height); wxCoord wText = width - sizeBtn.x - MARGIN - 2 * TEXTBORDER; - + m_text->SetSize(TEXTBORDER, (height - sizeText.y) / 2, wText, -1); m_btn->SetSize(0 + wText + MARGIN + 2 * TEXTBORDER , (height - sizeBtn.y) / 2 , -1, -1 ); } @@ -262,22 +274,15 @@ void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height) bool wxSpinCtrl::Enable(bool enable) { if ( !wxControl::Enable(enable) ) - return FALSE; - return TRUE; + return false; + return true; } bool wxSpinCtrl::Show(bool show) { if ( !wxControl::Show(show) ) - return FALSE; - return TRUE; -} - -void wxSpinCtrl::SetFocus() -{ - if ( m_text != NULL) { - m_text->SetFocus(); - } + return false; + return true; } // ---------------------------------------------------------------------------- @@ -301,7 +306,7 @@ bool wxSpinCtrl::GetTextValue(int *val) const *val = l; - return TRUE; + return true; } int wxSpinCtrl::GetValue() const @@ -374,9 +379,9 @@ void wxSpinCtrl::SetSelection(long from, long to) // be selected if ( (from == -1) && (to == -1) ) { - from = 0; + from = 0; } m_text->SetSelection(from, to); -} +} #endif // wxUSE_SPINCTRL