more reformatting

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Surovell
2005-12-15 08:55:15 +00:00
parent b21d67a04d
commit 898d9035fb

View File

@@ -45,6 +45,7 @@
#define MAC_SMALL_SCROLLBAR_SIZE 11
#include "wx/mac/uma.h"
#ifndef __DARWIN__
#include <Windows.h>
#include <ToolUtils.h>
@@ -68,9 +69,9 @@ extern wxList wxPendingDelete;
#ifdef __WXUNIVERSAL__
IMPLEMENT_ABSTRACT_CLASS(wxWindowMac, wxWindowBase)
#else // __WXMAC__
#else
IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxWindowBase)
#endif // __WXUNIVERSAL__/__WXMAC__
#endif
BEGIN_EVENT_TABLE(wxWindowMac, wxWindowBase)
EVT_NC_PAINT(wxWindowMac::OnNcPaint)
@@ -147,7 +148,8 @@ pascal OSStatus wxMacSetupControlBackground( ControlRef iControl , SInt16 iMessa
#if TARGET_API_MAC_OSX
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3
enum {
enum
{
kEventControlVisibilityChanged = 157
};
#endif
@@ -157,6 +159,7 @@ enum {
static const EventTypeSpec eventList[] =
{
{ kEventClassControl , kEventControlHit } ,
#if TARGET_API_MAC_OSX
{ kEventClassControl , kEventControlDraw } ,
{ kEventClassControl , kEventControlVisibilityChanged } ,
@@ -193,12 +196,13 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
RgnHandle allocatedRgn = NULL ;
wxRegion visRegion = thisWindow->MacGetVisibleRegion() ;
Rect controlBounds ;
if ( thisWindow->GetPeer()->IsCompositing() == false )
if ( ! thisWindow->GetPeer()->IsCompositing() )
{
if ( thisWindow->GetPeer()->IsRootControl() == false )
GetControlBounds( thisWindow->GetPeer()->GetControlRef() , &controlBounds ) ;
else
if ( thisWindow->GetPeer()->IsRootControl() )
thisWindow->GetPeer()->GetRect( &controlBounds ) ;
else
GetControlBounds( thisWindow->GetPeer()->GetControlRef() , &controlBounds ) ;
}
if ( cEvent.GetParameter<RgnHandle>(kEventParamRgnHandle, &updateRgn) != noErr )
@@ -207,11 +211,12 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
}
else
{
if ( thisWindow->GetPeer()->IsCompositing() == false )
if ( ! thisWindow->GetPeer()->IsCompositing() )
{
allocatedRgn = NewRgn() ;
CopyRgn( updateRgn , allocatedRgn ) ;
OffsetRgn( allocatedRgn , -controlBounds.left , -controlBounds.top ) ;
// hide the given region by the new region that must be shifted
wxMacNativeToWindow( thisWindow , allocatedRgn ) ;
updateRgn = allocatedRgn ;
@@ -223,6 +228,7 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
// as this update region is in native window locals we must adapt it to wx window local
allocatedRgn = NewRgn() ;
CopyRgn( updateRgn , allocatedRgn ) ;
// hide the given region by the new region that must be shifted
wxMacNativeToWindow( thisWindow , allocatedRgn ) ;
updateRgn = allocatedRgn ;
@@ -232,13 +238,15 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
Rect rgnBounds ;
GetRegionBounds( updateRgn , &rgnBounds ) ;
#if wxMAC_DEBUG_REDRAW
if ( thisWindow->MacIsUserPane() )
{
CGContextRef cgContext = cEvent.GetParameter<CGContextRef>(kEventParamCGContextRef) ;
static float color = 0.5 ;
static channel = 0 ;
HIRect bounds;
CGContextRef cgContext = cEvent.GetParameter<CGContextRef>(kEventParamCGContextRef) ;
HIViewGetBounds( controlRef, &bounds );
CGContextSetRGBFillColor( cgContext, channel == 0 ? color : 0.5 ,
channel == 1 ? color : 0.5 , channel == 2 ? color : 0.5 , 1 );
@@ -253,6 +261,7 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
}
}
#endif
{
#if wxMAC_USE_CORE_GRAPHICS
bool created = false ;
@@ -263,6 +272,7 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
// this parameter is not provided on non-composited windows
created = true ;
// rest of the code expects this to be already transformed and clipped for local
CGrafPtr port = GetWindowPort( (WindowRef) thisWindow->MacGetTopLevelWindowRef() ) ;
Rect bounds ;
@@ -288,15 +298,19 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
#endif
}
thisWindow->MacSetCGContextRef( cgContext ) ;
{
wxMacCGContextStateSaver sg( cgContext ) ;
#endif
if ( thisWindow->MacDoRedraw( updateRgn , cEvent.GetTicks() ) )
result = noErr ;
#if wxMAC_USE_CORE_GRAPHICS
thisWindow->MacSetCGContextRef( NULL ) ;
}
if ( created )
CGContextRelease( cgContext ) ;
#endif
@@ -325,6 +339,7 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
{
Boolean focusEverything = false ;
ControlPartCode controlPart = cEvent.GetParameter<ControlPartCode>(kEventParamControlPart , typeControlPartCode );
#ifdef __WXMAC_OSX__
if ( cEvent.GetParameter<Boolean>(kEventParamControlFocusEverything , &focusEverything ) == noErr )
{
@@ -339,6 +354,7 @@ static pascal OSStatus wxMacWindowControlEventHandler( EventHandlerCallRef handl
#endif
static bool inKillFocusEvent = false ;
if ( !inKillFocusEvent )
{
inKillFocusEvent = true ;
@@ -711,6 +727,7 @@ void wxWindowMac::Init()
{
m_peer = NULL ;
m_frozenness = 0 ;
#if WXWIN_COMPATIBILITY_2_4
m_backgroundTransparent = false;
#endif
@@ -807,7 +824,6 @@ WXWidget wxWindowMac::GetHandle() const
return (WXWidget) m_peer->GetControlRef() ;
}
void wxWindowMac::MacInstallEventHandler( WXWidget control )
{
wxAssociateControlWithMacControl( (ControlRef) control , this ) ;
@@ -863,9 +879,9 @@ bool wxWindowMac::Create(wxWindowMac *parent, wxWindowID id,
m_peer = new wxMacControl(this) ;
::CreateUserPaneControl( MAC_WXHWND(GetParent()->MacGetTopLevelWindowRef()) , &bounds, features , m_peer->GetControlRefAddr() );
MacPostControlCreate(pos, size) ;
}
#ifndef __WXUNIVERSAL__
// Don't give scrollbars to wxControls unless they ask for them
if ( (! IsKindOf(CLASSINFO(wxControl)) && ! IsKindOf(CLASSINFO(wxStatusBar))) ||
@@ -992,12 +1008,12 @@ bool wxWindowMac::SetFont(const wxFont& font)
bool wxWindowMac::SetForegroundColour(const wxColour& col )
{
if ( !wxWindowBase::SetForegroundColour(col) )
return false ;
bool retval = wxWindowBase::SetForegroundColour(col);
if (retval)
MacUpdateControlFont() ;
return true ;
return retval;
}
bool wxWindowMac::SetBackgroundColour(const wxColour& col )
@@ -1134,12 +1150,13 @@ void wxWindowMac::DragAcceptFiles(bool accept)
void wxWindowMac::MacGetPositionAndSizeFromControl(int& x, int& y,
int& w, int& h) const
{
wxFAIL_MSG( wxT("Not supported anymore") ) ;
wxFAIL_MSG( wxT("Not currently supported") ) ;
}
// From a wx position / size calculate the appropriate size of the native control
bool wxWindowMac::MacGetBoundsForControl(const wxPoint& pos,
bool wxWindowMac::MacGetBoundsForControl(
const wxPoint& pos,
const wxSize& size,
int& x, int& y,
int& w, int& h , bool adjustOrigin ) const
@@ -1393,10 +1410,11 @@ void wxWindowMac::MacRootWindowToWindow( short *x , short *y ) const
void wxWindowMac::MacGetContentAreaInset( int &left , int &top , int &right , int &bottom )
{
RgnHandle rgn = NewRgn() ;
if ( m_peer->GetRegion( kControlContentMetaPart , rgn ) == noErr )
{
Rect structure ;
Rect content ;
Rect structure, content ;
GetRegionBounds( rgn , &content ) ;
m_peer->GetRect( &structure ) ;
OffsetRect( &structure, -structure.left , -structure.top ) ;
@@ -1410,6 +1428,7 @@ void wxWindowMac::MacGetContentAreaInset( int &left , int &top , int &right , in
{
left = top = right = bottom = 0 ;
}
DisposeRgn( rgn ) ;
}
@@ -1420,16 +1439,16 @@ wxSize wxWindowMac::DoGetSizeFromClientSize( const wxSize & size ) const
RgnHandle rgn = NewRgn() ;
if ( m_peer->GetRegion( kControlContentMetaPart , rgn ) == noErr )
{
Rect content ;
Rect structure ;
Rect content, structure ;
GetRegionBounds( rgn , &content ) ;
m_peer->GetRect( &structure ) ;
// structure is in parent coordinates, but we only need width and height, so it's ok
sizeTotal.x += (structure.right - structure.left) - (content.right - content.left) ;
sizeTotal.y += (structure.bottom - structure.top) - (content.bottom - content.top ) ;
}
DisposeRgn( rgn ) ;
sizeTotal.x += MacGetLeftBorderSize() + MacGetRightBorderSize() ;
@@ -1464,7 +1483,6 @@ void wxWindowMac::DoGetClientSize( int *x, int *y ) const
*x = ww;
if (y)
*y = hh;
}
bool wxWindowMac::SetCursor(const wxCursor& cursor)
@@ -1523,7 +1541,8 @@ bool wxWindowMac::DoPopupMenu(wxMenu *menu, int x, int y)
if ( x == -1 && y == -1 )
{
wxPoint mouse = wxGetMousePosition();
x = mouse.x; y = mouse.y;
x = mouse.x;
y = mouse.y;
}
else
{
@@ -1544,8 +1563,8 @@ bool wxWindowMac::DoPopupMenu(wxMenu *menu, int x, int y)
menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ;
}
menu->MacAfterDisplay( true ) ;
menu->MacAfterDisplay( true ) ;
menu->SetInvokingWindow(NULL);
return true;
@@ -1566,7 +1585,7 @@ void wxWindowMac::DoSetToolTip(wxToolTip *tooltip)
m_tooltip->SetWindow(this);
}
#endif // wxUSE_TOOLTIPS
#endif
void wxWindowMac::MacInvalidateBorders()
{
@@ -1675,6 +1694,7 @@ void wxWindowMac::MacInvalidateBorders()
InsetRect( &rect , -outerBorder , -outerBorder ) ;
RectRgn( updateOuter , &rect ) ;
DiffRgn( updateOuter , updateInner ,updateOuter ) ;
/*
wxPoint parent(0, 0);
#if TARGET_API_MAC_OSX
@@ -1736,8 +1756,7 @@ void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
if ((m_maxHeight != -1) && (actualHeight > m_maxHeight))
actualHeight = m_maxHeight;
bool doMove = false ;
bool doResize = false ;
bool doMove = false, doResize = false ;
if ( actualX != former_x || actualY != former_y )
doMove = true ;
@@ -1795,13 +1814,15 @@ wxSize wxWindowMac::DoGetBestSize() const
Rect bestsize = { 0 , 0 , 0 , 0 } ;
int bestWidth, bestHeight ;
m_peer->GetBestRect( &bestsize ) ;
m_peer->GetBestRect( &bestsize ) ;
if ( EmptyRect( &bestsize ) )
{
bestsize.left = bestsize.top = 0 ;
bestsize.right = 16 ;
bestsize.left =
bestsize.top = 0 ;
bestsize.right =
bestsize.bottom = 16 ;
if ( IsKindOf( CLASSINFO( wxScrollBar ) ) )
{
bestsize.bottom = 16 ;
@@ -1811,7 +1832,7 @@ wxSize wxWindowMac::DoGetBestSize() const
{
bestsize.bottom = 24 ;
}
#endif // wxUSE_SPINBTN
#endif
else
{
// return wxWindowBase::DoGetBestSize() ;
@@ -1838,9 +1859,9 @@ void wxWindowMac::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
// get the current size and position...
int currentX, currentY;
GetPosition(&currentX, &currentY);
int currentW, currentH;
GetPosition(&currentX, &currentY);
GetSize(&currentW, &currentH);
// ... and don't do anything (avoiding flicker) if it's already ok
@@ -1849,6 +1870,7 @@ void wxWindowMac::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
// TODO: REMOVE
MacRepositionScrollBars() ; // we might have a real position shift
return;
}
@@ -1879,9 +1901,7 @@ void wxWindowMac::DoSetSize(int x, int y, int width, int height, int sizeFlags)
if ( sizeFlags & wxSIZE_AUTO_HEIGHT )
{
if ( size.x == wxDefaultCoord )
{
size = DoGetBestSize();
}
// else: already called DoGetBestSize() above
height = size.y;
@@ -1906,8 +1926,10 @@ wxPoint wxWindowMac::GetClientAreaOrigin() const
}
else
{
content.left = content.top = 0 ;
content.left =
content.top = 0 ;
}
DisposeRgn( rgn ) ;
return wxPoint( content.left + MacGetLeftBorderSize() , content.top + MacGetTopBorderSize() );
@@ -1955,6 +1977,14 @@ bool wxWindowMac::Show(bool show)
if ( former != MacIsReallyShown() )
MacPropagateVisibilityChanged() ;
#if 1
// patch from Sailesh Agrawal
wxShowEvent eventShow(GetId(), show);
eventShow.SetEventObject(this);
GetEventHandler()->ProcessEvent(eventShow);
#endif
return true;
}
@@ -2023,7 +2053,7 @@ void wxWindowMac::MacPropagateHiliteChanged()
while ( node )
{
child = node->GetData();
// if ( child->IsEnabled() )
if (child /* && child->IsEnabled() */)
child->MacPropagateHiliteChanged() ;
node = node->GetNext();
@@ -2143,6 +2173,7 @@ void wxWindowMac::Refresh(bool eraseBack, const wxRect *rect)
if ( rect )
{
Rect r ;
wxMacRectToNative( rect , &r ) ;
m_peer->SetNeedsDisplay( &r ) ;
}
@@ -2166,7 +2197,7 @@ void wxWindowMac::Freeze()
void wxWindowMac::Thaw()
{
#if TARGET_API_MAC_OSX
wxASSERT_MSG( m_frozenness > 0, _T("Thaw() without matching Freeze()") );
wxASSERT_MSG( m_frozenness > 0, wxT("Thaw() without matching Freeze()") );
if ( !--m_frozenness )
{
@@ -2195,8 +2226,9 @@ void wxWindowMac::OnEraseBackground(wxEraseEvent& event)
{
if ( MacGetTopLevelWindow() == NULL )
return ;
#if TARGET_API_MAC_OSX
if ( MacGetTopLevelWindow()->MacUsesCompositing() && (m_macBackgroundBrush.Ok() == false || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT ) )
if ( MacGetTopLevelWindow()->MacUsesCompositing() && (!m_macBackgroundBrush.Ok() || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT ) )
{
event.Skip() ;
}
@@ -2463,7 +2495,7 @@ void wxWindowMac::ScrollWindow(int dx, int dy, const wxRect *rect)
// as the native control might be not a 0/0 wx window coordinates, we have to offset
scrollrect.Offset( -MacGetLeftBorderSize() , -MacGetTopBorderSize() ) ;
m_peer->ScrollRect( (&scrollrect) , dx , dy ) ;
m_peer->ScrollRect( &scrollrect , dx , dy ) ;
// becuase HIViewScrollRect does not scroll the already invalidated area we have two options
// either immediate redraw or full invalidate
@@ -2479,15 +2511,14 @@ void wxWindowMac::ScrollWindow(int dx, int dy, const wxRect *rect)
else
#endif
Update() ;
#endif
}
else
#endif
{
wxPoint pos;
pos.x = pos.y = 0;
pos.x =
pos.y = 0;
Rect scrollrect;
RgnHandle updateRgn = NewRgn() ;
@@ -2782,6 +2813,7 @@ const wxRect&wxWindowMac:: MacGetClippedRectWithOuterStructure() const
const wxRegion& wxWindowMac::MacGetVisibleRegion( bool includeOuterStructures )
{
static wxRegion emptyrgn ;
if ( !m_isBeingDeleted && MacIsReallyShown() /*m_peer->IsVisible() */ )
{
MacUpdateClippedRects() ;
@@ -2829,6 +2861,7 @@ void wxWindowMac::MacUpdateClippedRects() const
wxSize size ;
const wxWindow* child = this ;
const wxWindow* parent = NULL ;
while ( !child->IsTopLevel() && ( parent = child->GetParent() ) != NULL )
{
if ( parent->MacIsChildOfClientArea(child) )
@@ -3230,6 +3263,8 @@ wxPoint wxGetMousePosition()
void wxWindowMac::OnMouseEvent( wxMouseEvent &event )
{
long evtType = event.GetEventType();
// if ((evtType == ewxEVT_RIGHT_DOWN) || (evtType == wxEVT_CONTEXT_MENU))
if ( event.GetEventType() == wxEVT_RIGHT_DOWN )
{
// copied from wxGTK : CS