diff options
Diffstat (limited to 'src/customcellrendererprogress.c')
| -rw-r--r-- | src/customcellrendererprogress.c | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/src/customcellrendererprogress.c b/src/customcellrendererprogress.c index 04912e7..f8c3eb8 100644 --- a/src/customcellrendererprogress.c +++ b/src/customcellrendererprogress.c @@ -2,6 +2,21 @@ #include "customcellrendererprogress.h" +/* Private class member */ +#define PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ + CUSTOM_TYPE_CELL_RENDERER_PROGRESS, \ + CustomCellRendererProgressPrivate)) + +typedef struct _CustomCellRendererProgressPrivate CustomCellRendererProgressPrivate; + +struct _CustomCellRendererProgressPrivate +{ + gfloat downloaded; + gfloat seeded; + gchar buffer[10]; +}; + static void custom_cell_renderer_progress_get_property(GObject* object, guint param_id, GValue* value, @@ -15,9 +30,9 @@ static void update_progress(CustomCellRendererProgress* cell_progress, gfloat downloaded, gfloat seeded); enum { - PROP_0, - PROP_DOWNLOADED, - PROP_SEEDED, + PROP_0, + PROP_DOWNLOADED, + PROP_SEEDED, }; G_DEFINE_TYPE(CustomCellRendererProgress, custom_cell_renderer_progress, GTK_TYPE_CELL_RENDERER_PROGRESS) @@ -25,7 +40,8 @@ G_DEFINE_TYPE(CustomCellRendererProgress, custom_cell_renderer_progress, GTK_TYP static void custom_cell_renderer_progress_init(CustomCellRendererProgress* cell_progress) { update_progress(cell_progress, - cell_progress->downloaded, cell_progress->seeded); + PRIVATE(cell_progress)->downloaded, + PRIVATE(cell_progress)->seeded); } static void custom_cell_renderer_progress_class_init(CustomCellRendererProgressClass *cell_progress_class) @@ -36,6 +52,9 @@ static void custom_cell_renderer_progress_class_init(CustomCellRendererProgressC object_class = G_OBJECT_CLASS(cell_progress_class); /* cell_renderer_class = GTK_CELL_RENDERER_CLASS(cell_progress_class); */ + g_type_class_add_private(object_class, + sizeof(CustomCellRendererProgressPrivate)); + object_class->set_property = custom_cell_renderer_progress_set_property; object_class->get_property = custom_cell_renderer_progress_get_property; @@ -75,10 +94,10 @@ void custom_cell_renderer_progress_get_property(GObject* object, switch (param_id) { case PROP_DOWNLOADED: - g_value_set_float(value, progress->downloaded); + g_value_set_float(value, PRIVATE(progress)->downloaded); break; case PROP_SEEDED: - g_value_set_float(value, progress->seeded); + g_value_set_float(value, PRIVATE(progress)->seeded); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); @@ -99,9 +118,9 @@ void custom_cell_renderer_progress_set_property(GObject* object, { gfloat downloaded = g_value_get_float(value); - if (progress->downloaded != downloaded) + if (PRIVATE(progress)->downloaded != downloaded) { - progress->downloaded = downloaded; + PRIVATE(progress)->downloaded = downloaded; changed = TRUE; } break; @@ -110,9 +129,9 @@ void custom_cell_renderer_progress_set_property(GObject* object, { gfloat seeded = g_value_get_float(value); - if (progress->seeded != seeded) + if (PRIVATE(progress)->seeded != seeded) { - progress->seeded = seeded; + PRIVATE(progress)->seeded = seeded; changed = TRUE; } break; @@ -123,17 +142,19 @@ void custom_cell_renderer_progress_set_property(GObject* object, if (changed) { - update_progress(progress, progress->downloaded, progress->seeded); + update_progress(progress, PRIVATE(progress)->downloaded, + PRIVATE(progress)->seeded); } } void update_progress(CustomCellRendererProgress* cell_progress, gfloat downloaded, gfloat seeded) { - g_snprintf(cell_progress->buffer, sizeof(cell_progress->buffer), + g_snprintf(PRIVATE(cell_progress)->buffer, + sizeof(PRIVATE(cell_progress)->buffer), "%2.2f", seeded); g_object_set(cell_progress, "value", (gint)downloaded, - "text", cell_progress->buffer, + "text", PRIVATE(cell_progress)->buffer, NULL); } |
