#include "wx/dc.h"
#include "wx/dcclient.h"
#include "wx/utils.h"
+#include "wx/settings.h"
#include <stdio.h>
if (m_width <= 0 || m_height <= 0)
return;
- wxString paragraph;
- int i = 0 ;
- wxString text = m_label;
-
- int major,minor;
- wxGetOsVersion( &major, &minor );
-
- PrepareDC(dc);
-
- bool doClear = true ;
- WindowRef window = GetMacRootWindow() ;
- if ( window )
- {
- wxWindow* win = wxFindWinFromMacWindow( window ) ;
- if ( win )
- {
- wxWindow* parent = GetParent() ;
- while ( parent )
- {
- if( parent->MacGetWindowData() )
- {
- break ;
- }
-
- if (major < 10)
- {
- if( parent->IsKindOf( CLASSINFO( wxNotebook ) ) || parent->IsKindOf( CLASSINFO( wxTabCtrl ) ))
- {
- if ( ((wxControl*)parent)->GetMacControl() ) {
- Rect rect = { -10000 , -10000 , 10000 , 10000 } ; // MacOS X was having a coord rollover
- if ( DrawThemeTabPane != (void*)kUnresolvedCFragSymbolAddress )
- {
- DrawThemeTabPane ( &rect, kThemeStateActive);
- doClear = false ;
- }
- }
- break ;
- }
- }
-
- parent = parent->GetParent() ;
- }
- }
- }
-
- if ( (major < 10) && doClear )
- dc.Clear() ;
-
- while (i < text.Length())
- {
- paragraph += text[i];
-
- if (text[i] == 13 || text[i] == 10)
- DrawParagraph(dc, paragraph);
-
+ if ( !IsWindowHilited( (WindowRef) MacGetRootWindow() ) &&
+ ( GetBackgroundColour() == wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE )
+ || GetBackgroundColour() == wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE) ) )
+ {
+ dc.SetTextForeground( wxColour( 0x80 , 0x80 , 0x80 ) ) ;
+ }
+ else
+ {
+ dc.SetTextForeground( GetForegroundColour() ) ;
+ }
+
+ wxString paragraph;
+ int i = 0 ;
+ wxString text = m_label;
+ while (i < text.Length())
+ {
+ paragraph += text[i];
+
+ if (text[i] == 13 || text[i] == 10)
+ DrawParagraph(dc, paragraph);
+
++i;
}
if (paragraph.Length() > 0)
- DrawParagraph(dc, paragraph);
+ DrawParagraph(dc, paragraph);
}
void wxStaticText::OnPaint( wxPaintEvent &event )
wxSize wxStaticText::DoGetBestSize() const
{
- int x,y ;
int widthTextMax = 0, widthLine,
heightTextTotal = 0, heightLineDefault = 0, heightLine = 0;
void wxStaticText::SetLabel(const wxString& st )
{
- SetTitle( st ) ;
- m_label = st ;
- if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
- SetSize( GetBestSize() ) ;
+ SetTitle( st ) ;
+ m_label = st ;
+ if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
+ SetSize( GetBestSize() ) ;
- Refresh() ;
- MacUpdateImmediately() ;
-// wxClientDC dc(this);
-// OnDraw( dc ) ;
+ Refresh() ;
+ Update() ;
}