/////////////////////////////////////////////////////////////////////////////
-// Name: spinbutt.cpp
+// Name: src/os2/spinbutt.cpp
// Purpose: wxSpinButton
// Author: David Webster
// Modified by:
,wxWindowOS2* pWin
);
-IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
-
#include "wx/os2/private.h"
// ============================================================================
// wxWin macros
// ----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
-
bool wxSpinButton::Create(
wxWindow* pParent
, wxWindowID vId
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;
if (nY < 0 )
nY = 0;
- long lSstyle = 0L;
-
- lSstyle = WS_VISIBLE |
- WS_TABSTOP |
- SPBS_MASTER | // We use only single field spin buttons
- SPBS_NUMERICONLY; // We default to numeric data
+ long lSstyle = WS_VISIBLE |
+ WS_TABSTOP |
+ SPBS_MASTER | // We use only single field spin buttons
+ SPBS_NUMERICONLY; // We default to numeric data
if (m_windowStyle & wxCLIP_SIBLINGS )
lSstyle |= WS_CLIPSIBLINGS;
::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.
::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 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
// ----------------------------------------------------------------------------
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),