| 28 * Jonathon Blandford <jrb@redhat.com> for RedHat, Inc. |
28 * Jonathon Blandford <jrb@redhat.com> for RedHat, Inc. |
| 29 */ |
29 */ |
| 30 |
30 |
| 31 #include "gtkcellrendererprogress.h" |
31 #include "gtkcellrendererprogress.h" |
| 32 |
32 |
| 33 static void gaim_gtk_cell_renderer_progress_get_property (GObject *object, |
33 static void pidgin_cell_renderer_progress_get_property (GObject *object, |
| 34 guint param_id, |
34 guint param_id, |
| 35 GValue *value, |
35 GValue *value, |
| 36 GParamSpec *pspec); |
36 GParamSpec *pspec); |
| 37 static void gaim_gtk_cell_renderer_progress_set_property (GObject *object, |
37 static void pidgin_cell_renderer_progress_set_property (GObject *object, |
| 38 guint param_id, |
38 guint param_id, |
| 39 const GValue *value, |
39 const GValue *value, |
| 40 GParamSpec *pspec); |
40 GParamSpec *pspec); |
| 41 static void gaim_gtk_cell_renderer_progress_init (GaimGtkCellRendererProgress *cellprogress); |
41 static void pidgin_cell_renderer_progress_init (PidginCellRendererProgress *cellprogress); |
| 42 static void gaim_gtk_cell_renderer_progress_class_init (GaimGtkCellRendererProgressClass *class); |
42 static void pidgin_cell_renderer_progress_class_init (PidginCellRendererProgressClass *class); |
| 43 static void gaim_gtk_cell_renderer_progress_get_size (GtkCellRenderer *cell, |
43 static void pidgin_cell_renderer_progress_get_size (GtkCellRenderer *cell, |
| 44 GtkWidget *widget, |
44 GtkWidget *widget, |
| 45 GdkRectangle *cell_area, |
45 GdkRectangle *cell_area, |
| 46 gint *x_offset, |
46 gint *x_offset, |
| 47 gint *y_offset, |
47 gint *y_offset, |
| 48 gint *width, |
48 gint *width, |
| 49 gint *height); |
49 gint *height); |
| 50 static void gaim_gtk_cell_renderer_progress_render (GtkCellRenderer *cell, |
50 static void pidgin_cell_renderer_progress_render (GtkCellRenderer *cell, |
| 51 GdkWindow *window, |
51 GdkWindow *window, |
| 52 GtkWidget *widget, |
52 GtkWidget *widget, |
| 53 GdkRectangle *background_area, |
53 GdkRectangle *background_area, |
| 54 GdkRectangle *cell_area, |
54 GdkRectangle *cell_area, |
| 55 GdkRectangle *expose_area, |
55 GdkRectangle *expose_area, |
| 56 guint flags); |
56 guint flags); |
| 57 #if 0 |
57 #if 0 |
| 58 static gboolean gaim_gtk_cell_renderer_progress_activate (GtkCellRenderer *cell, |
58 static gboolean pidgin_cell_renderer_progress_activate (GtkCellRenderer *cell, |
| 59 GdkEvent *event, |
59 GdkEvent *event, |
| 60 GtkWidget *widget, |
60 GtkWidget *widget, |
| 61 const gchar *path, |
61 const gchar *path, |
| 62 GdkRectangle *background_area, |
62 GdkRectangle *background_area, |
| 63 GdkRectangle *cell_area, |
63 GdkRectangle *cell_area, |
| 64 guint flags); |
64 guint flags); |
| 65 #endif |
65 #endif |
| 66 static void gaim_gtk_cell_renderer_progress_finalize (GObject *gobject); |
66 static void pidgin_cell_renderer_progress_finalize (GObject *gobject); |
| 67 |
67 |
| 68 enum { |
68 enum { |
| 69 LAST_SIGNAL |
69 LAST_SIGNAL |
| 70 }; |
70 }; |
| 71 |
71 |
| 77 }; |
77 }; |
| 78 |
78 |
| 79 static gpointer parent_class; |
79 static gpointer parent_class; |
| 80 /* static guint progress_cell_renderer_signals [LAST_SIGNAL]; */ |
80 /* static guint progress_cell_renderer_signals [LAST_SIGNAL]; */ |
| 81 |
81 |
| 82 GType gaim_gtk_cell_renderer_progress_get_type (void) |
82 GType pidgin_cell_renderer_progress_get_type (void) |
| 83 { |
83 { |
| 84 static GType cell_progress_type = 0; |
84 static GType cell_progress_type = 0; |
| 85 |
85 |
| 86 if (!cell_progress_type) |
86 if (!cell_progress_type) |
| 87 { |
87 { |
| 88 static const GTypeInfo cell_progress_info = |
88 static const GTypeInfo cell_progress_info = |
| 89 { |
89 { |
| 90 sizeof (GaimGtkCellRendererProgressClass), |
90 sizeof (PidginCellRendererProgressClass), |
| 91 NULL, /* base_init */ |
91 NULL, /* base_init */ |
| 92 NULL, /* base_finalize */ |
92 NULL, /* base_finalize */ |
| 93 (GClassInitFunc) gaim_gtk_cell_renderer_progress_class_init, |
93 (GClassInitFunc) pidgin_cell_renderer_progress_class_init, |
| 94 NULL, /* class_finalize */ |
94 NULL, /* class_finalize */ |
| 95 NULL, /* class_data */ |
95 NULL, /* class_data */ |
| 96 sizeof (GaimGtkCellRendererProgress), |
96 sizeof (PidginCellRendererProgress), |
| 97 0, /* n_preallocs */ |
97 0, /* n_preallocs */ |
| 98 (GInstanceInitFunc) gaim_gtk_cell_renderer_progress_init, |
98 (GInstanceInitFunc) pidgin_cell_renderer_progress_init, |
| 99 NULL /* value_table */ |
99 NULL /* value_table */ |
| 100 }; |
100 }; |
| 101 |
101 |
| 102 cell_progress_type = |
102 cell_progress_type = |
| 103 g_type_register_static (GTK_TYPE_CELL_RENDERER, |
103 g_type_register_static (GTK_TYPE_CELL_RENDERER, |
| 104 "GaimGtkCellRendererProgress", |
104 "PidginCellRendererProgress", |
| 105 &cell_progress_info, 0); |
105 &cell_progress_info, 0); |
| 106 } |
106 } |
| 107 |
107 |
| 108 return cell_progress_type; |
108 return cell_progress_type; |
| 109 } |
109 } |
| 110 |
110 |
| 111 static void gaim_gtk_cell_renderer_progress_init (GaimGtkCellRendererProgress *cellprogress) |
111 static void pidgin_cell_renderer_progress_init (PidginCellRendererProgress *cellprogress) |
| 112 { |
112 { |
| 113 GTK_CELL_RENDERER(cellprogress)->mode = GTK_CELL_RENDERER_MODE_INERT; |
113 GTK_CELL_RENDERER(cellprogress)->mode = GTK_CELL_RENDERER_MODE_INERT; |
| 114 GTK_CELL_RENDERER(cellprogress)->xpad = 2; |
114 GTK_CELL_RENDERER(cellprogress)->xpad = 2; |
| 115 GTK_CELL_RENDERER(cellprogress)->ypad = 2; |
115 GTK_CELL_RENDERER(cellprogress)->ypad = 2; |
| 116 } |
116 } |
| 117 |
117 |
| 118 static void gaim_gtk_cell_renderer_progress_class_init (GaimGtkCellRendererProgressClass *class) |
118 static void pidgin_cell_renderer_progress_class_init (PidginCellRendererProgressClass *class) |
| 119 { |
119 { |
| 120 GObjectClass *object_class = G_OBJECT_CLASS(class); |
120 GObjectClass *object_class = G_OBJECT_CLASS(class); |
| 121 GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS(class); |
121 GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS(class); |
| 122 |
122 |
| 123 parent_class = g_type_class_peek_parent (class); |
123 parent_class = g_type_class_peek_parent (class); |
| 124 object_class->finalize = gaim_gtk_cell_renderer_progress_finalize; |
124 object_class->finalize = pidgin_cell_renderer_progress_finalize; |
| 125 |
125 |
| 126 object_class->get_property = gaim_gtk_cell_renderer_progress_get_property; |
126 object_class->get_property = pidgin_cell_renderer_progress_get_property; |
| 127 object_class->set_property = gaim_gtk_cell_renderer_progress_set_property; |
127 object_class->set_property = pidgin_cell_renderer_progress_set_property; |
| 128 |
128 |
| 129 cell_class->get_size = gaim_gtk_cell_renderer_progress_get_size; |
129 cell_class->get_size = pidgin_cell_renderer_progress_get_size; |
| 130 cell_class->render = gaim_gtk_cell_renderer_progress_render; |
130 cell_class->render = pidgin_cell_renderer_progress_render; |
| 131 |
131 |
| 132 g_object_class_install_property (object_class, |
132 g_object_class_install_property (object_class, |
| 133 PROP_PERCENTAGE, |
133 PROP_PERCENTAGE, |
| 134 g_param_spec_double ("percentage", |
134 g_param_spec_double ("percentage", |
| 135 "Percentage", |
135 "Percentage", |
| 150 "Whether to overlay text on the progress bar", |
150 "Whether to overlay text on the progress bar", |
| 151 FALSE, |
151 FALSE, |
| 152 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
152 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
| 153 } |
153 } |
| 154 |
154 |
| 155 static void gaim_gtk_cell_renderer_progress_finalize (GObject *object) |
155 static void pidgin_cell_renderer_progress_finalize (GObject *object) |
| 156 { |
156 { |
| 157 /* |
157 /* |
| 158 GaimGtkCellRendererProgress *cellprogress = GAIM_GTK_CELL_RENDERER_PROGRESS(object); |
158 PidginCellRendererProgress *cellprogress = PIDGIN_CELL_RENDERER_PROGRESS(object); |
| 159 */ |
159 */ |
| 160 |
160 |
| 161 (* G_OBJECT_CLASS (parent_class)->finalize) (object); |
161 (* G_OBJECT_CLASS (parent_class)->finalize) (object); |
| 162 } |
162 } |
| 163 |
163 |
| 164 static void gaim_gtk_cell_renderer_progress_get_property (GObject *object, |
164 static void pidgin_cell_renderer_progress_get_property (GObject *object, |
| 165 guint param_id, |
165 guint param_id, |
| 166 GValue *value, |
166 GValue *value, |
| 167 GParamSpec *psec) |
167 GParamSpec *psec) |
| 168 { |
168 { |
| 169 GaimGtkCellRendererProgress *cellprogress = GAIM_GTK_CELL_RENDERER_PROGRESS(object); |
169 PidginCellRendererProgress *cellprogress = PIDGIN_CELL_RENDERER_PROGRESS(object); |
| 170 |
170 |
| 171 switch (param_id) |
171 switch (param_id) |
| 172 { |
172 { |
| 173 case PROP_PERCENTAGE: |
173 case PROP_PERCENTAGE: |
| 174 g_value_set_double(value, cellprogress->progress); |
174 g_value_set_double(value, cellprogress->progress); |