X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..31ad423e4fb556ec225a63b161154d3bf3445c1b:/src/gtk1/notebook.cpp diff --git a/src/gtk1/notebook.cpp b/src/gtk1/notebook.cpp index ded15fb845..1e73e040c1 100644 --- a/src/gtk1/notebook.cpp +++ b/src/gtk1/notebook.cpp @@ -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,6 +560,7 @@ bool wxNotebook::DeleteAllPages() wxASSERT_MSG( GetPageCount() == 0, _T("all pages must have been deleted") ); + InvalidateBestSize(); return wxNotebookBase::DeleteAllPages(); } @@ -718,7 +684,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 +702,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 +805,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 )