/////////////////////////////////////////////////////////////////////////////
-// Name: os2/spinctrl.cpp
+// Name: src/os2/spinctrl.cpp
// Purpose: wxSpinCtrl class implementation for OS/2
// Author: David Webster
// Modified by:
static WXFARPROC fnWndProcSpinCtrl = (WXFARPROC)NULL;
wxArraySpins wxSpinCtrl::m_svAllSpins;
-IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl)
-
BEGIN_EVENT_TABLE(wxSpinCtrl, wxSpinButton)
EVT_CHAR(wxSpinCtrl::OnChar)
EVT_SPIN(wxID_ANY, wxSpinCtrl::OnSpinChange)
int nInitial,
const wxString& rsName )
{
- SWP vSwp;
-
if (vId == wxID_ANY)
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;
- int lSstyle = 0L;
+ int lSstyle = 0L;
lSstyle = WS_VISIBLE |
WS_TABSTOP |
m_hWndBuddy = m_hWnd; // One in the same for OS/2
if(pParent)
pParent->AddChild((wxSpinButton *)this);
- 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
- ,rSize.y
- );
+
+ SetFont(*wxSMALL_FONT);
+ SetXComp(0);
+ SetYComp(0);
+ SetSize( rPos.x, rPos.y, rSize.x, rSize.y );
SetRange(nMin, nMax);
SetValue(nInitial);
::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
,&nHeight
,&vFont
);
- nHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nHeight);
+ nHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nHeight)+4;
if (vSizeBtn.y < nHeight)
{
, int* pnY
) const
{
- WXHWND hWnd = GetHWND();
-
- wxConstCast(this, wxSpinCtrl)->m_hWnd = m_hWndBuddy;
- wxSpinButton::DoGetPosition( pnX
- ,pnY
- );
- wxConstCast(this, wxSpinCtrl)->m_hWnd = hWnd;
+ wxSpinButton::DoGetPosition( pnX,pnY );
} // end of wxpinCtrl::DoGetPosition
void wxSpinCtrl::DoGetSize(
// sanity check
wxASSERT_MSG( pSpin->m_hWndBuddy == hWndBuddy,
- _T("wxSpinCtrl has incorrect buddy HWND!") );
+ wxT("wxSpinCtrl has incorrect buddy HWND!") );
return pSpin;
} // end of wxSpinCtrl::GetSpinForTextCtrl
InitCommandEvent(vEvent);
vEvent.SetString(sVal);
vEvent.SetInt(GetValue());
- if (GetEventHandler()->ProcessEvent(vEvent))
+ if (HandleWindowEvent(vEvent))
return;
break;
}
vEventNav.SetDirection(!rEvent.ShiftDown());
vEventNav.SetWindowChange(rEvent.ControlDown());
vEventNav.SetEventObject(this);
- if (GetParent()->GetEventHandler()->ProcessEvent(vEventNav))
+ if (GetParent()->HandleWindowEvent(vEventNav))
return;
}
break;
vEvent.SetEventObject(this);
vEvent.SetInt(rEventSpin.GetPosition());
- (void)GetEventHandler()->ProcessEvent(vEvent);
+ (void)HandleWindowEvent(vEvent);
if (rEventSpin.GetSkipped())
{
vEvent.Skip();
vEvent.SetString(sVal);
vEvent.SetInt(GetValue());
- return (GetEventHandler()->ProcessEvent(vEvent));
+ return (HandleWindowEvent(vEvent));
}
case SPBN_SETFOCUS:
);
vEvent.SetEventObject(this);
- return(GetEventHandler()->ProcessEvent(vEvent));
+ return(HandleWindowEvent(vEvent));
}
default:
break;
{
long lVal;
- lVal = atol((char*)rsText.c_str());
+ lVal = atol(rsText.c_str());
wxSpinButton::SetValue(lVal);
} // end of wxSpinCtrl::SetValue