EVT_NC_PAINT(wxWindowMac::OnNcPaint)
EVT_ERASE_BACKGROUND(wxWindowMac::OnEraseBackground)
// TODO EVT_PAINT(wxWindowMac::OnPaint)
- EVT_SYS_COLOUR_CHANGED(wxWindowMac::OnSysColourChanged)
- EVT_INIT_DIALOG(wxWindowMac::OnInitDialog)
EVT_SET_FOCUS(wxWindowMac::OnSetFocus)
EVT_KILL_FOCUS(wxWindowMac::OnSetFocus)
EVT_MOUSE_EVENTS(wxWindowMac::OnMouseEvent)
case kEventControlDraw :
{
RgnHandle updateRgn = NULL ;
-
+ RgnHandle allocatedRgn = NULL ;
wxRegion visRegion = thisWindow->MacGetVisibleRegion() ;
if ( cEvent.GetParameter<RgnHandle>(kEventParamRgnHandle, &updateRgn) != noErr )
{
updateRgn = (RgnHandle) visRegion.GetWXHRGN() ;
}
- // GrafPtr myport = cEvent.GetParameter<GrafPtr>(kEventParamGrafPort,typeGrafPtr) ;
+ else
+ {
+ if ( thisWindow->MacGetLeftBorderSize() != 0 || thisWindow->MacGetTopBorderSize() != 0 )
+ {
+ allocatedRgn = NewRgn() ;
+ CopyRgn( updateRgn , allocatedRgn ) ;
+ OffsetRgn( updateRgn , thisWindow->MacGetLeftBorderSize() , thisWindow->MacGetTopBorderSize() ) ;
+ }
+ }
#if 0
// in case we would need a coregraphics compliant background erase first
#endif
if ( thisWindow->MacDoRedraw( updateRgn , cEvent.GetTicks() ) )
result = noErr ;
+ if ( allocatedRgn )
+ DisposeRgn( allocatedRgn ) ;
}
break ;
case kEventControlVisibilityChanged :
}
MacSetBackgroundBrush( brush ) ;
- MacUpdateControlFont() ;
-
return true ;
}
+void wxWindowMac::MacSetBackgroundBrush( const wxBrush &brush )
+{
+ m_macBackgroundBrush = brush ;
+ m_peer->SetBackground( brush ) ;
+}
bool wxWindowMac::MacCanFocus() const
{
// TODO
}
+// Returns the size of the native control. In the case of the toplevel window
+// this is the content area root control
+
void wxWindowMac::MacGetPositionAndSizeFromControl(int& x, int& y,
int& w, int& h) const
{
}
}
+// From a wx position / size calculate the appropriate size of the native control
+
bool wxWindowMac::MacGetBoundsForControl(const wxPoint& pos,
const wxSize& size,
int& x, int& y,
{
Rect bounds ;
m_peer->GetRect( &bounds ) ;
- if(x) *x += bounds.left ;
- if(y) *y += bounds.top ;
+ if(x) *x += bounds.left - MacGetLeftBorderSize() ;
+ if(y) *y += bounds.top - MacGetTopBorderSize() ;
}
#endif
}
{
Rect bounds ;
m_peer->GetRect( &bounds ) ;
- if(x) *x -= bounds.left ;
- if(y) *y -= bounds.top ;
+ if(x) *x -= bounds.left + MacGetLeftBorderSize() ;
+ if(y) *y -= bounds.top + MacGetTopBorderSize() ;
}
#endif
}
#endif
ww = content.right - content.left ;
hh = content.bottom - content.top ;
-
+ /*
ww -= MacGetLeftBorderSize( ) + MacGetRightBorderSize( ) ;
hh -= MacGetTopBorderSize( ) + MacGetBottomBorderSize( );
-
+ */
if ( (m_vScrollBar && m_vScrollBar->IsShown()) || (m_hScrollBar && m_hScrollBar->IsShown()) )
{
int x1 = 0 ;
if ( MacGetTopLevelWindow() && m_peer->NeedsFocusRect() )
{
wxMacWindowStateSaver sv( this ) ;
-// wxWindowDC dc(this) ;
-// wxMacPortSetter helper(&dc) ;
int w , h ;
int x , y ;
if (m_windowStyle & wxRAISED_BORDER || m_windowStyle & wxSUNKEN_BORDER )
{
SInt32 border = 3 ;
-#if 0 // wxMAC_USE_THEME_BORDER
- GetThemeMetric( kThemeMetricListBoxFrameOutset , &border ) ;
-#endif
return border ;
}
else if ( m_windowStyle &wxDOUBLE_BORDER)
{
SInt32 border = 3 ;
-#if 0 // wxMAC_USE_THEME_BORDER
- GetThemeMetric( kThemeMetricEditTextFrameOutset , &border ) ;
-#endif
return border ;
}
else if (m_windowStyle &wxSIMPLE_BORDER)
long wxWindowMac::MacRemoveBordersFromStyle( long style )
{
- return style & ~( wxDOUBLE_BORDER | wxSUNKEN_BORDER | wxRAISED_BORDER | wxBORDER | wxSTATIC_BORDER ) ;
+ return style & ~wxBORDER_MASK ;
}
// Find the wxWindowMac at the current mouse position, returning the mouse