#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;
-
- 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 ;
- }
-
- parent = parent->GetParent() ;
- }
- }
- }
-
- 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);
+ 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);
}
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() ) ;
-
- Refresh() ;
- MacUpdateImmediately() ;
-// wxClientDC dc(this);
-// OnDraw( dc ) ;
+ SetTitle( st ) ;
+ m_label = st ;
+ if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
+ SetSize( GetBestSize() ) ;
+
+ Refresh() ;
+ Update() ;
}