summaryrefslogtreecommitdiff
path: root/src/customcellrendererprogress.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/customcellrendererprogress.c')
-rw-r--r--src/customcellrendererprogress.c47
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);
}