Пример #1
0
int
main (int argc, char **argv)
{
    GtkWidget *window, *vbox, *frame, *swtch, *swtch2, *toggle, *vbox2;
    gboolean is_active = FALSE;

    gtk_init (&argc, &argv);

    if (argc > 1)
        is_active = atoi (argv[1]);

    g_debug ("setting switch to '%d'", is_active);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size (GTK_WINDOW (window), 320, 240);

    vbox = gtk_vbox_new (FALSE, 12);
    gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
    gtk_container_add (GTK_CONTAINER (window), vbox);

    frame = mx_gtk_frame_new ();
    gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 10);
    gtk_frame_set_label (GTK_FRAME (frame), "Frame Title");

    vbox2 = gtk_vbox_new (FALSE, 12);
    gtk_container_set_border_width (GTK_CONTAINER (vbox2), 10);
    gtk_container_add (GTK_CONTAINER (frame), vbox2);

    swtch = mx_gtk_light_switch_new ();
    mx_gtk_light_switch_set_active (MX_GTK_LIGHT_SWITCH (swtch), is_active);
    gtk_container_add (GTK_CONTAINER (vbox2), swtch);

    swtch2 = mx_gtk_light_switch_new ();
    gtk_widget_set_sensitive (swtch2, FALSE);
    mx_gtk_light_switch_set_active (MX_GTK_LIGHT_SWITCH (swtch2), is_active);
    gtk_container_add (GTK_CONTAINER (vbox2), swtch2);

    frame = gtk_alignment_new (0, 0, 0, 0);
    gtk_alignment_set_padding (GTK_ALIGNMENT (frame), 10, 10, 10, 10);
    gtk_container_add (GTK_CONTAINER (vbox), frame);

    toggle = gtk_toggle_button_new_with_label ("Toggle");
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle), is_active);
    gtk_container_add (GTK_CONTAINER (frame), toggle);
    g_signal_connect (toggle, "toggled", G_CALLBACK (_toggle_cb), swtch);

    gtk_widget_show_all (window);
    g_signal_connect (window, "delete-event", gtk_main_quit, NULL);

    gtk_main ();

    return 0;
}
Пример #2
0
static void
nmn_applet_init (NmnApplet *applet)
{
    NmnAppletPrivate *priv = GET_PRIVATE (applet);
    GtkWidget *w;
    GtkWidget *vbox;
    GtkWidget *frame;
    GtkWidget *table;
    const char *markup_str;
    char *label;

    gtk_notebook_set_show_tabs (GTK_NOTEBOOK (applet), FALSE);

    priv->pane = gtk_hbox_new (FALSE, 6);
    gtk_container_set_border_width (GTK_CONTAINER (priv->pane), 6);
    gtk_notebook_append_page (GTK_NOTEBOOK (applet), priv->pane, NULL);

    /* left side (Networks list, add new connection button) */
    vbox = gtk_vbox_new (FALSE, 6);
    gtk_box_pack_start (GTK_BOX (priv->pane), vbox, TRUE, TRUE, 0);

    frame = mx_gtk_frame_new ();
    gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);

    priv->add_new_connection = gtk_button_new_with_label (_("Add new connection"));
    gtk_box_pack_start (GTK_BOX (vbox), priv->add_new_connection, FALSE, FALSE, 0);

    vbox = gtk_vbox_new (FALSE, 6);
    gtk_container_add (GTK_CONTAINER (frame), vbox);

    label = g_strdup_printf ("<span font_desc=\"Sans Bold 18\" foreground=\"#3e3e3e\">%s</span>", _("Networks"));
    w = gtk_label_new (NULL);
    gtk_label_set_markup (GTK_LABEL (w), label);
    g_free (label);
    gtk_misc_set_alignment (GTK_MISC (w), 0.0, 0.5);
    gtk_box_pack_start (GTK_BOX (vbox), w, FALSE, FALSE, 0);

    w = gtk_scrolled_window_new (NULL, NULL);
    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
    priv->list = nmn_list_new ();
    gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (w), priv->list);
    gtk_widget_show (priv->list);
    gtk_box_pack_start (GTK_BOX (vbox), w, TRUE, TRUE, 0);


    /* Right side, switches */
    vbox = gtk_vbox_new (FALSE, 6);
    gtk_box_pack_start (GTK_BOX (priv->pane), vbox, FALSE, FALSE, 0);

    frame = mx_gtk_frame_new ();
    gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);

    w = gtk_vbox_new (FALSE, 0);
    gtk_container_add (GTK_CONTAINER (frame), w);

    table = gtk_table_new (5, 2, FALSE);
    priv->switches_table = table;
    gtk_table_set_row_spacings (GTK_TABLE (table), 6);
    gtk_container_set_border_width (GTK_CONTAINER (table), 6);
    gtk_box_pack_start (GTK_BOX (w), table, FALSE, FALSE, 0);

    markup_str = "<span font_desc=\"Sans Bold 12\" foreground=\"#3e3e3e\">%s</span>";

    w = gtk_label_new (NULL);
    label = g_strdup_printf (markup_str, _("WiFi"));
    gtk_label_set_markup (GTK_LABEL (w), label);
    g_free (label);
    priv->enable_wifi_label = w;
    gtk_misc_set_alignment (GTK_MISC (w), 0.2, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), w, 0, 1, SWITCHES_ROW_WIFI, SWITCHES_ROW_WIFI + 1);
    priv->enable_wifi = mx_gtk_light_switch_new ();
    gtk_table_attach_defaults (GTK_TABLE (table), priv->enable_wifi, 1, 2,
                               SWITCHES_ROW_WIFI, SWITCHES_ROW_WIFI + 1);

    w = gtk_label_new (NULL);
    label = g_strdup_printf (markup_str, _("Wired"));
    gtk_label_set_markup (GTK_LABEL (w), label);
    g_free (label);
    priv->enable_ethernet_label = w;
    gtk_misc_set_alignment (GTK_MISC (w), 0.2, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), w, 0, 1, SWITCHES_ROW_ETHERNET, SWITCHES_ROW_ETHERNET + 1);
    priv->enable_ethernet = mx_gtk_light_switch_new ();
    gtk_table_attach_defaults (GTK_TABLE (table), priv->enable_ethernet, 1, 2,
                               SWITCHES_ROW_ETHERNET, SWITCHES_ROW_ETHERNET + 1);

    w = gtk_label_new (NULL);
    label = g_strdup_printf (markup_str, _("3G"));
    gtk_label_set_markup (GTK_LABEL (w), label);
    g_free (label);
    priv->enable_3g_label = w;
    gtk_misc_set_alignment (GTK_MISC (w), 0.2, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), w, 0, 1, SWITCHES_ROW_3G, SWITCHES_ROW_3G + 1);
    priv->enable_3g = mx_gtk_light_switch_new ();
    gtk_table_attach_defaults (GTK_TABLE (table), priv->enable_3g, 1, 2,
                               SWITCHES_ROW_3G, SWITCHES_ROW_3G + 1);


    w = gtk_label_new (NULL);
    label = g_strdup_printf (markup_str, _("WiMAX"));
    gtk_label_set_markup (GTK_LABEL (w), label);
    g_free (label);
    priv->enable_wimax_label = w;
    gtk_misc_set_alignment (GTK_MISC (w), 0.2, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), w, 0, 1, SWITCHES_ROW_WIMAX, SWITCHES_ROW_WIMAX + 1);
    priv->enable_wimax = mx_gtk_light_switch_new ();
    gtk_table_attach_defaults (GTK_TABLE (table), priv->enable_wimax, 1, 2,
                               SWITCHES_ROW_WIMAX, SWITCHES_ROW_WIMAX + 1);

    w = gtk_label_new (NULL);
    label = g_strdup_printf (markup_str, _("Bluetooth"));
    gtk_label_set_markup (GTK_LABEL (w), label);
    g_free (label);
    priv->enable_bt_label = w;
    gtk_misc_set_alignment (GTK_MISC (w), 0.2, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), w, 0, 1, SWITCHES_ROW_BT, SWITCHES_ROW_BT + 1);
    priv->enable_bt = mx_gtk_light_switch_new ();
    gtk_table_attach_defaults (GTK_TABLE (table), priv->enable_bt, 1, 2,
                               SWITCHES_ROW_BT, SWITCHES_ROW_BT + 1);

    frame = mx_gtk_frame_new ();
    gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);

    table = gtk_table_new (2, 2, TRUE);
    gtk_container_add (GTK_CONTAINER (frame), table);

    w = gtk_label_new (NULL);
    label = g_strdup_printf (markup_str, _("Offline mode"));
    gtk_label_set_markup (GTK_LABEL (w), label);
    g_free (label);
    gtk_misc_set_alignment (GTK_MISC (w), 0.2, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), w, 0, 1, 0, 1);
    priv->enable_network = mx_gtk_light_switch_new ();
    gtk_table_attach_defaults (GTK_TABLE (table), priv->enable_network, 1, 2, 0, 1);

    w = gtk_label_new (_("This will disable all your connections"));
    gtk_table_attach_defaults (GTK_TABLE (table), w, 0, 2, 1, 2);

    gtk_widget_show_all (priv->pane);
}