added hilite change notification
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -41,6 +41,8 @@ class WXDLLEXPORT wxStatusBarMac : public wxStatusBarGeneric
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Implementation
|
||||
|
||||
virtual void MacHiliteChanged() ;
|
||||
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
protected:
|
||||
|
||||
|
@@ -182,9 +182,11 @@ public:
|
||||
|
||||
virtual void MacVisibilityChanged() ;
|
||||
virtual void MacEnabledStateChanged() ;
|
||||
virtual void MacHiliteChanged() ;
|
||||
|
||||
bool MacIsReallyShown() ;
|
||||
bool MacIsReallyEnabled() ;
|
||||
bool MacIsReallyHilited() ;
|
||||
|
||||
bool MacIsUserPane() { return m_macIsUserPane; }
|
||||
|
||||
@@ -241,8 +243,10 @@ protected:
|
||||
void MacCreateScrollBars( long style ) ;
|
||||
void MacRepositionScrollBars() ;
|
||||
void MacUpdateControlFont() ;
|
||||
|
||||
void MacPropagateVisibilityChanged() ;
|
||||
void MacPropagateEnabledStateChanged() ;
|
||||
void MacPropagateHiliteChanged() ;
|
||||
|
||||
|
||||
#if WXWIN_COMPATIBILITY_2_4
|
||||
|
@@ -67,7 +67,7 @@ void wxStatusBarMac::DrawFieldText(wxDC& dc, int i)
|
||||
wxRect rect;
|
||||
GetFieldRect(i, rect);
|
||||
|
||||
if ( !MacGetTopLevelWindow()->MacGetMetalAppearance() && !IsWindowHilited( MAC_WXHWND( MacGetTopLevelWindowRef() ) ) )
|
||||
if ( !MacIsReallyHilited() )
|
||||
{
|
||||
dc.SetTextForeground( wxColour( 0x80 , 0x80 , 0x80 ) ) ;
|
||||
}
|
||||
@@ -79,7 +79,10 @@ void wxStatusBarMac::DrawFieldText(wxDC& dc, int i)
|
||||
dc.GetTextExtent(text, &x, &y);
|
||||
|
||||
int xpos = rect.x + leftMargin + 1 ;
|
||||
int ypos = 2 ;
|
||||
int ypos = 1 ;
|
||||
|
||||
if ( MacGetTopLevelWindow()->MacGetMetalAppearance() )
|
||||
ypos++ ;
|
||||
|
||||
dc.SetClippingRegion(rect.x, 0, rect.width, h);
|
||||
|
||||
@@ -119,7 +122,7 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) )
|
||||
int w, h ;
|
||||
GetSize( &w , &h ) ;
|
||||
|
||||
if ( IsWindowHilited( MAC_WXHWND( MacGetTopLevelWindowRef() ) ) || MacGetTopLevelWindow()->MacGetMetalAppearance() )
|
||||
if ( MacIsReallyHilited() )
|
||||
{
|
||||
wxPen white( wxWHITE , 1 , wxSOLID ) ;
|
||||
if (major >= 10 )
|
||||
@@ -161,3 +164,9 @@ void wxStatusBarMac::OnPaint(wxPaintEvent& WXUNUSED(event) )
|
||||
for ( i = 0; i < m_nFields; i ++ )
|
||||
DrawField(dc, i);
|
||||
}
|
||||
|
||||
void wxStatusBarMac::MacHiliteChanged()
|
||||
{
|
||||
Refresh() ;
|
||||
Update() ;
|
||||
}
|
||||
|
@@ -1013,6 +1013,7 @@ void wxTopLevelWindowMac::MacActivate( long timestamp , bool inIsActivating )
|
||||
if(s_macDeactivateWindow==this)
|
||||
s_macDeactivateWindow=NULL;
|
||||
MacDelayedDeactivation(timestamp);
|
||||
MacPropagateHiliteChanged() ;
|
||||
}
|
||||
|
||||
void wxTopLevelWindowMac::SetTitle(const wxString& title)
|
||||
|
@@ -1503,6 +1503,41 @@ wxString wxWindowMac::GetTitle() const
|
||||
return m_label ;
|
||||
}
|
||||
|
||||
bool wxWindowMac::Show(bool show)
|
||||
{
|
||||
if ( !wxWindowBase::Show(show) )
|
||||
return FALSE;
|
||||
|
||||
// TODO use visibilityChanged Carbon Event for OSX
|
||||
bool former = MacIsReallyShown() ;
|
||||
|
||||
SetControlVisibility( (ControlRef) m_macControl , show , true ) ;
|
||||
if ( former != MacIsReallyShown() )
|
||||
MacPropagateVisibilityChanged() ;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool wxWindowMac::Enable(bool enable)
|
||||
{
|
||||
wxASSERT( m_macControl != NULL ) ;
|
||||
if ( !wxWindowBase::Enable(enable) )
|
||||
return FALSE;
|
||||
|
||||
bool former = MacIsReallyEnabled() ;
|
||||
if ( enable )
|
||||
EnableControl( (ControlRef) m_macControl ) ;
|
||||
else
|
||||
DisableControl( (ControlRef) m_macControl ) ;
|
||||
|
||||
if ( former != MacIsReallyEnabled() )
|
||||
MacPropagateEnabledStateChanged() ;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// status change propagations (will be not necessary for OSX later )
|
||||
//
|
||||
|
||||
void wxWindowMac::MacPropagateVisibilityChanged()
|
||||
{
|
||||
MacVisibilityChanged() ;
|
||||
@@ -1517,20 +1552,54 @@ void wxWindowMac::MacPropagateVisibilityChanged()
|
||||
}
|
||||
}
|
||||
|
||||
bool wxWindowMac::Show(bool show)
|
||||
void wxWindowMac::MacPropagateEnabledStateChanged( )
|
||||
{
|
||||
if ( !wxWindowBase::Show(show) )
|
||||
return FALSE;
|
||||
MacEnabledStateChanged() ;
|
||||
|
||||
// TODO use visibilityChanged Carbon Event for OSX
|
||||
bool former = MacIsReallyShown() ;
|
||||
|
||||
SetControlVisibility( (ControlRef) m_macControl , show , true ) ;
|
||||
if ( former != MacIsReallyShown() )
|
||||
MacPropagateVisibilityChanged() ;
|
||||
return TRUE;
|
||||
wxWindowListNode *node = GetChildren().GetFirst();
|
||||
while ( node )
|
||||
{
|
||||
wxWindowMac *child = node->GetData();
|
||||
if ( child->IsEnabled() )
|
||||
child->MacPropagateEnabledStateChanged() ;
|
||||
node = node->GetNext();
|
||||
}
|
||||
}
|
||||
|
||||
void wxWindowMac::MacPropagateHiliteChanged( )
|
||||
{
|
||||
MacHiliteChanged() ;
|
||||
|
||||
wxWindowListNode *node = GetChildren().GetFirst();
|
||||
while ( node )
|
||||
{
|
||||
wxWindowMac *child = node->GetData();
|
||||
// if ( child->IsEnabled() )
|
||||
child->MacPropagateHiliteChanged() ;
|
||||
node = node->GetNext();
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// status change notifications
|
||||
//
|
||||
|
||||
void wxWindowMac::MacVisibilityChanged()
|
||||
{
|
||||
}
|
||||
|
||||
void wxWindowMac::MacHiliteChanged()
|
||||
{
|
||||
}
|
||||
|
||||
void wxWindowMac::MacEnabledStateChanged()
|
||||
{
|
||||
}
|
||||
|
||||
//
|
||||
// status queries on the inherited window's state
|
||||
//
|
||||
|
||||
bool wxWindowMac::MacIsReallyShown()
|
||||
{
|
||||
// only under OSX the visibility of the TLW is taken into account
|
||||
@@ -1552,50 +1621,20 @@ bool wxWindowMac::MacIsReallyShown()
|
||||
#endif
|
||||
}
|
||||
|
||||
void wxWindowMac::MacVisibilityChanged()
|
||||
{
|
||||
}
|
||||
|
||||
void wxWindowMac::MacPropagateEnabledStateChanged( )
|
||||
{
|
||||
MacEnabledStateChanged() ;
|
||||
|
||||
wxWindowListNode *node = GetChildren().GetFirst();
|
||||
while ( node )
|
||||
{
|
||||
wxWindowMac *child = node->GetData();
|
||||
if ( child->IsEnabled() )
|
||||
child->MacPropagateEnabledStateChanged() ;
|
||||
node = node->GetNext();
|
||||
}
|
||||
}
|
||||
|
||||
bool wxWindowMac::Enable(bool enable)
|
||||
{
|
||||
wxASSERT( m_macControl != NULL ) ;
|
||||
if ( !wxWindowBase::Enable(enable) )
|
||||
return FALSE;
|
||||
|
||||
bool former = MacIsReallyEnabled() ;
|
||||
if ( enable )
|
||||
UMAActivateControl( (ControlRef) m_macControl ) ;
|
||||
else
|
||||
UMADeactivateControl( (ControlRef) m_macControl ) ;
|
||||
|
||||
if ( former != MacIsReallyEnabled() )
|
||||
MacPropagateEnabledStateChanged() ;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool wxWindowMac::MacIsReallyEnabled()
|
||||
{
|
||||
return IsControlEnabled( (ControlRef) m_macControl ) ;
|
||||
}
|
||||
|
||||
void wxWindowMac::MacEnabledStateChanged()
|
||||
bool wxWindowMac::MacIsReallyHilited()
|
||||
{
|
||||
return IsControlActive( (ControlRef) m_macControl ) ;
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
int wxWindowMac::GetCharHeight() const
|
||||
{
|
||||
wxClientDC dc ( (wxWindowMac*)this ) ;
|
||||
|
Reference in New Issue
Block a user