X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c299c3ab663257429983c24e6fb71450f3cf9f1..578dc95029e761a59911b7c1bc09f59384d64ddf:/src/os2/spinctrl.cpp diff --git a/src/os2/spinctrl.cpp b/src/os2/spinctrl.cpp index ed056cafaf..d526cfa43f 100644 --- a/src/os2/spinctrl.cpp +++ b/src/os2/spinctrl.cpp @@ -44,6 +44,7 @@ extern void wxAssociateWinWithHandle( HWND hWnd ,wxWindowOS2* pWin ); static WXFARPROC fnWndProcSpinCtrl = (WXFARPROC)NULL; +wxArraySpins wxSpinCtrl::m_svAllSpins; IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl) @@ -128,6 +129,8 @@ bool wxSpinCtrl::Create( , const wxString& rsName ) { + SWP vSwp; + if (vId == -1) m_windowId = NewControlId(); else @@ -175,7 +178,15 @@ bool wxSpinCtrl::Create( m_hWndBuddy = m_hWnd; // One in the same for OS/2 if(pParent) pParent->AddChild((wxSpinButton *)this); - SetFont(pParent->GetFont()); + wxFont* pTextFont = new wxFont( 10 + ,wxMODERN + ,wxNORMAL + ,wxNORMAL + ); + SetFont(*pTextFont); + ::WinQueryWindowPos(m_hWnd, &vSwp); + SetXComp(vSwp.x); + SetYComp(vSwp.y); SetSize( rPos.x ,rPos.y ,rSize.x @@ -194,6 +205,7 @@ bool wxSpinCtrl::Create( ::WinSetWindowULong(GetHwnd(), QWL_USER, (LONG)this); fnWndProcSpinCtrl = (WXFARPROC)::WinSubclassWindow(m_hWnd, (PFNWP)wxSpinCtrlWndProc); m_svAllSpins.Add(this); + delete pTextFont; return TRUE; } // end of wxSpinCtrl::Create @@ -261,12 +273,9 @@ void wxSpinCtrl::DoMoveWindow( if (pParent) { - if (pParent->IsKindOf(CLASSINFO(wxFrame))) - { - nY = pParent->GetClientSize().y - (nY + nHeight); - } - else - nY = pParent->GetSize().y - (nY + nHeight); + int nOS2Height = GetOS2ParentHeight(pParent); + + nY = nOS2Height - (nY + nHeight); } else { @@ -328,8 +337,8 @@ int wxSpinCtrl::GetValue() const ,SPBQ_UPDATEIFVALID ) ); - lVal - atol(zVal); - return lVal; + lVal = atol(zVal); + return (int)lVal; } // end of wxSpinCtrl::GetValue void wxSpinCtrl::OnChar ( @@ -479,4 +488,20 @@ bool wxSpinCtrl::Show( return TRUE; } // end of wxSpinCtrl::Show -#endif //wxUSE_SPINBTN \ No newline at end of file +void wxSpinCtrl::SetSelection ( + long lFrom +, long lTo +) +{ + // + // If from and to are both -1, it means (in wxWindows) that all text should + // be selected - translate into Windows convention + // + if ((lFrom == -1) && (lTo == -1)) + { + lFrom = 0; + } + ::WinSendMsg(m_hWnd, EM_SETSEL, MPFROM2SHORT((USHORT)lFrom, (USHORT)lTo), (MPARAM)0); +} // end of wxSpinCtrl::SetSelection + +#endif //wxUSE_SPINBTN