Mercurial > pidgin.yaz
changeset 3649:f09193608fd3
[gaim-migrate @ 3773]
Really, I think this is a lot prettier.
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Sat, 12 Oct 2002 01:30:44 +0000 |
parents | 1e8c10125558 |
children | 674f76a3ba72 |
files | pixmaps/Makefile.am pixmaps/accounts.png pixmaps/logo.png pixmaps/preferences.png pixmaps/signon.png src/aim.c src/dialogs.c src/gaim.h src/prefs.c src/ui.h src/util.c |
diffstat | 11 files changed, 122 insertions(+), 113 deletions(-) [+] |
line wrap: on
line diff
--- a/pixmaps/Makefile.am Fri Oct 11 21:25:48 2002 +0000 +++ b/pixmaps/Makefile.am Sat Oct 12 01:30:44 2002 +0000 @@ -1,5 +1,6 @@ SUBDIRS = protocols EXTRA_DIST = about_small.xpm \ + accounts.png \ add.xpm \ add_small.xpm \ angel.xpm \ @@ -47,6 +48,7 @@ kiss.xpm \ link.xpm \ login_icon.xpm \ + logo.png \ logo.xpm \ logout_icon.xpm \ logout_menu.xpm \ @@ -64,6 +66,7 @@ panic.xpm \ plugins_small.xpm \ pounce_small.xpm \ + preferences.png \ prefs_small.xpm \ refresh.xpm \ sad.xpm \ @@ -72,6 +75,7 @@ scream.xpm \ search_small.xpm \ send_small.xpm \ + signon.png \ small.xpm \ smile.xpm \ smile8.xpm \ @@ -99,7 +103,7 @@ gaimbuttonpixdir = $(datadir)/pixmaps/gaim/buttons -gaimbuttonpix_DATA = edit.png +gaimbuttonpix_DATA = edit.png accounts.png signon.png preferences.png gaimdialogpixdir = $(datadir)/pixmaps/gaim/dialogs gaimdialogpix_DATA = gaim_error.png gaim_info.png gaim_question.png gaim_warning.png
--- a/src/aim.c Fri Oct 11 21:25:48 2002 +0000 +++ b/src/aim.c Sat Oct 12 01:30:44 2002 +0000 @@ -224,62 +224,49 @@ return tmp; } - void show_login() { - GtkWidget *signon_all; - GtkWidget *options; - GtkWidget *plugs; -#ifndef NO_MULTI - GtkWidget *accts; -#endif - GtkWidget *signon; - GtkWidget *cancel; - GtkWidget *reg; - GtkWidget *bbox; + GdkPixbuf *icon; + GtkWidget *image; + GtkWidget *vbox; + GtkWidget *button; GtkWidget *hbox; - GtkWidget *sbox; GtkWidget *label; - GtkWidget *table; - - GtkWidget *pmw; - GdkPixmap *pm; - GtkStyle *style; - GdkBitmap *mask; - GList *tmp; + /* Do we already have a main window opened? If so, bring it back, baby... ribs... yeah */ if (mainwindow) { - gtk_window_present(GTK_WINDOW(mainwindow)); - return; + gtk_window_present(GTK_WINDOW(mainwindow)); + return; } mainwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_wmclass(GTK_WINDOW(mainwindow), "login", "Gaim"); gtk_window_set_policy(GTK_WINDOW(mainwindow), FALSE, FALSE, TRUE); - gtk_signal_connect(GTK_OBJECT(mainwindow), "delete_event", - GTK_SIGNAL_FUNC(cancel_logon), mainwindow); gtk_window_set_title(GTK_WINDOW(mainwindow), _("Gaim - Login")); gtk_widget_realize(mainwindow); gdk_window_set_group(mainwindow->window, mainwindow->window); + gtk_container_set_border_width(GTK_CONTAINER(mainwindow), 5); + gtk_signal_connect(GTK_OBJECT(mainwindow), "delete_event", + GTK_SIGNAL_FUNC(cancel_logon), mainwindow); - table = gtk_table_new(8, 2, FALSE); - gtk_container_add(GTK_CONTAINER(mainwindow), table); - gtk_widget_show(table); - style = gtk_widget_get_style(mainwindow); - pm = gdk_pixmap_create_from_xpm_d(mainwindow->window, &mask, - &style->bg[GTK_STATE_NORMAL], (gchar **)gaim_logo_xpm); - pmw = gtk_pixmap_new(pm, mask); - gtk_table_attach(GTK_TABLE(table), pmw, 0, 2, 0, 1, 0, 0, 5, 5); - gtk_widget_show(pmw); - gdk_pixmap_unref(pm); - gdk_bitmap_unref(mask); + icon = gaim_pixbuf(NULL, "gaim.png"); + if (icon) { + gtk_window_set_icon(GTK_WINDOW(mainwindow), icon); + gdk_pixbuf_unref(icon); + } - label = gtk_label_new(_("Screen Name: ")); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, 0, 0, 5, 5); - gtk_widget_show(label); + vbox = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(mainwindow), vbox); + + image = gaim_pixmap(NULL, "logo.png"); + gtk_box_pack_start(GTK_BOX(vbox), image, FALSE, FALSE, 0); + + label = gtk_label_new(_("Screen Name:")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); name = gtk_combo_new(); tmp = combo_user_names(); @@ -289,92 +276,47 @@ GTK_SIGNAL_FUNC(doenter), mainwindow); gtk_signal_connect(GTK_OBJECT(GTK_COMBO(name)->entry), "changed", GTK_SIGNAL_FUNC(combo_changed), name); - gtk_widget_set_usize(name, 100, 0); - gtk_table_attach(GTK_TABLE(table), name, 1, 2, 2, 3, 0, 0, 5, 5); - gtk_widget_show(name); + gtk_box_pack_start(GTK_BOX(vbox), name, FALSE, TRUE, 0); - label = gtk_label_new(_("Password: ")); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, 0, 0, 5, 5); - gtk_widget_show(label); + label = gtk_label_new(_("Password:")); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); pass = gtk_entry_new(); - gtk_widget_set_usize(pass, 100, 0); gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE); gtk_signal_connect(GTK_OBJECT(pass), "activate", GTK_SIGNAL_FUNC(doenter), mainwindow); - gtk_table_attach(GTK_TABLE(table), pass, 1, 2, 3, 4, 0, 0, 5, 5); - gtk_widget_show(pass); + gtk_box_pack_start(GTK_BOX(vbox), pass, FALSE, TRUE, 0); - sbox = gtk_vbox_new(TRUE, 5); - gtk_container_border_width(GTK_CONTAINER(sbox), 10); - gtk_table_attach(GTK_TABLE(table), sbox, 0, 2, 7, 8, 0, 0, 5, 5); - gtk_widget_show(sbox); - - bbox = gtk_hbox_new(TRUE, 10); - gtk_box_pack_start(GTK_BOX(sbox), bbox, TRUE, TRUE, 0); - gtk_widget_show(bbox); + /* Now for the button box */ + hbox = gtk_hbox_new(TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5); - cancel = gtk_button_new_with_label(_("Quit")); -#ifndef NO_MULTI - accts = gtk_button_new_with_label(_("Accounts")); -#endif - signon = gtk_button_new_with_label(_("Signon")); - - if (misc_options & OPT_MISC_COOL_LOOK) { - gtk_button_set_relief(GTK_BUTTON(cancel), GTK_RELIEF_NONE); -#ifndef NO_MULTI - gtk_button_set_relief(GTK_BUTTON(accts), GTK_RELIEF_NONE); -#endif - gtk_button_set_relief(GTK_BUTTON(signon), GTK_RELIEF_NONE); - } - - gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(cancel_logon), mainwindow); -#ifndef NO_MULTI - gtk_signal_connect(GTK_OBJECT(accts), "clicked", GTK_SIGNAL_FUNC(account_editor), mainwindow); -#endif - gtk_signal_connect(GTK_OBJECT(signon), "clicked", GTK_SIGNAL_FUNC(dologin), mainwindow); + /* And now for the buttons */ + button = gaim_pixbuf_button("Accounts", "accounts.png", GAIM_BUTTON_VERTICAL); + gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); + gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(account_editor), mainwindow); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0); -#ifndef NO_MULTI - gtk_box_pack_start(GTK_BOX(bbox), accts, TRUE, TRUE, 0); +#ifdef NO_MULTI + gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE); #endif - gtk_box_pack_start(GTK_BOX(bbox), signon, TRUE, TRUE, 0); - - gtk_widget_show(cancel); -#ifndef NO_MULTI - gtk_widget_show(accts); -#endif - gtk_widget_show(signon); - - hbox = gtk_hbox_new(TRUE, 10); - gtk_box_pack_start(GTK_BOX(sbox), hbox, TRUE, TRUE, 0); - gtk_widget_show(hbox); - reg = gtk_button_new_with_label(_("Auto-login")); - options = gtk_button_new_with_label(_("Options")); - plugs = gtk_button_new_with_label(_("About")); - if (misc_options & OPT_MISC_COOL_LOOK) { - gtk_button_set_relief(GTK_BUTTON(reg), GTK_RELIEF_NONE); - gtk_button_set_relief(GTK_BUTTON(options), GTK_RELIEF_NONE); - gtk_button_set_relief(GTK_BUTTON(plugs), GTK_RELIEF_NONE); - } + button = gaim_pixbuf_button("Settings", "preferences.png", GAIM_BUTTON_VERTICAL); + gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); + gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(show_prefs), mainwindow); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); - gtk_signal_connect(GTK_OBJECT(reg), "clicked", GTK_SIGNAL_FUNC(dologin_all), NULL); - gtk_signal_connect(GTK_OBJECT(options), "clicked", GTK_SIGNAL_FUNC(show_prefs), NULL); - gtk_signal_connect(GTK_OBJECT(plugs), "clicked", GTK_SIGNAL_FUNC(show_about), NULL); - gtk_box_pack_start(GTK_BOX(hbox), plugs, TRUE, TRUE, 0); + button = gaim_pixbuf_button("Sign On", "signon.png", GAIM_BUTTON_VERTICAL); + gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); + gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(dologin), mainwindow); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox), options, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(hbox), reg, TRUE, TRUE, 0); - - gtk_widget_show(reg); - gtk_widget_show(options); - gtk_widget_show(plugs); - + /* Now grab the focus that we need */ if (aim_users) { struct aim_user *c = (struct aim_user *)aim_users->data; if (c->options & OPT_USR_REM_PASS) { combo_changed(NULL, name); - gtk_widget_grab_focus(signon); + gtk_widget_grab_focus(button); } else { gtk_widget_grab_focus(pass); } @@ -382,7 +324,9 @@ gtk_widget_grab_focus(name); } - gtk_widget_show(mainwindow); + /* And raise the curtain! */ + gtk_widget_show_all(mainwindow); + } #if HAVE_SIGNAL_H
--- a/src/dialogs.c Fri Oct 11 21:25:48 2002 +0000 +++ b/src/dialogs.c Sat Oct 12 01:30:44 2002 +0000 @@ -106,6 +106,7 @@ static GtkWidget *rename_dialog = NULL; static GtkWidget *rename_bud_dialog = NULL; + struct confirm_del { GtkWidget *window; GtkWidget *label; @@ -4582,12 +4583,18 @@ #endif /* USE_PERL */ -GtkWidget *pixbuf_button(char *text, char *iconfile) +GtkWidget *gaim_pixbuf_button(char *text, char *iconfile, GaimButtonStyle style) { GtkWidget *button, *image, *label, *bbox; button = gtk_button_new(); - bbox = gtk_hbox_new(FALSE, 5); + + if (style == GAIM_BUTTON_HORIZONTAL) + bbox = gtk_hbox_new(FALSE, 5); + else + bbox = gtk_vbox_new(FALSE, 0); + gtk_container_add (GTK_CONTAINER(button), bbox); + if (iconfile) { char *filename; filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", iconfile, NULL); @@ -4596,6 +4603,7 @@ gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); g_free(filename); } + if (text) { label = gtk_label_new(NULL); gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text);
--- a/src/gaim.h Fri Oct 11 21:25:48 2002 +0000 +++ b/src/gaim.h Sat Oct 12 01:30:44 2002 +0000 @@ -155,6 +155,8 @@ #define DEFAULT_INFO "Visit the Gaim website at <A HREF=\"http://gaim.sourceforge.net/\">http://gaim.sourceforge.net/</A>." + + enum log_event { log_signon = 0, log_signoff,
--- a/src/prefs.c Fri Oct 11 21:25:48 2002 +0000 +++ b/src/prefs.c Sat Oct 12 01:30:44 2002 +0000 @@ -1432,7 +1432,7 @@ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); - button = pixbuf_button(_("_Edit"), "edit.png"); + button = gaim_pixbuf_button(_("_Edit"), "edit.png", GAIM_BUTTON_HORIZONTAL); gtk_size_group_add_widget(sg, button); gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), event_view); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
--- a/src/ui.h Fri Oct 11 21:25:48 2002 +0000 +++ b/src/ui.h Sat Oct 12 01:30:44 2002 +0000 @@ -67,6 +67,12 @@ #define GAIM_WARNING 2 #define GAIM_INFO 3 +typedef enum { + GAIM_BUTTON_HORIZONTAL, + GAIM_BUTTON_VERTICAL +} GaimButtonStyle; + + struct debug_window { GtkWidget *window; GtkWidget *entry; @@ -450,7 +456,7 @@ extern void load_perl_script(); extern GtkWidget *picture_button(GtkWidget *, char *, char **); extern GtkWidget *picture_button2(GtkWidget *, char *, char **, short); -extern GtkWidget *pixbuf_button(char *, char *); +extern GtkWidget *gaim_pixbuf_button(char *, char *, GaimButtonStyle); extern int file_is_dir(const char *, GtkWidget *); extern void update_privacy_connections(); extern void show_privacy_options(); @@ -497,4 +503,8 @@ extern void play_sound(int); extern void play_file(char *); +/* Fucnctions in util.c */ +extern GtkWidget *gaim_pixmap(char *, char *); +extern GdkPixbuf *gaim_pixbuf(char *, char *); + #endif /* _UI_H_ */
--- a/src/util.c Fri Oct 11 21:25:48 2002 +0000 +++ b/src/util.c Sat Oct 12 01:30:44 2002 +0000 @@ -1409,3 +1409,44 @@ return NULL; } + +GtkWidget *gaim_pixmap(char *subdir, char *iconfile) { + char *filename; + GtkWidget *image; + + if (subdir != NULL) + filename = g_build_filename (DATADIR, "pixmaps", "gaim", subdir, iconfile, NULL); + else + filename = g_build_filename (DATADIR, "pixmaps", "gaim", iconfile, NULL); + + debug_printf("Loading: %s\n", filename); + + image = gtk_image_new_from_file(filename); + + g_free(filename); + + return image; +} + +GdkPixbuf *gaim_pixbuf(char *subdir, char *iconfile) { + char *filename; + GdkPixbuf *pixbuf; + GError *err = NULL; + + if (subdir != NULL) + filename = g_build_filename (DATADIR, "pixmaps", "gaim", subdir, iconfile, NULL); + else + filename = g_build_filename (DATADIR, "pixmaps", "gaim", iconfile, NULL); + + debug_printf("Loading: %s\n", filename); + + pixbuf = gdk_pixbuf_new_from_file(filename, &err); + if (!pixbuf) { + /* FIXME: Maybe we should handle this error */ + g_error_free(err); + } + + g_free(filename); + + return pixbuf; +}