diff options
Diffstat (limited to 'src/customcellrendererleft.c')
| -rw-r--r-- | src/customcellrendererleft.c | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/src/customcellrendererleft.c b/src/customcellrendererleft.c index 89184e5..2dc3ae9 100644 --- a/src/customcellrendererleft.c +++ b/src/customcellrendererleft.c @@ -2,6 +2,20 @@ #include "customcellrendererleft.h" +/* Private class member */ +#define PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ + CUSTOM_TYPE_CELL_RENDERER_LEFT, \ + CustomCellRendererLeftPrivate)) + +typedef struct _CustomCellRendererLeftPrivate CustomCellRendererLeftPrivate; + +struct _CustomCellRendererLeftPrivate +{ + gint64 left; + gchar buffer[20]; +}; + static void custom_cell_renderer_left_get_property(GObject* object, guint param_id, GValue* value, @@ -14,17 +28,18 @@ static void custom_cell_renderer_left_set_property(GObject* object, static void convert_left_to_string(gchar* str, guint size, gint64 left); enum { - PROP_0, - PROP_LEFT, + PROP_0, + PROP_LEFT, }; G_DEFINE_TYPE(CustomCellRendererLeft, custom_cell_renderer_left, GTK_TYPE_CELL_RENDERER_TEXT) static void custom_cell_renderer_left_init(CustomCellRendererLeft* cell_left) { - convert_left_to_string(cell_left->buffer, sizeof(cell_left->buffer), - cell_left->left); - g_object_set(cell_left, "text", cell_left->buffer, NULL); + convert_left_to_string(PRIVATE(cell_left)->buffer, + sizeof(PRIVATE(cell_left)->buffer), + PRIVATE(cell_left)->left); + g_object_set(cell_left, "text", PRIVATE(cell_left)->buffer, NULL); } static void custom_cell_renderer_left_class_init(CustomCellRendererLeftClass *cell_left_class) @@ -35,6 +50,9 @@ static void custom_cell_renderer_left_class_init(CustomCellRendererLeftClass *ce object_class = G_OBJECT_CLASS(cell_left_class); /* cell_renderer_class = GTK_CELL_RENDERER_CLASS(cell_left_class); */ + g_type_class_add_private(object_class, + sizeof(CustomCellRendererLeftPrivate)); + object_class->set_property = custom_cell_renderer_left_set_property; object_class->get_property = custom_cell_renderer_left_get_property; @@ -64,7 +82,7 @@ void custom_cell_renderer_left_get_property(GObject* object, switch (param_id) { case PROP_LEFT: - g_value_set_int64(value, left->left); + g_value_set_int64(value, PRIVATE(left)->left); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); @@ -85,9 +103,9 @@ void custom_cell_renderer_left_set_property(GObject* object, { gint64 left_value = g_value_get_int64(value); - if (left->left != left_value) + if (PRIVATE(left)->left != left_value) { - left->left = left_value; + PRIVATE(left)->left = left_value; changed = TRUE; } break; @@ -98,8 +116,10 @@ void custom_cell_renderer_left_set_property(GObject* object, if (changed) { - convert_left_to_string(left->buffer, sizeof(left->buffer), left->left); - g_object_set(left, "text", left->buffer, NULL); + convert_left_to_string(PRIVATE(left)->buffer, + sizeof(PRIVATE(left)->buffer), + PRIVATE(left)->left); + g_object_set(left, "text", PRIVATE(left)->buffer, NULL); } } |
