在enum类型的gtk3中安装style-property

时间:2017-05-31 06:50:45

标签: c enums properties gtk3

我想使用g_param_spec_enum安装enum-style-property:

  gtk_widget_class_install_style_property(gobject_class, g_param_spec_enum(
          "shadow-type",                //name
          "shadow-type",                //nick
          "type of shadow",             //blurb
          GtkShadowType,                //type
          GTK_SHADOW_NONE,              //default
          G_PARAM_READWRITE ));         //flags

但是GtkShadowType不是GType,所以它不会这样:

thunar-statusbar.c:106:12: error: expected expression before ‘GtkShadowType’
            GtkShadowType,    //type

知道如何从GtkShadowType中获取GType吗?

我目前的解决方法是,只使用g_param_spec_int代替:

  gtk_widget_class_install_style_property(gobject_class, g_param_spec_int (
          "shadow-type",                //name
          "shadow-type",                //nick
          "the type of the shadow",     //blurb
          GTK_SHADOW_NONE,              //min
          GTK_SHADOW_ETCHED_OUT,        //max
          GTK_SHADOW_NONE,              //default
          G_PARAM_READWRITE));         //flags

似乎工作,但不是处理枚举的官方方式。

1 个答案:

答案 0 :(得分:1)

使用gtk_shadow_type_get_type()检索GType。 (无论好坏,_get_type()方法通常都不会出现在API文档中。)