diff options
Diffstat (limited to 'src/customcellrendererrate.c')
| -rw-r--r-- | src/customcellrendererrate.c | 36 |
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); } } |
