extern void wxAssociateWinWithHandle( HWND hWnd
,wxWindowOS2* pWin
);
-static WXFARPROC fnWndProcSpinCtrl = (WXFARPROC)NULL;
IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
int nY = rPos.y;
int nWidth = rSize.x;
int nHeight = rSize.y;
+ SWP vSwp;
m_min = 0;
m_max = 100;
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
,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
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
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
// ----------------------------------------------------------------------------
int wxSpinButton::GetValue() const
{
- int nVal = 0;
long lVal = 0L;
char zVal[10];