在 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 文档中。)
我想使用 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 文档中。)