~ubuntu-branches/ubuntu/precise/gwibber/precise-proposed

« back to all changes in this revision

Viewing changes to client/tab-bar-widgets.c

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2011-07-15 17:14:14 UTC
  • mto: This revision was merged to the branch mainline in revision 80.
  • Revision ID: james.westby@ubuntu.com-20110715171414-80ca971vzd56gtmh
Tags: upstream-3.1.2
ImportĀ upstreamĀ versionĀ 3.1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* tab-bar-widgets.c generated by valac 0.12.0, the Vala compiler
 
2
 * generated from tab-bar-widgets.vala, do not modify */
 
3
 
 
4
/*
 
5
 * Copyright (C) 2011 Canonical Ltd.
 
6
 *
 
7
 * This program is free software: you can redistribute it and/or modify it
 
8
 * under the terms of the GNU General Public License version 3, as published
 
9
 * by the Free Software Foundation.
 
10
 
 
11
 * This program is distributed in the hope that it will be useful, but
 
12
 * WITHOUT ANY WARRANTY; without even the implied warranties of
 
13
 * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
 
14
 * PURPOSE.  See the GNU General Public License for more details.
 
15
 
 
16
 * You should have received a copy of the GNU General Public License along
 
17
 * with this program.  If not, see <http://www.gnu.org/licenses/>.
 
18
 *
 
19
 * Authored by Neil Jagdish Patel <njpatel@gmail.com>
 
20
 */
 
21
 
 
22
#include <glib.h>
 
23
#include <glib-object.h>
 
24
#include <gtk/gtk.h>
 
25
#include <gdk/gdk.h>
 
26
#include <float.h>
 
27
#include <math.h>
 
28
#include <stdlib.h>
 
29
#include <string.h>
 
30
#include <cairo.h>
 
31
 
 
32
 
 
33
#define TAB_WIDGETS_TYPE_ENTRY (tab_widgets_entry_get_type ())
 
34
#define TAB_WIDGETS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAB_WIDGETS_TYPE_ENTRY, TabWidgetsEntry))
 
35
#define TAB_WIDGETS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAB_WIDGETS_TYPE_ENTRY, TabWidgetsEntryClass))
 
36
#define TAB_WIDGETS_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAB_WIDGETS_TYPE_ENTRY))
 
37
#define TAB_WIDGETS_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAB_WIDGETS_TYPE_ENTRY))
 
38
#define TAB_WIDGETS_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAB_WIDGETS_TYPE_ENTRY, TabWidgetsEntryClass))
 
39
 
 
40
typedef struct _TabWidgetsEntry TabWidgetsEntry;
 
41
typedef struct _TabWidgetsEntryClass TabWidgetsEntryClass;
 
42
typedef struct _TabWidgetsEntryPrivate TabWidgetsEntryPrivate;
 
43
 
 
44
#define TAB_WIDGETS_TYPE_TOGGLE_BUTTON (tab_widgets_toggle_button_get_type ())
 
45
#define TAB_WIDGETS_TOGGLE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAB_WIDGETS_TYPE_TOGGLE_BUTTON, TabWidgetsToggleButton))
 
46
#define TAB_WIDGETS_TOGGLE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAB_WIDGETS_TYPE_TOGGLE_BUTTON, TabWidgetsToggleButtonClass))
 
47
#define TAB_WIDGETS_IS_TOGGLE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAB_WIDGETS_TYPE_TOGGLE_BUTTON))
 
48
#define TAB_WIDGETS_IS_TOGGLE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAB_WIDGETS_TYPE_TOGGLE_BUTTON))
 
49
#define TAB_WIDGETS_TOGGLE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAB_WIDGETS_TYPE_TOGGLE_BUTTON, TabWidgetsToggleButtonClass))
 
50
 
 
51
typedef struct _TabWidgetsToggleButton TabWidgetsToggleButton;
 
52
typedef struct _TabWidgetsToggleButtonClass TabWidgetsToggleButtonClass;
 
53
typedef struct _TabWidgetsToggleButtonPrivate TabWidgetsToggleButtonPrivate;
 
54
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
 
55
#define _g_free0(var) (var = (g_free (var), NULL))
 
56
 
 
57
#define TAB_WIDGETS_TYPE_RADIO_BUTTON (tab_widgets_radio_button_get_type ())
 
58
#define TAB_WIDGETS_RADIO_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAB_WIDGETS_TYPE_RADIO_BUTTON, TabWidgetsRadioButton))
 
59
#define TAB_WIDGETS_RADIO_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAB_WIDGETS_TYPE_RADIO_BUTTON, TabWidgetsRadioButtonClass))
 
60
#define TAB_WIDGETS_IS_RADIO_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAB_WIDGETS_TYPE_RADIO_BUTTON))
 
61
#define TAB_WIDGETS_IS_RADIO_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAB_WIDGETS_TYPE_RADIO_BUTTON))
 
62
#define TAB_WIDGETS_RADIO_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAB_WIDGETS_TYPE_RADIO_BUTTON, TabWidgetsRadioButtonClass))
 
63
 
 
64
typedef struct _TabWidgetsRadioButton TabWidgetsRadioButton;
 
65
typedef struct _TabWidgetsRadioButtonClass TabWidgetsRadioButtonClass;
 
66
typedef struct _TabWidgetsRadioButtonPrivate TabWidgetsRadioButtonPrivate;
 
67
#define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))
 
68
 
 
69
struct _TabWidgetsEntry {
 
70
        GtkEntry parent_instance;
 
71
        TabWidgetsEntryPrivate * priv;
 
72
};
 
73
 
 
74
struct _TabWidgetsEntryClass {
 
75
        GtkEntryClass parent_class;
 
76
};
 
77
 
 
78
struct _TabWidgetsToggleButton {
 
79
        GtkButton parent_instance;
 
80
        TabWidgetsToggleButtonPrivate * priv;
 
81
};
 
82
 
 
83
struct _TabWidgetsToggleButtonClass {
 
84
        GtkButtonClass parent_class;
 
85
};
 
86
 
 
87
struct _TabWidgetsToggleButtonPrivate {
 
88
        GtkLabel* _label;
 
89
        gboolean _active;
 
90
        gchar* _text;
 
91
};
 
92
 
 
93
struct _TabWidgetsRadioButton {
 
94
        GtkRadioButton parent_instance;
 
95
        TabWidgetsRadioButtonPrivate * priv;
 
96
};
 
97
 
 
98
struct _TabWidgetsRadioButtonClass {
 
99
        GtkRadioButtonClass parent_class;
 
100
};
 
101
 
 
102
struct _TabWidgetsRadioButtonPrivate {
 
103
        GtkLabel* _label;
 
104
        gchar* _text;
 
105
};
 
106
 
 
107
 
 
108
static gpointer tab_widgets_entry_parent_class = NULL;
 
109
static gpointer tab_widgets_toggle_button_parent_class = NULL;
 
110
static gpointer tab_widgets_radio_button_parent_class = NULL;
 
111
 
 
112
GType tab_widgets_entry_get_type (void) G_GNUC_CONST;
 
113
enum  {
 
114
        TAB_WIDGETS_ENTRY_DUMMY_PROPERTY
 
115
};
 
116
TabWidgetsEntry* tab_widgets_entry_new (void);
 
117
TabWidgetsEntry* tab_widgets_entry_construct (GType object_type);
 
118
static GObject * tab_widgets_entry_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
 
119
GType tab_widgets_toggle_button_get_type (void) G_GNUC_CONST;
 
120
#define TAB_WIDGETS_TOGGLE_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TAB_WIDGETS_TYPE_TOGGLE_BUTTON, TabWidgetsToggleButtonPrivate))
 
121
enum  {
 
122
        TAB_WIDGETS_TOGGLE_BUTTON_DUMMY_PROPERTY,
 
123
        TAB_WIDGETS_TOGGLE_BUTTON_TEXT,
 
124
        TAB_WIDGETS_TOGGLE_BUTTON_ACTIVE
 
125
};
 
126
TabWidgetsToggleButton* tab_widgets_toggle_button_new (const gchar* text);
 
127
TabWidgetsToggleButton* tab_widgets_toggle_button_construct (GType object_type, const gchar* text);
 
128
static gboolean tab_widgets_toggle_button_real_draw (GtkWidget* base, cairo_t* cr);
 
129
const gchar* tab_widgets_toggle_button_get_text (TabWidgetsToggleButton* self);
 
130
void tab_widgets_toggle_button_set_text (TabWidgetsToggleButton* self, const gchar* value);
 
131
gboolean tab_widgets_toggle_button_get_active (TabWidgetsToggleButton* self);
 
132
void tab_widgets_toggle_button_set_active (TabWidgetsToggleButton* self, gboolean value);
 
133
static GObject * tab_widgets_toggle_button_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
 
134
static void _lambda21_ (TabWidgetsToggleButton* self);
 
135
static void __lambda21__gtk_button_clicked (GtkButton* _sender, gpointer self);
 
136
static void tab_widgets_toggle_button_finalize (GObject* obj);
 
137
static void _vala_tab_widgets_toggle_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
138
static void _vala_tab_widgets_toggle_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 
139
GType tab_widgets_radio_button_get_type (void) G_GNUC_CONST;
 
140
#define TAB_WIDGETS_RADIO_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TAB_WIDGETS_TYPE_RADIO_BUTTON, TabWidgetsRadioButtonPrivate))
 
141
enum  {
 
142
        TAB_WIDGETS_RADIO_BUTTON_DUMMY_PROPERTY,
 
143
        TAB_WIDGETS_RADIO_BUTTON_TEXT
 
144
};
 
145
TabWidgetsRadioButton* tab_widgets_radio_button_new (const gchar* text);
 
146
TabWidgetsRadioButton* tab_widgets_radio_button_construct (GType object_type, const gchar* text);
 
147
static gboolean tab_widgets_radio_button_real_draw (GtkWidget* base, cairo_t* cr);
 
148
const gchar* tab_widgets_radio_button_get_text (TabWidgetsRadioButton* self);
 
149
void tab_widgets_radio_button_set_text (TabWidgetsRadioButton* self, const gchar* value);
 
150
static GObject * tab_widgets_radio_button_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties);
 
151
static void tab_widgets_radio_button_finalize (GObject* obj);
 
152
static void _vala_tab_widgets_radio_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
 
153
static void _vala_tab_widgets_radio_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
 
154
 
 
155
 
 
156
TabWidgetsEntry* tab_widgets_entry_construct (GType object_type) {
 
157
        TabWidgetsEntry * self = NULL;
 
158
        self = (TabWidgetsEntry*) g_object_new (object_type, NULL);
 
159
        return self;
 
160
}
 
161
 
 
162
 
 
163
TabWidgetsEntry* tab_widgets_entry_new (void) {
 
164
        return tab_widgets_entry_construct (TAB_WIDGETS_TYPE_ENTRY);
 
165
}
 
166
 
 
167
 
 
168
static GObject * tab_widgets_entry_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
 
169
        GObject * obj;
 
170
        GObjectClass * parent_class;
 
171
        TabWidgetsEntry * self;
 
172
        GdkRGBA color = {0};
 
173
        GtkStyleContext* _tmp0_ = NULL;
 
174
        GdkRGBA _tmp1_ = {0};
 
175
        parent_class = G_OBJECT_CLASS (tab_widgets_entry_parent_class);
 
176
        obj = parent_class->constructor (type, n_construct_properties, construct_properties);
 
177
        self = TAB_WIDGETS_ENTRY (obj);
 
178
        gtk_entry_set_has_frame ((GtkEntry*) self, FALSE);
 
179
        gtk_widget_set_size_request ((GtkWidget*) self, -1, 24);
 
180
        _tmp0_ = gtk_widget_get_style_context ((GtkWidget*) self);
 
181
        gtk_style_context_get_background_color (_tmp0_, GTK_STATE_FLAG_NORMAL, &_tmp1_);
 
182
        color = _tmp1_;
 
183
        color.red = (gdouble) 1.0f;
 
184
        color.green = (gdouble) 0.0f;
 
185
        color.blue = (gdouble) 0.0f;
 
186
        color.alpha = (gdouble) 0.0f;
 
187
        gtk_widget_override_background_color ((GtkWidget*) self, GTK_STATE_FLAG_NORMAL, &color);
 
188
        g_object_set ((GObject*) self, "placeholder-text", "Search...", NULL);
 
189
        return obj;
 
190
}
 
191
 
 
192
 
 
193
static void tab_widgets_entry_class_init (TabWidgetsEntryClass * klass) {
 
194
        tab_widgets_entry_parent_class = g_type_class_peek_parent (klass);
 
195
        G_OBJECT_CLASS (klass)->constructor = tab_widgets_entry_constructor;
 
196
}
 
197
 
 
198
 
 
199
static void tab_widgets_entry_instance_init (TabWidgetsEntry * self) {
 
200
}
 
201
 
 
202
 
 
203
GType tab_widgets_entry_get_type (void) {
 
204
        static volatile gsize tab_widgets_entry_type_id__volatile = 0;
 
205
        if (g_once_init_enter (&tab_widgets_entry_type_id__volatile)) {
 
206
                static const GTypeInfo g_define_type_info = { sizeof (TabWidgetsEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tab_widgets_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TabWidgetsEntry), 0, (GInstanceInitFunc) tab_widgets_entry_instance_init, NULL };
 
207
                GType tab_widgets_entry_type_id;
 
208
                tab_widgets_entry_type_id = g_type_register_static (GTK_TYPE_ENTRY, "TabWidgetsEntry", &g_define_type_info, 0);
 
209
                g_once_init_leave (&tab_widgets_entry_type_id__volatile, tab_widgets_entry_type_id);
 
210
        }
 
211
        return tab_widgets_entry_type_id__volatile;
 
212
}
 
213
 
 
214
 
 
215
TabWidgetsToggleButton* tab_widgets_toggle_button_construct (GType object_type, const gchar* text) {
 
216
        TabWidgetsToggleButton * self = NULL;
 
217
        g_return_val_if_fail (text != NULL, NULL);
 
218
        self = (TabWidgetsToggleButton*) g_object_new (object_type, "text", text, NULL);
 
219
        return self;
 
220
}
 
221
 
 
222
 
 
223
TabWidgetsToggleButton* tab_widgets_toggle_button_new (const gchar* text) {
 
224
        return tab_widgets_toggle_button_construct (TAB_WIDGETS_TYPE_TOGGLE_BUTTON, text);
 
225
}
 
226
 
 
227
 
 
228
static gboolean tab_widgets_toggle_button_real_draw (GtkWidget* base, cairo_t* cr) {
 
229
        TabWidgetsToggleButton * self;
 
230
        gboolean result = FALSE;
 
231
        self = (TabWidgetsToggleButton*) base;
 
232
        g_return_val_if_fail (cr != NULL, FALSE);
 
233
        if (self->priv->_active) {
 
234
                cairo_set_line_width (cr, 1.0);
 
235
                cairo_rectangle (cr, (gdouble) 1, (gdouble) 1, (gdouble) 5, (gdouble) 5);
 
236
                cairo_fill (cr);
 
237
        }
 
238
        gtk_container_propagate_draw ((GtkContainer*) self, (GtkWidget*) self->priv->_label, cr);
 
239
        result = FALSE;
 
240
        return result;
 
241
}
 
242
 
 
243
 
 
244
const gchar* tab_widgets_toggle_button_get_text (TabWidgetsToggleButton* self) {
 
245
        const gchar* result;
 
246
        g_return_val_if_fail (self != NULL, NULL);
 
247
        result = self->priv->_text;
 
248
        return result;
 
249
}
 
250
 
 
251
 
 
252
void tab_widgets_toggle_button_set_text (TabWidgetsToggleButton* self, const gchar* value) {
 
253
        gchar* _tmp0_;
 
254
        g_return_if_fail (self != NULL);
 
255
        _tmp0_ = g_strdup (value);
 
256
        _g_free0 (self->priv->_text);
 
257
        self->priv->_text = _tmp0_;
 
258
        g_object_notify ((GObject *) self, "text");
 
259
}
 
260
 
 
261
 
 
262
gboolean tab_widgets_toggle_button_get_active (TabWidgetsToggleButton* self) {
 
263
        gboolean result;
 
264
        g_return_val_if_fail (self != NULL, FALSE);
 
265
        result = self->priv->_active;
 
266
        return result;
 
267
}
 
268
 
 
269
 
 
270
void tab_widgets_toggle_button_set_active (TabWidgetsToggleButton* self, gboolean value) {
 
271
        gboolean _tmp0_;
 
272
        g_return_if_fail (self != NULL);
 
273
        self->priv->_active = value;
 
274
        _tmp0_ = tab_widgets_toggle_button_get_active (self);
 
275
        g_signal_emit_by_name (self, "toggled", _tmp0_);
 
276
        gtk_widget_queue_draw ((GtkWidget*) self);
 
277
        g_object_notify ((GObject *) self, "active");
 
278
}
 
279
 
 
280
 
 
281
static void _lambda21_ (TabWidgetsToggleButton* self) {
 
282
        self->priv->_active = !self->priv->_active;
 
283
        g_signal_emit_by_name (self, "toggled", self->priv->_active);
 
284
        gtk_widget_queue_draw ((GtkWidget*) self);
 
285
}
 
286
 
 
287
 
 
288
static void __lambda21__gtk_button_clicked (GtkButton* _sender, gpointer self) {
 
289
        _lambda21_ (self);
 
290
}
 
291
 
 
292
 
 
293
static GObject * tab_widgets_toggle_button_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
 
294
        GObject * obj;
 
295
        GObjectClass * parent_class;
 
296
        TabWidgetsToggleButton * self;
 
297
        GtkLabel* _tmp0_ = NULL;
 
298
        parent_class = G_OBJECT_CLASS (tab_widgets_toggle_button_parent_class);
 
299
        obj = parent_class->constructor (type, n_construct_properties, construct_properties);
 
300
        self = TAB_WIDGETS_TOGGLE_BUTTON (obj);
 
301
        _tmp0_ = (GtkLabel*) gtk_label_new (self->priv->_text);
 
302
        _g_object_unref0 (self->priv->_label);
 
303
        self->priv->_label = g_object_ref_sink (_tmp0_);
 
304
        gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->_label);
 
305
        g_signal_connect_object ((GtkButton*) self, "clicked", (GCallback) __lambda21__gtk_button_clicked, self, 0);
 
306
        return obj;
 
307
}
 
308
 
 
309
 
 
310
static void tab_widgets_toggle_button_class_init (TabWidgetsToggleButtonClass * klass) {
 
311
        tab_widgets_toggle_button_parent_class = g_type_class_peek_parent (klass);
 
312
        g_type_class_add_private (klass, sizeof (TabWidgetsToggleButtonPrivate));
 
313
        GTK_WIDGET_CLASS (klass)->draw = tab_widgets_toggle_button_real_draw;
 
314
        G_OBJECT_CLASS (klass)->get_property = _vala_tab_widgets_toggle_button_get_property;
 
315
        G_OBJECT_CLASS (klass)->set_property = _vala_tab_widgets_toggle_button_set_property;
 
316
        G_OBJECT_CLASS (klass)->constructor = tab_widgets_toggle_button_constructor;
 
317
        G_OBJECT_CLASS (klass)->finalize = tab_widgets_toggle_button_finalize;
 
318
        g_object_class_install_property (G_OBJECT_CLASS (klass), TAB_WIDGETS_TOGGLE_BUTTON_TEXT, g_param_spec_string ("text", "text", "text", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
 
319
        g_object_class_install_property (G_OBJECT_CLASS (klass), TAB_WIDGETS_TOGGLE_BUTTON_ACTIVE, g_param_spec_boolean ("active", "active", "active", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
 
320
        g_signal_new ("toggled", TAB_WIDGETS_TYPE_TOGGLE_BUTTON, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
 
321
}
 
322
 
 
323
 
 
324
static void tab_widgets_toggle_button_instance_init (TabWidgetsToggleButton * self) {
 
325
        self->priv = TAB_WIDGETS_TOGGLE_BUTTON_GET_PRIVATE (self);
 
326
}
 
327
 
 
328
 
 
329
static void tab_widgets_toggle_button_finalize (GObject* obj) {
 
330
        TabWidgetsToggleButton * self;
 
331
        self = TAB_WIDGETS_TOGGLE_BUTTON (obj);
 
332
        _g_object_unref0 (self->priv->_label);
 
333
        _g_free0 (self->priv->_text);
 
334
        G_OBJECT_CLASS (tab_widgets_toggle_button_parent_class)->finalize (obj);
 
335
}
 
336
 
 
337
 
 
338
GType tab_widgets_toggle_button_get_type (void) {
 
339
        static volatile gsize tab_widgets_toggle_button_type_id__volatile = 0;
 
340
        if (g_once_init_enter (&tab_widgets_toggle_button_type_id__volatile)) {
 
341
                static const GTypeInfo g_define_type_info = { sizeof (TabWidgetsToggleButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tab_widgets_toggle_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TabWidgetsToggleButton), 0, (GInstanceInitFunc) tab_widgets_toggle_button_instance_init, NULL };
 
342
                GType tab_widgets_toggle_button_type_id;
 
343
                tab_widgets_toggle_button_type_id = g_type_register_static (GTK_TYPE_BUTTON, "TabWidgetsToggleButton", &g_define_type_info, 0);
 
344
                g_once_init_leave (&tab_widgets_toggle_button_type_id__volatile, tab_widgets_toggle_button_type_id);
 
345
        }
 
346
        return tab_widgets_toggle_button_type_id__volatile;
 
347
}
 
348
 
 
349
 
 
350
static void _vala_tab_widgets_toggle_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 
351
        TabWidgetsToggleButton * self;
 
352
        self = TAB_WIDGETS_TOGGLE_BUTTON (object);
 
353
        switch (property_id) {
 
354
                case TAB_WIDGETS_TOGGLE_BUTTON_TEXT:
 
355
                g_value_set_string (value, tab_widgets_toggle_button_get_text (self));
 
356
                break;
 
357
                case TAB_WIDGETS_TOGGLE_BUTTON_ACTIVE:
 
358
                g_value_set_boolean (value, tab_widgets_toggle_button_get_active (self));
 
359
                break;
 
360
                default:
 
361
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
362
                break;
 
363
        }
 
364
}
 
365
 
 
366
 
 
367
static void _vala_tab_widgets_toggle_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 
368
        TabWidgetsToggleButton * self;
 
369
        self = TAB_WIDGETS_TOGGLE_BUTTON (object);
 
370
        switch (property_id) {
 
371
                case TAB_WIDGETS_TOGGLE_BUTTON_TEXT:
 
372
                tab_widgets_toggle_button_set_text (self, g_value_get_string (value));
 
373
                break;
 
374
                case TAB_WIDGETS_TOGGLE_BUTTON_ACTIVE:
 
375
                tab_widgets_toggle_button_set_active (self, g_value_get_boolean (value));
 
376
                break;
 
377
                default:
 
378
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
379
                break;
 
380
        }
 
381
}
 
382
 
 
383
 
 
384
TabWidgetsRadioButton* tab_widgets_radio_button_construct (GType object_type, const gchar* text) {
 
385
        TabWidgetsRadioButton * self = NULL;
 
386
        g_return_val_if_fail (text != NULL, NULL);
 
387
        self = (TabWidgetsRadioButton*) g_object_new (object_type, "text", text, NULL);
 
388
        return self;
 
389
}
 
390
 
 
391
 
 
392
TabWidgetsRadioButton* tab_widgets_radio_button_new (const gchar* text) {
 
393
        return tab_widgets_radio_button_construct (TAB_WIDGETS_TYPE_RADIO_BUTTON, text);
 
394
}
 
395
 
 
396
 
 
397
static gboolean tab_widgets_radio_button_real_draw (GtkWidget* base, cairo_t* cr) {
 
398
        TabWidgetsRadioButton * self;
 
399
        gboolean result = FALSE;
 
400
        gboolean _tmp0_;
 
401
        self = (TabWidgetsRadioButton*) base;
 
402
        g_return_val_if_fail (cr != NULL, FALSE);
 
403
        _tmp0_ = gtk_toggle_button_get_active ((GtkToggleButton*) self);
 
404
        if (_tmp0_) {
 
405
                GtkAllocation a = {0};
 
406
                GtkAllocation _tmp1_ = {0};
 
407
                GdkRGBA c = {0};
 
408
                GtkStyleContext* _tmp2_ = NULL;
 
409
                GdkRGBA _tmp3_ = {0};
 
410
                cairo_pattern_t* _tmp4_ = NULL;
 
411
                cairo_pattern_t* pat;
 
412
                cairo_translate (cr, (gdouble) (-1), (gdouble) (-1));
 
413
                gtk_widget_get_allocation ((GtkWidget*) self, &_tmp1_);
 
414
                a = _tmp1_;
 
415
                _tmp2_ = gtk_widget_get_style_context ((GtkWidget*) self);
 
416
                gtk_style_context_get_color (_tmp2_, GTK_STATE_FLAG_NORMAL, &_tmp3_);
 
417
                c = _tmp3_;
 
418
                _tmp4_ = cairo_pattern_create_linear ((gdouble) 0, (gdouble) (a.height - 1), (gdouble) a.width, (gdouble) (a.height - 1));
 
419
                pat = _tmp4_;
 
420
                cairo_pattern_add_color_stop_rgba (pat, (gdouble) 0.0f, c.red, c.green, c.blue, (gdouble) 0.0f);
 
421
                cairo_pattern_add_color_stop_rgba (pat, (gdouble) 0.5f, c.red, c.green, c.blue, (gdouble) 0.5f);
 
422
                cairo_pattern_add_color_stop_rgba (pat, (gdouble) 1.0f, c.red, c.green, c.blue, (gdouble) 0.0f);
 
423
                cairo_set_source (cr, pat);
 
424
                cairo_rectangle (cr, (gdouble) 0, (gdouble) (a.height - 1), (gdouble) a.width, (gdouble) 1);
 
425
                cairo_fill (cr);
 
426
                _cairo_pattern_destroy0 (pat);
 
427
        }
 
428
        gtk_container_propagate_draw ((GtkContainer*) self, (GtkWidget*) self->priv->_label, cr);
 
429
        result = FALSE;
 
430
        return result;
 
431
}
 
432
 
 
433
 
 
434
const gchar* tab_widgets_radio_button_get_text (TabWidgetsRadioButton* self) {
 
435
        const gchar* result;
 
436
        g_return_val_if_fail (self != NULL, NULL);
 
437
        result = self->priv->_text;
 
438
        return result;
 
439
}
 
440
 
 
441
 
 
442
void tab_widgets_radio_button_set_text (TabWidgetsRadioButton* self, const gchar* value) {
 
443
        gchar* _tmp0_;
 
444
        g_return_if_fail (self != NULL);
 
445
        _tmp0_ = g_strdup (value);
 
446
        _g_free0 (self->priv->_text);
 
447
        self->priv->_text = _tmp0_;
 
448
        g_object_notify ((GObject *) self, "text");
 
449
}
 
450
 
 
451
 
 
452
static GObject * tab_widgets_radio_button_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) {
 
453
        GObject * obj;
 
454
        GObjectClass * parent_class;
 
455
        TabWidgetsRadioButton * self;
 
456
        GtkLabel* _tmp0_ = NULL;
 
457
        parent_class = G_OBJECT_CLASS (tab_widgets_radio_button_parent_class);
 
458
        obj = parent_class->constructor (type, n_construct_properties, construct_properties);
 
459
        self = TAB_WIDGETS_RADIO_BUTTON (obj);
 
460
        _tmp0_ = (GtkLabel*) gtk_label_new (self->priv->_text);
 
461
        _g_object_unref0 (self->priv->_label);
 
462
        self->priv->_label = g_object_ref_sink (_tmp0_);
 
463
        gtk_misc_set_alignment ((GtkMisc*) self->priv->_label, 0.5f, 0.5f);
 
464
        gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->_label);
 
465
        g_object_set ((GObject*) self, "draw-indicator", FALSE, NULL);
 
466
        return obj;
 
467
}
 
468
 
 
469
 
 
470
static void tab_widgets_radio_button_class_init (TabWidgetsRadioButtonClass * klass) {
 
471
        tab_widgets_radio_button_parent_class = g_type_class_peek_parent (klass);
 
472
        g_type_class_add_private (klass, sizeof (TabWidgetsRadioButtonPrivate));
 
473
        GTK_WIDGET_CLASS (klass)->draw = tab_widgets_radio_button_real_draw;
 
474
        G_OBJECT_CLASS (klass)->get_property = _vala_tab_widgets_radio_button_get_property;
 
475
        G_OBJECT_CLASS (klass)->set_property = _vala_tab_widgets_radio_button_set_property;
 
476
        G_OBJECT_CLASS (klass)->constructor = tab_widgets_radio_button_constructor;
 
477
        G_OBJECT_CLASS (klass)->finalize = tab_widgets_radio_button_finalize;
 
478
        g_object_class_install_property (G_OBJECT_CLASS (klass), TAB_WIDGETS_RADIO_BUTTON_TEXT, g_param_spec_string ("text", "text", "text", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
 
479
}
 
480
 
 
481
 
 
482
static void tab_widgets_radio_button_instance_init (TabWidgetsRadioButton * self) {
 
483
        self->priv = TAB_WIDGETS_RADIO_BUTTON_GET_PRIVATE (self);
 
484
}
 
485
 
 
486
 
 
487
static void tab_widgets_radio_button_finalize (GObject* obj) {
 
488
        TabWidgetsRadioButton * self;
 
489
        self = TAB_WIDGETS_RADIO_BUTTON (obj);
 
490
        _g_object_unref0 (self->priv->_label);
 
491
        _g_free0 (self->priv->_text);
 
492
        G_OBJECT_CLASS (tab_widgets_radio_button_parent_class)->finalize (obj);
 
493
}
 
494
 
 
495
 
 
496
GType tab_widgets_radio_button_get_type (void) {
 
497
        static volatile gsize tab_widgets_radio_button_type_id__volatile = 0;
 
498
        if (g_once_init_enter (&tab_widgets_radio_button_type_id__volatile)) {
 
499
                static const GTypeInfo g_define_type_info = { sizeof (TabWidgetsRadioButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tab_widgets_radio_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TabWidgetsRadioButton), 0, (GInstanceInitFunc) tab_widgets_radio_button_instance_init, NULL };
 
500
                GType tab_widgets_radio_button_type_id;
 
501
                tab_widgets_radio_button_type_id = g_type_register_static (GTK_TYPE_RADIO_BUTTON, "TabWidgetsRadioButton", &g_define_type_info, 0);
 
502
                g_once_init_leave (&tab_widgets_radio_button_type_id__volatile, tab_widgets_radio_button_type_id);
 
503
        }
 
504
        return tab_widgets_radio_button_type_id__volatile;
 
505
}
 
506
 
 
507
 
 
508
static void _vala_tab_widgets_radio_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
 
509
        TabWidgetsRadioButton * self;
 
510
        self = TAB_WIDGETS_RADIO_BUTTON (object);
 
511
        switch (property_id) {
 
512
                case TAB_WIDGETS_RADIO_BUTTON_TEXT:
 
513
                g_value_set_string (value, tab_widgets_radio_button_get_text (self));
 
514
                break;
 
515
                default:
 
516
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
517
                break;
 
518
        }
 
519
}
 
520
 
 
521
 
 
522
static void _vala_tab_widgets_radio_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
 
523
        TabWidgetsRadioButton * self;
 
524
        self = TAB_WIDGETS_RADIO_BUTTON (object);
 
525
        switch (property_id) {
 
526
                case TAB_WIDGETS_RADIO_BUTTON_TEXT:
 
527
                tab_widgets_radio_button_set_text (self, g_value_get_string (value));
 
528
                break;
 
529
                default:
 
530
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 
531
                break;
 
532
        }
 
533
}
 
534
 
 
535
 
 
536