comparison gtk/gtkblist.c @ 15025:36cfa2e714b7

[gaim-migrate @ 17806] Helpful message in the blank buddy list as suggested by Mark. This is definitely filler text right now. I also wrote a 'kiosk mode' page which maybe I'll play with later, but now it's #if 0'ed out committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Wed, 22 Nov 2006 08:00:42 +0000
parents ff4514c11cbc
children b9d24ed4cfce
comparison
equal deleted inserted replaced
15024:dd4160b36f80 15025:36cfa2e714b7
3728 static void account_modified(GaimAccount *account, GaimGtkBuddyList *gtkblist) 3728 static void account_modified(GaimAccount *account, GaimGtkBuddyList *gtkblist)
3729 { 3729 {
3730 if (!gtkblist) 3730 if (!gtkblist)
3731 return; 3731 return;
3732 3732
3733 if (gaim_accounts_get_all_active())
3734 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 1);
3735 else
3736 gtk_notebook_set_current_page(GTK_NOTEBOOK(gtkblist->notebook), 0);
3737
3733 update_menu_bar(gtkblist); 3738 update_menu_bar(gtkblist);
3734 } 3739 }
3735 3740
3736 static void 3741 static void
3737 account_status_changed(GaimAccount *account, GaimStatus *old, 3742 account_status_changed(GaimAccount *account, GaimStatus *old,
3875 /* Add new error buttons */ 3880 /* Add new error buttons */
3876 g_hash_table_foreach(gtkblist->connection_errors, 3881 g_hash_table_foreach(gtkblist->connection_errors,
3877 create_connection_error_buttons, NULL); 3882 create_connection_error_buttons, NULL);
3878 } 3883 }
3879 3884
3885
3880 /******************************************/ 3886 /******************************************/
3881 /* End of connection error handling stuff */ 3887 /* End of connection error handling stuff */
3882 /******************************************/ 3888 /******************************************/
3889
3890 #if 0
3891 static GtkWidget *
3892 kiosk_page()
3893 {
3894 GtkWidget *ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
3895 GtkWidget *label;
3896 GtkWidget *entry;
3897 GtkWidget *bbox;
3898 GtkWidget *button;
3899
3900 label = gtk_label_new(NULL);
3901 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0);
3902
3903 label = gtk_label_new(NULL);
3904 gtk_label_set_markup(GTK_LABEL(label), _("<b>Username:</b>"));
3905 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
3906 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
3907 entry = gtk_entry_new();
3908 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0);
3909
3910 label = gtk_label_new(NULL);
3911 gtk_label_set_markup(GTK_LABEL(label), _("<b>Password:</b>"));
3912 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
3913 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
3914 entry = gtk_entry_new();
3915 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
3916 gtk_box_pack_start(GTK_BOX(ret), entry, FALSE, FALSE, 0);
3917
3918 label = gtk_label_new(" ");
3919 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, FALSE, 0);
3920
3921 bbox = gtk_hbutton_box_new();
3922 button = gtk_button_new_with_mnemonic(_("_Login"));
3923 gtk_box_pack_start(GTK_BOX(ret), bbox, FALSE, FALSE, 0);
3924 gtk_container_add(GTK_CONTAINER(bbox), button);
3925
3926
3927 label = gtk_label_new(NULL);
3928 gtk_box_pack_start(GTK_BOX(ret), label, TRUE, TRUE, 0);
3929
3930 gtk_container_set_border_width(GTK_CONTAINER(ret), GAIM_HIG_BORDER);
3931
3932 gtk_widget_show_all(ret);
3933 return ret;
3934 }
3935 #endif
3883 3936
3884 static void gaim_gtk_blist_show(GaimBuddyList *list) 3937 static void gaim_gtk_blist_show(GaimBuddyList *list)
3885 { 3938 {
3886 void *handle; 3939 void *handle;
3887 GtkCellRenderer *rend; 3940 GtkCellRenderer *rend;
3888 GtkTreeViewColumn *column; 3941 GtkTreeViewColumn *column;
3889 GtkWidget *menu; 3942 GtkWidget *menu;
3890 GtkWidget *sw; 3943 GtkWidget *sw;
3891 GtkWidget *sep; 3944 GtkWidget *sep;
3945 GtkWidget *label;
3946 char *pretty;
3892 GtkAccelGroup *accel_group; 3947 GtkAccelGroup *accel_group;
3893 GtkTreeSelection *selection; 3948 GtkTreeSelection *selection;
3894 GtkTargetEntry dte[] = {{"GAIM_BLIST_NODE", GTK_TARGET_SAME_APP, DRAG_ROW}, 3949 GtkTargetEntry dte[] = {{"GAIM_BLIST_NODE", GTK_TARGET_SAME_APP, DRAG_ROW},
3895 {"application/x-im-contact", 0, DRAG_BUDDY}, 3950 {"application/x-im-contact", 0, DRAG_BUDDY},
3896 {"text/x-vcard", 0, DRAG_VCARD }, 3951 {"text/x-vcard", 0, DRAG_VCARD },
3909 gtkblist->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 3964 gtkblist->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
3910 gtk_window_set_role(GTK_WINDOW(gtkblist->window), "buddy_list"); 3965 gtk_window_set_role(GTK_WINDOW(gtkblist->window), "buddy_list");
3911 gtk_window_set_title(GTK_WINDOW(gtkblist->window), _("Buddy List")); 3966 gtk_window_set_title(GTK_WINDOW(gtkblist->window), _("Buddy List"));
3912 GTK_WINDOW(gtkblist->window)->allow_shrink = TRUE; 3967 GTK_WINDOW(gtkblist->window)->allow_shrink = TRUE;
3913 3968
3914 gtkblist->vbox = gtk_vbox_new(FALSE, 0); 3969 gtkblist->main_vbox = gtk_vbox_new(FALSE, 0);
3915 gtk_widget_show(gtkblist->vbox); 3970 gtk_widget_show(gtkblist->main_vbox);
3916 gtk_container_add(GTK_CONTAINER(gtkblist->window), gtkblist->vbox); 3971 gtk_container_add(GTK_CONTAINER(gtkblist->window), gtkblist->main_vbox);
3917 3972
3918 g_signal_connect(G_OBJECT(gtkblist->window), "delete_event", G_CALLBACK(gtk_blist_delete_cb), NULL); 3973 g_signal_connect(G_OBJECT(gtkblist->window), "delete_event", G_CALLBACK(gtk_blist_delete_cb), NULL);
3919 g_signal_connect(G_OBJECT(gtkblist->window), "configure_event", G_CALLBACK(gtk_blist_configure_cb), NULL); 3974 g_signal_connect(G_OBJECT(gtkblist->window), "configure_event", G_CALLBACK(gtk_blist_configure_cb), NULL);
3920 g_signal_connect(G_OBJECT(gtkblist->window), "visibility_notify_event", G_CALLBACK(gtk_blist_visibility_cb), NULL); 3975 g_signal_connect(G_OBJECT(gtkblist->window), "visibility_notify_event", G_CALLBACK(gtk_blist_visibility_cb), NULL);
3921 g_signal_connect(G_OBJECT(gtkblist->window), "window_state_event", G_CALLBACK(gtk_blist_window_state_cb), NULL); 3976 g_signal_connect(G_OBJECT(gtkblist->window), "window_state_event", G_CALLBACK(gtk_blist_window_state_cb), NULL);
3938 menu = gtk_item_factory_get_widget(gtkblist->ift, "<GaimMain>"); 3993 menu = gtk_item_factory_get_widget(gtkblist->ift, "<GaimMain>");
3939 gtkblist->menutray = gaim_gtk_menu_tray_new(); 3994 gtkblist->menutray = gaim_gtk_menu_tray_new();
3940 gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtkblist->menutray); 3995 gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtkblist->menutray);
3941 gtk_widget_show(gtkblist->menutray); 3996 gtk_widget_show(gtkblist->menutray);
3942 gtk_widget_show(menu); 3997 gtk_widget_show(menu);
3943 gtk_box_pack_start(GTK_BOX(gtkblist->vbox), menu, FALSE, FALSE, 0); 3998 gtk_box_pack_start(GTK_BOX(gtkblist->main_vbox), menu, FALSE, FALSE, 0);
3944 3999
3945 accountmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts")); 4000 accountmenu = gtk_item_factory_get_widget(gtkblist->ift, N_("/Accounts"));
4001
4002
4003 /****************************** Notebook *************************************/
4004 gtkblist->notebook = gtk_notebook_new();
4005 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gtkblist->notebook), FALSE);
4006 gtk_notebook_set_show_border(GTK_NOTEBOOK(gtkblist->notebook), FALSE);
4007 gtk_box_pack_start(GTK_BOX(gtkblist->main_vbox), gtkblist->notebook, TRUE, TRUE, 0);
4008
4009 #if 0
4010 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), kiosk_page(), NULL);
4011 #endif
4012
4013 /* Translators: Please maintain the use of -> and <- to refer to menu heirarchy */
4014 pretty = gaim_gtk_make_pretty_arrows(_("<span weight='bold' size='larger'>Welcome to Gaim!</span>\n\n"
4015
4016 "You have no accounts enabled. Enable your IM accounts from the "
4017 "<b>Accounts</b> window at <b>Accounts->Add/Edit</b>. Once you "
4018 "enable accounts, you'll be able to sign on, set your status, "
4019 "and talk to your friends."));
4020 label = gtk_label_new(NULL);
4021 gtk_widget_set_size_request(label, gaim_prefs_get_int("/gaim/gtk/blist/width") - 12, -1);
4022 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
4023 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.2);
4024 gtk_label_set_markup(GTK_LABEL(label), pretty);
4025 g_free(pretty);
4026 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook),label, NULL);
4027 gtkblist->vbox = gtk_vbox_new(FALSE, 0);
4028 gtk_notebook_append_page(GTK_NOTEBOOK(gtkblist->notebook), gtkblist->vbox, NULL);
4029 gtk_widget_show_all(gtkblist->notebook);
3946 4030
3947 4031
3948 /****************************** GtkTreeView **********************************/ 4032 /****************************** GtkTreeView **********************************/
3949 sw = gtk_scrolled_window_new(NULL,NULL); 4033 sw = gtk_scrolled_window_new(NULL,NULL);
3950 gtk_widget_show(sw); 4034 gtk_widget_show(sw);
5516 gaim_prefs_add_bool("/gaim/gtk/blist/list_visible", TRUE); 5600 gaim_prefs_add_bool("/gaim/gtk/blist/list_visible", TRUE);
5517 gaim_prefs_add_bool("/gaim/gtk/blist/list_maximized", FALSE); 5601 gaim_prefs_add_bool("/gaim/gtk/blist/list_maximized", FALSE);
5518 gaim_prefs_add_string("/gaim/gtk/blist/sort_type", "alphabetical"); 5602 gaim_prefs_add_string("/gaim/gtk/blist/sort_type", "alphabetical");
5519 gaim_prefs_add_int("/gaim/gtk/blist/x", 0); 5603 gaim_prefs_add_int("/gaim/gtk/blist/x", 0);
5520 gaim_prefs_add_int("/gaim/gtk/blist/y", 0); 5604 gaim_prefs_add_int("/gaim/gtk/blist/y", 0);
5521 gaim_prefs_add_int("/gaim/gtk/blist/width", 309); /* Golden ratio, baby */ 5605 gaim_prefs_add_int("/gaim/gtk/blist/width", 250); /* Golden ratio, baby */
5522 gaim_prefs_add_int("/gaim/gtk/blist/height", 500); /* Golden ratio, baby */ 5606 gaim_prefs_add_int("/gaim/gtk/blist/height", 405); /* Golden ratio, baby */
5523 gaim_prefs_add_int("/gaim/gtk/blist/tooltip_delay", 500); 5607 gaim_prefs_add_int("/gaim/gtk/blist/tooltip_delay", 500);
5524 5608
5525 /* Register our signals */ 5609 /* Register our signals */
5526 gaim_signal_register(gtk_blist_handle, "gtkblist-hiding", 5610 gaim_signal_register(gtk_blist_handle, "gtkblist-hiding",
5527 gaim_marshal_VOID__POINTER, NULL, 1, 5611 gaim_marshal_VOID__POINTER, NULL, 1,