void wxToggleButton::DoApplyWidgetStyle(GtkRcStyle *style) { GTKApplyStyle(m_widget, style); GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget)); GTKApplyStyle(child, style); #ifndef __WXGTK4__ wxGCC_WARNING_SUPPRESS(deprecated-declarations) // for buttons with images, the path to the label is (at least in 2.12) // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel if ( GTK_IS_ALIGNMENT(child) ) { GtkWidget* box = gtk_bin_get_child(GTK_BIN(child)); if ( GTK_IS_BOX(box) ) { wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box))); for (GList* item = list; item; item = item->next) { GTKApplyStyle(GTK_WIDGET(item->data), style); } } } wxGCC_WARNING_RESTORE() #endif }
void wxRadioBox::DoApplyWidgetStyle(GtkRcStyle *style) { GTKFrameApplyWidgetStyle(GTK_FRAME(m_widget), style); wxRadioBoxButtonsInfoList::compatibility_iterator node = m_buttonsInfo.GetFirst(); while (node) { GtkWidget *widget = GTK_WIDGET( node->GetData()->button ); GTKApplyStyle(widget, style); GTKApplyStyle(gtk_bin_get_child(GTK_BIN(widget)), style); node = node->GetNext(); } }
void wxInfoBar::DoApplyWidgetStyle(GtkRcStyle *style) { wxInfoBarGeneric::DoApplyWidgetStyle(style); if ( UseNative() ) GTKApplyStyle(m_impl->m_label, style); }
void wxToggleButton::DoApplyWidgetStyle(GtkRcStyle *style) { GTKApplyStyle(m_widget, style); GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget)); GTKApplyStyle(child, style); // for buttons with images, the path to the label is (at least in 2.12) // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel if ( GTK_IS_ALIGNMENT(child) ) { GtkWidget* box = gtk_bin_get_child(GTK_BIN(child)); if ( GTK_IS_BOX(box) ) { wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box))); for (GList* item = list; item; item = item->next) { GTKApplyStyle(GTK_WIDGET(item->data), style); } } } }
void wxListBox::DoApplyWidgetStyle(GtkRcStyle *style) { #ifdef __WXGTK3__ // don't know if this is even necessary, or how to do it #else if (m_hasBgCol && m_backgroundColour.IsOk()) { GdkWindow *window = gtk_tree_view_get_bin_window(m_treeview); if (window) { m_backgroundColour.CalcPixel( gdk_drawable_get_colormap( window ) ); gdk_window_set_background( window, m_backgroundColour.GetColor() ); gdk_window_clear( window ); } } #endif GTKApplyStyle(GTK_WIDGET(m_treeview), style); }
void wxNotebook::DoApplyWidgetStyle(GtkRcStyle *style) { GTKApplyStyle(m_widget, style); for (size_t i = GetPageCount(); i--;) GTKApplyStyle(GetNotebookPage(i)->m_label, style); }
bool wxNotebook::InsertPage( size_t position, wxNotebookPage* win, const wxString& text, bool select, int imageId ) { wxCHECK_MSG( m_widget != NULL, false, wxT("invalid notebook") ); wxCHECK_MSG( win->GetParent() == this, false, wxT("Can't add a page whose parent is not the notebook!") ); wxCHECK_MSG( position <= GetPageCount(), false, wxT("invalid page index in wxNotebookPage::InsertPage()") ); // Hack Alert! (Part II): See above in wxNotebook::AddChildGTK // why this has to be done. gtk_widget_unparent(win->m_widget); if (m_themeEnabled) win->SetThemeEnabled(true); GtkNotebook *notebook = GTK_NOTEBOOK(m_widget); wxGtkNotebookPage* pageData = new wxGtkNotebookPage; m_pages.Insert(win, position); m_pagesData.Insert(position, pageData); // set the label image and text // this must be done before adding the page, as GetPageText // and GetPageImage will otherwise return wrong values in // the page-changed event that results from inserting the // first page. pageData->m_imageIndex = imageId; pageData->m_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 1); gtk_container_set_border_width(GTK_CONTAINER(pageData->m_box), 2); pageData->m_image = NULL; if (imageId != -1) { if (HasImageList()) { const wxBitmap* bitmap = GetImageList()->GetBitmapPtr(imageId); pageData->m_image = gtk_image_new_from_pixbuf(bitmap->GetPixbuf()); gtk_box_pack_start(GTK_BOX(pageData->m_box), pageData->m_image, false, false, m_padding); } else { wxFAIL_MSG("invalid notebook imagelist"); } } /* set the label text */ pageData->m_label = gtk_label_new(wxGTK_CONV(wxStripMenuCodes(text))); gtk_box_pack_end(GTK_BOX(pageData->m_box), pageData->m_label, false, false, m_padding); gtk_widget_show_all(pageData->m_box); gtk_notebook_insert_page(notebook, win->m_widget, pageData->m_box, position); /* apply current style */ #ifdef __WXGTK3__ GTKApplyStyle(pageData->m_label, NULL); #else GtkRcStyle *style = GTKCreateWidgetStyle(); if ( style ) { gtk_widget_modify_style(pageData->m_label, style); g_object_unref(style); } #endif if (select && GetPageCount() > 1) { SetSelection( position ); } InvalidateBestSize(); return true; }
void wxControl::GTKFrameApplyWidgetStyle(GtkFrame* w, GtkRcStyle* style) { GTKApplyStyle(GTK_WIDGET(w), style); GTKApplyStyle(gtk_frame_get_label_widget(w), style); }
void wxCheckBox::DoApplyWidgetStyle(GtkRcStyle *style) { GTKApplyStyle(m_widgetCheckbox, style); GTKApplyStyle(m_widgetLabel, style); }
void wxToggleButton::DoApplyWidgetStyle(GtkRcStyle *style) { GTKApplyStyle(m_widget, style); GTKApplyStyle(gtk_bin_get_child(GTK_BIN(m_widget)), style); }
void wxChoice::DoApplyWidgetStyle(GtkRcStyle *style) { GTKApplyStyle(m_widget, style); GTKApplyStyle(gtk_bin_get_child(GTK_BIN(m_widget)), style); }