cleanup / adding effects
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -416,10 +416,6 @@ void wxTextCtrl::MacVisibilityChanged()
|
|||||||
GetPeer()->VisibilityChanged( MacIsReallyShown() ) ;
|
GetPeer()->VisibilityChanged( MacIsReallyShown() ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTextCtrl::MacEnabledStateChanged()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxTextCtrl::MacCheckSpelling(bool check)
|
void wxTextCtrl::MacCheckSpelling(bool check)
|
||||||
{
|
{
|
||||||
GetPeer()->CheckSpelling(check);
|
GetPeer()->CheckSpelling(check);
|
||||||
|
@@ -1369,7 +1369,6 @@ void wxTopLevelWindowMac::MacActivate( long timestamp , bool WXUNUSED(inIsActiva
|
|||||||
s_macDeactivateWindow = NULL;
|
s_macDeactivateWindow = NULL;
|
||||||
|
|
||||||
MacDelayedDeactivation(timestamp);
|
MacDelayedDeactivation(timestamp);
|
||||||
MacPropagateHiliteChanged() ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTopLevelWindowMac::SetTitle(const wxString& title)
|
void wxTopLevelWindowMac::SetTitle(const wxString& title)
|
||||||
@@ -1417,7 +1416,144 @@ bool wxTopLevelWindowMac::Show(bool show)
|
|||||||
::TransitionWindow( (WindowRef)m_macWindow, kWindowZoomTransitionEffect, kWindowHideTransitionAction, NULL );
|
::TransitionWindow( (WindowRef)m_macWindow, kWindowZoomTransitionEffect, kWindowHideTransitionAction, NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
MacPropagateVisibilityChanged() ;
|
return true ;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxTopLevelWindowMac::ShowWithEffect(wxShowEffect effect,
|
||||||
|
unsigned timeout,
|
||||||
|
wxDirection dir)
|
||||||
|
{
|
||||||
|
// TODO factor common code
|
||||||
|
if ( !wxTopLevelWindowBase::Show(true) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
WindowTransitionEffect transition = 0 ;
|
||||||
|
switch( effect )
|
||||||
|
{
|
||||||
|
case wxSHOW_EFFECT_ROLL :
|
||||||
|
case wxSHOW_EFFECT_SLIDE :
|
||||||
|
transition = kWindowGenieTransitionEffect;
|
||||||
|
break;
|
||||||
|
case wxSHOW_EFFECT_BLEND :
|
||||||
|
transition = kWindowFadeTransitionEffect;
|
||||||
|
break;
|
||||||
|
case wxSHOW_EFFECT_EXPAND :
|
||||||
|
default :
|
||||||
|
// having sheets would be fine, but this might lead to a repositioning
|
||||||
|
#if 0
|
||||||
|
if ( GetParent() )
|
||||||
|
transition = kWindowSheetTransitionEffect;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
transition = kWindowZoomTransitionEffect;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TransitionWindowOptions options;
|
||||||
|
options.version = 0;
|
||||||
|
options.duration = timeout / 1000.0;
|
||||||
|
options.window = transition == kWindowSheetTransitionEffect ? (WindowRef) GetParent()->MacGetTopLevelWindowRef() :0;
|
||||||
|
options.userData = 0;
|
||||||
|
|
||||||
|
wxSize size = wxGetDisplaySize();
|
||||||
|
Rect bounds;
|
||||||
|
GetWindowBounds( (WindowRef)m_macWindow, kWindowStructureRgn, &bounds );
|
||||||
|
CGRect hiBounds = CGRectMake( bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top );
|
||||||
|
|
||||||
|
if ( dir & wxRIGHT )
|
||||||
|
{
|
||||||
|
hiBounds.origin.x = size.x;
|
||||||
|
hiBounds.size.width = 0;
|
||||||
|
}
|
||||||
|
if ( dir & wxUP )
|
||||||
|
{
|
||||||
|
hiBounds.origin.y = 0;
|
||||||
|
hiBounds.size.height = 0;
|
||||||
|
}
|
||||||
|
if ( dir & wxDOWN )
|
||||||
|
{
|
||||||
|
hiBounds.origin.y = size.y;
|
||||||
|
hiBounds.size.height = 0;
|
||||||
|
}
|
||||||
|
if ( dir & wxLEFT )
|
||||||
|
{
|
||||||
|
hiBounds.origin.x = 0;
|
||||||
|
hiBounds.size.width = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::TransitionWindowWithOptions( (WindowRef)m_macWindow, transition, kWindowShowTransitionAction, transition == kWindowGenieTransitionEffect ? &hiBounds : NULL ,
|
||||||
|
false, &options );
|
||||||
|
|
||||||
|
::SelectWindow( (WindowRef)m_macWindow ) ;
|
||||||
|
|
||||||
|
// because apps expect a size event to occur at this moment
|
||||||
|
wxSizeEvent event(GetSize() , m_windowId);
|
||||||
|
event.SetEventObject(this);
|
||||||
|
GetEventHandler()->ProcessEvent(event);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxTopLevelWindowMac::HideWithEffect(wxShowEffect effect,
|
||||||
|
unsigned timeout ,
|
||||||
|
wxDirection dir )
|
||||||
|
{
|
||||||
|
if ( !wxTopLevelWindowBase::Show(false) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
WindowTransitionEffect transition = 0 ;
|
||||||
|
switch( effect )
|
||||||
|
{
|
||||||
|
case wxSHOW_EFFECT_ROLL :
|
||||||
|
case wxSHOW_EFFECT_SLIDE :
|
||||||
|
transition = kWindowGenieTransitionEffect;
|
||||||
|
break;
|
||||||
|
case wxSHOW_EFFECT_BLEND :
|
||||||
|
transition = kWindowFadeTransitionEffect;
|
||||||
|
break;
|
||||||
|
case wxSHOW_EFFECT_EXPAND :
|
||||||
|
default:
|
||||||
|
#if 0
|
||||||
|
if ( GetParent() )
|
||||||
|
transition = kWindowSheetTransitionEffect;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
transition = kWindowZoomTransitionEffect;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
TransitionWindowOptions options;
|
||||||
|
options.version = 0;
|
||||||
|
options.duration = timeout / 1000.0;
|
||||||
|
options.window = transition == kWindowSheetTransitionEffect ? (WindowRef) GetParent()->MacGetTopLevelWindowRef() :0;
|
||||||
|
options.userData = 0;
|
||||||
|
|
||||||
|
wxSize size = wxGetDisplaySize();
|
||||||
|
Rect bounds;
|
||||||
|
GetWindowBounds( (WindowRef)m_macWindow, kWindowStructureRgn, &bounds );
|
||||||
|
CGRect hiBounds = CGRectMake( bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top );
|
||||||
|
|
||||||
|
if ( dir & wxRIGHT )
|
||||||
|
{
|
||||||
|
hiBounds.origin.x = size.x;
|
||||||
|
hiBounds.size.width = 0;
|
||||||
|
}
|
||||||
|
if ( dir & wxUP )
|
||||||
|
{
|
||||||
|
hiBounds.origin.y = 0;
|
||||||
|
hiBounds.size.height = 0;
|
||||||
|
}
|
||||||
|
if ( dir & wxDOWN )
|
||||||
|
{
|
||||||
|
hiBounds.origin.y = size.y;
|
||||||
|
hiBounds.size.height = 0;
|
||||||
|
}
|
||||||
|
if ( dir & wxLEFT )
|
||||||
|
{
|
||||||
|
hiBounds.origin.x = 0;
|
||||||
|
hiBounds.size.width = 0;
|
||||||
|
}
|
||||||
|
::TransitionWindowWithOptions( (WindowRef)m_macWindow, transition, kWindowHideTransitionAction, transition == kWindowGenieTransitionEffect ? &hiBounds : NULL ,
|
||||||
|
false, &options );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -735,11 +735,7 @@ void wxMacControl::SetVisibility( bool visible , bool redraw )
|
|||||||
|
|
||||||
bool wxMacControl::IsEnabled() const
|
bool wxMacControl::IsEnabled() const
|
||||||
{
|
{
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
return IsControlEnabled( m_controlRef );
|
return IsControlEnabled( m_controlRef );
|
||||||
#else
|
|
||||||
return IsControlActive( m_controlRef );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxMacControl::IsActive() const
|
bool wxMacControl::IsActive() const
|
||||||
@@ -852,15 +848,10 @@ OSStatus wxMacControl::GetRegion( ControlPartCode partCode , RgnHandle region )
|
|||||||
|
|
||||||
OSStatus wxMacControl::SetZOrder( bool above , wxMacControl* other )
|
OSStatus wxMacControl::SetZOrder( bool above , wxMacControl* other )
|
||||||
{
|
{
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
return HIViewSetZOrder( m_controlRef,above ? kHIViewZOrderAbove : kHIViewZOrderBelow,
|
return HIViewSetZOrder( m_controlRef,above ? kHIViewZOrderAbove : kHIViewZOrderBelow,
|
||||||
(other != NULL) ? other->m_controlRef : NULL);
|
(other != NULL) ? other->m_controlRef : NULL);
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
// SetNeedsDisplay would not invalidate the children
|
// SetNeedsDisplay would not invalidate the children
|
||||||
static void InvalidateControlAndChildren( HIViewRef control )
|
static void InvalidateControlAndChildren( HIViewRef control )
|
||||||
{
|
{
|
||||||
@@ -883,13 +874,10 @@ static void InvalidateControlAndChildren( HIViewRef control )
|
|||||||
InvalidateControlAndChildren( child );
|
InvalidateControlAndChildren( child );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void wxMacControl::InvalidateWithChildren()
|
void wxMacControl::InvalidateWithChildren()
|
||||||
{
|
{
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
InvalidateControlAndChildren( m_controlRef );
|
InvalidateControlAndChildren( m_controlRef );
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMacControl::ScrollRect( wxRect *r , int dx , int dy )
|
void wxMacControl::ScrollRect( wxRect *r , int dx , int dy )
|
||||||
@@ -997,11 +985,7 @@ wxMacDataBrowserControl::wxMacDataBrowserControl( wxWindow* peer,
|
|||||||
if ( gDataBrowserItemNotificationUPP == NULL )
|
if ( gDataBrowserItemNotificationUPP == NULL )
|
||||||
{
|
{
|
||||||
gDataBrowserItemNotificationUPP =
|
gDataBrowserItemNotificationUPP =
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
(DataBrowserItemNotificationUPP) NewDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationProc);
|
(DataBrowserItemNotificationUPP) NewDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationProc);
|
||||||
#else
|
|
||||||
NewDataBrowserItemNotificationUPP(DataBrowserItemNotificationProc);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DataBrowserCallbacks callbacks;
|
DataBrowserCallbacks callbacks;
|
||||||
|
@@ -66,18 +66,6 @@
|
|||||||
#define MAC_SCROLLBAR_SIZE 15
|
#define MAC_SCROLLBAR_SIZE 15
|
||||||
#define MAC_SMALL_SCROLLBAR_SIZE 11
|
#define MAC_SMALL_SCROLLBAR_SIZE 11
|
||||||
|
|
||||||
#ifndef __DARWIN__
|
|
||||||
#include <Windows.h>
|
|
||||||
#include <ToolUtils.h>
|
|
||||||
#include <MacTextEditor.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
#ifndef __HIVIEW__
|
|
||||||
#include <HIToolbox/HIView.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#ifdef __WXUNIVERSAL__
|
#ifdef __WXUNIVERSAL__
|
||||||
@@ -89,9 +77,7 @@
|
|||||||
BEGIN_EVENT_TABLE(wxWindowMac, wxWindowBase)
|
BEGIN_EVENT_TABLE(wxWindowMac, wxWindowBase)
|
||||||
EVT_NC_PAINT(wxWindowMac::OnNcPaint)
|
EVT_NC_PAINT(wxWindowMac::OnNcPaint)
|
||||||
EVT_ERASE_BACKGROUND(wxWindowMac::OnEraseBackground)
|
EVT_ERASE_BACKGROUND(wxWindowMac::OnEraseBackground)
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
EVT_PAINT(wxWindowMac::OnPaint)
|
EVT_PAINT(wxWindowMac::OnPaint)
|
||||||
#endif
|
|
||||||
EVT_SET_FOCUS(wxWindowMac::OnSetFocus)
|
EVT_SET_FOCUS(wxWindowMac::OnSetFocus)
|
||||||
EVT_KILL_FOCUS(wxWindowMac::OnSetFocus)
|
EVT_KILL_FOCUS(wxWindowMac::OnSetFocus)
|
||||||
EVT_MOUSE_EVENTS(wxWindowMac::OnMouseEvent)
|
EVT_MOUSE_EVENTS(wxWindowMac::OnMouseEvent)
|
||||||
@@ -165,14 +151,14 @@ static const EventTypeSpec eventList[] =
|
|||||||
{ kEventClassTextInput, kEventTextInputUpdateActiveInputArea } ,
|
{ kEventClassTextInput, kEventTextInputUpdateActiveInputArea } ,
|
||||||
|
|
||||||
{ kEventClassControl , kEventControlDraw } ,
|
{ kEventClassControl , kEventControlDraw } ,
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
{ kEventClassControl , kEventControlVisibilityChanged } ,
|
{ kEventClassControl , kEventControlVisibilityChanged } ,
|
||||||
{ kEventClassControl , kEventControlEnabledStateChanged } ,
|
{ kEventClassControl , kEventControlEnabledStateChanged } ,
|
||||||
{ kEventClassControl , kEventControlHiliteChanged } ,
|
{ kEventClassControl , kEventControlHiliteChanged } ,
|
||||||
|
|
||||||
{ kEventClassControl , kEventControlActivate } ,
|
{ kEventClassControl , kEventControlActivate } ,
|
||||||
{ kEventClassControl , kEventControlDeactivate } ,
|
{ kEventClassControl , kEventControlDeactivate } ,
|
||||||
#endif
|
|
||||||
{ kEventClassControl , kEventControlSetFocusPart } ,
|
{ kEventClassControl , kEventControlSetFocusPart } ,
|
||||||
|
|
||||||
{ kEventClassService , kEventServiceGetTypes },
|
{ kEventClassService , kEventServiceGetTypes },
|
||||||
@@ -196,7 +182,6 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
|
|||||||
|
|
||||||
switch ( GetEventKind( event ) )
|
switch ( GetEventKind( event ) )
|
||||||
{
|
{
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
case kEventControlDraw :
|
case kEventControlDraw :
|
||||||
{
|
{
|
||||||
RgnHandle updateRgn = NULL ;
|
RgnHandle updateRgn = NULL ;
|
||||||
@@ -221,9 +206,6 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rect rgnBounds ;
|
|
||||||
GetRegionBounds( updateRgn , &rgnBounds ) ;
|
|
||||||
|
|
||||||
#if wxMAC_DEBUG_REDRAW
|
#if wxMAC_DEBUG_REDRAW
|
||||||
if ( thisWindow->MacIsUserPane() )
|
if ( thisWindow->MacIsUserPane() )
|
||||||
{
|
{
|
||||||
@@ -277,6 +259,8 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
|
|||||||
CGContextClearRect( cgContext, bounds );
|
CGContextClearRect( cgContext, bounds );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ( thisWindow->MacDoRedraw( updateRgn , cEvent.GetTicks() ) )
|
if ( thisWindow->MacDoRedraw( updateRgn , cEvent.GetTicks() ) )
|
||||||
result = noErr ;
|
result = noErr ;
|
||||||
|
|
||||||
@@ -316,7 +300,6 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
|
|||||||
thisWindow->Refresh();
|
thisWindow->Refresh();
|
||||||
#endif
|
#endif
|
||||||
break ;
|
break ;
|
||||||
#endif // TARGET_API_MAC_OSX
|
|
||||||
|
|
||||||
// we emulate this event under Carbon CFM
|
// we emulate this event under Carbon CFM
|
||||||
case kEventControlSetFocusPart :
|
case kEventControlSetFocusPart :
|
||||||
@@ -698,134 +681,6 @@ pascal OSStatus wxMacWindowEventHandler( EventHandlerCallRef handler , EventRef
|
|||||||
|
|
||||||
DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacWindowEventHandler )
|
DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacWindowEventHandler )
|
||||||
|
|
||||||
#if !TARGET_API_MAC_OSX
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
// UserPane events for non OSX builds
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
static pascal void wxMacControlUserPaneDrawProc(ControlRef control, SInt16 part)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
win->MacControlUserPaneDrawProc(part) ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneDrawUPP , wxMacControlUserPaneDrawProc ) ;
|
|
||||||
|
|
||||||
static pascal ControlPartCode wxMacControlUserPaneHitTestProc(ControlRef control, Point where)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
return win->MacControlUserPaneHitTestProc(where.h , where.v) ;
|
|
||||||
else
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneHitTestUPP , wxMacControlUserPaneHitTestProc ) ;
|
|
||||||
|
|
||||||
static pascal ControlPartCode wxMacControlUserPaneTrackingProc(ControlRef control, Point startPt, ControlActionUPP actionProc)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
return win->MacControlUserPaneTrackingProc( startPt.h , startPt.v , (void*) actionProc) ;
|
|
||||||
else
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneTrackingUPP , wxMacControlUserPaneTrackingProc ) ;
|
|
||||||
|
|
||||||
static pascal void wxMacControlUserPaneIdleProc(ControlRef control)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
win->MacControlUserPaneIdleProc() ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneIdleUPP , wxMacControlUserPaneIdleProc ) ;
|
|
||||||
|
|
||||||
static pascal ControlPartCode wxMacControlUserPaneKeyDownProc(ControlRef control, SInt16 keyCode, SInt16 charCode, SInt16 modifiers)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
return win->MacControlUserPaneKeyDownProc(keyCode,charCode,modifiers) ;
|
|
||||||
else
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneKeyDownUPP , wxMacControlUserPaneKeyDownProc ) ;
|
|
||||||
|
|
||||||
static pascal void wxMacControlUserPaneActivateProc(ControlRef control, Boolean activating)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
win->MacControlUserPaneActivateProc(activating) ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneActivateUPP , wxMacControlUserPaneActivateProc ) ;
|
|
||||||
|
|
||||||
static pascal ControlPartCode wxMacControlUserPaneFocusProc(ControlRef control, ControlFocusPart action)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
return win->MacControlUserPaneFocusProc(action) ;
|
|
||||||
else
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneFocusUPP , wxMacControlUserPaneFocusProc ) ;
|
|
||||||
|
|
||||||
static pascal void wxMacControlUserPaneBackgroundProc(ControlRef control, ControlBackgroundPtr info)
|
|
||||||
{
|
|
||||||
wxWindow * win = wxFindControlFromMacControl(control) ;
|
|
||||||
if ( win )
|
|
||||||
win->MacControlUserPaneBackgroundProc(info) ;
|
|
||||||
}
|
|
||||||
wxMAC_DEFINE_PROC_GETTER( ControlUserPaneBackgroundUPP , wxMacControlUserPaneBackgroundProc ) ;
|
|
||||||
|
|
||||||
void wxWindowMac::MacControlUserPaneDrawProc(wxInt16 part)
|
|
||||||
{
|
|
||||||
int x = 0 , y = 0;
|
|
||||||
RgnHandle rgn = NewRgn() ;
|
|
||||||
GetClip( rgn ) ;
|
|
||||||
MacWindowToRootWindow( &x, &y ) ;
|
|
||||||
OffsetRgn( rgn , -x , -y ) ;
|
|
||||||
wxMacWindowStateSaver sv( this ) ;
|
|
||||||
SectRgn( rgn , (RgnHandle) MacGetVisibleRegion().GetWXHRGN() , rgn ) ;
|
|
||||||
MacDoRedraw( rgn , 0 ) ;
|
|
||||||
DisposeRgn( rgn ) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxInt16 wxWindowMac::MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y)
|
|
||||||
{
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxInt16 wxWindowMac::MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc)
|
|
||||||
{
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxWindowMac::MacControlUserPaneIdleProc()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
wxInt16 wxWindowMac::MacControlUserPaneKeyDownProc(wxInt16 keyCode, wxInt16 charCode, wxInt16 modifiers)
|
|
||||||
{
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxWindowMac::MacControlUserPaneActivateProc(bool activating)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
wxInt16 wxWindowMac::MacControlUserPaneFocusProc(wxInt16 action)
|
|
||||||
{
|
|
||||||
if ( AcceptsFocus() )
|
|
||||||
return 1 ;
|
|
||||||
else
|
|
||||||
return kControlNoPart ;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxWindowMac::MacControlUserPaneBackgroundProc(void* info)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Scrollbar Tracking for all
|
// Scrollbar Tracking for all
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -1012,20 +867,6 @@ void wxWindowMac::MacInstallEventHandler( WXWidget control )
|
|||||||
InstallControlEventHandler( (ControlRef)control , GetwxMacWindowEventHandlerUPP(),
|
InstallControlEventHandler( (ControlRef)control , GetwxMacWindowEventHandlerUPP(),
|
||||||
GetEventTypeCount(eventList), eventList, this,
|
GetEventTypeCount(eventList), eventList, this,
|
||||||
(EventHandlerRef *)&m_macControlEventHandler);
|
(EventHandlerRef *)&m_macControlEventHandler);
|
||||||
|
|
||||||
#if !TARGET_API_MAC_OSX
|
|
||||||
if ( (ControlRef) control == m_peer->GetControlRef() )
|
|
||||||
{
|
|
||||||
m_peer->SetData<ControlUserPaneDrawUPP>(kControlEntireControl, kControlUserPaneDrawProcTag, GetwxMacControlUserPaneDrawProc()) ;
|
|
||||||
m_peer->SetData<ControlUserPaneHitTestUPP>(kControlEntireControl, kControlUserPaneHitTestProcTag, GetwxMacControlUserPaneHitTestProc()) ;
|
|
||||||
m_peer->SetData<ControlUserPaneTrackingUPP>(kControlEntireControl, kControlUserPaneTrackingProcTag, GetwxMacControlUserPaneTrackingProc()) ;
|
|
||||||
m_peer->SetData<ControlUserPaneIdleUPP>(kControlEntireControl, kControlUserPaneIdleProcTag, GetwxMacControlUserPaneIdleProc()) ;
|
|
||||||
m_peer->SetData<ControlUserPaneKeyDownUPP>(kControlEntireControl, kControlUserPaneKeyDownProcTag, GetwxMacControlUserPaneKeyDownProc()) ;
|
|
||||||
m_peer->SetData<ControlUserPaneActivateUPP>(kControlEntireControl, kControlUserPaneActivateProcTag, GetwxMacControlUserPaneActivateProc()) ;
|
|
||||||
m_peer->SetData<ControlUserPaneFocusUPP>(kControlEntireControl, kControlUserPaneFocusProcTag, GetwxMacControlUserPaneFocusProc()) ;
|
|
||||||
m_peer->SetData<ControlUserPaneBackgroundUPP>(kControlEntireControl, kControlUserPaneBackgroundProcTag, GetwxMacControlUserPaneBackgroundProc()) ;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
@@ -1241,43 +1082,6 @@ void wxWindowMac::SetFocus()
|
|||||||
return ;
|
return ;
|
||||||
|
|
||||||
SetUserFocusWindow( (WindowRef)MacGetTopLevelWindowRef() );
|
SetUserFocusWindow( (WindowRef)MacGetTopLevelWindowRef() );
|
||||||
|
|
||||||
#if !TARGET_API_MAC_OSX
|
|
||||||
// emulate carbon events when running under CarbonLib where they are not natively available
|
|
||||||
if ( former )
|
|
||||||
{
|
|
||||||
EventRef evRef = NULL ;
|
|
||||||
|
|
||||||
err = MacCreateEvent(
|
|
||||||
NULL , kEventClassControl , kEventControlSetFocusPart , TicksToEventTime( TickCount() ) ,
|
|
||||||
kEventAttributeUserEvent , &evRef );
|
|
||||||
verify_noerr( err );
|
|
||||||
|
|
||||||
wxMacCarbonEvent cEvent( evRef ) ;
|
|
||||||
cEvent.SetParameter<ControlRef>( kEventParamDirectObject , (ControlRef) former->GetHandle() ) ;
|
|
||||||
cEvent.SetParameter<ControlPartCode>(kEventParamControlPart , typeControlPartCode , kControlFocusNoPart ) ;
|
|
||||||
|
|
||||||
wxMacWindowEventHandler( NULL , evRef , former ) ;
|
|
||||||
ReleaseEvent( evRef ) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
// send new focus event
|
|
||||||
{
|
|
||||||
EventRef evRef = NULL ;
|
|
||||||
|
|
||||||
err = MacCreateEvent(
|
|
||||||
NULL , kEventClassControl , kEventControlSetFocusPart , TicksToEventTime( TickCount() ) ,
|
|
||||||
kEventAttributeUserEvent , &evRef );
|
|
||||||
verify_noerr( err );
|
|
||||||
|
|
||||||
wxMacCarbonEvent cEvent( evRef ) ;
|
|
||||||
cEvent.SetParameter<ControlRef>( kEventParamDirectObject , (ControlRef) GetHandle() ) ;
|
|
||||||
cEvent.SetParameter<ControlPartCode>(kEventParamControlPart , typeControlPartCode , kControlFocusNextPart ) ;
|
|
||||||
|
|
||||||
wxMacWindowEventHandler( NULL , evRef , this ) ;
|
|
||||||
ReleaseEvent( evRef ) ;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowMac::DoCaptureMouse()
|
void wxWindowMac::DoCaptureMouse()
|
||||||
@@ -1684,23 +1488,17 @@ bool wxWindowMac::SetCursor(const wxCursor& cursor)
|
|||||||
pt.h = hiPoint.x;
|
pt.h = hiPoint.x;
|
||||||
pt.v = hiPoint.y;
|
pt.v = hiPoint.y;
|
||||||
#else
|
#else
|
||||||
CGrafPtr savePort ;
|
GetGlobalMouse( &pt );
|
||||||
Boolean swapped = QDSwapPort( GetWindowPort( window ) , &savePort ) ;
|
int x = pt.h;
|
||||||
|
int y = pt.v;
|
||||||
// TODO: If we ever get a GetCurrentEvent... replacement
|
ScreenToClient(&x, &y);
|
||||||
// for the mouse position, use it...
|
pt.h = x;
|
||||||
|
pt.v = y;
|
||||||
|
|
||||||
GetMouse( &pt ) ;
|
|
||||||
#endif
|
#endif
|
||||||
control = FindControlUnderMouse( pt , window , &part ) ;
|
control = FindControlUnderMouse( pt , window , &part ) ;
|
||||||
if ( control )
|
if ( control )
|
||||||
mouseWin = wxFindControlFromMacControl( control ) ;
|
mouseWin = wxFindControlFromMacControl( control ) ;
|
||||||
|
|
||||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
|
|
||||||
if ( swapped )
|
|
||||||
QDSwapPort( savePort , NULL ) ;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( mouseWin == this && !wxIsBusy() )
|
if ( mouseWin == this && !wxIsBusy() )
|
||||||
@@ -2058,17 +1856,12 @@ wxString wxWindowMac::GetLabel() const
|
|||||||
|
|
||||||
bool wxWindowMac::Show(bool show)
|
bool wxWindowMac::Show(bool show)
|
||||||
{
|
{
|
||||||
bool former = MacIsReallyShown() ;
|
|
||||||
if ( !wxWindowBase::Show(show) )
|
if ( !wxWindowBase::Show(show) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// TODO: use visibilityChanged Carbon Event for OSX
|
|
||||||
if ( m_peer )
|
if ( m_peer )
|
||||||
m_peer->SetVisibility( show , true ) ;
|
m_peer->SetVisibility( show , true ) ;
|
||||||
|
|
||||||
if ( former != MacIsReallyShown() )
|
|
||||||
MacPropagateVisibilityChanged() ;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2077,53 +1870,6 @@ void wxWindowMac::DoEnable(bool enable)
|
|||||||
m_peer->Enable( enable ) ;
|
m_peer->Enable( enable ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// status change propagations (will be not necessary for OSX later )
|
|
||||||
//
|
|
||||||
|
|
||||||
void wxWindowMac::MacPropagateVisibilityChanged()
|
|
||||||
{
|
|
||||||
#if !TARGET_API_MAC_OSX
|
|
||||||
MacVisibilityChanged() ;
|
|
||||||
|
|
||||||
wxWindowMac *child;
|
|
||||||
wxWindowList::compatibility_iterator node = GetChildren().GetFirst();
|
|
||||||
while ( node )
|
|
||||||
{
|
|
||||||
child = node->GetData();
|
|
||||||
if ( child->IsShown() )
|
|
||||||
child->MacPropagateVisibilityChanged() ;
|
|
||||||
|
|
||||||
node = node->GetNext();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxWindowMac::OnEnabled(bool WXUNUSED(enabled))
|
|
||||||
{
|
|
||||||
#if !TARGET_API_MAC_OSX
|
|
||||||
MacEnabledStateChanged() ;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxWindowMac::MacPropagateHiliteChanged()
|
|
||||||
{
|
|
||||||
#if !TARGET_API_MAC_OSX
|
|
||||||
MacHiliteChanged() ;
|
|
||||||
|
|
||||||
wxWindowMac *child;
|
|
||||||
wxWindowList::compatibility_iterator node = GetChildren().GetFirst();
|
|
||||||
while ( node )
|
|
||||||
{
|
|
||||||
child = node->GetData();
|
|
||||||
if (child /* && child->IsEnabled() */)
|
|
||||||
child->MacPropagateHiliteChanged() ;
|
|
||||||
|
|
||||||
node = node->GetNext();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// status change notifications
|
// status change notifications
|
||||||
//
|
//
|
||||||
@@ -2138,6 +1884,7 @@ void wxWindowMac::MacHiliteChanged()
|
|||||||
|
|
||||||
void wxWindowMac::MacEnabledStateChanged()
|
void wxWindowMac::MacEnabledStateChanged()
|
||||||
{
|
{
|
||||||
|
OnEnabled( m_peer->IsEnabled() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -2786,13 +2533,9 @@ void wxWindowMac::ClearBackground()
|
|||||||
|
|
||||||
void wxWindowMac::Update()
|
void wxWindowMac::Update()
|
||||||
{
|
{
|
||||||
#if TARGET_API_MAC_OSX
|
|
||||||
wxTopLevelWindowMac* top = MacGetTopLevelWindow();
|
wxTopLevelWindowMac* top = MacGetTopLevelWindow();
|
||||||
if (top)
|
if (top)
|
||||||
top->MacPerformUpdates() ;
|
top->MacPerformUpdates() ;
|
||||||
#else
|
|
||||||
::Draw1Control( m_peer->GetControlRef() ) ;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTopLevelWindowMac* wxWindowMac::MacGetTopLevelWindow() const
|
wxTopLevelWindowMac* wxWindowMac::MacGetTopLevelWindow() const
|
||||||
@@ -2934,7 +2677,7 @@ void wxWindowMac::MacUpdateClippedRects() const
|
|||||||
/*
|
/*
|
||||||
This function must not change the updatergn !
|
This function must not change the updatergn !
|
||||||
*/
|
*/
|
||||||
bool wxWindowMac::MacDoRedraw( WXHRGN updatergnr , long time )
|
bool wxWindowMac::MacDoRedraw( void* updatergnr , long time )
|
||||||
{
|
{
|
||||||
bool handled = false ;
|
bool handled = false ;
|
||||||
Rect updatebounds ;
|
Rect updatebounds ;
|
||||||
@@ -2959,9 +2702,9 @@ bool wxWindowMac::MacDoRedraw( WXHRGN updatergnr , long time )
|
|||||||
// the grow-box area of a scrolled window (scroll sample)
|
// the grow-box area of a scrolled window (scroll sample)
|
||||||
wxDC* dc = new wxWindowDC(this);
|
wxDC* dc = new wxWindowDC(this);
|
||||||
if ( IsTopLevel() )
|
if ( IsTopLevel() )
|
||||||
dc->SetClippingRegion(wxRegion(updatergn));
|
dc->SetClippingRegion(wxRegion(HIShapeCreateWithQDRgn(updatergn)));
|
||||||
else
|
else
|
||||||
dc->SetClippingRegion(wxRegion(newupdate));
|
dc->SetClippingRegion(wxRegion(HIShapeCreateWithQDRgn(newupdate)));
|
||||||
|
|
||||||
wxEraseEvent eevent( GetId(), dc );
|
wxEraseEvent eevent( GetId(), dc );
|
||||||
eevent.SetEventObject( this );
|
eevent.SetEventObject( this );
|
||||||
@@ -2973,7 +2716,7 @@ bool wxWindowMac::MacDoRedraw( WXHRGN updatergnr , long time )
|
|||||||
|
|
||||||
// calculate a client-origin version of the update rgn and set m_updateRegion to that
|
// calculate a client-origin version of the update rgn and set m_updateRegion to that
|
||||||
OffsetRgn( newupdate , -origin.x , -origin.y ) ;
|
OffsetRgn( newupdate , -origin.x , -origin.y ) ;
|
||||||
m_updateRegion = newupdate ;
|
m_updateRegion = wxRegion(HIShapeCreateWithQDRgn(newupdate)) ;
|
||||||
DisposeRgn( newupdate ) ;
|
DisposeRgn( newupdate ) ;
|
||||||
|
|
||||||
if ( !m_updateRegion.Empty() )
|
if ( !m_updateRegion.Empty() )
|
||||||
|
Reference in New Issue
Block a user