#include "wx/setup.h"
#include "wx/menu.h"
+#include "wx/window.h"
#include "wx/dc.h"
#include "wx/dcclient.h"
#include "wx/utils.h"
#include "wx/tabctrl.h"
#include "wx/tooltip.h"
#include "wx/statusbr.h"
-// TODO remove the line below, just for lookup-up convenience CS
-#include "wx/window.h"
-
#include "wx/menuitem.h"
#include "wx/log.h"
// constructors and such
// ----------------------------------------------------------------------------
+WindowRef wxWindow::s_macWindowInUpdate = NULL;
+
void wxWindow::Init()
{
// generic
InitBase();
+ m_macEraseOnRedraw = true ;
+
// MSW specific
m_doubleClickAllowed = 0;
m_winCaptured = FALSE;
m_isShown = TRUE;
m_macWindowData = NULL ;
+ m_macEraseOnRedraw = true ;
m_x = 0;
m_y = 0 ;
bool wxWindow::MacIsReallyShown() const
{
+ if ( m_isShown && (m_parent != NULL) ) {
+ return m_parent->MacIsReallyShown();
+ }
+ return m_isShown;
+/*
bool status = m_isShown ;
wxWindow * win = this ;
while ( status && win->m_parent != NULL )
status = win->m_isShown ;
}
return status ;
+*/
}
int wxWindow::GetCharHeight() const
wxClientDC dc( (wxWindow*) this ) ;
long lx,ly,ld,le ;
- dc.GetTextExtent( string , &lx , &ly , &ld, &le, fontToUse ) ;
+ dc.GetTextExtent( string , &lx , &ly , &ld, &le, (wxFont *)fontToUse ) ;
if ( externalLeading )
*externalLeading = le ;
if ( descent )
void wxWindow::MacEraseBackground( Rect *rect )
{
+/*
WindowRef window = GetMacRootWindow() ;
if ( m_backgroundColour == wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE) )
{
}
}
}
+*/
}
void wxWindow::Refresh(bool eraseBack, const wxRect *rect)
{
wclass = kMovableModalWindowClass ;
}
- else if ( HasFlag( wxDIALOG_MODELESS ) )
+ else
{
wclass = kDocumentWindowClass ;
}
- /*
- else
- {
- if ( HasFlag( wxCAPTION ) )
- {
- wclass = kDocumentWindowClass ;
- }
- else
- {
- wclass = kModalWindowClass ;
- }
- }
- */
}
else
{
}
void wxWindow::MacActivate( EventRecord *ev , bool inIsActivating )
{
- wxActivateEvent event(wxEVT_ACTIVATE, inIsActivating);
+ wxActivateEvent event(wxEVT_ACTIVATE, inIsActivating , m_windowId);
event.m_timeStamp = ev->when ;
event.SetEventObject(this);
if ( GetParent() && m_backgroundColour != GetParent()->GetBackgroundColour() )
eraseBackground = true ;
SetClip( updatergn ) ;
- if ( eraseBackground )
+ if ( eraseBackground && m_macEraseOnRedraw )
{
+ // todo : find a clever algorithm, which only will do this
+ // if really necessary
EraseRgn( updatergn ) ;
}
}