Exemplo n.º 1
0
static void
repopulate_model (NautilusBurnDriveSelection *selection)
{
        GtkTreeModel *model;

        /* block the combo changed signal handler until we're done */
        g_signal_handlers_block_by_func (G_OBJECT (selection),
                                         combo_changed, selection);

        model = gtk_combo_box_get_model (GTK_COMBO_BOX (selection));
        gtk_list_store_clear (GTK_LIST_STORE (model));
        populate_model (selection, GTK_LIST_STORE (model));

        g_signal_handlers_unblock_by_func (G_OBJECT (selection),
                                           combo_changed, selection);

        /* Force a signal out */
        combo_changed (GTK_COMBO_BOX (selection), (gpointer) selection);
}
Exemplo n.º 2
0
void show_login()
{
	GtkWidget *image;
    GtkWidget *hbox_toplevel;
	GtkWidget *vbox;
	GtkWidget *button;
	GtkWidget *hbox;
	GtkWidget *label;
	GtkWidget *vbox2;
    GtkWidget *table;
#ifdef GAIM_SMALL_SCREEN    
#ifdef ENABLE_HILDON
    GtkWidget *hbox1;
    GtkWidget *vbox1;
#endif
    GtkWidget *hseparator;
#endif
	/* Do we already have a main window opened? If so, bring it back, baby... ribs... yeah */

#ifdef ENABLE_HILDON
    if (login_app_view) {
            hildon_app_set_appview(HILDON_APP(app), HILDON_APPVIEW(login_app_view));
	    g_object_unref(login_app_view);
            return;
    }
    mainwindow = current_app_view = login_app_view = hildon_appview_new(_("Login"));
    hildon_app_set_appview(HILDON_APP(app), HILDON_APPVIEW(login_app_view));
    
    hbox_toplevel = gtk_hbox_new(FALSE, 0);
    gtk_container_add(GTK_CONTAINER(login_app_view), hbox_toplevel);
    g_signal_connect(G_OBJECT(login_app_view), "delete_event",
                     G_CALLBACK(login_window_closed), login_app_view);
                     
                 
#else
    if (mainwindow) {
            gtk_window_present(GTK_WINDOW(mainwindow));
            return;
    }
    #ifdef GAIM_SMALL_SCREEN
        mainwindow = gtk_dialog_new();
        gtk_window_set_modal(GTK_WINDOW(mainwindow), TRUE);
        gtk_dialog_set_has_separator(mainwindow, FALSE);
    #else
        mainwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    #endif
        gtk_window_set_role(GTK_WINDOW(mainwindow), "login");
        gtk_window_set_resizable(GTK_WINDOW(mainwindow), FALSE);
        gtk_window_set_title(GTK_WINDOW(mainwindow), _("Login"));
        gtk_container_set_border_width(GTK_CONTAINER(mainwindow), 5);
        g_signal_connect(G_OBJECT(mainwindow), "delete_event",
                        G_CALLBACK(login_window_closed), mainwindow);
        hbox_toplevel = gtk_hbox_new(FALSE, 0);
    #ifdef GAIM_SMALL_SCREEN
        gtk_container_add(GTK_CONTAINER(GTK_DIALOG(mainwindow)->vbox), hbox_toplevel);
    #else
        gtk_container_add(GTK_CONTAINER(mainwindow), hbox_toplevel);
    #endif
#endif

    

                     
    vbox_toplevel = vbox = gtk_vbox_new(FALSE, 0);

    gtk_box_pack_start(GTK_BOX(hbox_toplevel), vbox, FALSE, FALSE, BOX_SPACING);
#ifdef GAIM_SMALL_SCREEN	
    /* Now for the button box */
    hbox = gtk_hbox_new(FALSE, 0);
#ifdef ENABLE_HILDON
    hbox1 = gtk_hbox_new(FALSE, BOX_SPACING);
    vbox1 = gtk_vbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), hbox1, TRUE, FALSE, 0);
    gtk_box_pack_end(GTK_BOX(hbox1), vbox1, FALSE, FALSE, 0);
    gtk_box_pack_start(GTK_BOX(vbox1), hbox, FALSE, FALSE, 0);
    vbox = vbox1;
#else
    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
#endif    
    
    /* lets put the image also in the hbox */
    image = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO));
#ifdef ENABLE_HILDON
    gtk_box_pack_start(GTK_BOX(hbox1), image, FALSE, FALSE, 0);
#else
    gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0);
#endif
    
    /* And now for the buttons */
    button = gaim_pixbuf_button_from_stock(_("A_ccounts"), GAIM_STOCK_ACCOUNTS, GAIM_BUTTON_VERTICAL);
    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
    g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(gaim_gtk_accounts_window_show), mainwindow);
    gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);

    button = gaim_pixbuf_button_from_stock(_("P_references"), GTK_STOCK_PREFERENCES, GAIM_BUTTON_VERTICAL);
    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
    g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(gaim_gtk_prefs_show), mainwindow);
    gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);

    button = gaim_pixbuf_button_from_stock(_("_Sign on"), GAIM_STOCK_SIGN_ON, GAIM_BUTTON_VERTICAL);
    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
    g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(dologin), mainwindow);
    g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(domiddleclick), NULL);
    gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);

    hseparator = gtk_hseparator_new ();
    gtk_widget_show (hseparator);
    gtk_box_pack_start (GTK_BOX (vbox), hseparator, FALSE, TRUE, 2);
        
#else
    image = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO));
    gtk_box_pack_start(GTK_BOX(vbox), image, FALSE, FALSE, 0);
#endif    
    
    table = gtk_table_new (2, 2, FALSE);
    gtk_widget_show (table);
    gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
    gtk_table_set_row_spacings (GTK_TABLE (table), 2);
    gtk_table_set_col_spacings (GTK_TABLE (table), 2);
    
	/* why isn't there a gtk_label_new_with_markup? */
	label = gtk_label_new(NULL);
	gtk_widget_show (label);
    gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("<b>_Account:</b>"));
	gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1,
                        (GtkAttachOptions) (GTK_FILL),
                        (GtkAttachOptions) (0), 0, 0);
    gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);
    
    
	name = gaim_gtk_account_option_menu_new(NULL, TRUE, G_CALLBACK(combo_changed), NULL, NULL);
	gtk_label_set_mnemonic_widget(GTK_LABEL(label), name);
    gtk_widget_show (name);
    gtk_table_attach (GTK_TABLE (table), name, 1, 2, 0, 1,
                        (GtkAttachOptions) (GTK_FILL),
                        (GtkAttachOptions) (0), 0, 0);

    
	label = gtk_label_new(NULL);
    gtk_widget_show (label);
	gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("<b>_Password:</b>"));
    gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2,
                        (GtkAttachOptions) (GTK_FILL),
                        (GtkAttachOptions) (0), 0, 0);
    gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);

	pass = gtk_entry_new();
	gtk_label_set_mnemonic_widget(GTK_LABEL(label), pass);
	gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE);
    gtk_table_attach (GTK_TABLE (table), pass, 1, 2, 1, 2,
                (GtkAttachOptions) (GTK_FILL),
                (GtkAttachOptions) (0), 0, 0);
    
    
#ifndef GAIM_SMALL_SCREEN
    g_signal_connect(G_OBJECT(pass), "activate",
                     G_CALLBACK(dologin), mainwindow);
    /*
    gtk_box_pack_start(GTK_BOX(vbox2), pass, FALSE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, TRUE, 0);
    */
    /* Now for the button box */
    hbox = gtk_hbox_new(TRUE, 0);
    /*
    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5);
    */
    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);

    /* And now for the buttons */
    button = gaim_pixbuf_button_from_stock(_("A_ccounts"), GAIM_STOCK_ACCOUNTS, GAIM_BUTTON_VERTICAL);
    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
    g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(gaim_gtk_accounts_window_show), mainwindow);
    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);

    button = gaim_pixbuf_button_from_stock(_("P_references"), GTK_STOCK_PREFERENCES, GAIM_BUTTON_VERTICAL);
    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
    g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(gaim_gtk_prefs_show), mainwindow);
    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);

    button = gaim_pixbuf_button_from_stock(_("_Sign on"), GAIM_STOCK_SIGN_ON, GAIM_BUTTON_VERTICAL);
    gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
    g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(dologin), mainwindow);
    g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(domiddleclick), NULL);
    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
#endif
	/* Now grab the focus that we need */
	if (gaim_accounts_get_all()) {
		GaimAccount *account = gaim_accounts_get_all()->data;

		if (gaim_account_get_remember_password(account)) {
			combo_changed(NULL, account, NULL);
			gtk_widget_grab_focus(button);
		} else {
			gtk_widget_grab_focus(pass);
		}
	} else {
		gaim_gtk_accounts_window_show();
		gtk_widget_grab_focus(button);
	}
    
#ifndef ENABLE_HILDON
	/* And raise the curtain! */
	gtk_widget_show_all(mainwindow);
#else
    gtk_widget_show_all(login_app_view);
#endif
}