#include "wx/caret.h"
#endif
+#if wxUSE_POPUPWIN
+ #include "wx/popupwin.h"
+#endif
+
#if wxUSE_DRAG_AND_DROP
#include "wx/dnd.h"
#endif
#ifndef __DARWIN__
#include <Windows.h>
#include <ToolUtils.h>
-#include <Scrap.h>
#include <MacTextEditor.h>
#endif
// Carbon Events
// ---------------------------------------------------------------------------
-#if TARGET_API_MAC_OSX
-
-#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3
-enum
-{
- kEventControlVisibilityChanged = 157
-};
-#endif
-
-#endif
-
static const EventTypeSpec eventList[] =
{
{ kEventClassCommand, kEventProcessCommand } ,
#endif
{
-#if wxMAC_USE_CORE_GRAPHICS
bool created = false ;
CGContextRef cgContext = NULL ;
OSStatus err = cEvent.GetParameter<CGContextRef>(kEventParamCGContextRef, &cgContext) ;
CGContextClearRect( cgContext, bounds );
}
-
-#endif
if ( thisWindow->MacDoRedraw( updateRgn , cEvent.GetTicks() ) )
result = noErr ;
-#if wxMAC_USE_CORE_GRAPHICS
thisWindow->MacSetCGContextRef( NULL ) ;
}
if ( created )
CGContextRelease( cgContext ) ;
-#endif
}
if ( allocatedRgn )
Boolean focusEverything = false ;
ControlPartCode controlPart = cEvent.GetParameter<ControlPartCode>(kEventParamControlPart , typeControlPartCode );
-#ifdef __WXMAC_OSX__
if ( cEvent.GetParameter<Boolean>(kEventParamControlFocusEverything , &focusEverything ) == noErr )
{
}
-#endif
if ( thisWindow->MacIsUserPane() )
result = noErr ;
textCtrl->GetSelection( &from , &to ) ;
wxString val = textCtrl->GetValue() ;
val = val.Mid( from , to - from ) ;
- ScrapRef scrapRef = cEvent.GetParameter< ScrapRef > ( kEventParamScrapRef , typeScrapRef ) ;
- verify_noerr( ClearScrap( &scrapRef ) ) ;
- verify_noerr( PutScrapFlavor( scrapRef , kTXNTextData , 0 , val.length() , val.c_str() ) ) ;
+ PasteboardRef pasteboard = cEvent.GetParameter<PasteboardRef>( kEventParamPasteboardRef, typePasteboardRef );
+ verify_noerr( PasteboardClear( pasteboard ) ) ;
+ PasteboardSynchronize( pasteboard );
+ // TODO add proper conversion
+ CFDataRef data = CFDataCreate( kCFAllocatorDefault, (const UInt8*)val.c_str(), val.length() );
+ PasteboardPutItemFlavor( pasteboard, (PasteboardItemID) 1, CFSTR("com.apple.traditional-mac-plain-text"), data, 0);
+ CFRelease( data );
result = noErr ;
}
break ;
case kEventServicePaste :
if ( textCtrl )
{
- ScrapRef scrapRef = cEvent.GetParameter< ScrapRef > ( kEventParamScrapRef , typeScrapRef ) ;
- Size textSize, pastedSize ;
- verify_noerr( GetScrapFlavorSize(scrapRef, kTXNTextData, &textSize) ) ;
- textSize++ ;
- char *content = new char[textSize] ;
- GetScrapFlavorData(scrapRef, kTXNTextData, &pastedSize, content );
- content[textSize - 1] = 0 ;
-
+ PasteboardRef pasteboard = cEvent.GetParameter<PasteboardRef>( kEventParamPasteboardRef, typePasteboardRef );
+ PasteboardSynchronize( pasteboard );
+ ItemCount itemCount;
+ verify_noerr( PasteboardGetItemCount( pasteboard, &itemCount ) );
+ for( UInt32 itemIndex = 1; itemIndex <= itemCount; itemIndex++ )
+ {
+ PasteboardItemID itemID;
+ if ( PasteboardGetItemIdentifier( pasteboard, itemIndex, &itemID ) == noErr )
+ {
+ CFDataRef flavorData = NULL;
+ if ( PasteboardCopyItemFlavorData( pasteboard, itemID, CFSTR("com.apple.traditional-mac-plain-text"), &flavorData ) == noErr )
+ {
+ CFIndex flavorDataSize = CFDataGetLength( flavorData );
+ char *content = new char[flavorDataSize+1] ;
+ memcpy( content, CFDataGetBytePtr( flavorData ), flavorDataSize );
+ content[flavorDataSize]=0;
+ CFRelease( flavorData );
#if wxUSE_UNICODE
- textCtrl->WriteText( wxString( content , wxConvLocal ) );
+ textCtrl->WriteText( wxString( content , wxConvLocal ) );
#else
- textCtrl->WriteText( wxString( content ) ) ;
+ textCtrl->WriteText( wxString( content ) ) ;
#endif
- delete[] content ;
- result = noErr ;
+ delete[] content ;
+ result = noErr ;
+ }
+ }
+ }
}
break ;
switch ( cEvent.GetKind() )
{
case kEventProcessCommand :
- {
- if (item->IsCheckable())
- item->Check( !item->IsChecked() ) ;
-
- if ( itemMenu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) )
- result = noErr ;
- else
- {
- wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED , id);
- event.SetEventObject(focus);
- event.SetInt(item->IsCheckable() ? item->IsChecked() : -1);
-
- if ( focus->GetEventHandler()->ProcessEvent(event) )
- result = noErr ;
- }
- }
+ result = itemMenu->MacHandleCommandProcess( item, id, focus );
break ;
case kEventCommandUpdateStatus:
- {
- wxUpdateUIEvent event(id);
- event.SetEventObject( itemMenu );
-
- bool processed = false;
-
- // Try the menu's event handler
- {
- wxEvtHandler *handler = itemMenu->GetEventHandler();
- if ( handler )
- processed = handler->ProcessEvent(event);
- }
-
- // Try the window the menu was popped up from
- // (and up through the hierarchy)
- if ( !processed )
- {
- const wxMenuBase *menu = itemMenu;
- while ( menu )
- {
- wxWindow *win = menu->GetInvokingWindow();
- if ( win )
- {
- processed = win->GetEventHandler()->ProcessEvent(event);
- break;
- }
-
- menu = menu->GetParent();
- }
- }
-
- if ( !processed )
- {
- processed = focus->GetEventHandler()->ProcessEvent(event);
- }
-
- if ( processed )
- {
- // if anything changed, update the changed attribute
- if (event.GetSetText())
- itemMenu->SetLabel(id, event.GetText());
- if (event.GetSetChecked())
- itemMenu->Check(id, event.GetChecked());
- if (event.GetSetEnabled())
- itemMenu->Enable(id, event.GetEnabled());
-
- result = noErr ;
- }
- }
+ result = itemMenu->MacHandleCommandUpdateStatus( item, id, focus );
break ;
default :
m_peer = NULL ;
m_frozenness = 0 ;
m_macAlpha = 255 ;
-
-#if wxMAC_USE_CORE_GRAPHICS
m_cgContextRef = NULL ;
-#endif
// as all windows are created with WS_VISIBLE style...
m_isShown = true;
m_hScrollBarAlwaysShown = false;
m_vScrollBarAlwaysShown = false;
- m_macBackgroundBrush = wxNullBrush ;
-
m_macIsUserPane = true;
m_clipChildren = false ;
m_cachedClippedRectValid = false ;
if ( g_MacLastWindow == this )
g_MacLastWindow = NULL ;
- wxFrame* frame = wxDynamicCast( wxGetTopLevelParent( this ) , wxFrame ) ;
+#ifndef __WXUNIVERSAL__
+ wxFrame* frame = wxDynamicCast( wxGetTopLevelParent( (wxWindow*)this ) , wxFrame ) ;
if ( frame )
{
if ( frame->GetLastFocus() == this )
frame->SetLastFocus( NULL ) ;
}
+#endif
// delete our drop target if we've got one
#if wxUSE_DRAG_AND_DROP
break ;
case wxWINDOW_VARIANT_MINI :
- if (UMAGetSystemVersion() >= 0x1030 )
- {
- // not always defined in the headers
- size = 3 ;
- themeFont = 109 ;
- }
- else
- {
- size = kControlSizeSmall;
- themeFont = kThemeSmallSystemFont ;
- }
+ // not always defined in the headers
+ size = 3 ;
+ themeFont = 109 ;
break ;
case wxWINDOW_VARIANT_LARGE :
void wxWindowMac::MacUpdateControlFont()
{
m_peer->SetFont( GetFont() , GetForegroundColour() , GetWindowStyle() ) ;
- Refresh() ;
+ // do not trigger refreshes upon invisible and possible partly created objects
+ if ( MacIsReallyShown() )
+ Refresh() ;
}
bool wxWindowMac::SetFont(const wxFont& font)
if ( !wxWindowBase::SetBackgroundColour(col) && m_hasBgCol )
return false ;
- wxBrush brush ;
- wxColour newCol(GetBackgroundColour());
-
- if ( newCol == wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) )
- brush.MacSetTheme( kThemeBrushDocumentWindowBackground ) ;
- else if ( newCol == wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) )
- brush.MacSetTheme( kThemeBrushDialogBackgroundActive ) ;
- else
- brush.SetColour( newCol ) ;
-
- MacSetBackgroundBrush( brush ) ;
- MacUpdateControlFont() ;
+ m_peer->SetBackgroundColour( col ) ;
return true ;
}
-void wxWindowMac::MacSetBackgroundBrush( const wxBrush &brush )
-{
- m_macBackgroundBrush = brush ;
- m_peer->SetBackground( brush ) ;
-}
-
bool wxWindowMac::MacCanFocus() const
{
// TODO : evaluate performance hits by looking up this value, eventually cache the results for a 1 sec or so
GetMouse( &pt ) ;
#endif
- control = wxMacFindControlUnderMouse( tlw , pt , window , &part ) ;
+ control = FindControlUnderMouse( pt , window , &part ) ;
if ( control )
mouseWin = wxFindControlFromMacControl( control ) ;
#if wxUSE_MENUS
bool wxWindowMac::DoPopupMenu(wxMenu *menu, int x, int y)
{
- menu->SetInvokingWindow(this);
+#ifndef __WXUNIVERSAL__
+ menu->SetInvokingWindow((wxWindow*)this);
menu->UpdateUI();
if ( x == wxDefaultCoord && y == wxDefaultCoord )
menu->SetInvokingWindow( NULL );
return true;
+#else
+ // actually this shouldn't be called, because universal is having its own implementation
+ return false;
+#endif
}
#endif
RectRgn( updateOuter, &rect ) ;
DiffRgn( updateOuter, updateInner , updateOuter ) ;
-#ifdef __WXMAC_OSX__
GetParent()->m_peer->SetNeedsDisplay( updateOuter ) ;
-#else
- WindowRef tlw = (WindowRef) MacGetTopLevelWindowRef() ;
- if ( tlw )
- InvalWindowRgn( tlw , updateOuter ) ;
-#endif
DisposeRgn( updateOuter ) ;
DisposeRgn( updateInner ) ;
void wxWindowMac::SetLabel(const wxString& title)
{
- m_label = wxStripMenuCodes(title, wxStrip_Mnemonics) ;
+ m_label = title ;
if ( m_peer && m_peer->Ok() )
- m_peer->SetLabel( m_label ) ;
+ m_peer->SetLabel( wxStripMenuCodes(m_label, wxStrip_Mnemonics) ) ;
- Refresh() ;
+ // do not trigger refreshes upon invisible and possible partly created objects
+ if ( MacIsReallyShown() )
+ Refresh() ;
}
wxString wxWindowMac::GetLabel() const
return ;
#if TARGET_API_MAC_OSX
- if ( !m_macBackgroundBrush.Ok() || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT
- || GetBackgroundStyle() == wxBG_STYLE_TRANSPARENT )
+ if ( !m_backgroundColour.Ok() || GetBackgroundStyle() == wxBG_STYLE_TRANSPARENT )
{
event.Skip() ;
}
if ( needVisibilityUpdate )
DoUpdateScrollbarVisibility();
}
+
//
// we draw borders and grow boxes, are already set up and clipped in the current port / cgContextRef
// our own window origin is at leftOrigin/rightOrigin
//
+void wxWindowMac::MacPaintGrowBox()
+{
+ if ( IsTopLevel() )
+ return ;
+
+ if ( MacHasScrollBarCorner() )
+ {
+ Rect rect ;
+
+ CGContextRef cgContext = (CGContextRef) MacGetCGContextRef() ;
+ wxASSERT( cgContext ) ;
+
+ m_peer->GetRect( &rect ) ;
+
+ int size = m_hScrollBar ? m_hScrollBar->GetSize().y : ( m_vScrollBar ? m_vScrollBar->GetSize().x : MAC_SCROLLBAR_SIZE ) ;
+ CGRect cgrect = CGRectMake( rect.right - size , rect.bottom - size , size , size ) ;
+ CGPoint cgpoint = CGPointMake( rect.right - size , rect.bottom - size ) ;
+ CGContextSaveGState( cgContext );
+
+ if ( m_backgroundColour.Ok() )
+ {
+ CGContextSetFillColorWithColor( cgContext, m_backgroundColour.GetCGColor() );
+ }
+ else
+ {
+ CGContextSetRGBFillColor( cgContext, 1.0, 1.0 , 1.0 , 1.0 );
+ }
+ CGContextFillRect( cgContext, cgrect );
+ CGContextRestoreGState( cgContext );
+ }
+}
+
void wxWindowMac::MacPaintBorders( int WXUNUSED(leftOrigin) , int WXUNUSED(rightOrigin) )
{
if ( IsTopLevel() )
Rect rect ;
bool hasFocus = m_peer->NeedsFocusRect() && m_peer->HasFocus() ;
- bool hasBothScrollbars = (m_hScrollBar && m_hScrollBar->IsShown()) && (m_vScrollBar && m_vScrollBar->IsShown()) ;
// back to the surrounding frame rectangle
m_peer->GetRect( &rect ) ;
InsetRect( &rect, -1 , -1 ) ;
-#if wxMAC_USE_CORE_GRAPHICS
{
CGRect cgrect = CGRectMake( rect.left , rect.top , rect.right - rect.left ,
rect.bottom - rect.top ) ;
{
HIThemeDrawFocusRect( &cgrect , true , cgContext , kHIThemeOrientationNormal ) ;
}
-
+#if 0 // TODO REMOVE now done in a separate call earlier in drawing the window itself
m_peer->GetRect( &rect ) ;
- if ( hasBothScrollbars )
+ if ( MacHasScrollBarCorner() )
{
- int size = m_hScrollBar->GetWindowVariant() == wxWINDOW_VARIANT_NORMAL ? 16 : 12 ;
+ int variant = (m_hScrollBar == NULL ? m_vScrollBar : m_hScrollBar ) ->GetWindowVariant();
+ int size = m_hScrollBar ? m_hScrollBar->GetSize().y : ( m_vScrollBar ? m_vScrollBar->GetSize().x : MAC_SCROLLBAR_SIZE ) ;
CGRect cgrect = CGRectMake( rect.right - size , rect.bottom - size , size , size ) ;
CGPoint cgpoint = CGPointMake( rect.right - size , rect.bottom - size ) ;
HIThemeGrowBoxDrawInfo info ;
info.version = 0 ;
info.state = IsEnabled() ? kThemeStateActive : kThemeStateInactive ;
info.kind = kHIThemeGrowBoxKindNone ;
+ // contrary to the docs ...SizeSmall does not work
info.size = kHIThemeGrowBoxSizeNormal ;
- info.direction = kThemeGrowRight | kThemeGrowDown ;
+ info.direction = 0 ;
HIThemeDrawGrowBox( &cgpoint , &info , cgContext , kHIThemeOrientationNormal ) ;
}
- }
- #else
- {
- wxTopLevelWindowMac* top = MacGetTopLevelWindow();
- if ( top )
- {
- wxPoint pt(0, 0) ;
- wxMacControl::Convert( &pt , GetParent()->m_peer , top->m_peer ) ;
- OffsetRect( &rect , pt.x , pt.y ) ;
- }
-
- if ( HasFlag(wxRAISED_BORDER) || HasFlag( wxSUNKEN_BORDER) || HasFlag(wxDOUBLE_BORDER) )
- DrawThemeEditTextFrame( &rect, IsEnabled() ? kThemeStateActive : kThemeStateInactive ) ;
- else if ( HasFlag(wxSIMPLE_BORDER) )
- DrawThemeListBoxFrame( &rect, IsEnabled() ? kThemeStateActive : kThemeStateInactive ) ;
-
- if ( hasFocus )
- DrawThemeFocusRect( &rect , true ) ;
-
- if ( hasBothScrollbars )
- {
- // GetThemeStandaloneGrowBoxBounds
- // DrawThemeStandaloneNoGrowBox
- }
- }
#endif
+ }
}
void wxWindowMac::RemoveChild( wxWindowBase *child )
m_peer->SetNeedsDisplay() ;
#else
// this would be the preferred version for fast drawing controls
-
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
- if ( UMAGetSystemVersion() >= 0x1030 )
- HIViewRender(m_peer->GetControlRef()) ;
- else
-#endif
- Update() ;
+ HIViewRender(m_peer->GetControlRef()) ;
#endif
}
if ( MacGetTopLevelWindow() && m_peer->NeedsFocusRect() )
{
-#if wxMAC_USE_CORE_GRAPHICS
GetParent()->Refresh() ;
-#else
wxMacWindowStateSaver sv( this ) ;
Rect rect ;
m_peer->GetRect( &rect ) ;
- // auf den umgebenden Rahmen zur\81Â\9fck
+ // auf den umgebenden Rahmen zurï¾\81ï¿\82ï¾\9fck
InsetRect( &rect, -1 , -1 ) ;
wxTopLevelWindowMac* top = MacGetTopLevelWindow();
// we have to invalidate things, we cannot simple redraw
MacInvalidateBorders() ;
}
-#endif
}
event.Skip();
{
// This calls the UI-update mechanism (querying windows for
// menu/toolbar/control state information)
- if (wxUpdateUIEvent::CanUpdate(this))
+ if (wxUpdateUIEvent::CanUpdate(this) && IsShown())
UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
}
delete dc ;
}
+ MacPaintGrowBox();
+
// calculate a client-origin version of the update rgn and set m_updateRegion to that
OffsetRgn( newupdate , -origin.x , -origin.y ) ;
m_updateRegion = newupdate ;
eventNc.SetEventObject( child );
if ( !child->GetEventHandler()->ProcessEvent( eventNc ) )
{
-#if wxMAC_USE_CORE_GRAPHICS
child->MacPaintBorders(0, 0) ;
-#else
- {
- wxWindowDC dc(this) ;
- dc.SetClippingRegion(wxRegion(updatergn));
- wxMacPortSetter helper(&dc) ;
- child->MacPaintBorders(0, 0) ;
- }
-#endif
}
}
}
while ( iter )
{
if ( iter->IsTopLevel() )
- return ((wxTopLevelWindow*)iter)->MacGetWindowRef() ;
-
+ {
+ wxTopLevelWindow* toplevel = wxDynamicCast(iter,wxTopLevelWindow);
+ if ( toplevel )
+ return toplevel->MacGetWindowRef();
+#if wxUSE_POPUPWIN
+ wxPopupWindow* popupwin = wxDynamicCast(iter,wxPopupWindow);
+ if ( popupwin )
+ return popupwin->MacGetPopupWindowRef();
+#endif
+ }
iter = iter->GetParent() ;
}
return NULL ;
}
+bool wxWindowMac::MacHasScrollBarCorner() const
+{
+ /* Returns whether the scroll bars in a wxScrolledWindow should be
+ * shortened. Scroll bars should be shortened if either:
+ *
+ * - both scroll bars are visible, or
+ *
+ * - there is a resize box in the parent frame's corner and this
+ * window shares the bottom and right edge with the parent
+ * frame.
+ */
+
+ if ( m_hScrollBar == NULL && m_vScrollBar == NULL )
+ return false;
+
+ if ( ( m_hScrollBar && m_hScrollBar->IsShown() )
+ && ( m_vScrollBar && m_vScrollBar->IsShown() ) )
+ {
+ // Both scroll bars visible
+ return true;
+ }
+ else
+ {
+ wxPoint thisWindowBottomRight = GetScreenRect().GetBottomRight();
+
+ for ( const wxWindow *win = this; win; win = win->GetParent() )
+ {
+ const wxFrame *frame = wxDynamicCast( win, wxFrame ) ;
+ if ( frame )
+ {
+ if ( frame->GetWindowStyleFlag() & wxRESIZE_BORDER )
+ {
+ // Parent frame has resize handle
+ wxPoint frameBottomRight = frame->GetScreenRect().GetBottomRight();
+
+ // Note: allow for some wiggle room here as wxMac's
+ // window rect calculations seem to be imprecise
+ if ( abs( thisWindowBottomRight.x - frameBottomRight.x ) <= 2
+ && abs( thisWindowBottomRight.y - frameBottomRight.y ) <= 2 )
+ {
+ // Parent frame has resize handle and shares
+ // right bottom corner
+ return true ;
+ }
+ else
+ {
+ // Parent frame has resize handle but doesn't
+ // share right bottom corner
+ return false ;
+ }
+ }
+ else
+ {
+ // Parent frame doesn't have resize handle
+ return false ;
+ }
+ }
+ }
+
+ // No parent frame found
+ return false ;
+ }
+}
+
void wxWindowMac::MacCreateScrollBars( long style )
{
wxASSERT_MSG( m_vScrollBar == NULL && m_hScrollBar == NULL , wxT("attempt to create window twice") ) ;
if ( style & ( wxVSCROLL | wxHSCROLL ) )
{
- bool hasBoth = ( style & wxVSCROLL ) && ( style & wxHSCROLL ) ;
int scrlsize = MAC_SCROLLBAR_SIZE ;
if ( GetWindowVariant() == wxWINDOW_VARIANT_SMALL || GetWindowVariant() == wxWINDOW_VARIANT_MINI )
{
scrlsize = MAC_SMALL_SCROLLBAR_SIZE ;
}
- int adjust = hasBoth ? scrlsize - 1: 0 ;
+ int adjust = MacHasScrollBarCorner() ? scrlsize - 1: 0 ;
int width, height ;
GetClientSize( &width , &height ) ;
wxPoint hPoint(0, height - scrlsize) ;
wxSize hSize(width - adjust, scrlsize) ;
+ // we have to set the min size to a smaller value, otherwise they cannot get smaller (InitialSize sets MinSize)
if ( style & wxVSCROLL )
- m_vScrollBar = new wxScrollBar(this, wxID_ANY, vPoint, vSize , wxVERTICAL);
+ {
+ m_vScrollBar = new wxScrollBar((wxWindow*)this, wxID_ANY, vPoint, vSize , wxVERTICAL);
+ m_vScrollBar->SetMinSize( wxDefaultSize );
+ }
if ( style & wxHSCROLL )
- m_hScrollBar = new wxScrollBar(this, wxID_ANY, hPoint, hSize , wxHORIZONTAL);
+ {
+ m_hScrollBar = new wxScrollBar((wxWindow*)this, wxID_ANY, hPoint, hSize , wxHORIZONTAL);
+ m_hScrollBar->SetMinSize( wxDefaultSize );
+ }
}
// because the create does not take into account the client area origin
if ( !m_hScrollBar && !m_vScrollBar )
return ;
- bool hasBoth = (m_hScrollBar && m_hScrollBar->IsShown()) && ( m_vScrollBar && m_vScrollBar->IsShown()) ;
int scrlsize = m_hScrollBar ? m_hScrollBar->GetSize().y : ( m_vScrollBar ? m_vScrollBar->GetSize().x : MAC_SCROLLBAR_SIZE ) ;
- int adjust = hasBoth ? scrlsize - 1 : 0 ;
+ int adjust = MacHasScrollBarCorner() ? scrlsize - 1 : 0 ;
// get real client area
int width, height ;
bool wxWindowMac::SetTransparent(wxByte alpha)
{
-#if wxMAC_USE_CORE_GRAPHICS
SetBackgroundStyle(wxBG_STYLE_TRANSPARENT);
if ( alpha != m_macAlpha )
Refresh() ;
}
return true ;
-#else
- return false ;
-#endif
}
bool wxWindowMac::CanSetTransparent()
{
-#if wxMAC_USE_CORE_GRAPHICS
return true ;
-#else
- return false ;
-#endif
}
wxByte wxWindowMac::GetTransparent() const