CW5.2 Pro Adaptions, wxMac starting to move in
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#endif
|
||||
|
||||
#include "wx/spinbutt.h"
|
||||
#include "wx/mac/uma.h"
|
||||
|
||||
#if !USE_SHARED_LIBRARY
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
|
||||
@@ -28,19 +29,25 @@ wxSpinButton::wxSpinButton()
|
||||
bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
|
||||
long style, const wxString& name)
|
||||
{
|
||||
SetName(name);
|
||||
|
||||
m_windowStyle = style;
|
||||
|
||||
SetParent(parent);
|
||||
|
||||
m_min = 0;
|
||||
m_max = 100;
|
||||
|
||||
m_windowId = (id == -1) ? NewControlId() : id;
|
||||
if (!parent)
|
||||
return FALSE;
|
||||
|
||||
Rect bounds ;
|
||||
Str255 title ;
|
||||
|
||||
MacPreControlCreate( parent , id , "" , pos , size ,style,*( (wxValidator*) NULL ) , name , &bounds , title ) ;
|
||||
|
||||
// TODO create spin button
|
||||
return FALSE;
|
||||
m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , true , 0 , 0 , 100,
|
||||
kControlLittleArrowsProc , (long) this ) ;
|
||||
|
||||
wxASSERT_MSG( m_macControl != NULL , "No valid mac control" ) ;
|
||||
|
||||
MacPostControlCreate() ;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
wxSpinButton::~wxSpinButton()
|
||||
@@ -52,20 +59,23 @@ wxSpinButton::~wxSpinButton()
|
||||
|
||||
int wxSpinButton::GetValue() const
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
return m_value;
|
||||
}
|
||||
|
||||
void wxSpinButton::SetValue(int val)
|
||||
{
|
||||
// TODO
|
||||
m_value = val ;
|
||||
wxScrollEvent event(wxEVT_SCROLL_THUMBTRACK, m_windowId);
|
||||
|
||||
event.SetPosition(m_value);
|
||||
event.SetEventObject( this );
|
||||
GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
|
||||
void wxSpinButton::SetRange(int minVal, int maxVal)
|
||||
{
|
||||
m_min = minVal;
|
||||
m_max = maxVal;
|
||||
// TODO
|
||||
}
|
||||
|
||||
// Spin event
|
||||
@@ -76,3 +86,49 @@ wxSpinEvent::wxSpinEvent(wxEventType commandType, int id):
|
||||
{
|
||||
}
|
||||
|
||||
void wxSpinButton::MacHandleControlClick( ControlHandle control , SInt16 controlpart )
|
||||
{
|
||||
if ( m_macControl == NULL )
|
||||
return ;
|
||||
|
||||
wxEventType scrollEvent = wxEVT_NULL;
|
||||
int nScrollInc;
|
||||
|
||||
switch( controlpart )
|
||||
{
|
||||
case kControlUpButtonPart :
|
||||
nScrollInc = 1;
|
||||
scrollEvent = wxEVT_SCROLL_LINEUP;
|
||||
break ;
|
||||
case kControlDownButtonPart :
|
||||
nScrollInc = -1;
|
||||
scrollEvent = wxEVT_SCROLL_LINEDOWN;
|
||||
break ;
|
||||
}
|
||||
|
||||
m_value = m_value + nScrollInc;
|
||||
|
||||
if (m_value < m_min)
|
||||
{
|
||||
if ( m_windowStyle & wxSP_WRAP )
|
||||
m_value = m_max;
|
||||
else
|
||||
m_value = m_min;
|
||||
}
|
||||
|
||||
if (m_value > m_max)
|
||||
{
|
||||
if ( m_windowStyle & wxSP_WRAP )
|
||||
m_value = m_min;
|
||||
else
|
||||
m_value = m_max;
|
||||
}
|
||||
|
||||
wxScrollEvent event(scrollEvent, m_windowId);
|
||||
|
||||
event.SetPosition(m_value);
|
||||
event.SetEventObject( this );
|
||||
GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user