diff --git a/ChangeLog b/ChangeLog index e3bf67bc3a1f28accbb698420707f93cba1c257b..6a2bfffa01ea28d00faf6effdcbb6ca297ba4af2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-01-25 Benedikt Meurer <benny@xfce.org> + + * thunar/thunar-enum-types.{c,h}: Import enum types required for the + desktop background management. + 2006-01-24 Benedikt Meurer <benny@xfce.org> * thunar/thunar-preferences.c(thunar_preferences_set_property): No need diff --git a/thunar/thunar-enum-types.c b/thunar/thunar-enum-types.c index 0ab419e0f2abe708fb1b3c0389496dcb77cb04aa..8236af49bdb459c81f15a48060e4f1562a29d8f4 100644 --- a/thunar/thunar-enum-types.c +++ b/thunar/thunar-enum-types.c @@ -27,33 +27,58 @@ -static void thunar_enum_from_string (const GValue *src_value, - GValue *dst_value); +static void thunar_enum_from_string (const GValue *src_value, + GValue *dst_value); +static GType thunar_enum_register_type (const gchar *enum_name, + const GEnumValue *enum_values); GType -thunar_recursive_permissions_get_type (void) +thunar_color_style_get_type (void) { - static GType type = G_TYPE_INVALID; + static const GEnumValue values[] = + { + { THUNAR_COLOR_STYLE_SOLID, "THUNAR_COLOR_STYLE_SOLID", "solid", }, + { THUNAR_COLOR_STYLE_HGRADIENT, "THUNAR_COLOR_STYLE_HGRADIENT", "hgradient", }, + { THUNAR_COLOR_STYLE_VGRADIENT, "THUNAR_COLOR_STYLE_VGRADIENT", "vgradient", }, + { 0, NULL, NULL, }, + }; + + return thunar_enum_register_type (I_("ThunarColorStyle"), values); +} - if (G_UNLIKELY (type == G_TYPE_INVALID)) - { - static const GEnumValue values[] = - { - { THUNAR_RECURSIVE_PERMISSIONS_ASK, "THUNAR_RECURSIVE_PERMISSIONS_ASK", "ask", }, - { THUNAR_RECURSIVE_PERMISSIONS_ALWAYS, "THUNAR_RECURSIVE_PERMISSIONS_ALWAYS", "always", }, - { THUNAR_RECURSIVE_PERMISSIONS_NEVER, "THUNAR_RECURSIVE_PERMISSIONS_NEVER", "never", }, - { 0, NULL, NULL, }, - }; - type = g_enum_register_static (I_("ThunarRecursivePermissions"), values); - /* register transformation function for string->ThunarRecursivePermissions */ - g_value_register_transform_func (G_TYPE_STRING, type, thunar_enum_from_string); - } +GType +thunar_recursive_permissions_get_type (void) +{ + static const GEnumValue values[] = + { + { THUNAR_RECURSIVE_PERMISSIONS_ASK, "THUNAR_RECURSIVE_PERMISSIONS_ASK", "ask", }, + { THUNAR_RECURSIVE_PERMISSIONS_ALWAYS, "THUNAR_RECURSIVE_PERMISSIONS_ALWAYS", "always", }, + { THUNAR_RECURSIVE_PERMISSIONS_NEVER, "THUNAR_RECURSIVE_PERMISSIONS_NEVER", "never", }, + { 0, NULL, NULL, }, + }; + + return thunar_enum_register_type (I_("ThunarRecursivePermissions"), values); +} - return type; + + +GType +thunar_wallpaper_style_get_type (void) +{ + static const GEnumValue values[] = + { + { THUNAR_WALLPAPER_STYLE_CENTERED, "THUNAR_WALLPAPER_STYLE_CENTERED", "centered", }, + { THUNAR_WALLPAPER_STYLE_SCALED, "THUNAR_WALLPAPER_STYLE_SCALED", "scaled", }, + { THUNAR_WALLPAPER_STYLE_STRETCHED, "THUNAR_WALLPAPER_STYLE_STRETCHED", "stretched", }, + { THUNAR_WALLPAPER_STYLE_TILED, "THUNAR_WALLPAPER_STYLE_TILED", "tiled", }, + { 0, NULL, NULL, }, + }; + + return thunar_enum_register_type (I_("ThunarWallpaperStyle"), values); } @@ -82,3 +107,23 @@ thunar_enum_from_string (const GValue *src_value, +static GType +thunar_enum_register_type (const gchar *enum_name, + const GEnumValue *enum_values) +{ + GType type; + + /* check if we already have the type */ + type = g_type_from_name (enum_name); + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + /* register the type using the specified enum values */ + type = g_enum_register_static (enum_name, enum_values); + + /* register transformation function, that transforms strings to the enum type */ + g_value_register_transform_func (G_TYPE_STRING, type, thunar_enum_from_string); + } + + return type; +} + diff --git a/thunar/thunar-enum-types.h b/thunar/thunar-enum-types.h index 2e94991f8a6be97c18a0557335535eb81321cb09..e119a172d1aabb360a7e9f30c7932412545960b3 100644 --- a/thunar/thunar-enum-types.h +++ b/thunar/thunar-enum-types.h @@ -24,6 +24,26 @@ G_BEGIN_DECLS; +#define THUNAR_TYPE_COLOR_STYLE (thunar_color_style_get_type ()) + +/** + * ThunarColorStyle: + * @THUNAR_COLOR_STYLE_SOLID : solid desktop background color. + * @THUNAR_COLOR_STYLE_HGRADIENT : horizontal gradient from color0 to color1. + * @THUNAR_COLOR_STYLE_VGRADIENT : vertical gradient from color0 to color1. + * + * Desktop background color style. + **/ +typedef enum +{ + THUNAR_COLOR_STYLE_SOLID, + THUNAR_COLOR_STYLE_HGRADIENT, + THUNAR_COLOR_STYLE_VGRADIENT, +} ThunarColorStyle; + +GType thunar_color_style_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL; + + #define THUNAR_TYPE_RECURSIVE_PERMISSIONS (thunar_recursive_permissions_get_type ()) /** @@ -43,6 +63,28 @@ typedef enum GType thunar_recursive_permissions_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL; + +#define THUNAR_TYPE_WALLPAPER_STYLE (thunar_wallpaper_style_get_type ()) + +/** + * ThunarWallpaperStyle: + * @THUNAR_WALLPAPER_STYLE_CENTERED : center the wallpaper. + * @THUNAR_WALLPAPER_STYLE_SCALED : scale the wallpaper. + * @THUNAR_WALLPAPER_STYLE_STRETCHED : stretch the wallpaper. + * @THUNAR_WALLPAPER_STYLE_TILED : tile the wallpaper. + * + * Desktop background wallpaper style. + **/ +typedef enum +{ + THUNAR_WALLPAPER_STYLE_CENTERED, + THUNAR_WALLPAPER_STYLE_SCALED, + THUNAR_WALLPAPER_STYLE_STRETCHED, + THUNAR_WALLPAPER_STYLE_TILED, +} ThunarWallpaperStyle; + +GType thunar_wallpaper_style_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL; + G_END_DECLS; #endif /* !__THUNAR_ENUM_TYPES_H__ */