~ubuntu-branches/ubuntu/oneiric/indicator-network/oneiric

« back to all changes in this revision

Viewing changes to src/settings/frontend/widgets/toggleswitch.c

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2011-02-17 09:52:27 UTC
  • mfrom: (1.1.14 upstream)
  • Revision ID: james.westby@ubuntu.com-20110217095227-51g86k2i6wrtjehc
Tags: 0.3.4-0ubuntu1
* New upstream release
  - Updated to support connman 0.69
* debian/control
  - Depend on connman >= 0.69
  - Added build depends for libreadline-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* toggleswitch.c generated by valac 0.10.0, the Vala compiler
 
1
/* toggleswitch.c generated by valac 0.11.5, the Vala compiler
2
2
 * generated from toggleswitch.vala, do not modify */
3
3
 
4
4
/*
59
59
};
60
60
 
61
61
struct _ToggleSwitchPrivate {
62
 
        double LINE_HEIGHT_RATIO;
63
 
        double LINE_SPACING_RATIO;
64
 
        double CORNER_RADIUS;
65
 
        double TEXT_XPAD;
66
 
        double TEXT_YPAD;
67
 
        char** values;
 
62
        gdouble LINE_HEIGHT_RATIO;
 
63
        gdouble LINE_SPACING_RATIO;
 
64
        gdouble CORNER_RADIUS;
 
65
        gdouble TEXT_XPAD;
 
66
        gdouble TEXT_YPAD;
 
67
        gchar** values;
68
68
        gint values_length1;
69
69
        gint _values_size_;
70
70
        PangoLayout* layout;
103
103
static void toggle_switch_draw_background (ToggleSwitch* self, cairo_t* cr);
104
104
static void toggle_switch_draw_text (ToggleSwitch* self);
105
105
static void toggle_switch_draw_slider (ToggleSwitch* self, cairo_t* cr);
106
 
static void toggle_switch_draw_flat_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, double x, double y, double w, double h, GdkColor* stroke, GdkColor* fill);
107
 
static void toggle_switch_draw_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, double x, double y, double w, double h, GdkColor* stroke, GdkColor* fill1, GdkColor* fill2);
 
106
static void toggle_switch_draw_flat_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, gdouble x, gdouble y, gdouble w, gdouble h, GdkColor* stroke, GdkColor* fill);
 
107
static void toggle_switch_draw_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, gdouble x, gdouble y, gdouble w, gdouble h, GdkColor* stroke, GdkColor* fill1, GdkColor* fill2);
108
108
static void toggle_switch_draw_vertical_lines (ToggleSwitch* self, cairo_t* cr, gint x, gint y, gint width, gint height);
109
 
static void toggle_switch_draw_centered_text (ToggleSwitch* self, const char* text, const char* gravity);
 
109
static void toggle_switch_draw_centered_text (ToggleSwitch* self, const gchar* text, const gchar* gravity);
110
110
#define PI 3.1415926535897931
111
111
#define PI_OVER_180 0.017453292519943295
112
112
gboolean toggle_switch_get_active (ToggleSwitch* self);
114
114
static void toggle_switch_finalize (GObject* obj);
115
115
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
116
116
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
117
 
static int _vala_strcmp0 (const char * str1, const char * str2);
118
 
 
119
117
 
120
118
 
121
119
static void _toggle_switch_on_style_set_gtk_widget_style_set (GtkWidget* _sender, GtkStyle* previous_style, gpointer self) {
173
171
 
174
172
 
175
173
ToggleSwitch* toggle_switch_construct (GType object_type) {
176
 
        ToggleSwitch * self;
 
174
        ToggleSwitch * self = NULL;
177
175
        gint calc_width = 0;
178
176
        gint calc_height = 0;
179
 
        self = g_object_newv (object_type, 0, NULL);
 
177
        gint _tmp0_;
 
178
        gint _tmp1_;
 
179
        self = (ToggleSwitch*) g_object_new (object_type, NULL);
180
180
        gtk_event_box_set_visible_window ((GtkEventBox*) self, FALSE);
181
181
        gtk_widget_set_app_paintable ((GtkWidget*) self, TRUE);
182
182
        gtk_widget_set_double_buffered ((GtkWidget*) self, FALSE);
190
190
        g_signal_connect_object ((GtkWidget*) self, "enter-notify-event", (GCallback) _toggle_switch_on_enter_gtk_widget_enter_notify_event, self, 0);
191
191
        g_signal_connect_object ((GtkWidget*) self, "leave-notify-event", (GCallback) _toggle_switch_on_leave_gtk_widget_leave_notify_event, self, 0);
192
192
        g_signal_connect_object ((GtkWidget*) self, "motion-notify-event", (GCallback) _toggle_switch_on_motion_notify_event_gtk_widget_motion_notify_event, self, 0);
193
 
        toggle_switch_calculate_size (self, &calc_width, &calc_height);
 
193
        toggle_switch_calculate_size (self, &_tmp0_, &_tmp1_);
 
194
        calc_width = _tmp0_;
 
195
        calc_height = _tmp1_;
194
196
        gtk_widget_set_size_request ((GtkWidget*) self, calc_width, calc_height);
195
197
        toggle_switch_update_atk (self);
196
198
        return self;
203
205
 
204
206
 
205
207
static void toggle_switch_calculate_size (ToggleSwitch* self, gint* width, gint* height) {
206
 
        PangoLayout* _tmp0_;
 
208
        gint _width = 0;
 
209
        gint _height = 0;
 
210
        PangoLayout* _tmp0_ = NULL;
 
211
        PangoLayout* _tmp1_;
207
212
        PangoRectangle extents = {0};
 
213
        PangoRectangle _tmp2_ = {0};
208
214
        gint text_width;
209
215
        gint text_height;
210
216
        g_return_if_fail (self != NULL);
211
 
        self->priv->layout = (_tmp0_ = gtk_widget_create_pango_layout ((GtkWidget*) self, NULL), _g_object_unref0 (self->priv->layout), _tmp0_);
 
217
        _tmp0_ = gtk_widget_create_pango_layout ((GtkWidget*) self, NULL);
 
218
        _tmp1_ = _tmp0_;
 
219
        _g_object_unref0 (self->priv->layout);
 
220
        self->priv->layout = _tmp1_;
212
221
        pango_layout_set_text (self->priv->layout, self->priv->values[0], -1);
213
 
        pango_layout_get_pixel_extents (self->priv->layout, NULL, &extents);
 
222
        pango_layout_get_pixel_extents (self->priv->layout, NULL, &_tmp2_);
 
223
        extents = _tmp2_;
214
224
        text_width = extents.width;
215
225
        text_height = extents.height;
216
 
        *width = (gint) ((text_width + ((text_width * self->priv->TEXT_XPAD) * 2)) * 2);
217
 
        *height = (gint) (text_height + ((text_height * self->priv->TEXT_YPAD) * 2));
 
226
        _width = (gint) ((text_width + ((text_width * self->priv->TEXT_XPAD) * 2)) * 2);
 
227
        _height = (gint) (text_height + ((text_height * self->priv->TEXT_YPAD) * 2));
 
228
        if (width) {
 
229
                *width = _width;
 
230
        }
 
231
        if (height) {
 
232
                *height = _height;
 
233
        }
218
234
}
219
235
 
220
236
 
221
237
static void toggle_switch_draw_widget (ToggleSwitch* self) {
 
238
        cairo_t* _tmp0_ = NULL;
222
239
        cairo_t* cr;
223
240
        g_return_if_fail (self != NULL);
224
 
        cr = gdk_cairo_create ((GdkDrawable*) ((GtkWidget*) self)->window);
 
241
        _tmp0_ = gdk_cairo_create ((GdkDrawable*) ((GtkWidget*) self)->window);
 
242
        cr = _tmp0_;
225
243
        toggle_switch_draw_background (self, cr);
226
244
        toggle_switch_draw_text (self);
227
245
        toggle_switch_draw_slider (self, cr);
235
253
        gint width;
236
254
        gint height;
237
255
        guchar state;
 
256
        GtkStyle* _tmp0_ = NULL;
238
257
        GdkColor bg_fill;
 
258
        GtkStyle* _tmp1_ = NULL;
239
259
        GdkColor bg_stroke;
 
260
        GtkStyle* _tmp2_ = NULL;
240
261
        GdkColor left_fill;
 
262
        GtkStyle* _tmp3_ = NULL;
241
263
        GdkColor left_stroke;
 
264
        GtkStyle* _tmp4_ = NULL;
242
265
        GdkColor right_fill;
 
266
        GtkStyle* _tmp5_ = NULL;
243
267
        GdkColor right_stroke;
244
268
        g_return_if_fail (self != NULL);
245
269
        g_return_if_fail (cr != NULL);
251
275
        if ((((GtkWidget*) self)->state == GTK_STATE_PRELIGHT) | (((GtkWidget*) self)->state == GTK_STATE_ACTIVE)) {
252
276
                state = (guchar) GTK_STATE_NORMAL;
253
277
        }
254
 
        bg_fill = gtk_widget_get_style ((GtkWidget*) self)->base[state];
255
 
        bg_stroke = gtk_widget_get_style ((GtkWidget*) self)->dark[state];
256
 
        left_fill = gtk_widget_get_style ((GtkWidget*) self)->light[GTK_STATE_SELECTED];
257
 
        left_stroke = gtk_widget_get_style ((GtkWidget*) self)->mid[GTK_STATE_SELECTED];
258
 
        right_fill = gtk_widget_get_style ((GtkWidget*) self)->base[state];
259
 
        right_stroke = gtk_widget_get_style ((GtkWidget*) self)->dark[state];
260
 
        toggle_switch_draw_flat_rounded_rectangle (self, cr, (double) x, (double) y, (double) width, (double) height, &bg_stroke, &bg_fill);
261
 
        toggle_switch_draw_flat_rounded_rectangle (self, cr, (double) x, (double) y, (double) (width / 2), (double) height, &left_stroke, &left_fill);
262
 
        toggle_switch_draw_flat_rounded_rectangle (self, cr, (double) (x + (width / 2)), (double) y, (double) (width / 2), (double) height, &right_stroke, &right_fill);
 
278
        _tmp0_ = gtk_widget_get_style ((GtkWidget*) self);
 
279
        bg_fill = _tmp0_->base[state];
 
280
        _tmp1_ = gtk_widget_get_style ((GtkWidget*) self);
 
281
        bg_stroke = _tmp1_->dark[state];
 
282
        _tmp2_ = gtk_widget_get_style ((GtkWidget*) self);
 
283
        left_fill = _tmp2_->light[GTK_STATE_SELECTED];
 
284
        _tmp3_ = gtk_widget_get_style ((GtkWidget*) self);
 
285
        left_stroke = _tmp3_->mid[GTK_STATE_SELECTED];
 
286
        _tmp4_ = gtk_widget_get_style ((GtkWidget*) self);
 
287
        right_fill = _tmp4_->base[state];
 
288
        _tmp5_ = gtk_widget_get_style ((GtkWidget*) self);
 
289
        right_stroke = _tmp5_->dark[state];
 
290
        toggle_switch_draw_flat_rounded_rectangle (self, cr, (gdouble) x, (gdouble) y, (gdouble) width, (gdouble) height, &bg_stroke, &bg_fill);
 
291
        toggle_switch_draw_flat_rounded_rectangle (self, cr, (gdouble) x, (gdouble) y, (gdouble) (width / 2), (gdouble) height, &left_stroke, &left_fill);
 
292
        toggle_switch_draw_flat_rounded_rectangle (self, cr, (gdouble) (x + (width / 2)), (gdouble) y, (gdouble) (width / 2), (gdouble) height, &right_stroke, &right_fill);
263
293
}
264
294
 
265
295
 
269
299
        gint width;
270
300
        gint height;
271
301
        gint x_offset;
 
302
        GtkStyle* _tmp0_ = NULL;
272
303
        GdkColor stroke;
273
304
        GdkColor fill1_rectangle = {0};
274
305
        GdkColor fill2_rectangle = {0};
282
313
        if (self->active) {
283
314
                x_offset = width / 2;
284
315
        }
285
 
        stroke = gtk_widget_get_style ((GtkWidget*) self)->dark[((GtkWidget*) self)->state];
 
316
        _tmp0_ = gtk_widget_get_style ((GtkWidget*) self);
 
317
        stroke = _tmp0_->dark[((GtkWidget*) self)->state];
286
318
        if (((GtkWidget*) self)->state == GTK_STATE_INSENSITIVE) {
287
 
                fill1_rectangle = gtk_widget_get_style ((GtkWidget*) self)->bg[((GtkWidget*) self)->state];
288
 
                fill2_rectangle = gtk_widget_get_style ((GtkWidget*) self)->bg[((GtkWidget*) self)->state];
 
319
                GtkStyle* _tmp1_ = NULL;
 
320
                GtkStyle* _tmp2_ = NULL;
 
321
                _tmp1_ = gtk_widget_get_style ((GtkWidget*) self);
 
322
                fill1_rectangle = _tmp1_->bg[((GtkWidget*) self)->state];
 
323
                _tmp2_ = gtk_widget_get_style ((GtkWidget*) self);
 
324
                fill2_rectangle = _tmp2_->bg[((GtkWidget*) self)->state];
289
325
        } else {
290
 
                fill1_rectangle = gtk_widget_get_style ((GtkWidget*) self)->light[((GtkWidget*) self)->state];
291
 
                fill2_rectangle = gtk_widget_get_style ((GtkWidget*) self)->mid[((GtkWidget*) self)->state];
 
326
                GtkStyle* _tmp3_ = NULL;
 
327
                GtkStyle* _tmp4_ = NULL;
 
328
                _tmp3_ = gtk_widget_get_style ((GtkWidget*) self);
 
329
                fill1_rectangle = _tmp3_->light[((GtkWidget*) self)->state];
 
330
                _tmp4_ = gtk_widget_get_style ((GtkWidget*) self);
 
331
                fill2_rectangle = _tmp4_->mid[((GtkWidget*) self)->state];
292
332
        }
293
 
        toggle_switch_draw_rounded_rectangle (self, cr, (double) (x + x_offset), (double) y, (double) (width / 2), (double) height, &stroke, &fill1_rectangle, &fill2_rectangle);
 
333
        toggle_switch_draw_rounded_rectangle (self, cr, (gdouble) (x + x_offset), (gdouble) y, (gdouble) (width / 2), (gdouble) height, &stroke, &fill1_rectangle, &fill2_rectangle);
294
334
        toggle_switch_draw_vertical_lines (self, cr, x + x_offset, y, width, height);
295
335
}
296
336
 
297
337
 
298
338
static void toggle_switch_draw_vertical_lines (ToggleSwitch* self, cairo_t* cr, gint x, gint y, gint width, gint height) {
 
339
        GtkStyle* _tmp0_ = NULL;
299
340
        GdkColor fill_line_dark;
 
341
        GtkStyle* _tmp1_ = NULL;
300
342
        GdkColor fill_line_light;
301
 
        double line_height;
 
343
        gdouble line_height;
302
344
        gint line_spacing;
303
345
        gint x_offset;
304
 
        double y_offset;
305
 
        double c_spacing;
 
346
        gdouble y_offset;
 
347
        gdouble c_spacing;
306
348
        g_return_if_fail (self != NULL);
307
349
        g_return_if_fail (cr != NULL);
308
 
        fill_line_dark = gtk_widget_get_style ((GtkWidget*) self)->dark[((GtkWidget*) self)->state];
309
 
        fill_line_light = gtk_widget_get_style ((GtkWidget*) self)->light[((GtkWidget*) self)->state];
 
350
        _tmp0_ = gtk_widget_get_style ((GtkWidget*) self);
 
351
        fill_line_dark = _tmp0_->dark[((GtkWidget*) self)->state];
 
352
        _tmp1_ = gtk_widget_get_style ((GtkWidget*) self);
 
353
        fill_line_light = _tmp1_->light[((GtkWidget*) self)->state];
310
354
        line_height = ((gint) height) * self->priv->LINE_HEIGHT_RATIO;
311
355
        line_spacing = (gint) (self->priv->LINE_SPACING_RATIO * (width / 2));
312
356
        x_offset = (((width / 2) - (6 + (line_spacing * 2))) / 2) + 2;
313
357
        y_offset = (height - line_height) / 2;
314
 
        c_spacing = (double) 0;
 
358
        c_spacing = (gdouble) 0;
315
359
        {
316
360
                gint i;
317
361
                i = 0;
318
362
                {
319
 
                        gboolean _tmp0_;
320
 
                        _tmp0_ = TRUE;
 
363
                        gboolean _tmp2_;
 
364
                        _tmp2_ = TRUE;
321
365
                        while (TRUE) {
322
 
                                if (!_tmp0_) {
 
366
                                if (!_tmp2_) {
323
367
                                        i++;
324
368
                                }
325
 
                                _tmp0_ = FALSE;
 
369
                                _tmp2_ = FALSE;
326
370
                                if (!(i < 3)) {
327
371
                                        break;
328
372
                                }
329
 
                                cairo_rectangle (cr, ((x + x_offset) + c_spacing) + 1, y + y_offset, (double) 1, line_height);
330
 
                                cairo_set_source_rgb (cr, ((double) fill_line_dark.red) / 65535.0, ((double) fill_line_dark.green) / 65535.0, ((double) fill_line_dark.blue) / 65535.0);
331
 
                                cairo_fill (cr);
332
 
                                cairo_rectangle (cr, (x + x_offset) + c_spacing, y + y_offset, (double) 1, line_height);
333
 
                                cairo_set_source_rgb (cr, ((double) fill_line_light.red) / 65535.0, ((double) fill_line_light.green) / 65535.0, ((double) fill_line_light.blue) / 65535.0);
334
 
                                cairo_fill (cr);
335
 
                                c_spacing = c_spacing + ((double) line_spacing);
 
373
                                cairo_rectangle (cr, ((x + x_offset) + c_spacing) + 1, y + y_offset, (gdouble) 1, line_height);
 
374
                                cairo_set_source_rgb (cr, ((gdouble) fill_line_dark.red) / 65535.0, ((gdouble) fill_line_dark.green) / 65535.0, ((gdouble) fill_line_dark.blue) / 65535.0);
 
375
                                cairo_fill (cr);
 
376
                                cairo_rectangle (cr, (x + x_offset) + c_spacing, y + y_offset, (gdouble) 1, line_height);
 
377
                                cairo_set_source_rgb (cr, ((gdouble) fill_line_light.red) / 65535.0, ((gdouble) fill_line_light.green) / 65535.0, ((gdouble) fill_line_light.blue) / 65535.0);
 
378
                                cairo_fill (cr);
 
379
                                c_spacing = c_spacing + ((gdouble) line_spacing);
336
380
                        }
337
381
                }
338
382
        }
346
390
}
347
391
 
348
392
 
349
 
static void toggle_switch_draw_centered_text (ToggleSwitch* self, const char* text, const char* gravity) {
 
393
static void toggle_switch_draw_centered_text (ToggleSwitch* self, const gchar* text, const gchar* gravity) {
350
394
        gint x;
351
395
        gint y;
352
396
        gint width;
354
398
        gint x_offset = 0;
355
399
        gint y_offset = 0;
356
400
        PangoRectangle extents = {0};
 
401
        PangoRectangle _tmp2_ = {0};
357
402
        gint text_width;
358
403
        gint text_height;
359
 
        GtkStyle* _tmp1_;
360
 
        GdkRectangle _tmp2_ = {0};
361
 
        GdkRectangle _tmp3_;
 
404
        GtkStyle* _tmp3_ = NULL;
 
405
        GtkStyle* _tmp4_;
 
406
        GtkStateType _tmp5_;
 
407
        GdkRectangle _tmp6_ = {0};
 
408
        GdkRectangle _tmp7_;
362
409
        g_return_if_fail (self != NULL);
363
410
        g_return_if_fail (text != NULL);
364
411
        g_return_if_fail (gravity != NULL);
365
412
        if (self->priv->layout == NULL) {
366
 
                PangoLayout* _tmp0_;
367
 
                self->priv->layout = (_tmp0_ = gtk_widget_create_pango_layout ((GtkWidget*) self, NULL), _g_object_unref0 (self->priv->layout), _tmp0_);
 
413
                PangoLayout* _tmp0_ = NULL;
 
414
                PangoLayout* _tmp1_;
 
415
                _tmp0_ = gtk_widget_create_pango_layout ((GtkWidget*) self, NULL);
 
416
                _tmp1_ = _tmp0_;
 
417
                _g_object_unref0 (self->priv->layout);
 
418
                self->priv->layout = _tmp1_;
368
419
        }
369
420
        x = ((GtkWidget*) self)->allocation.x;
370
421
        y = ((GtkWidget*) self)->allocation.y;
371
422
        width = ((GtkWidget*) self)->allocation.width;
372
423
        height = ((GtkWidget*) self)->allocation.height;
373
424
        pango_layout_set_text (self->priv->layout, text, -1);
374
 
        pango_layout_get_pixel_extents (self->priv->layout, NULL, &extents);
 
425
        pango_layout_get_pixel_extents (self->priv->layout, NULL, &_tmp2_);
 
426
        extents = _tmp2_;
375
427
        text_width = extents.width;
376
428
        text_height = extents.height;
377
429
        x_offset = ((width / 2) - text_width) / 2;
378
 
        if (_vala_strcmp0 (gravity, "right") == 0) {
 
430
        if (g_strcmp0 (gravity, "right") == 0) {
379
431
                x_offset = x_offset + (width / 2);
380
432
        }
381
433
        y_offset = (height - text_height) / 2;
382
 
        GTK_STYLE_GET_CLASS (_tmp1_ = gtk_widget_get_style ((GtkWidget*) self))->draw_layout (_tmp1_, ((GtkWidget*) self)->window, gtk_widget_get_state ((GtkWidget*) self), TRUE, (_tmp3_ = (_tmp2_.x = x, _tmp2_.y = y, _tmp2_.width = width, _tmp2_.height = height, _tmp2_), &_tmp3_), (GtkWidget*) self, "", x + x_offset, y + y_offset, self->priv->layout);
 
434
        _tmp3_ = gtk_widget_get_style ((GtkWidget*) self);
 
435
        _tmp5_ = gtk_widget_get_state ((GtkWidget*) self);
 
436
        GTK_STYLE_GET_CLASS (_tmp4_ = _tmp3_)->draw_layout (_tmp4_, ((GtkWidget*) self)->window, _tmp5_, TRUE, (_tmp7_ = (_tmp6_.x = x, _tmp6_.y = y, _tmp6_.width = width, _tmp6_.height = height, _tmp6_), &_tmp7_), (GtkWidget*) self, "", x + x_offset, y + y_offset, self->priv->layout);
383
437
}
384
438
 
385
439
 
386
 
static void toggle_switch_draw_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, double x, double y, double w, double h, GdkColor* stroke, GdkColor* fill1, GdkColor* fill2) {
387
 
        double r;
 
440
static void toggle_switch_draw_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, gdouble x, gdouble y, gdouble w, gdouble h, GdkColor* stroke, GdkColor* fill1, GdkColor* fill2) {
 
441
        gdouble r;
 
442
        cairo_pattern_t* _tmp0_ = NULL;
388
443
        cairo_pattern_t* linear;
389
444
        g_return_if_fail (self != NULL);
390
445
        g_return_if_fail (cr != NULL);
391
446
        r = self->priv->CORNER_RADIUS;
392
447
        cairo_new_sub_path (cr);
393
448
        cairo_arc (cr, r + x, r + y, r, PI, 270 * PI_OVER_180);
394
 
        cairo_arc (cr, (x + w) - r, r + y, r, 270 * PI_OVER_180, (double) 0);
395
 
        cairo_arc (cr, (x + w) - r, (y + h) - r, r, (double) 0, 90 * PI_OVER_180);
 
449
        cairo_arc (cr, (x + w) - r, r + y, r, 270 * PI_OVER_180, (gdouble) 0);
 
450
        cairo_arc (cr, (x + w) - r, (y + h) - r, r, (gdouble) 0, 90 * PI_OVER_180);
396
451
        cairo_arc (cr, r + x, (y + h) - r, r, 90 * PI_OVER_180, PI);
397
452
        cairo_close_path (cr);
398
 
        cairo_set_source_rgb (cr, ((double) (*stroke).red) / 65535.0, ((double) (*stroke).green) / 65535.0, ((double) (*stroke).blue) / 65535.0);
 
453
        cairo_set_source_rgb (cr, ((gdouble) (*stroke).red) / 65535.0, ((gdouble) (*stroke).green) / 65535.0, ((gdouble) (*stroke).blue) / 65535.0);
399
454
        cairo_stroke_preserve (cr);
400
 
        linear = cairo_pattern_create_linear (x, y, x, y + h);
401
 
        cairo_pattern_add_color_stop_rgba (linear, 0.00, ((double) (*fill1).red) / 65535.0, ((double) (*fill1).green) / 65535.0, ((double) (*fill1).blue) / 65535.0, (double) 1);
402
 
        cairo_pattern_add_color_stop_rgba (linear, 0.8, ((double) (*fill2).red) / 65535.0, ((double) (*fill2).green) / 65535.0, ((double) (*fill2).blue) / 65535.0, (double) 1);
 
455
        _tmp0_ = cairo_pattern_create_linear (x, y, x, y + h);
 
456
        linear = _tmp0_;
 
457
        cairo_pattern_add_color_stop_rgba (linear, 0.00, ((gdouble) (*fill1).red) / 65535.0, ((gdouble) (*fill1).green) / 65535.0, ((gdouble) (*fill1).blue) / 65535.0, (gdouble) 1);
 
458
        cairo_pattern_add_color_stop_rgba (linear, 0.8, ((gdouble) (*fill2).red) / 65535.0, ((gdouble) (*fill2).green) / 65535.0, ((gdouble) (*fill2).blue) / 65535.0, (gdouble) 1);
403
459
        cairo_set_source (cr, linear);
404
460
        cairo_fill (cr);
405
461
        _cairo_pattern_destroy0 (linear);
406
462
}
407
463
 
408
464
 
409
 
static void toggle_switch_draw_flat_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, double x, double y, double w, double h, GdkColor* stroke, GdkColor* fill) {
410
 
        double r;
 
465
static void toggle_switch_draw_flat_rounded_rectangle (ToggleSwitch* self, cairo_t* cr, gdouble x, gdouble y, gdouble w, gdouble h, GdkColor* stroke, GdkColor* fill) {
 
466
        gdouble r;
411
467
        g_return_if_fail (self != NULL);
412
468
        g_return_if_fail (cr != NULL);
413
469
        r = self->priv->CORNER_RADIUS;
414
470
        cairo_new_sub_path (cr);
415
471
        cairo_arc (cr, r + x, r + y, r, PI, 270 * PI_OVER_180);
416
 
        cairo_arc (cr, (x + w) - r, r + y, r, 270 * PI_OVER_180, (double) 0);
417
 
        cairo_arc (cr, (x + w) - r, (y + h) - r, r, (double) 0, 90 * PI_OVER_180);
 
472
        cairo_arc (cr, (x + w) - r, r + y, r, 270 * PI_OVER_180, (gdouble) 0);
 
473
        cairo_arc (cr, (x + w) - r, (y + h) - r, r, (gdouble) 0, 90 * PI_OVER_180);
418
474
        cairo_arc (cr, r + x, (y + h) - r, r, 90 * PI_OVER_180, PI);
419
475
        cairo_close_path (cr);
420
 
        cairo_set_source_rgb (cr, ((double) (*stroke).red) / 65535.0, ((double) (*stroke).green) / 65535.0, ((double) (*stroke).blue) / 65535.0);
 
476
        cairo_set_source_rgb (cr, ((gdouble) (*stroke).red) / 65535.0, ((gdouble) (*stroke).green) / 65535.0, ((gdouble) (*stroke).blue) / 65535.0);
421
477
        cairo_stroke_preserve (cr);
422
 
        cairo_set_source_rgb (cr, ((double) (*fill).red) / 65535.0, ((double) (*fill).green) / 65535.0, ((double) (*fill).blue) / 65535.0);
 
478
        cairo_set_source_rgb (cr, ((gdouble) (*fill).red) / 65535.0, ((gdouble) (*fill).green) / 65535.0, ((gdouble) (*fill).blue) / 65535.0);
423
479
        cairo_fill (cr);
424
480
}
425
481
 
432
488
static void toggle_switch_update_atk (ToggleSwitch* self) {
433
489
        g_return_if_fail (self != NULL);
434
490
        if (self->priv->atk == NULL) {
435
 
                AtkObject* _tmp0_;
436
 
                self->priv->atk = (_tmp0_ = _g_object_ref0 (gtk_widget_get_accessible ((GtkWidget*) self)), _g_object_unref0 (self->priv->atk), _tmp0_);
 
491
                AtkObject* _tmp0_ = NULL;
 
492
                AtkObject* _tmp1_;
 
493
                AtkObject* _tmp2_;
 
494
                _tmp0_ = gtk_widget_get_accessible ((GtkWidget*) self);
 
495
                _tmp1_ = _g_object_ref0 (_tmp0_);
 
496
                _tmp2_ = _tmp1_;
 
497
                _g_object_unref0 (self->priv->atk);
 
498
                self->priv->atk = _tmp2_;
437
499
                atk_object_set_role (self->priv->atk, ATK_ROLE_CHECK_BOX);
438
500
        }
439
501
        if (self->active) {
447
509
static void toggle_switch_on_style_set (ToggleSwitch* self, GtkStyle* style) {
448
510
        gint calc_width = 0;
449
511
        gint calc_height = 0;
 
512
        gint _tmp0_;
 
513
        gint _tmp1_;
450
514
        g_return_if_fail (self != NULL);
451
 
        toggle_switch_calculate_size (self, &calc_width, &calc_height);
 
515
        toggle_switch_calculate_size (self, &_tmp0_, &_tmp1_);
 
516
        calc_width = _tmp0_;
 
517
        calc_height = _tmp1_;
452
518
        gtk_widget_set_size_request ((GtkWidget*) self, calc_width, calc_height);
453
519
}
454
520
 
497
563
        gboolean _tmp0_;
498
564
        g_return_val_if_fail (self != NULL, FALSE);
499
565
        if ((g_object_get ((GtkWidget*) self, "has-focus", &_tmp0_, NULL), _tmp0_)) {
500
 
                if ((_vala_strcmp0 (gdk_keyval_name ((*event).keyval), "Return") == 0) | (_vala_strcmp0 (gdk_keyval_name ((*event).keyval), "Enter") == 0)) {
 
566
                const gchar* _tmp1_ = NULL;
 
567
                const gchar* _tmp2_ = NULL;
 
568
                _tmp1_ = gdk_keyval_name ((*event).keyval);
 
569
                _tmp2_ = gdk_keyval_name ((*event).keyval);
 
570
                if ((g_strcmp0 (_tmp1_, "Return") == 0) | (g_strcmp0 (_tmp2_, "Enter") == 0)) {
501
571
                        g_signal_emit_by_name (self, "toggled");
502
572
                }
503
573
        }
549
619
 
550
620
 
551
621
static void toggle_switch_instance_init (ToggleSwitch * self) {
552
 
        char** _tmp0_ = NULL;
 
622
        gchar* _tmp0_;
 
623
        gchar* _tmp1_;
 
624
        gchar** _tmp2_ = NULL;
553
625
        self->priv = TOGGLE_SWITCH_GET_PRIVATE (self);
554
626
        self->priv->LINE_HEIGHT_RATIO = 9.0 / 25.0;
555
627
        self->priv->LINE_SPACING_RATIO = 5.0 / 38.0;
556
628
        self->priv->CORNER_RADIUS = 3.0;
557
629
        self->priv->TEXT_XPAD = 0.4;
558
630
        self->priv->TEXT_YPAD = 0.35;
559
 
        self->priv->values = (_tmp0_ = g_new0 (char*, 2 + 1), _tmp0_[0] = g_strdup ("ON"), _tmp0_[1] = g_strdup ("OFF"), _tmp0_);
 
631
        _tmp0_ = g_strdup ("ON");
 
632
        _tmp1_ = g_strdup ("OFF");
 
633
        _tmp2_ = g_new0 (gchar*, 2 + 1);
 
634
        _tmp2_[0] = _tmp0_;
 
635
        _tmp2_[1] = _tmp1_;
 
636
        self->priv->values = _tmp2_;
560
637
        self->priv->values_length1 = 2;
561
638
        self->priv->_values_size_ = self->priv->values_length1;
562
639
        self->priv->layout = NULL;
605
682
}
606
683
 
607
684
 
608
 
static int _vala_strcmp0 (const char * str1, const char * str2) {
609
 
        if (str1 == NULL) {
610
 
                return -(str1 != str2);
611
 
        }
612
 
        if (str2 == NULL) {
613
 
                return str1 != str2;
614
 
        }
615
 
        return strcmp (str1, str2);
616
 
}
617
 
 
618
 
 
619
 
 
620
685