Thanks, it works!
On 15-03-2017 12:49, mhora...@gmail.com wrote: > You need to give the widget a "name" property - than you can select it > in CSS! > > Best, > Martin > > On Wed, 2017-03-15 at 10:28 +0000, Rúben Rodrigues wrote: >> Hi, >> >> I see now, that the problem i'm not do in correct mode. I do this: >> >> GtkButton{ >> >> color: blue; >> } >> >> and works. All buttons change to blue color. But when i'm changing a >> specific label or GtkBox to put background i do this: >> >> GtkLabel#label_Avg_Temp_value{ >> color: red; >> font-family: Segoe UI; >> font-size: 25px; >> } >> >> And don't change label_Avg_Temp_value . What is the correct way to >> change a specific widget? >> >> Thanks >> >> >> Às 14:46 de 14/03/2017, Emmanuele Bassi escreveu: >>> On 14 March 2017 at 14:31, Rúben Rodrigues <ruben...@live.com.pt> >>> wrote: >>>> Just window can have background? >>> I was referring to GdkWindow, not GtkWindow. >>> >>> GtkBox draws background, for instance; GtkGrid does as well. >>> >>>> I don't know why is a violation, because in my case my >>>> applicationdoesn't make sense without background image.. >>> I think the issue, here, is that you're not aware that 15 years >>> passed >>> in the internals of GTK+. >>> >>> Changing the background pixmap of a GdkWindow is a layering >>> violation >>> because it assumes that you're essentially working on X11 and you >>> control the X server as well; on X11, you're telling the X server >>> to >>> clear the contents of the native window used by GtkLayout using the >>> bytes you're passing. This worked in 1997, but it's not how modern >>> toolkits work — and it's not even how different windowing systems >>> work. Widgets do not have their own native window for rendering any >>> more, for instance. >>> >>> If your application window has a background image then use the >>> background-image CSS property on your GtkWindow widget. >>> >>> Ciao, >>> Emmanuele. >>> >>>> On 14-03-2017 14:01, Emmanuele Bassi wrote: >>>>> 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.p >>>>> t> 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_gr@live.c >>>>>>> om.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_conte >>>>>>>> xt(widget), >>>>>>>> GTK_STYLE_PROVIDER(provider),G_MAXUINT); >>>>>>>> if(GTK_IS_CONTAINER(widget)) >>>>>>>> gtk_container_forall(GTK_CONTAINER(widget),(G >>>>>>>> tkCallback) >>>>>>>> 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_prov >>>>>>>> ider), file, >>>>>>>> &error); >>>>>>>> apply_css(gtk_builder_get_object(builder,"window_Main"),c >>>>>>>> ss_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_provid >>>>>>>>> er, file, &error); >>>>>>>>> GtkStyleContext *context = >>>>>>>>> gtk_style_context_new(); >>>>>>>>> gtk_style_context_add_provider(context, >>>>>>>>> GTK_STYLE_PROVIDER(css_provider),GTK_STYLE_PROVIDER_PRI >>>>>>>>> ORITY_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-l >>>>>>>>> ist >>>>>>>> _______________________________________________ >>>>>>>> gtk-app-devel-list mailing list >>>>>>>> gtk-app-devel-list@gnome.org >>>>>>>> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-lis >>>>>>>> t >>> >> >> --- >> Este e-mail foi verificado em termos de vírus pelo software antivírus >> Avast. >> https://www.avast.com/antivirus >> >> _______________________________________________ >> 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