]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/stattext.cpp
Added OLE automation sample, changed BC++ makefiles
[wxWidgets.git] / src / gtk1 / stattext.cpp
index b05d93c32cd2f558b367038fca6b67fcf206fdd4..d753dc015563c2425e36bf17894776c40c0b31d1 100644 (file)
@@ -2,9 +2,8 @@
 // Name:        stattext.cpp
 // Purpose:
 // Author:      Robert Roebling
-// Created:     01/02/97
-// Id:
-// Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
+// Id:          $Id$
+// Copyright:   (c) 1998 Robert Roebling
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -55,43 +54,53 @@ bool wxStaticText::Create( wxWindow *parent, wxWindowID id, const wxString &labe
   gtk_label_set_justify(GTK_LABEL(m_widget), justify);
   
    int y = 1;
-   if (newSize.x == -1) {
+   if (newSize.x == -1) 
+   {
      char *s = WXSTRINGCAST m_label;
      char *nl = strchr(s, '\n');
-     if (nl) {
-       do {
+     if (nl) 
+     {
+       do 
+       {
          *nl = 0;
-         int x = gdk_string_measure( m_widget->style->font, s );
-         if (x > newSize.x) {
-           newSize.x = x;
-         }
+         int x = gdk_string_measure( m_widget->style->font, s ) + 4;
+         if (x > newSize.x) newSize.x = x;
          *nl++ = '\n';
-         if ((nl = strchr(s = nl, '\n'))) {
+         if ((nl = strchr(s = nl, '\n'))) 
+        {
            ++y;
-         } else {
-           int x = gdk_string_measure( m_widget->style->font, s );
-           if (x > newSize.x) {
-             newSize.x = x;
-           }
+         } 
+        else 
+        {
+           int x = gdk_string_measure( m_widget->style->font, s ) + 4;
+           if (x > newSize.x) newSize.x = x;
          }
        } while (nl);
-     } else {
-       newSize.x = gdk_string_measure( m_widget->style->font, label );
+     } 
+     else 
+     {
+       newSize.x = gdk_string_measure( m_widget->style->font, label ) + 4;
      }
    }
-   if (newSize.y == -1) {
-     if (y == 1) {
+   if (newSize.y == -1) 
+   {
+     if (y == 1) 
        newSize.y = 26;
-     } else {
-       newSize.y
-         = y * (m_widget->style->font->ascent +m_widget->style->font->descent);
-     }
+     else
+       newSize.y = 4 + y * (m_widget->style->font->ascent + 2*m_widget->style->font->descent);
    }
   
   SetSize( newSize.x, newSize.y );
   
+  m_parent->AddChild( this );
+
+  (m_parent->m_insertCallback)( m_parent, this );
+  
   PostCreation();
   
+  SetBackgroundColour( parent->GetBackgroundColour() );
+  SetForegroundColour( parent->GetForegroundColour() );
+
   Show( TRUE );
     
   return TRUE;
@@ -111,3 +120,10 @@ void wxStaticText::SetLabel( const wxString &label )
 
   gtk_label_set( GTK_LABEL(m_widget), m_label );
 }
+
+void wxStaticText::ApplyWidgetStyle()
+{
+  SetWidgetStyle();
+  gtk_widget_set_style( m_widget, m_widgetStyle );
+}
+