// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "scrolbar.h"
-#endif
-
-#include "wx/defs.h"
+#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/intl.h"
#include "wx/scrolbar.h"
#include "wx/mac/uma.h"
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl)
BEGIN_EVENT_TABLE(wxScrollBar, wxControl)
END_EVENT_TABLE()
-#endif
-
-extern ControlActionUPP wxMacLiveScrollbarActionUPP ;
-
// Scrollbar
bool wxScrollBar::Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos,
Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ;
+ m_peer = new wxMacControl(this) ;
verify_noerr ( CreateScrollBarControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds ,
- 0 , 0 , 100 , 1 , true /* liveTracking */ , wxMacLiveScrollbarActionUPP , (ControlRef*) &m_macControl ) ) ;
+ 0 , 0 , 100 , 1 , true /* liveTracking */ , GetwxMacLiveScrollbarActionProc() , m_peer->GetControlRefAddr() ) );
+
MacPostControlCreate(pos,size) ;
void wxScrollBar::SetThumbPosition(int viewStart)
{
- ::SetControl32BitValue( (ControlRef) m_macControl , viewStart ) ;
+ m_peer->SetValue( viewStart ) ;
}
int wxScrollBar::GetThumbPosition() const
{
- return ::GetControl32BitValue( (ControlRef) m_macControl ) ;
+ return m_peer->GetValue() ;
}
void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize,
int range1 = wxMax((m_objectSize - m_viewSize), 0) ;
- SetControl32BitMaximum( (ControlRef) m_macControl , range1 ) ;
- SetControl32BitMinimum( (ControlRef) m_macControl , 0 ) ;
- SetControl32BitValue( (ControlRef) m_macControl , position ) ;
- SetControlViewSize( (ControlRef) m_macControl , m_viewSize ) ;
-
- if ( refresh )
- MacRedrawControl() ;
+ m_peer->SetMaximum( range1 ) ;
+ m_peer->SetMinimum( 0 ) ;
+ m_peer->SetValue( position ) ;
+ m_peer->SetViewSize( m_viewSize ) ;
}
void wxScrollBar::Command(wxCommandEvent& event)
{
- SetThumbPosition(event.m_commandInt);
+ SetThumbPosition(event.GetInt());
ProcessCommand(event);
}
void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown )
{
- int position = GetControl32BitValue( (ControlRef) m_macControl) ;
- int minPos = GetControl32BitMinimum( (ControlRef) m_macControl) ;
- int maxPos = GetControl32BitMaximum( (ControlRef) m_macControl) ;
+ int position = m_peer->GetValue() ;
+ int minPos = m_peer->GetMinimum() ;
+ int maxPos = m_peer->GetMaximum() ;
wxEventType scrollEvent = wxEVT_NULL;
int nScrollInc = 0;
wxInt32 wxScrollBar::MacControlHit( WXEVENTHANDLERREF handler , WXEVENTREF mevent )
{
- int position = GetControl32BitValue( (ControlRef) m_macControl) ;
- int minPos = GetControl32BitMinimum( (ControlRef) m_macControl) ;
- int maxPos = GetControl32BitMaximum( (ControlRef) m_macControl) ;
+ int position = m_peer->GetValue() ;
+ int minPos = m_peer->GetMinimum() ;
+ int maxPos = m_peer->GetMaximum() ;
wxEventType scrollEvent = wxEVT_NULL;
int nScrollInc = 0;