summaryrefslogtreecommitdiff
path: root/src/customcellrendererrate.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/customcellrendererrate.c')
-rw-r--r--src/customcellrendererrate.c36
1 files changed, 28 insertions, 8 deletions
diff --git a/src/customcellrendererrate.c b/src/customcellrendererrate.c
index f86c76d..7d39886 100644
--- a/src/customcellrendererrate.c
+++ b/src/customcellrendererrate.c
@@ -2,6 +2,20 @@
#include "customcellrendererrate.h"
+/* Private class member */
+#define PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE((obj), \
+ CUSTOM_TYPE_CELL_RENDERER_RATE, \
+ CustomCellRendererRatePrivate))
+
+typedef struct _CustomCellRendererRatePrivate CustomCellRendererRatePrivate;
+
+struct _CustomCellRendererRatePrivate
+{
+ gfloat rate;
+ gchar buffer[10];
+};
+
static void custom_cell_renderer_rate_get_property(GObject* object,
guint param_id,
GValue* value,
@@ -23,9 +37,10 @@ G_DEFINE_TYPE(CustomCellRendererRate, custom_cell_renderer_rate, GTK_TYPE_CELL_R
static void custom_cell_renderer_rate_init(CustomCellRendererRate* cell_rate)
{
g_object_set(cell_rate, "xalign", 1.0f, NULL);
- convert_rate_to_string(cell_rate->buffer, sizeof(cell_rate->buffer),
- cell_rate->rate);
- g_object_set(cell_rate, "text", cell_rate->buffer, NULL);
+ convert_rate_to_string(PRIVATE(cell_rate)->buffer,
+ sizeof(PRIVATE(cell_rate)->buffer),
+ PRIVATE(cell_rate)->rate);
+ g_object_set(cell_rate, "text", PRIVATE(cell_rate)->buffer, NULL);
}
static void custom_cell_renderer_rate_class_init(CustomCellRendererRateClass *cell_rate_class)
@@ -36,6 +51,9 @@ static void custom_cell_renderer_rate_class_init(CustomCellRendererRateClass *ce
object_class = G_OBJECT_CLASS(cell_rate_class);
/* cell_renderer_class = GTK_CELL_RENDERER_CLASS(cell_rate_class); */
+ g_type_class_add_private(object_class,
+ sizeof(CustomCellRendererRatePrivate));
+
object_class->set_property = custom_cell_renderer_rate_set_property;
object_class->get_property = custom_cell_renderer_rate_get_property;
@@ -65,7 +83,7 @@ void custom_cell_renderer_rate_get_property(GObject* object,
switch (param_id)
{
case PROP_RATE:
- g_value_set_float(value, rate->rate);
+ g_value_set_float(value, PRIVATE(rate)->rate);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec);
@@ -86,9 +104,9 @@ void custom_cell_renderer_rate_set_property(GObject* object,
{
gfloat rate_value = g_value_get_float(value);
- if (rate->rate != rate_value)
+ if (PRIVATE(rate)->rate != rate_value)
{
- rate->rate = rate_value;
+ PRIVATE(rate)->rate = rate_value;
changed = TRUE;
}
break;
@@ -99,8 +117,10 @@ void custom_cell_renderer_rate_set_property(GObject* object,
if (changed)
{
- convert_rate_to_string(rate->buffer, sizeof(rate->buffer), rate->rate);
- g_object_set(rate, "text", rate->buffer, NULL);
+ convert_rate_to_string(PRIVATE(rate)->buffer,
+ sizeof(PRIVATE(rate)->buffer),
+ PRIVATE(rate)->rate);
+ g_object_set(rate, "text", PRIVATE(rate)->buffer, NULL);
}
}