content[textSize - 1] = 0 ;
#if wxUSE_UNICODE
- textCtrl->WriteText( wxString( content , wxConvLocal ) );
+ textCtrl->WriteText( wxString( content , wxConvLocal ) );
#else
textCtrl->WriteText( wxString( content ) ) ;
#endif
}
// Constructor
-bool wxWindowMac::Create(wxWindowMac *parent, wxWindowID id,
- const wxPoint& pos,
- const wxSize& size,
- long style,
- const wxString& name)
+bool wxWindowMac::Create(wxWindowMac *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxString& name)
{
wxCHECK_MSG( parent, false, wxT("can't create wxWindowMac without parent") );
| kControlHandlesTracking
| kControlSupportsFocus
| kControlWantsActivate
- | kControlWantsIdle
- ;
+ | kControlWantsIdle ;
m_peer = new wxMacControl(this) ;
- ::CreateUserPaneControl( MAC_WXHWND(GetParent()->MacGetTopLevelWindowRef()) , &bounds, features , m_peer->GetControlRefAddr() );
+ OSStatus err =::CreateUserPaneControl( MAC_WXHWND(GetParent()->MacGetTopLevelWindowRef()) , &bounds, features , m_peer->GetControlRefAddr() );
+ verify_noerr( err );
MacPostControlCreate(pos, size) ;
}
#ifndef __WXUNIVERSAL__
// Don't give scrollbars to wxControls unless they ask for them
- if ( (! IsKindOf(CLASSINFO(wxControl)) && ! IsKindOf(CLASSINFO(wxStatusBar))) ||
- (IsKindOf(CLASSINFO(wxControl)) && ( style & wxHSCROLL || style & wxVSCROLL)))
+ if ( (! IsKindOf(CLASSINFO(wxControl)) && ! IsKindOf(CLASSINFO(wxStatusBar)))
+ || (IsKindOf(CLASSINFO(wxControl)) && ((style & wxHSCROLL) || (style & wxVSCROLL))))
{
MacCreateScrollBars( style ) ;
}
{
wxASSERT_MSG( m_peer != NULL && m_peer->Ok() , wxT("No valid mac control") ) ;
- m_peer->SetReference( (long) this ) ;
- GetParent()->AddChild(this);
+ m_peer->SetReference( (long)this ) ;
+ GetParent()->AddChild( this );
MacInstallEventHandler( (WXWidget) m_peer->GetControlRef() );
bool wxWindowMac::SetFont(const wxFont& font)
{
- bool retval = wxWindowBase::SetFont( font ) ;
+ bool retval = wxWindowBase::SetFont( font );
MacUpdateControlFont() ;
bool wxWindowMac::SetForegroundColour(const wxColour& col )
{
- bool retval = wxWindowBase::SetForegroundColour(col);
+ bool retval = wxWindowBase::SetForegroundColour( col );
if (retval)
- MacUpdateControlFont() ;
+ MacUpdateControlFont();
return retval;
}
wxBrush brush ;
wxColour newCol(GetBackgroundColour());
- if ( newCol == wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE) )
+
+ if ( newCol == wxSystemSettings::GetColour( wxSYS_COLOUR_APPWORKSPACE ) )
brush.MacSetTheme( kThemeBrushDocumentWindowBackground ) ;
- else if ( newCol == wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE ) )
+ else if ( newCol == wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) )
brush.MacSetTheme( kThemeBrushDialogBackgroundActive ) ;
else
brush.SetColour( newCol ) ;
MacSetBackgroundBrush( brush ) ;
-
MacUpdateControlFont() ;
return true ;
if ( former )
{
EventRef evRef = NULL ;
- verify_noerr( MacCreateEvent( NULL , kEventClassControl , kEventControlSetFocusPart , TicksToEventTime( TickCount() ) , kEventAttributeUserEvent ,
- &evRef ) );
+
+ 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) ;
+ ReleaseEvent( evRef ) ;
}
// send new focus event
{
EventRef evRef = NULL ;
- verify_noerr( MacCreateEvent( NULL , kEventClassControl , kEventControlSetFocusPart , TicksToEventTime( TickCount() ) , kEventAttributeUserEvent ,
- &evRef ) );
+
+ 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) ;
+ ReleaseEvent( evRef ) ;
}
#endif
}
m_dropTarget = pDropTarget;
if ( m_dropTarget != NULL )
{
- // TODO
+ // TODO:
}
}
// Old style file-manager drag&drop
void wxWindowMac::DragAcceptFiles(bool accept)
{
- // TODO
+ // TODO:
}
// Returns the size of the native control. In the case of the toplevel window
x = (int)pos.x;
y = (int)pos.y;
- // todo the default calls may be used as soon as PostCreateControl Is moved here
+
+ // TODO: the default calls may be used as soon as PostCreateControl Is moved here
w = wxMax(size.x, 0) ; // WidthDefault( size.x );
h = wxMax(size.y, 0) ; // HeightDefault( size.y ) ;
void wxWindowMac::DoScreenToClient(int *x, int *y) const
{
WindowRef window = (WindowRef) MacGetTopLevelWindowRef() ;
+ wxCHECK_RET( window , wxT("TopLevel Window missing") ) ;
- wxCHECK_RET( window , wxT("TopLevel Window Missing") ) ;
-
- {
- Point localwhere = {0, 0} ;
+ Point localwhere = { 0, 0 } ;
- if (x)
- localwhere.h = *x ;
- if (y)
- localwhere.v = *y ;
+ if (x)
+ localwhere.h = *x ;
+ if (y)
+ localwhere.v = *y ;
- QDGlobalToLocalPoint( GetWindowPort( window ) , &localwhere ) ;
+ QDGlobalToLocalPoint( GetWindowPort( window ) , &localwhere ) ;
- if (x)
- *x = localwhere.h ;
- if (y)
- *y = localwhere.v ;
- }
+ if (x)
+ *x = localwhere.h ;
+ if (y)
+ *y = localwhere.v ;
MacRootWindowToWindow( x , y ) ;
MacWindowToRootWindow( x , y ) ;
- {
- Point localwhere = { 0, 0 };
- if (x)
- localwhere.h = * x ;
- if (y)
- localwhere.v = * y ;
+ Point localwhere = { 0, 0 };
+ if (x)
+ localwhere.h = *x ;
+ if (y)
+ localwhere.v = *y ;
- QDLocalToGlobalPoint( GetWindowPort( window ) , &localwhere ) ;
+ QDLocalToGlobalPoint( GetWindowPort( window ) , &localwhere ) ;
- if (x)
- *x = localwhere.h ;
- if (y)
- *y = localwhere.v ;
- }
+ if (x)
+ *x = localwhere.h ;
+ if (y)
+ *y = localwhere.v ;
}
void wxWindowMac::MacClientToRootWindow( int *x , int *y ) const
void wxWindowMac::MacWindowToRootWindow( int *x , int *y ) const
{
wxPoint pt ;
+
if (x)
pt.x = *x ;
if (y)
CGrafPtr savePort ;
Boolean swapped = QDSwapPort( GetWindowPort( window ) , &savePort ) ;
- // TODO If we ever get a GetCurrentEvent.. replacement for the mouse
- // position, use it...
+ // TODO: If we ever get a GetCurrentEvent... replacement
+ // for the mouse position, use it...
Point pt ;
- GetMouse( &pt ) ;
ControlPartCode part ;
ControlRef control ;
+
+ GetMouse( &pt ) ;
control = wxMacFindControlUnderMouse( tlw , pt , window , &part ) ;
if ( control )
mouseWin = wxFindControlFromMacControl( control ) ;
GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &id ) ;
wxMenuItem* item = NULL ;
wxMenu* realmenu ;
- item = menu->FindItem(id, &realmenu) ;
+ item = menu->FindItem( id, &realmenu ) ;
if (item->IsCheckable())
item->Check( !item->IsChecked() ) ;
// now we know that we have something to do at all
// as the borders are drawn on the parent we have to properly invalidate all these areas
- RgnHandle updateInner = NewRgn() ,
- updateOuter = NewRgn() ;
+ RgnHandle updateInner , updateOuter;
+ Rect rect ;
// this rectangle is in HIViewCoordinates under OSX and in Window Coordinates under Carbon
- Rect rect ;
+ updateInner = NewRgn() ;
+ updateOuter = NewRgn() ;
+
m_peer->GetRect( &rect ) ;
RectRgn( updateInner, &rect ) ;
InsetRect( &rect , -outerBorder , -outerBorder ) ;
InvalWindowRgn( tlw , updateOuter ) ;
#endif
- DisposeRgn(updateOuter) ;
- DisposeRgn(updateInner) ;
-
-#if 0
- RgnHandle updateInner = NewRgn() , updateOuter = NewRgn() ;
- RectRgn( updateInner , &rect ) ;
- InsetRect( &rect , -4 , -4 ) ;
- RectRgn( updateOuter , &rect ) ;
- DiffRgn( updateOuter , updateInner , updateOuter ) ;
- wxPoint parent(0, 0);
- GetParent()->MacWindowToRootWindow( &parent.x , &parent.y ) ;
- parent -= GetParent()->GetClientAreaOrigin() ;
- OffsetRgn( updateOuter , -parent.x , -parent.y ) ;
- GetParent()->m_peer->SetNeedsDisplay( true , updateOuter ) ;
- DisposeRgn(updateOuter) ;
- DisposeRgn(updateInner) ;
-#endif
-
-#if 0
- if ( m_peer )
- {
- // deleting a window while it is shown invalidates
- // the region occupied by border or focus
-
- if ( IsShown() && ( outerBorder > 0 ) )
- {
- // as the borders are drawn on the parent we have to properly invalidate all these areas
- RgnHandle updateInner = NewRgn() , updateOuter = NewRgn() , updateTotal = NewRgn() ;
-
- Rect rect ;
-
- m_peer->GetRect( &rect ) ;
- RectRgn( updateInner , &rect ) ;
- InsetRect( &rect , -outerBorder , -outerBorder ) ;
- RectRgn( updateOuter , &rect ) ;
- DiffRgn( updateOuter , updateInner ,updateOuter ) ;
- wxPoint parent(0, 0);
- GetParent()->MacWindowToRootWindow( &parent.x , &parent.y ) ;
- parent -= GetParent()->GetClientAreaOrigin() ;
- OffsetRgn( updateOuter , -parent.x , -parent.y ) ;
- CopyRgn( updateOuter , updateTotal ) ;
-
- GetParent()->m_peer->SetNeedsDisplay( true , updateTotal ) ;
- DisposeRgn(updateOuter) ;
- DisposeRgn(updateInner) ;
- DisposeRgn(updateTotal) ;
- }
- }
-#endif
-
-#if 0
- Rect r = wxMacGetBoundsForControl(this , wxPoint( actualX,actualY), wxSize( actualWidth, actualHeight ) , false ) ;
-
- int outerBorder = MacGetLeftBorderSize() ;
- if ( m_peer->NeedsFocusRect() && m_peer->HasFocus() )
- outerBorder += 4 ;
-
- if ( vis && ( outerBorder > 0 ) )
- {
- // as the borders are drawn on the parent we have to properly invalidate all these areas
- RgnHandle updateInner = NewRgn() , updateOuter = NewRgn() , updateTotal = NewRgn() ;
-
- Rect rect ;
-
- m_peer->GetRect( &rect ) ;
- RectRgn( updateInner , &rect ) ;
- InsetRect( &rect , -outerBorder , -outerBorder ) ;
- RectRgn( updateOuter , &rect ) ;
- DiffRgn( updateOuter , updateInner ,updateOuter ) ;
-
-/*
- wxPoint parent(0, 0);
-#if TARGET_API_MAC_OSX
- // no offsetting needed when compositing
-#else
- GetParent()->MacWindowToRootWindow( &parent.x , &parent.y ) ;
- parent -= GetParent()->GetClientAreaOrigin() ;
- OffsetRgn( updateOuter , -parent.x , -parent.y ) ;
-#endif
-*/
-
- CopyRgn( updateOuter , updateTotal ) ;
-
- rect = r ;
- RectRgn( updateInner , &rect ) ;
- InsetRect( &rect , -outerBorder , -outerBorder ) ;
- RectRgn( updateOuter , &rect ) ;
- DiffRgn( updateOuter , updateInner , updateOuter ) ;
-
-/*
- OffsetRgn( updateOuter , -parent.x , -parent.y ) ;
-*/
-
- UnionRgn( updateOuter , updateTotal , updateTotal ) ;
-
- GetParent()->m_peer->SetNeedsDisplay( updateTotal ) ;
- DisposeRgn( updateOuter ) ;
- DisposeRgn( updateInner ) ;
- DisposeRgn( updateTotal ) ;
- }
-#endif
+ DisposeRgn( updateOuter ) ;
+ DisposeRgn( updateInner ) ;
}
void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
return;
}
- if ( x == wxDefaultCoord && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
- x = currentX;
- if ( y == wxDefaultCoord && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
- y = currentY;
+ if ( !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
+ {
+ if ( x == wxDefaultCoord )
+ x = currentX;
+ if ( y == wxDefaultCoord )
+ y = currentY;
+ }
- AdjustForParentClientOrigin(x, y, sizeFlags);
+ AdjustForParentClientOrigin( x, y, sizeFlags );
wxSize size = wxDefaultSize;
if ( width == wxDefaultCoord )
}
}
- DoMoveWindow(x, y, width, height);
+ DoMoveWindow( x, y, width, height );
}
wxPoint wxWindowMac::GetClientAreaOrigin() const
if ( !wxWindowBase::Show(show) )
return false;
- // TODO use visibilityChanged Carbon Event for OSX
+ // TODO: use visibilityChanged Carbon Event for OSX
if ( m_peer )
m_peer->SetVisibility( show , true ) ;
if ( former != MacIsReallyShown() )
MacPropagateVisibilityChanged() ;
-#if 1
- // patch from Sailesh Agrawal
- wxShowEvent eventShow(GetId(), show);
- eventShow.SetEventObject(this);
- GetEventHandler()->ProcessEvent(eventShow);
-#endif
-
return true;
}
bool hasFocus = m_peer->NeedsFocusRect() && m_peer->HasFocus() ;
bool hasBothScrollbars = (m_hScrollBar && m_hScrollBar->IsShown()) && (m_vScrollBar && m_vScrollBar->IsShown()) ;
- m_peer->GetRect( &rect ) ;
// back to the surrounding frame rectangle
+ m_peer->GetRect( &rect ) ;
InsetRect( &rect, -1 , -1 ) ;
#if wxMAC_USE_CORE_GRAPHICS && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
rect.bottom - rect.top ) ;
HIThemeFrameDrawInfo info ;
- memset( &info, 0 , sizeof( info ) ) ;
+ memset( &info, 0 , sizeof(info) ) ;
info.version = 0 ;
info.kind = 0 ;
void wxWindowMac::SetScrollbar(int orient, int pos, int thumbVisible,
int range, bool refresh)
{
+ bool showScroller;
+
if ( orient == wxHORIZONTAL )
{
if ( m_hScrollBar )
{
- if ( range == 0 || thumbVisible >= range )
- {
- if ( m_hScrollBar->IsShown() )
- m_hScrollBar->Show(false) ;
- }
- else
- {
- if ( !m_hScrollBar->IsShown() )
- m_hScrollBar->Show(true) ;
- }
+ showScroller = ((range != 0) && (range > thumbVisible));
+ if ( m_hScrollBar->IsShown() != showScroller )
+ m_hScrollBar->Show( showScroller ) ;
m_hScrollBar->SetScrollbar( pos , thumbVisible , range , thumbVisible , refresh ) ;
}
{
if ( m_vScrollBar )
{
- if ( range == 0 || thumbVisible >= range )
- {
- if ( m_vScrollBar->IsShown() )
- m_vScrollBar->Show(false) ;
- }
- else
- {
- if ( !m_vScrollBar->IsShown() )
- m_vScrollBar->Show(true) ;
- }
+ showScroller = ((range != 0) && (range > thumbVisible));
+ if ( m_vScrollBar->IsShown() != showScroller )
+ m_vScrollBar->Show( showScroller ) ;
m_vScrollBar->SetScrollbar( pos , thumbVisible , range , thumbVisible , refresh ) ;
}
{
// note there currently is a bug in OSX which makes inefficient refreshes in case an entire control
// area is scrolled, this does not occur if width and height are 2 pixels less,
- // TODO write optimal workaround
+ // TODO: write optimal workaround
wxRect scrollrect( MacGetLeftBorderSize() , MacGetTopBorderSize() , width , height ) ;
if ( rect )
scrollrect.Intersect( *rect ) ;
if ( m_peer->GetNeedsDisplay() )
{
- // becuase HIViewScrollRect does not scroll the already invalidated area we have two options
+ // because HIViewScrollRect does not scroll the already invalidated area we have two options:
// either immediate redraw or full invalidate
#if 1
// is the better overall solution, as it does not slow down scrolling
{
int x, y, w, h ;
- window->MacGetBoundsForControl( pos , size , x , y, w, h , adjustForOrigin) ;
- Rect bounds = { y, x, y + h, x + w };
+ window->MacGetBoundsForControl( pos , size , x , y, w, h , adjustForOrigin ) ;
+ Rect bounds = { y, x, y + h, x + w };
return bounds ;
}
bool wxWindowMac::Reparent(wxWindowBase *newParentBase)
{
wxWindowMac *newParent = (wxWindowMac *)newParentBase;
-
if ( !wxWindowBase::Reparent(newParent) )
return false;