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

Reply via email to