]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/notebook.cpp
Removed unneeded GSocket files
[wxWidgets.git] / src / gtk / notebook.cpp
index 25edf2c1105058f75d15fe9c82dcc7659dc1b4b7..9bd054e96fc35e49459981bbce65794698e57546 100644 (file)
@@ -72,13 +72,6 @@ public:
         m_image = -1;
         m_page = (GtkNotebookPage *) NULL;
         m_box = (GtkWidget *) NULL;
-        m_labelStyle = (GtkStyle*) NULL;
-    }
-    
-    ~wxGtkNotebookPage()
-    {
-        if (m_labelStyle)
-            gtk_style_unref( m_labelStyle );
     }
     
     bool SetFont(const wxFont& font);
@@ -88,7 +81,6 @@ public:
     GtkNotebookPage   *m_page;
     GtkLabel          *m_label;
     GtkWidget         *m_box;     // in which the label and image are packed
-    GtkStyle          *m_labelStyle;
 };
 
 
@@ -97,42 +89,17 @@ bool wxGtkNotebookPage::SetFont(const wxFont& font)
     if (!m_label)
                return false;
 
-    if (m_labelStyle)
-    {
-        GtkStyle *remake = gtk_style_copy( m_labelStyle );
-
-#ifndef __WXGTK20__
-        remake->klass = m_labelStyle->klass;
-#endif
-
-        gtk_style_unref( m_labelStyle );
-        m_labelStyle = remake;
-    }
-    else
-    {
-        GtkStyle *def = gtk_rc_get_style( GTK_WIDGET(m_label) );
-
-        if (!def)
-            def = gtk_widget_get_default_style();
-
-        m_labelStyle = gtk_style_copy( def );
-
-        // FIXME: no more klass in 2.0
-#ifndef __WXGTK20__
-        m_labelStyle->klass = def->klass;
-#endif
-    }
-
 #ifdef __WXGTK20__
-       pango_font_description_free( m_labelStyle->font_desc );
-       m_labelStyle->font_desc = pango_font_description_copy( font.GetNativeFontInfo()->description );
+    gtk_widget_modify_font(GTK_WIDGET(m_label),
+                           font.GetNativeFontInfo()->description);
 #else
-       gdk_font_unref( m_labelStyle->font );
-       m_labelStyle->font = gdk_font_ref( font.GetInternalFont( 1.0 ) );
+    GtkRcStyle *style = gtk_rc_style_new();
+    style->fontset_name = 
+        g_strdup(font.GetNativeFontInfo()->GetXFontName().c_str());
+    gtk_widget_modify_style(GTK_WIDGET(m_label), style);
+    gtk_rc_style_unref(style);
 #endif
 
-    gtk_widget_set_style( GTK_WIDGET(m_label), m_labelStyle );
-
        return true;
 }
 
@@ -367,8 +334,6 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
 
     PostCreation(size);
 
-    SetFont( parent->GetFont() );
-
     gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
                             GTK_SIGNAL_FUNC(gtk_notebook_realized_callback), (gpointer) this );
 
@@ -595,23 +560,18 @@ bool wxNotebook::DeleteAllPages()
 
     wxASSERT_MSG( GetPageCount() == 0, _T("all pages must have been deleted") );
 
+    InvalidateBestSize();
     return wxNotebookBase::DeleteAllPages();
 }
 
-bool wxNotebook::DeletePage( size_t page )
+wxNotebookPage *wxNotebook::DoRemovePage( size_t page )
 {
-    if ( m_selection == (int)m_pagesData.GetCount() - 1 )
+    if ( m_selection != -1 && (size_t)m_selection >= page )
     {
         // the index will become invalid after the page is deleted
         m_selection = -1;
     }
 
-    // it will call our DoRemovePage() to do the real work
-    return wxNotebookBase::DeletePage(page);
-}
-
-wxNotebookPage *wxNotebook::DoRemovePage( size_t page )
-{
     wxNotebookPage *client = wxNotebookBase::DoRemovePage(page);
     if ( !client )
         return NULL;
@@ -718,7 +678,6 @@ bool wxNotebook::InsertPage( size_t position,
     if (nb_page->m_text.IsEmpty()) nb_page->m_text = wxT("");
 
     nb_page->m_label = GTK_LABEL( gtk_label_new(wxGTK_CONV(nb_page->m_text)) );
-       nb_page->SetFont(GetFont());
     gtk_box_pack_end( GTK_BOX(nb_page->m_box), GTK_WIDGET(nb_page->m_label), FALSE, FALSE, m_padding );
 
     /* show the label */
@@ -737,6 +696,7 @@ bool wxNotebook::InsertPage( size_t position,
     gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
       GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer)this );
 
+    InvalidateBestSize();
     return TRUE;
 }
 
@@ -839,12 +799,10 @@ bool wxNotebook::DoPhase( int WXUNUSED(nPhase) )
 
 #endif
 
-void wxNotebook::ApplyWidgetStyle()
+void wxNotebook::DoApplyWidgetStyle(GtkRcStyle *style)
 {
     // TODO, font for labels etc
-
-    SetWidgetStyle();
-    gtk_widget_set_style( m_widget, m_widgetStyle );
+    gtk_widget_modify_style( m_widget, style );
 }
 
 bool wxNotebook::IsOwnGtkWindow( GdkWindow *window )
@@ -866,6 +824,13 @@ bool  wxNotebook::SetFont(const wxFont& font)
        return rc;
 }
 
+// static
+wxVisualAttributes
+wxNotebook::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+    return GetDefaultAttributesFromGTKWidget(gtk_notebook_new);
+}
+
 //-----------------------------------------------------------------------------
 // wxNotebookEvent
 //-----------------------------------------------------------------------------