5 boolean_to_text (GBinding *binding,
8 gpointer dummy G_GNUC_UNUSED)
10 if (g_value_get_boolean (source))
11 g_value_set_string (target, "Enabled");
13 g_value_set_string (target, "Disabled");
19 make_switch (gboolean is_on,
20 gboolean is_sensitive)
23 GtkWidget *sw, *label;
25 hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
27 sw = gtk_switch_new ();
28 gtk_switch_set_active (GTK_SWITCH (sw), is_on);
29 gtk_box_pack_start (GTK_BOX (hbox), sw, FALSE, FALSE, 0);
30 gtk_widget_set_sensitive (sw, is_sensitive);
33 label = gtk_label_new (is_on ? "Enabled" : "Disabled");
34 gtk_box_pack_end (GTK_BOX (hbox), label, TRUE, TRUE, 0);
35 gtk_widget_show (label);
37 g_object_bind_property_full (sw, "active",
52 GtkWidget *vbox, *hbox;
54 gtk_init (&argc, &argv);
56 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
57 gtk_window_set_title (GTK_WINDOW (window), "GtkSwitch");
58 gtk_window_set_default_size (GTK_WINDOW (window), 400, -1);
59 gtk_container_set_border_width (GTK_CONTAINER (window), 6);
60 g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
61 gtk_widget_show (window);
63 vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
64 gtk_container_add (GTK_CONTAINER (window), vbox);
65 gtk_widget_show (vbox);
67 hbox = make_switch (FALSE, TRUE);
68 gtk_container_add (GTK_CONTAINER (vbox), hbox);
69 gtk_widget_show (hbox);
71 hbox = make_switch (TRUE, TRUE);
72 gtk_container_add (GTK_CONTAINER (vbox), hbox);
73 gtk_widget_show (hbox);
75 hbox = make_switch (FALSE, FALSE);
76 gtk_container_add (GTK_CONTAINER (vbox), hbox);
77 gtk_widget_show (hbox);
79 hbox = make_switch (TRUE, FALSE);
80 gtk_container_add (GTK_CONTAINER (vbox), hbox);
81 gtk_widget_show (hbox);