libeek: define new boxed type EekColor for colors

This commit is contained in:
Daiki Ueno
2011-01-19 14:05:46 +09:00
parent 1ddf39b3da
commit 71d5259f85
2 changed files with 69 additions and 0 deletions

View File

@ -145,3 +145,46 @@ eek_outline_get_type (void)
(GBoxedFreeFunc)eek_outline_free);
return our_type;
}
/* EekColor */
static EekColor *
eek_color_copy (const EekColor *color)
{
return g_slice_dup (EekColor, color);
}
static void
eek_color_free (EekColor *color)
{
g_slice_free (EekColor, color);
}
GType
eek_color_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
our_type =
g_boxed_type_register_static ("EekColor",
(GBoxedCopyFunc)eek_color_copy,
(GBoxedFreeFunc)eek_color_free);
return our_type;
}
EekColor *
eek_color_new (gdouble red,
gdouble green,
gdouble blue,
gdouble alpha)
{
EekColor *color;
color = g_slice_new (EekColor);
color->red = red;
color->green = green;
color->blue = blue;
color->alpha = alpha;
return color;
}

View File

@ -28,6 +28,7 @@ G_BEGIN_DECLS
#define EEK_TYPE_POINT (eek_point_get_type ())
#define EEK_TYPE_BOUNDS (eek_bounds_get_type ())
#define EEK_TYPE_OUTLINE (eek_outline_get_type ())
#define EEK_TYPE_COLOR (eek_color_get_type ())
/**
@ -55,6 +56,7 @@ typedef struct _EekKeysymMatrix EekKeysymMatrix;
typedef struct _EekPoint EekPoint;
typedef struct _EekBounds EekBounds;
typedef struct _EekOutline EekOutline;
typedef struct _EekColor EekColor;
/**
* EekKeysymMatrix:
@ -133,5 +135,29 @@ struct _EekOutline
GType eek_outline_get_type (void) G_GNUC_CONST;
/**
* EekColor:
* @red: red component of color, between 0.0 and 1.0
* @green: green component of color, between 0.0 and 1.0
* @blue: blue component of color, between 0.0 and 1.0
* @alpha: alpha component of color, between 0.0 and 1.0
*
* Color used for drawing.
*/
struct _EekColor
{
gdouble red;
gdouble green;
gdouble blue;
gdouble alpha;
};
GType eek_color_get_type (void) G_GNUC_CONST;
EekColor *eek_color_new (gdouble red,
gdouble green,
gdouble blue,
gdouble alpha);
G_END_DECLS
#endif /* EEK_TYPES_H */