thisWindow->GetCaret()->OnKillFocus();
#endif
- wxLogTrace(_T("Focus"), _T("focus lost(%p)"), wx_static_cast(void*, thisWindow));
-
+ wxLogTrace(_T("Focus"), _T("focus lost(%p)"), static_cast<void*>(thisWindow));
+
// remove this as soon as posting the synthesized event works properly
static bool inKillFocusEvent = false ;
{
// set focus
// panel wants to track the window which was the last to have focus in it
- wxLogTrace(_T("Focus"), _T("focus set(%p)"), wx_static_cast(void*, thisWindow));
+ wxLogTrace(_T("Focus"), _T("focus set(%p)"), static_cast<void*>(thisWindow));
wxChildFocusEvent eventFocus((wxWindow*)thisWindow);
thisWindow->HandleWindowEvent(eventFocus);
if ( controlPart != kControlFocusNoPart )
{
targetFocusWindow = thisWindow;
- wxLogTrace(_T("Focus"), _T("focus to be set(%p)"), wx_static_cast(void*, thisWindow));
+ wxLogTrace(_T("Focus"), _T("focus to be set(%p)"), static_cast<void*>(thisWindow));
}
else
{
formerFocusWindow = thisWindow;
- wxLogTrace(_T("Focus"), _T("focus to be lost(%p)"), wx_static_cast(void*, thisWindow));
+ wxLogTrace(_T("Focus"), _T("focus to be lost(%p)"), static_cast<void*>(thisWindow));
}
ControlPartCode previousControlPart = 0;
thisWindow->GetCaret()->OnKillFocus();
#endif
- wxLogTrace(_T("Focus"), _T("focus lost(%p)"), wx_static_cast(void*, thisWindow));
+ wxLogTrace(_T("Focus"), _T("focus lost(%p)"), static_cast<void*>(thisWindow));
static bool inKillFocusEvent = false ;
else
{
// panel wants to track the window which was the last to have focus in it
- wxLogTrace(_T("Focus"), _T("focus set(%p)"), wx_static_cast(void*, thisWindow));
+ wxLogTrace(_T("Focus"), _T("focus set(%p)"), static_cast<void*>(thisWindow));
wxChildFocusEvent eventFocus((wxWindow*)thisWindow);
thisWindow->HandleWindowEvent(eventFocus);
{
wxWindow* wx = wxFindWindowFromWXWidget( (WXWidget) control ) ;
if ( wx )
- wx->MacHandleControlClick( (WXWidget) control , partCode , true /* stillDown */ ) ;
+ {
+ wxEventType scrollEvent = wxEVT_NULL;
+ switch ( partCode )
+ {
+ case kControlUpButtonPart:
+ scrollEvent = wxEVT_SCROLL_LINEUP;
+ break;
+
+ case kControlDownButtonPart:
+ scrollEvent = wxEVT_SCROLL_LINEDOWN;
+ break;
+
+ case kControlPageUpPart:
+ scrollEvent = wxEVT_SCROLL_PAGEUP;
+ break;
+
+ case kControlPageDownPart:
+ scrollEvent = wxEVT_SCROLL_PAGEDOWN;
+ break;
+
+ case kControlIndicatorPart:
+ scrollEvent = wxEVT_SCROLL_THUMBTRACK;
+ // when this is called as a live proc, mouse is always still down
+ // so no need for thumbrelease
+ // scrollEvent = wxEVT_SCROLL_THUMBRELEASE;
+ break;
+ }
+ wx->TriggerScrollEvent(scrollEvent) ;
+ }
}
}
wxMAC_DEFINE_PROC_GETTER( ControlActionUPP , wxMacLiveScrollbarActionProc ) ;
m_macControlEventHandler = NULL;
}
-void wxMacControl::SetReference( URefCon data )
-{
- SetControlReference( m_controlRef , data );
-}
-
void wxMacControl::RemoveFromParent()
{
// nothing to do here for carbon
+ HIViewRemoveFromSuperview(m_controlRef);
}
void wxMacControl::Embed( wxWidgetImpl *parent )
{
- // copied from MacPostControlCreate
- ControlRef container = (ControlRef) parent->GetWXWidget() ;
- wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ;
- ::EmbedControl( m_controlRef , container ) ;
+ HIViewAddSubview((ControlRef)parent->GetWXWidget(), m_controlRef);
}
void wxMacControl::SetNeedsDisplay( const wxRect* rect )
return control == m_controlRef;
}
+void wxMacControl::SetCursor(const wxCursor& cursor)
+{
+ wxWindowMac *mouseWin = 0 ;
+ WindowRef window = GetControlOwner( m_controlRef ) ;
+
+ wxNonOwnedWindow* tlwwx = wxNonOwnedWindow::GetFromWXWindow( (WXWindow) window ) ;
+ if ( tlwwx != NULL )
+ {
+ ControlPartCode part ;
+ ControlRef control ;
+ Point pt ;
+#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
+ HIPoint hiPoint ;
+ HIGetMousePosition(kHICoordSpaceWindow, window, &hiPoint);
+ pt.h = hiPoint.x;
+ pt.v = hiPoint.y;
+#else
+ GetGlobalMouse( &pt );
+ int x = pt.h;
+ int y = pt.v;
+ tlwwx->ScreenToClient(&x, &y);
+ pt.h = x;
+ pt.v = y;
+#endif
+ control = FindControlUnderMouse( pt , window , &part ) ;
+ if ( control )
+ mouseWin = wxFindWindowFromWXWidget( (WXWidget) control ) ;
+ }
+
+ if ( mouseWin == tlwwx && !wxIsBusy() )
+ cursor.MacInstall() ;
+}
+
+void wxMacControl::CaptureMouse()
+{
+}
+
+void wxMacControl::ReleaseMouse()
+{
+}
+
//
// subclass specifics
//
return ::GetControl32BitValue( m_controlRef );
}
-SInt32 wxMacControl::GetMaximum() const
+wxInt32 wxMacControl::GetMaximum() const
{
return ::GetControl32BitMaximum( m_controlRef );
}
-/*
wxInt32 wxMacControl::GetMinimum() const
{
return ::GetControl32BitMinimum( m_controlRef );
}
-*/
void wxMacControl::SetValue( wxInt32 v )
{