Mercurial > pidgin
comparison src/gtkconv.c @ 7859:e873d0bd0e6c
[gaim-migrate @ 8513]
I changed some stuff with conversation menus. Stuff is renamed,
moved around, not grayed out, grayed out, visible, somewhat works
for chats, etc. Ima finish this tomorrow because it's 6 o'freaking
clock. It shouldn't make anything worse, and might make some things
better.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 14 Dec 2003 11:03:54 +0000 |
parents | 43f63ff8a6d8 |
children | f9df510460d7 |
comparison
equal
deleted
inserted
replaced
7858:1ce040412bd5 | 7859:e873d0bd0e6c |
---|---|
479 | 479 |
480 static void | 480 static void |
481 add_cb(GtkWidget *widget, GaimConversation *conv) | 481 add_cb(GtkWidget *widget, GaimConversation *conv) |
482 { | 482 { |
483 GaimAccount *account; | 483 GaimAccount *account; |
484 GaimBuddy *b; | |
485 const char *name; | 484 const char *name; |
485 GaimConversationType type; | |
486 | 486 |
487 account = gaim_conversation_get_account(conv); | 487 account = gaim_conversation_get_account(conv); |
488 name = gaim_conversation_get_name(conv); | 488 name = gaim_conversation_get_name(conv); |
489 b = gaim_find_buddy(account, name); | 489 type = gaim_conversation_get_type(conv); |
490 | 490 |
491 if (b != NULL) | 491 if (GAIM_CONV_IM(conv)) { |
492 show_confirm_del(b); | 492 GaimBuddy *b; |
493 else if (account != NULL && gaim_account_is_connected(account)) | 493 |
494 gaim_blist_request_add_buddy(account, (char *)name, NULL, NULL); | 494 b = gaim_find_buddy(account, name); |
495 if (b != NULL) | |
496 show_confirm_del(b); | |
497 else if (account != NULL && gaim_account_is_connected(account)) | |
498 gaim_blist_request_add_buddy(account, (char *)name, NULL, NULL); | |
499 } else if (GAIM_CONV_CHAT(conv)) { | |
500 GaimChat *c; | |
501 | |
502 c = gaim_blist_find_chat(account, name); | |
503 if (c != NULL) | |
504 show_confirm_del_blist_chat(c); | |
505 else if (account != NULL && gaim_account_is_connected(account)) | |
506 gaim_blist_request_add_chat(account, NULL, NULL); | |
507 } | |
495 | 508 |
496 gtk_widget_grab_focus(GAIM_GTK_CONVERSATION(conv)->entry); | 509 gtk_widget_grab_focus(GAIM_GTK_CONVERSATION(conv)->entry); |
497 } | 510 } |
498 | 511 |
499 static void | 512 static void |
604 win = gaim_conversation_get_window(conv); | 617 win = gaim_conversation_get_window(conv); |
605 gtkwin = GAIM_GTK_WINDOW(win); | 618 gtkwin = GAIM_GTK_WINDOW(win); |
606 | 619 |
607 /* Create the new dialog. */ | 620 /* Create the new dialog. */ |
608 invite_dialog = gtk_dialog_new_with_buttons( | 621 invite_dialog = gtk_dialog_new_with_buttons( |
609 _("Gaim - Invite Buddy Into Chat Room"), | 622 _("Invite Buddy Into Chat Room"), |
610 GTK_WINDOW(gtkwin->window), | 623 GTK_WINDOW(gtkwin->window), |
611 GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | 624 GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
612 GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); | 625 GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
613 | 626 |
614 gtk_dialog_set_default_response(GTK_DIALOG(invite_dialog), | 627 gtk_dialog_set_default_response(GTK_DIALOG(invite_dialog), |
2075 } | 2088 } |
2076 | 2089 |
2077 /* Update the menubar */ | 2090 /* Update the menubar */ |
2078 if (gaim_conversation_get_type(conv) == GAIM_CONV_IM) { | 2091 if (gaim_conversation_get_type(conv) == GAIM_CONV_IM) { |
2079 gtk_widget_show(gtkwin->menu.view_log); | 2092 gtk_widget_show(gtkwin->menu.view_log); |
2080 | |
2081 if (gc && prpl_info->options & OPT_PROTO_IM_IMAGE) { | |
2082 gtk_widget_show(gtkwin->menu.insert_image); | |
2083 gtk_widget_set_sensitive(gtkconv->toolbar.image, TRUE); | |
2084 | |
2085 } | |
2086 else { | |
2087 gtk_widget_hide(gtkwin->menu.insert_image); | |
2088 gtk_widget_set_sensitive(gtkconv->toolbar.image, FALSE); | |
2089 } | |
2090 | |
2091 gtk_widget_show(gtkwin->menu.add_pounce); | 2093 gtk_widget_show(gtkwin->menu.add_pounce); |
2092 gtk_widget_show(gtkwin->menu.get_info); | 2094 gtk_widget_show(gtkwin->menu.get_info); |
2095 gtk_widget_hide(gtkwin->menu.invite); | |
2096 | |
2097 gtk_widget_show(gtkwin->menu.insert_image); | |
2098 if (gc && prpl_info->options & OPT_PROTO_IM_IMAGE) | |
2099 gtk_widget_set_sensitive(gtkwin->menu.insert_image, TRUE); | |
2100 else | |
2101 gtk_widget_set_sensitive(gtkwin->menu.insert_image, FALSE); | |
2102 | |
2093 gtk_widget_show(gtkwin->menu.warn); | 2103 gtk_widget_show(gtkwin->menu.warn); |
2104 if (gc && prpl_info->warn != NULL) | |
2105 gtk_widget_set_sensitive(gtkwin->menu.warn, TRUE); | |
2106 else | |
2107 gtk_widget_set_sensitive(gtkwin->menu.warn, FALSE); | |
2108 | |
2094 gtk_widget_show(gtkwin->menu.block); | 2109 gtk_widget_show(gtkwin->menu.block); |
2095 | 2110 |
2096 if (gaim_find_buddy(gaim_conversation_get_account(conv), | 2111 if (gaim_find_buddy(gaim_conversation_get_account(conv), |
2097 gaim_conversation_get_name(conv)) == NULL) { | 2112 gaim_conversation_get_name(conv)) == NULL) { |
2098 | |
2099 gtk_widget_show(gtkwin->menu.add); | 2113 gtk_widget_show(gtkwin->menu.add); |
2100 gtk_widget_hide(gtkwin->menu.remove); | 2114 gtk_widget_hide(gtkwin->menu.remove); |
2101 gtk_widget_set_sensitive(gtkwin->menu.alias, FALSE); | 2115 gtk_widget_set_sensitive(gtkwin->menu.alias, FALSE); |
2102 } | 2116 } else { |
2103 else { | |
2104 gtk_widget_show(gtkwin->menu.remove); | 2117 gtk_widget_show(gtkwin->menu.remove); |
2105 gtk_widget_hide(gtkwin->menu.add); | 2118 gtk_widget_hide(gtkwin->menu.add); |
2106 gtk_widget_set_sensitive(gtkwin->menu.alias, TRUE); | 2119 gtk_widget_set_sensitive(gtkwin->menu.alias, TRUE); |
2107 } | 2120 } |
2108 | |
2109 gtk_widget_set_sensitive(gtkwin->menu.add, TRUE); | 2121 gtk_widget_set_sensitive(gtkwin->menu.add, TRUE); |
2110 gtk_widget_set_sensitive(gtkwin->menu.remove, TRUE); | 2122 gtk_widget_set_sensitive(gtkwin->menu.remove, TRUE); |
2111 | |
2112 gtk_widget_hide(gtkwin->menu.invite); | |
2113 | 2123 |
2114 if (gtkwin->menu.send_as != NULL) | 2124 if (gtkwin->menu.send_as != NULL) |
2115 g_timeout_add(0, (GSourceFunc)update_send_as_selection, win); | 2125 g_timeout_add(0, (GSourceFunc)update_send_as_selection, win); |
2116 | 2126 |
2117 if (gtkconv->u.im->anim) { | 2127 if (gtkconv->u.im->anim) { |
2120 } else { | 2130 } else { |
2121 window_icon = get_tab_icon(conv); | 2131 window_icon = get_tab_icon(conv); |
2122 } | 2132 } |
2123 } | 2133 } |
2124 else if (gaim_conversation_get_type(conv) == GAIM_CONV_CHAT) { | 2134 else if (gaim_conversation_get_type(conv) == GAIM_CONV_CHAT) { |
2135 gtk_widget_hide(gtkwin->menu.view_log); | |
2136 gtk_widget_hide(gtkwin->menu.add_pounce); | |
2137 gtk_widget_hide(gtkwin->menu.get_info); | |
2125 gtk_widget_show(gtkwin->menu.invite); | 2138 gtk_widget_show(gtkwin->menu.invite); |
2126 | 2139 |
2127 gtk_widget_hide(gtkwin->menu.view_log); | |
2128 gtk_widget_hide(gtkwin->menu.insert_image); | 2140 gtk_widget_hide(gtkwin->menu.insert_image); |
2129 gtk_widget_set_sensitive(gtkconv->toolbar.image, FALSE); | 2141 gtk_widget_set_sensitive(gtkconv->toolbar.image, FALSE); |
2130 | 2142 |
2131 gtk_widget_set_sensitive(gtkwin->menu.alias, FALSE); | |
2132 | |
2133 gtk_widget_hide(gtkwin->menu.add_pounce); | |
2134 gtk_widget_hide(gtkwin->menu.get_info); | |
2135 gtk_widget_hide(gtkwin->menu.warn); | 2143 gtk_widget_hide(gtkwin->menu.warn); |
2136 gtk_widget_hide(gtkwin->menu.block); | 2144 gtk_widget_hide(gtkwin->menu.block); |
2137 | 2145 |
2138 if (gaim_find_chat(gaim_conversation_get_gc(conv), | 2146 if (gaim_find_chat(gaim_conversation_get_gc(conv), |
2139 gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv))) == NULL) { | 2147 gaim_conv_chat_get_id(GAIM_CONV_CHAT(conv))) == NULL) { |
2140 | |
2141 gtk_widget_show(gtkwin->menu.add); | 2148 gtk_widget_show(gtkwin->menu.add); |
2142 gtk_widget_hide(gtkwin->menu.remove); | 2149 gtk_widget_hide(gtkwin->menu.remove); |
2143 } | 2150 gtk_widget_set_sensitive(gtkwin->menu.alias, FALSE); |
2144 else { | 2151 } else { |
2145 gtk_widget_show(gtkwin->menu.remove); | 2152 gtk_widget_show(gtkwin->menu.remove); |
2146 gtk_widget_hide(gtkwin->menu.add); | 2153 gtk_widget_hide(gtkwin->menu.add); |
2147 } | 2154 gtk_widget_set_sensitive(gtkwin->menu.alias, TRUE); |
2148 | 2155 } |
2149 gtk_widget_set_sensitive(gtkwin->menu.add, FALSE); | 2156 gtk_widget_set_sensitive(gtkwin->menu.add, TRUE); |
2150 gtk_widget_set_sensitive(gtkwin->menu.remove, FALSE); | 2157 gtk_widget_set_sensitive(gtkwin->menu.remove, TRUE); |
2151 | 2158 |
2152 if (gtkwin->menu.send_as != NULL) | 2159 if (gtkwin->menu.send_as != NULL) |
2153 g_timeout_add(0, (GSourceFunc)update_send_as_selection, win); | 2160 g_timeout_add(0, (GSourceFunc)update_send_as_selection, win); |
2154 window_icon = get_tab_icon(conv); | 2161 window_icon = get_tab_icon(conv); |
2155 } | 2162 } |
2858 save_convo(GtkWidget *save, GaimConversation *c) | 2865 save_convo(GtkWidget *save, GaimConversation *c) |
2859 { | 2866 { |
2860 char buf[BUF_LONG]; | 2867 char buf[BUF_LONG]; |
2861 GtkWidget *window; | 2868 GtkWidget *window; |
2862 | 2869 |
2863 window = gtk_file_selection_new(_("Gaim - Save Conversation")); | 2870 window = gtk_file_selection_new(_("Save Conversation")); |
2864 | 2871 |
2865 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S "%s.log", | 2872 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S "%s.log", |
2866 gaim_home_dir(), gaim_normalize(c->account, c->name)); | 2873 gaim_home_dir(), gaim_normalize(c->account, c->name)); |
2867 gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf); | 2874 gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf); |
2868 g_object_set_data(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button), | 2875 g_object_set_data(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button), |
2877 static GtkItemFactoryEntry menu_items[] = | 2884 static GtkItemFactoryEntry menu_items[] = |
2878 { | 2885 { |
2879 /* Conversation menu */ | 2886 /* Conversation menu */ |
2880 { N_("/_Conversation"), NULL, NULL, 0, "<Branch>" }, | 2887 { N_("/_Conversation"), NULL, NULL, 0, "<Branch>" }, |
2881 | 2888 |
2882 { N_("/Conversation/_New Conversation..."), NULL, menu_new_conv_cb, | 2889 { N_("/Conversation/New _Instant Message..."), "<CTL>I", menu_new_conv_cb, |
2883 0, "<StockItem>", GTK_STOCK_NEW }, | 2890 0, "<StockItem>", GAIM_STOCK_IM }, |
2884 | 2891 |
2885 { "/Conversation/sep0", NULL, NULL, 0, "<Separator>" }, | 2892 { "/Conversation/sep0", NULL, NULL, 0, "<Separator>" }, |
2886 | 2893 |
2894 { N_("/Conversation/Find..."), NULL, menu_find_cb, 0, "<StockItem>", GTK_STOCK_FIND }, | |
2895 { N_("/Conversation/View _Log"), NULL, menu_view_log_cb, 0, NULL }, | |
2887 { N_("/Conversation/_Save As..."), NULL, menu_save_as_cb, 0, | 2896 { N_("/Conversation/_Save As..."), NULL, menu_save_as_cb, 0, |
2888 "<StockItem>", GTK_STOCK_SAVE_AS }, | 2897 "<StockItem>", GTK_STOCK_SAVE_AS }, |
2889 { N_("/Conversation/View _Log"), NULL, menu_view_log_cb, 0, NULL }, | |
2890 { N_("/Conversation/Find..."), NULL, menu_find_cb, 0, "<StockItem>", GTK_STOCK_FIND }, | |
2891 | 2898 |
2892 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>" }, | 2899 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>" }, |
2893 | 2900 |
2894 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, | 2901 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, |
2895 0, NULL }, | 2902 0, NULL }, |
2903 { N_("/Conversation/_Get Info"), NULL, menu_get_info_cb, 0, | |
2904 "<StockItem>", GAIM_STOCK_INFO }, | |
2905 { N_("/Conversation/_Warn..."), NULL, menu_warn_cb, 0, | |
2906 "<StockItem>", GAIM_STOCK_WARN }, | |
2907 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0, | |
2908 "<StockItem>", GAIM_STOCK_INVITE }, | |
2909 | |
2910 { "/Conversation/sep2", NULL, NULL, 0, "<Separator>" }, | |
2911 | |
2896 { N_("/Conversation/A_lias..."), NULL, menu_alias_cb, 0, | 2912 { N_("/Conversation/A_lias..."), NULL, menu_alias_cb, 0, |
2897 "<StockItem>", GAIM_STOCK_EDIT }, | 2913 "<StockItem>", GAIM_STOCK_EDIT }, |
2898 { N_("/Conversation/_Get Info..."), NULL, menu_get_info_cb, 0, | |
2899 "<StockItem>", GAIM_STOCK_INFO }, | |
2900 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0, | |
2901 "<StockItem>", GAIM_STOCK_INVITE }, | |
2902 | |
2903 { "/Conversation/sep2", NULL, NULL, 0, "<Separator>" }, | |
2904 | |
2905 { N_("/Conversation/Insert Lin_k..."), NULL, menu_insert_link_cb, 0, | |
2906 "<StockItem>", GAIM_STOCK_LINK }, | |
2907 { N_("/Conversation/Insert _Image..."), NULL, menu_insert_image_cb, 0, | |
2908 "<StockItem>", GAIM_STOCK_IMAGE }, | |
2909 | |
2910 { "/Conversation/sep3", NULL, NULL, 0, "<Separator>" }, | |
2911 | |
2912 { N_("/Conversation/_Warn..."), NULL, menu_warn_cb, 0, | |
2913 "<StockItem>", GAIM_STOCK_WARN }, | |
2914 { N_("/Conversation/_Block..."), NULL, menu_block_cb, 0, | 2914 { N_("/Conversation/_Block..."), NULL, menu_block_cb, 0, |
2915 "<StockItem>", GAIM_STOCK_BLOCK }, | 2915 "<StockItem>", GAIM_STOCK_BLOCK }, |
2916 { N_("/Conversation/_Add..."), NULL, menu_add_remove_cb, 0, | 2916 { N_("/Conversation/_Add..."), NULL, menu_add_remove_cb, 0, |
2917 "<StockItem>", GTK_STOCK_ADD }, | 2917 "<StockItem>", GTK_STOCK_ADD }, |
2918 { N_("/Conversation/_Remove..."), NULL, menu_add_remove_cb, 0, | 2918 { N_("/Conversation/_Remove..."), NULL, menu_add_remove_cb, 0, |
2919 "<StockItem>", GTK_STOCK_REMOVE }, | 2919 "<StockItem>", GTK_STOCK_REMOVE }, |
2920 | 2920 |
2921 { "/Conversation/sep3", NULL, NULL, 0, "<Separator>" }, | |
2922 | |
2923 { N_("/Conversation/Insert Lin_k..."), NULL, menu_insert_link_cb, 0, | |
2924 "<StockItem>", GAIM_STOCK_LINK }, | |
2925 { N_("/Conversation/Insert Imag_e..."), NULL, menu_insert_image_cb, 0, | |
2926 "<StockItem>", GAIM_STOCK_IMAGE }, | |
2927 | |
2921 { "/Conversation/sep4", NULL, NULL, 0, "<Separator>" }, | 2928 { "/Conversation/sep4", NULL, NULL, 0, "<Separator>" }, |
2922 | 2929 |
2923 { N_("/Conversation/_Close"), NULL, menu_close_conv_cb, 0, | 2930 { N_("/Conversation/_Close"), NULL, menu_close_conv_cb, 0, |
2924 "<StockItem>", GTK_STOCK_CLOSE }, | 2931 "<StockItem>", GTK_STOCK_CLOSE }, |
2925 | 2932 |
2980 gtk_item_factory_get_widget(gtkwin->menu.item_factory, | 2987 gtk_item_factory_get_widget(gtkwin->menu.item_factory, |
2981 N_("/Conversation/Alias...")); | 2988 N_("/Conversation/Alias...")); |
2982 | 2989 |
2983 gtkwin->menu.get_info = | 2990 gtkwin->menu.get_info = |
2984 gtk_item_factory_get_widget(gtkwin->menu.item_factory, | 2991 gtk_item_factory_get_widget(gtkwin->menu.item_factory, |
2985 N_("/Conversation/Get Info...")); | 2992 N_("/Conversation/Get Info")); |
2986 | 2993 |
2987 gtkwin->menu.invite = | 2994 gtkwin->menu.invite = |
2988 gtk_item_factory_get_widget(gtkwin->menu.item_factory, | 2995 gtk_item_factory_get_widget(gtkwin->menu.item_factory, |
2989 N_("/Conversation/Invite...")); | 2996 N_("/Conversation/Invite...")); |
2990 | 2997 |