X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/22c685813c350a9e5906fca78c7604fa81fe3d89..3999336cb9ff3ef20d707d3eea470b2609a9c7c3:/src/os2/spinbutt.cpp?ds=sidebyside diff --git a/src/os2/spinbutt.cpp b/src/os2/spinbutt.cpp index 11315a6e1d..14fbeaa39c 100644 --- a/src/os2/spinbutt.cpp +++ b/src/os2/spinbutt.cpp @@ -28,8 +28,6 @@ extern void wxAssociateWinWithHandle( HWND hWnd ,wxWindowOS2* pWin ); -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent) - #include "wx/os2/private.h" // ============================================================================ @@ -40,8 +38,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent) // wxWin macros // ---------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl) - bool wxSpinButton::Create( wxWindow* pParent , wxWindowID vId @@ -63,8 +59,11 @@ bool wxSpinButton::Create( m_windowId = NewControlId(); else m_windowId = vId; - m_backgroundColour = pParent->GetBackgroundColour(); - m_foregroundColour = pParent->GetForegroundColour(); + if (pParent) + { + m_backgroundColour = pParent->GetBackgroundColour(); + m_foregroundColour = pParent->GetForegroundColour(); + } SetName(rsName); SetParent(pParent); m_windowStyle = lStyle; @@ -118,12 +117,8 @@ bool wxSpinButton::Create( ::WinQueryWindowPos(m_hWnd, &vSwp); SetXComp(vSwp.x); SetYComp(vSwp.y-5); // compensate for the associated TextControl border - wxFont* pTextFont = new wxFont( 10 - ,wxMODERN - ,wxNORMAL - ,wxNORMAL - ); - SetFont(*pTextFont); + + SetFont(*wxSMALL_FONT); // // For OS/2 we want to hide the text portion so we can substitute an // independent text ctrl in its place. @@ -144,7 +139,6 @@ bool wxSpinButton::Create( ::WinSetWindowULong(GetHwnd(), QWL_USER, (LONG)this); fnWndProcSpinCtrl = (WXFARPROC)::WinSubclassWindow(m_hWnd, (PFNWP)wxSpinCtrlWndProc); #endif - delete pTextFont; return TRUE; } // end of wxSpinButton::Create @@ -159,12 +153,12 @@ wxSpinButton::~wxSpinButton() wxSize wxSpinButton::DoGetBestSize() const { // - // OS/2 PM does not really have system metrics so we'll just set it to - // 26x20 which is the size of the buttons and the borders. - // Also we have no horizontal spin buttons. + // OS/2 PM does not really have system metrics so we'll just set it to + // a square based on its height. // - wxSize best(26,20); - return best; + RECTL vRect; + ::WinQueryWindowRect(GetHwnd(),&vRect); + return wxSize(vRect.yTop,vRect.yTop); } // end of wxSpinButton::DoGetBestSize // ---------------------------------------------------------------------------- @@ -192,14 +186,14 @@ bool wxSpinButton::OS2OnScroll( int WXUNUSED(nOrientation), WXWORD wPos, WXHWND hControl ) { - wxCHECK_MSG(hControl, false, wxT("scrolling what?") ) + wxCHECK_MSG(hControl, false, wxT("scrolling what?") ); wxSpinEvent vEvent( wxEVT_SCROLL_THUMBTRACK, m_windowId ); int nVal = (int)wPos; // cast is important for negative values! vEvent.SetPosition(nVal); vEvent.SetEventObject(this); - return(GetEventHandler()->ProcessEvent(vEvent)); + return(HandleWindowEvent(vEvent)); } // end of wxSpinButton::OS2OnScroll bool wxSpinButton::OS2Command( WXUINT WXUNUSED(uCmd),