在 enum 类型的 gtk3 中安装 style-属性

install style-property in gtk3 of type enum

我想使用 g_param_spec_enum:

安装一个枚举风格的 属性
  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

似乎可行,但不是处理枚举的官方方法。

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