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 > > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list