X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c299c3ab663257429983c24e6fb71450f3cf9f1..81ce36aa591e89a802e0d900ac3c4bdbbacce48c:/src/os2/spinbutt.cpp diff --git a/src/os2/spinbutt.cpp b/src/os2/spinbutt.cpp index 6e58a26322..0bd30bf97c 100644 --- a/src/os2/spinbutt.cpp +++ b/src/os2/spinbutt.cpp @@ -61,6 +61,7 @@ bool wxSpinButton::Create( int nY = rPos.y; int nWidth = rSize.x; int nHeight = rSize.y; + SWP vSwp; m_min = 0; m_max = 100; @@ -101,15 +102,6 @@ bool wxSpinButton::Create( if (m_windowStyle & wxCLIP_SIBLINGS ) lSstyle |= WS_CLIPSIBLINGS; - SPBCDATA vCtrlData; - - vCtrlData.cbSize = sizeof(SPBCDATA); - vCtrlData.ulTextLimit = 10L; - vCtrlData.lLowerLimit = 0L; - vCtrlData.lUpperLimit = 100L; - vCtrlData.idMasterSpb = vId; - vCtrlData.pHWXCtlData = NULL; - m_hWnd = (WXHWND)::WinCreateWindow( GetWinHwnd(pParent) ,WC_SPINBUTTON ,(PSZ)NULL @@ -118,17 +110,26 @@ bool wxSpinButton::Create( ,GetWinHwnd(pParent) ,HWND_TOP ,(HMENU)vId - ,(PVOID)&vCtrlData + ,NULL ,NULL ); if (m_hWnd == 0) { return FALSE; } + SetRange(m_min, m_max); if(pParent) pParent->AddChild((wxSpinButton *)this); - SetFont(pParent->GetFont()); + ::WinQueryWindowPos(m_hWnd, &vSwp); + SetXComp(vSwp.x); + SetYComp(vSwp.y); + wxFont* pTextFont = new wxFont( 10 + ,wxMODERN + ,wxNORMAL + ,wxNORMAL + ); + SetFont(*pTextFont); // // For OS/2 we want to hide the text portion so we can substitute an // independent text ctrl in its place. 10 device units does this @@ -141,8 +142,14 @@ bool wxSpinButton::Create( wxAssociateWinWithHandle( m_hWnd ,(wxWindowOS2*)this ); +#if 0 + // FIXME: + // Apparently, this does not work, as it crashes in setvalue/setrange calls + // What's it supposed to do anyway? ::WinSetWindowULong(GetHwnd(), QWL_USER, (LONG)this); fnWndProcSpinCtrl = (WXFARPROC)::WinSubclassWindow(m_hWnd, (PFNWP)wxSpinCtrlWndProc); +#endif + delete pTextFont; return TRUE; } // end of wxSpinButton::Create @@ -157,10 +164,11 @@ wxSpinButton::~wxSpinButton() wxSize wxSpinButton::DoGetBestSize() const { // - // OS/2 PM does not really have system metrics so we'll just set our best guess + // OS/2 PM does not really have system metrics so we'll just set it to + // 24x20 which is the size of the buttons and the borders. // Also we have no horizontal spin buttons. // - return (wxSize(10,20)); + return (wxSize(24,20)); } // end of wxSpinButton::DoGetBestSize // ---------------------------------------------------------------------------- @@ -169,7 +177,6 @@ wxSize wxSpinButton::DoGetBestSize() const int wxSpinButton::GetValue() const { - int nVal = 0; long lVal = 0L; char zVal[10];