Initial commit
[fillmore] / src / marina / marina / StatusBar.c
1 /* StatusBar.c generated by valac, the Vala compiler
2  * generated from StatusBar.vala, do not modify */
3
4 /* Copyright 2009 Yorba Foundation
5  *
6  * This software is licensed under the GNU Lesser General Public License
7  * (version 2.1 or later).  See the COPYING file in this distribution. 
8  */
9
10 #include <glib.h>
11 #include <glib-object.h>
12 #include <gtk/gtk.h>
13 #include <float.h>
14 #include <math.h>
15 #include <stdlib.h>
16 #include <string.h>
17 #include <gdk/gdk.h>
18 #include <gee.h>
19 #include <pango/pango.h>
20
21
22 #define VIEW_TYPE_STATUS_BAR (view_status_bar_get_type ())
23 #define VIEW_STATUS_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_TYPE_STATUS_BAR, ViewStatusBar))
24 #define VIEW_STATUS_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_TYPE_STATUS_BAR, ViewStatusBarClass))
25 #define VIEW_IS_STATUS_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_TYPE_STATUS_BAR))
26 #define VIEW_IS_STATUS_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_TYPE_STATUS_BAR))
27 #define VIEW_STATUS_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_TYPE_STATUS_BAR, ViewStatusBarClass))
28
29 typedef struct _ViewStatusBar ViewStatusBar;
30 typedef struct _ViewStatusBarClass ViewStatusBarClass;
31 typedef struct _ViewStatusBarPrivate ViewStatusBarPrivate;
32
33 #define MODEL_TYPE_TIME_SYSTEM (model_time_system_get_type ())
34 #define MODEL_TIME_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_TIME_SYSTEM, ModelTimeSystem))
35 #define MODEL_IS_TIME_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_TIME_SYSTEM))
36 #define MODEL_TIME_SYSTEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MODEL_TYPE_TIME_SYSTEM, ModelTimeSystemIface))
37
38 typedef struct _ModelTimeSystem ModelTimeSystem;
39 typedef struct _ModelTimeSystemIface ModelTimeSystemIface;
40 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
41
42 #define MODEL_TYPE_TEMPO_INFORMATION (model_tempo_information_get_type ())
43 #define MODEL_TEMPO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_TEMPO_INFORMATION, ModelTempoInformation))
44 #define MODEL_IS_TEMPO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_TEMPO_INFORMATION))
45 #define MODEL_TEMPO_INFORMATION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MODEL_TYPE_TEMPO_INFORMATION, ModelTempoInformationIface))
46
47 typedef struct _ModelTempoInformation ModelTempoInformation;
48 typedef struct _ModelTempoInformationIface ModelTempoInformationIface;
49
50 #define TYPE_FRACTION (fraction_get_type ())
51 typedef struct _Fraction Fraction;
52
53 #define MODEL_TYPE_PROJECT (model_project_get_type ())
54 #define MODEL_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_PROJECT, ModelProject))
55 #define MODEL_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_PROJECT, ModelProjectClass))
56 #define MODEL_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_PROJECT))
57 #define MODEL_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_PROJECT))
58 #define MODEL_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_PROJECT, ModelProjectClass))
59
60 typedef struct _ModelProject ModelProject;
61 typedef struct _ModelProjectClass ModelProjectClass;
62 typedef struct _ModelProjectPrivate ModelProjectPrivate;
63
64 #define MODEL_TYPE_CLIP_FILE (model_clip_file_get_type ())
65 #define MODEL_CLIP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_CLIP_FILE, ModelClipFile))
66 #define MODEL_CLIP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_CLIP_FILE, ModelClipFileClass))
67 #define MODEL_IS_CLIP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_CLIP_FILE))
68 #define MODEL_IS_CLIP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_CLIP_FILE))
69 #define MODEL_CLIP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_CLIP_FILE, ModelClipFileClass))
70
71 typedef struct _ModelClipFile ModelClipFile;
72 typedef struct _ModelClipFileClass ModelClipFileClass;
73
74 #define TYPE_TIME_CODE (time_code_get_type ())
75 typedef struct _TimeCode TimeCode;
76
77 #define MODEL_TYPE_TRACK (model_track_get_type ())
78 #define MODEL_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_TRACK, ModelTrack))
79 #define MODEL_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_TRACK, ModelTrackClass))
80 #define MODEL_IS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_TRACK))
81 #define MODEL_IS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_TRACK))
82 #define MODEL_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_TRACK, ModelTrackClass))
83
84 typedef struct _ModelTrack ModelTrack;
85 typedef struct _ModelTrackClass ModelTrackClass;
86
87 #define VIEW_TYPE_MEDIA_ENGINE (view_media_engine_get_type ())
88 #define VIEW_MEDIA_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_TYPE_MEDIA_ENGINE, ViewMediaEngine))
89 #define VIEW_MEDIA_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_TYPE_MEDIA_ENGINE, ViewMediaEngineClass))
90 #define VIEW_IS_MEDIA_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_TYPE_MEDIA_ENGINE))
91 #define VIEW_IS_MEDIA_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_TYPE_MEDIA_ENGINE))
92 #define VIEW_MEDIA_ENGINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_TYPE_MEDIA_ENGINE, ViewMediaEngineClass))
93
94 typedef struct _ViewMediaEngine ViewMediaEngine;
95 typedef struct _ViewMediaEngineClass ViewMediaEngineClass;
96
97 #define MODEL_TYPE_PROJECT_LOADER (model_project_loader_get_type ())
98 #define MODEL_PROJECT_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_PROJECT_LOADER, ModelProjectLoader))
99 #define MODEL_PROJECT_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_PROJECT_LOADER, ModelProjectLoaderClass))
100 #define MODEL_IS_PROJECT_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_PROJECT_LOADER))
101 #define MODEL_IS_PROJECT_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_PROJECT_LOADER))
102 #define MODEL_PROJECT_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_PROJECT_LOADER, ModelProjectLoaderClass))
103
104 typedef struct _ModelProjectLoader ModelProjectLoader;
105 typedef struct _ModelProjectLoaderClass ModelProjectLoaderClass;
106
107 #define MODEL_TYPE_UNDO_MANAGER (model_undo_manager_get_type ())
108 #define MODEL_UNDO_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_UNDO_MANAGER, ModelUndoManager))
109 #define MODEL_UNDO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_UNDO_MANAGER, ModelUndoManagerClass))
110 #define MODEL_IS_UNDO_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_UNDO_MANAGER))
111 #define MODEL_IS_UNDO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_UNDO_MANAGER))
112 #define MODEL_UNDO_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_UNDO_MANAGER, ModelUndoManagerClass))
113
114 typedef struct _ModelUndoManager ModelUndoManager;
115 typedef struct _ModelUndoManagerClass ModelUndoManagerClass;
116
117 #define MODEL_TYPE_LIBRARY_IMPORTER (model_library_importer_get_type ())
118 #define MODEL_LIBRARY_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_LIBRARY_IMPORTER, ModelLibraryImporter))
119 #define MODEL_LIBRARY_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_LIBRARY_IMPORTER, ModelLibraryImporterClass))
120 #define MODEL_IS_LIBRARY_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_LIBRARY_IMPORTER))
121 #define MODEL_IS_LIBRARY_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_LIBRARY_IMPORTER))
122 #define MODEL_LIBRARY_IMPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_LIBRARY_IMPORTER, ModelLibraryImporterClass))
123
124 typedef struct _ModelLibraryImporter ModelLibraryImporter;
125 typedef struct _ModelLibraryImporterClass ModelLibraryImporterClass;
126
127 #define LOGGING_TYPE_FACILITY (logging_facility_get_type ())
128
129 #define LOGGING_TYPE_LEVEL (logging_level_get_type ())
130 #define _g_free0(var) (var = (g_free (var), NULL))
131
132 struct _ViewStatusBar {
133         GtkDrawingArea parent_instance;
134         ViewStatusBarPrivate * priv;
135 };
136
137 struct _ViewStatusBarClass {
138         GtkDrawingAreaClass parent_class;
139 };
140
141 struct _ModelTimeSystemIface {
142         GTypeInterface parent_iface;
143         void (*calculate_pixel_step) (ModelTimeSystem* self, float inc, float pixel_min, float pixel_div);
144         gint64 (*xpos_to_time) (ModelTimeSystem* self, gint x);
145         gint64 (*xsize_to_time) (ModelTimeSystem* self, gint x);
146         gint (*time_to_xpos) (ModelTimeSystem* self, gint64 time);
147         gint64 (*get_pixel_snap_time) (ModelTimeSystem* self);
148         gint (*time_to_xsize) (ModelTimeSystem* self, gint64 time);
149         float (*get_pixel_percentage) (ModelTimeSystem* self);
150         gint (*get_start_token) (ModelTimeSystem* self, gint xsize);
151         gint (*get_next_position) (ModelTimeSystem* self, gint token);
152         gint (*get_pixel_height) (ModelTimeSystem* self, gint token);
153         char* (*get_display_string) (ModelTimeSystem* self, gint token);
154         gint (*frame_to_xsize) (ModelTimeSystem* self, gint frame);
155         gint (*xsize_to_frame) (ModelTimeSystem* self, gint xsize);
156         char* (*get_time_string) (ModelTimeSystem* self, gint64 time);
157         char* (*get_time_duration) (ModelTimeSystem* self, gint64 time);
158 };
159
160 struct _ViewStatusBarPrivate {
161         ModelTimeSystem* provider;
162         gint64 current_position;
163 };
164
165 struct _Fraction {
166         gint numerator;
167         gint denominator;
168 };
169
170 struct _ModelTempoInformationIface {
171         GTypeInterface parent_iface;
172         void (*get_time_signature) (ModelTempoInformation* self, Fraction* result);
173         gint (*get_bpm) (ModelTempoInformation* self);
174 };
175
176 struct _TimeCode {
177         gint hour;
178         gint minute;
179         gint second;
180         gint frame;
181         gboolean drop_code;
182 };
183
184 struct _ModelProject {
185         GObject parent_instance;
186         ModelProjectPrivate * priv;
187         GeeArrayList* tracks;
188         GeeArrayList* inactive_tracks;
189         GeeArrayList* clipfiles;
190         ViewMediaEngine* media_engine;
191         char* project_file;
192         ModelProjectLoader* loader;
193         ModelUndoManager* undo_manager;
194         ModelLibraryImporter* importer;
195         Fraction default_framerate;
196         gboolean click_during_play;
197         gboolean click_during_record;
198         double click_volume;
199         gboolean library_visible;
200         gint library_width;
201         gboolean snap_to_clip;
202 };
203
204 struct _ModelProjectClass {
205         GObjectClass parent_class;
206         void (*get_clip_time) (ModelProject* self, ModelClipFile* f, TimeCode* result);
207         char* (*get_project_file) (ModelProject* self);
208         void (*do_append) (ModelProject* self, ModelTrack* track, ModelClipFile* clipfile, const char* name, gint64 insert_time);
209         void (*add_track) (ModelProject* self, ModelTrack* track);
210         void (*insert_track) (ModelProject* self, gint index, ModelTrack* track);
211         void (*load) (ModelProject* self, const char* fname);
212         void (*save) (ModelProject* self, const char* filename);
213         char* (*get_app_name) (ModelProject* self);
214         void (*load_complete) (ModelProject* self);
215 };
216
217 typedef enum  {
218         LOGGING_FACILITY_SIGNAL_HANDLERS,
219         LOGGING_FACILITY_DEVELOPER_WARNINGS,
220         LOGGING_FACILITY_GRAPH,
221         LOGGING_FACILITY_LOADING,
222         LOGGING_FACILITY_IMPORT,
223         LOGGING_FACILITY_SINGLEDECODEBIN
224 } LoggingFacility;
225
226 typedef enum  {
227         LOGGING_LEVEL_CRITICAL,
228         LOGGING_LEVEL_HIGH,
229         LOGGING_LEVEL_MEDIUM,
230         LOGGING_LEVEL_LOW,
231         LOGGING_LEVEL_INFO,
232         LOGGING_LEVEL_VERBOSE
233 } LoggingLevel;
234
235
236 static gpointer view_status_bar_parent_class = NULL;
237
238 GType view_status_bar_get_type (void);
239 GType model_time_system_get_type (void);
240 #define VIEW_STATUS_BAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIEW_TYPE_STATUS_BAR, ViewStatusBarPrivate))
241 enum  {
242         VIEW_STATUS_BAR_DUMMY_PROPERTY
243 };
244 void parse_color (const char* color, GdkColor* result);
245 GType fraction_get_type (void);
246 Fraction* fraction_dup (const Fraction* self);
247 void fraction_free (Fraction* self);
248 GType model_tempo_information_get_type (void);
249 GType model_project_get_type (void);
250 GType model_clip_file_get_type (void);
251 GType time_code_get_type (void);
252 TimeCode* time_code_dup (const TimeCode* self);
253 void time_code_free (TimeCode* self);
254 GType model_track_get_type (void);
255 GType view_media_engine_get_type (void);
256 GType model_project_loader_get_type (void);
257 gpointer model_undo_manager_ref (gpointer instance);
258 void model_undo_manager_unref (gpointer instance);
259 GParamSpec* model_param_spec_undo_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
260 void model_value_set_undo_manager (GValue* value, gpointer v_object);
261 void model_value_take_undo_manager (GValue* value, gpointer v_object);
262 gpointer model_value_get_undo_manager (const GValue* value);
263 GType model_undo_manager_get_type (void);
264 GType model_library_importer_get_type (void);
265 void view_status_bar_on_position_changed (ViewStatusBar* self, gint64 new_position);
266 static void _view_status_bar_on_position_changed_view_media_engine_position_changed (ViewMediaEngine* _sender, gint64 position, gpointer self);
267 ViewStatusBar* view_status_bar_new (ModelProject* p, ModelTimeSystem* provider, gint height);
268 ViewStatusBar* view_status_bar_construct (GType object_type, ModelProject* p, ModelTimeSystem* provider, gint height);
269 GType logging_facility_get_type (void);
270 GType logging_level_get_type (void);
271 void logging_emit (GObject* object, LoggingFacility facility, LoggingLevel level, const char* message);
272 char* model_time_system_get_time_string (ModelTimeSystem* self, gint64 time);
273 static gboolean view_status_bar_real_expose_event (GtkWidget* base, GdkEventExpose* e);
274 static void view_status_bar_finalize (GObject* obj);
275
276
277
278 #line 23 "StatusBar.vala"
279 static void _view_status_bar_on_position_changed_view_media_engine_position_changed (ViewMediaEngine* _sender, gint64 position, gpointer self) {
280 #line 281 "StatusBar.c"
281         view_status_bar_on_position_changed (self, position);
282 }
283
284
285 static gpointer _g_object_ref0 (gpointer self) {
286         return self ? g_object_ref (self) : NULL;
287 }
288
289
290 #line 14 "StatusBar.vala"
291 ViewStatusBar* view_status_bar_construct (GType object_type, ModelProject* p, ModelTimeSystem* provider, gint height) {
292 #line 293 "StatusBar.c"
293         ViewStatusBar * self;
294         GdkColor _tmp1_;
295         GdkColor _tmp0_ = {0};
296         ModelTimeSystem* _tmp2_;
297 #line 14 "StatusBar.vala"
298         g_return_val_if_fail (MODEL_IS_PROJECT (p), NULL);
299 #line 14 "StatusBar.vala"
300         g_return_val_if_fail (MODEL_IS_TIME_SYSTEM (provider), NULL);
301 #line 302 "StatusBar.c"
302         self = g_object_newv (object_type, 0, NULL);
303 #line 15 "StatusBar.vala"
304         GTK_WIDGET_SET_FLAGS (GTK_WIDGET (self), GTK_NO_WINDOW);
305 #line 16 "StatusBar.vala"
306         gtk_widget_modify_bg (GTK_WIDGET (self), GTK_STATE_NORMAL, (_tmp1_ = (parse_color ("#666", &_tmp0_), _tmp0_), &_tmp1_));
307 #line 17 "StatusBar.vala"
308         gtk_widget_set_size_request (GTK_WIDGET (self), 0, height);
309 #line 19 "StatusBar.vala"
310         g_signal_connect_object (p->media_engine, "position-changed", (GCallback) _view_status_bar_on_position_changed_view_media_engine_position_changed, self, 0);
311 #line 20 "StatusBar.vala"
312         self->priv->provider = (_tmp2_ = _g_object_ref0 (provider), _g_object_unref0 (self->priv->provider), _tmp2_);
313 #line 314 "StatusBar.c"
314         return self;
315 }
316
317
318 #line 14 "StatusBar.vala"
319 ViewStatusBar* view_status_bar_new (ModelProject* p, ModelTimeSystem* provider, gint height) {
320 #line 14 "StatusBar.vala"
321         return view_status_bar_construct (VIEW_TYPE_STATUS_BAR, p, provider, height);
322 #line 323 "StatusBar.c"
323 }
324
325
326 #line 23 "StatusBar.vala"
327 void view_status_bar_on_position_changed (ViewStatusBar* self, gint64 new_position) {
328 #line 23 "StatusBar.vala"
329         g_return_if_fail (VIEW_IS_STATUS_BAR (self));
330 #line 24 "StatusBar.vala"
331         logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_position_changed");
332 #line 25 "StatusBar.vala"
333         self->priv->current_position = new_position;
334 #line 26 "StatusBar.vala"
335         gtk_widget_queue_draw (GTK_WIDGET (self));
336 #line 337 "StatusBar.c"
337 }
338
339
340 #line 29 "StatusBar.vala"
341 static gboolean view_status_bar_real_expose_event (GtkWidget* base, GdkEventExpose* e) {
342 #line 343 "StatusBar.c"
343         ViewStatusBar * self;
344         gboolean result = FALSE;
345         char* time;
346         PangoLayout* layout;
347         self = VIEW_STATUS_BAR (base);
348 #line 30 "StatusBar.vala"
349         gdk_draw_rectangle (GDK_DRAWABLE (GTK_WIDGET (self)->window), gtk_widget_get_style (GTK_WIDGET (self))->bg_gc[(gint) GTK_STATE_NORMAL], TRUE, GTK_WIDGET (self)->allocation.x, GTK_WIDGET (self)->allocation.y, GTK_WIDGET (self)->allocation.width, GTK_WIDGET (self)->allocation.height);
350 #line 33 "StatusBar.vala"
351         time = model_time_system_get_time_string (self->priv->provider, self->priv->current_position);
352 #line 35 "StatusBar.vala"
353         layout = gtk_widget_create_pango_layout (GTK_WIDGET (self), time);
354 #line 36 "StatusBar.vala"
355         gdk_draw_layout (GDK_DRAWABLE (GTK_WIDGET (self)->window), gtk_widget_get_style (GTK_WIDGET (self))->white_gc, GTK_WIDGET (self)->allocation.x + 4, GTK_WIDGET (self)->allocation.y + 2, layout);
356 #line 357 "StatusBar.c"
357         result = TRUE;
358         _g_free0 (time);
359         _g_object_unref0 (layout);
360 #line 38 "StatusBar.vala"
361         return result;
362 #line 363 "StatusBar.c"
363 }
364
365
366 static void view_status_bar_class_init (ViewStatusBarClass * klass) {
367         view_status_bar_parent_class = g_type_class_peek_parent (klass);
368         g_type_class_add_private (klass, sizeof (ViewStatusBarPrivate));
369         GTK_WIDGET_CLASS (klass)->expose_event = view_status_bar_real_expose_event;
370         G_OBJECT_CLASS (klass)->finalize = view_status_bar_finalize;
371 }
372
373
374 static void view_status_bar_instance_init (ViewStatusBar * self) {
375         self->priv = VIEW_STATUS_BAR_GET_PRIVATE (self);
376         self->priv->current_position = (gint64) 0;
377 }
378
379
380 static void view_status_bar_finalize (GObject* obj) {
381         ViewStatusBar * self;
382         self = VIEW_STATUS_BAR (obj);
383         _g_object_unref0 (self->priv->provider);
384         G_OBJECT_CLASS (view_status_bar_parent_class)->finalize (obj);
385 }
386
387
388 GType view_status_bar_get_type (void) {
389         static volatile gsize view_status_bar_type_id__volatile = 0;
390         if (g_once_init_enter (&view_status_bar_type_id__volatile)) {
391                 static const GTypeInfo g_define_type_info = { sizeof (ViewStatusBarClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_status_bar_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewStatusBar), 0, (GInstanceInitFunc) view_status_bar_instance_init, NULL };
392                 GType view_status_bar_type_id;
393                 view_status_bar_type_id = g_type_register_static (GTK_TYPE_DRAWING_AREA, "ViewStatusBar", &g_define_type_info, 0);
394                 g_once_init_leave (&view_status_bar_type_id__volatile, view_status_bar_type_id);
395         }
396         return view_status_bar_type_id__volatile;
397 }
398
399
400
401