Bonjour,

Je voudrai ajouter une propriété de style de type GdkColor à mon widget.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
style "my_style" {
    MyWidget::my-color = shade(@bg_color, 0.96)
}
widget_class "*<MyWidget>" style "my_style"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
// ...
static void
my_widget_class_init (MyWidgetClass *klass)
{
  GtkWidgetClass *widget_class = (GtkWidgetClass *) klass;
  //...
  gtk_widget_class_install_style_property(widget_class,
                                          g_param_spec_boxed("my-color",
                                                             "My color",
                                                             "Display my color",
                                                             GDK_TYPE_COLOR,
                                                             G_PARAM_WRITABLE|G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
                                                             )
  );
}
// ...
static void
my_widget_expose (MyWidget *my)
{
    GdkColor color_property;
    gtk_widget_style_get (widget,
                          "my-color", &color_property,
                          NULL);
    g_print("my-color: {red: %x, green: %x, blue: %x}\n", color_property.red, color_property.green, color_property.blue);
}
Mais j'obtiens cette erreur:
Failed to retrieve property `MyWidget::my-color' of type `GdkColor' from rc file value "((GString*) 0x7f8fe00018a0)" of type `GString'
Pouvez-vous m'aider a trouver mon erreur ?

Edit:
Si, dans ma feuille de style, je remplace "shade(@bg_color, 0.96)" par "@bg_color" Alors là ca marche ...