You were not changing the background with your theme: you were programmatically replacing the base pixmap of the GdkWindow used by GtkLayout. It was essentially a layering violation, and would actually break your theme.
The API reference for each GTK widget should tell you the CSS styling available; see the "CSS nodes" section, for instance, of GtkBox: https://developer.gnome.org/gtk3/stable/GtkBox.html Ciao, Emmanuele. On 14 March 2017 at 13:55, Rúben Rodrigues <ruben...@live.com.pt> wrote: > Thanks! > > But in GTK+2 we could change background in layout with this: > > // Set picture as background. > // gdk_pixbuf_render_pixmap_and_mask (pixbuf, &background, NULL, 0); > // style = gtk_style_new (); > // style->bg_pixmap[0] = background; > // homeWindow = GTK_WIDGET(gtk_builder_get_object(builder, > "layout_Home")); > // gtk_widget_set_style (GTK_WIDGET(homeWindow), GTK_STYLE(style)); > > How i know witch containers draw background? > > THanks > > > On 14-03-2017 12:55, Emmanuele Bassi wrote: >> Not all GTK containers draw a background, mostly for historical >> reasons. This has been true for GTK 1.x, 2.x, and 3.x. >> >> In particular, GtkLayout does not draw any background with CSS, so you >> will need to either subclass GtkLayout, override the GtkWidget::draw >> virtual function, and call gtk_render_* functions yourself; or you >> will need to put a GtkLayout into a parent container that does draw a >> background. You will, of course, need to style the parent container's >> background, not the GtkLayout itself. >> >> Ciao, >> Emmanuele. >> >> >> On 14 March 2017 at 12:43, Rúben Rodrigues <ruben...@live.com.pt> wrote: >>> I verify that i can't use css provider, don't works. >>> >>> My css file is : >>> >>> GtkLayout#layout_Home.background{ >>> background-image: url('background.png'); >>> } >>> >>> GtkLabel#Home_Cooling_Tunnel1_Cooler_label1{ >>> color: white; >>> } >>> >>> GtkLabel#Home_Sensors_MoistAvg_value{ >>> font-family: Segoe UI; >>> font-weight: lighter; >>> font-size: 25px; >>> } >>> >>> And this code: >>> >>> static void apply_css(GtkWidget *widget, GtkStyleProvider *provider) >>> { >>> gtk_style_context_add_provider(gtk_widget_get_style_context(widget), >>> GTK_STYLE_PROVIDER(provider),G_MAXUINT); >>> if(GTK_IS_CONTAINER(widget)) >>> gtk_container_forall(GTK_CONTAINER(widget),(GtkCallback) >>> apply_css,provider); >>> >>> } >>> >>> GFile *file= g_file_new_for_path("custom.css"); >>> GtkStyleProvider *css_provider = >>> GTK_STYLE_PROVIDER(gtk_css_provider_new()); >>> gtk_css_provider_load_from_file(GTK_CSS_PROVIDER(css_provider), file, >>> &error); >>> apply_css(gtk_builder_get_object(builder,"window_Main"),css_provider); >>> >>> This is the code used in gtk3-demo and don't works for me.. Why???? >>> >>> THanks >>> >>> On 14-03-2017 10:00, Rúben Rodrigues wrote: >>>> Hi guys, >>>> >>>> Finnaly i migrate my application to gtk+3. So, now i neet to change some >>>> things like image background. I used css provider like in this : >>>> >>>> custom.css file: >>>> >>>> GtkLayout:layout_Home{ >>>> background-color: black; >>>> } >>>> >>>> >>>> C Program: >>>> >>>> GFile *file= g_file_new_for_path("custom.css"); >>>> GtkCssProvider *css_provider = gtk_css_provider_get_default(); >>>> gtk_css_provider_load_from_file(css_provider, file, &error); >>>> GtkStyleContext *context = gtk_style_context_new(); >>>> gtk_style_context_add_provider(context, >>>> GTK_STYLE_PROVIDER(css_provider),GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); >>>> >>>> But nothing happens. I tried this too: >>>> >>>> http://stackoverflow.com/questions/7375624/gtk3-window-background-image >>>> >>>> >>>> Someone can help me? >>>> >>>> >>>> THanks >>>> >>>> _______________________________________________ >>>> gtk-app-devel-list mailing list >>>> gtk-app-devel-list@gnome.org >>>> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >>> _______________________________________________ >>> gtk-app-devel-list mailing list >>> gtk-app-devel-list@gnome.org >>> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >> >> > -- https://www.bassi.io [@] ebassi [@gmail.com] _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list