comparison pidgin/gtkconv.c @ 25471:fb4df531105b

propagate from branch 'im.pidgin.pidgin' (head 15e8fddee885a9fd505a14ff31f33608aebc8e28) to branch 'im.pidgin.pidgin.yaz' (head 44e2d81319ce31cc44415bf29950964566b9a89c)
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 30 Apr 2007 13:48:29 +0000
parents fbf111436896 fd6c3dc4641f
children 3b014d70e7c9
comparison
equal deleted inserted replaced
16712:a73c9decc420 25471:fb4df531105b
127 #define MIN_COLOR_CONTRAST 200 127 #define MIN_COLOR_CONTRAST 200
128 128
129 #define NUM_NICK_COLORS 220 129 #define NUM_NICK_COLORS 220
130 static GdkColor *nick_colors = NULL; 130 static GdkColor *nick_colors = NULL;
131 static guint nbr_nick_colors; 131 static guint nbr_nick_colors;
132
133 /* yaz. If you want to use shortcut keys that may conflict with
134 inputmethods, change this to 1. */
135 #define ENABLE_SHORTCUT 0
132 136
133 typedef struct { 137 typedef struct {
134 GtkWidget *window; 138 GtkWidget *window;
135 139
136 GtkWidget *entry; 140 GtkWidget *entry;
2756 { N_("/Conversation/New Instant _Message..."), "<CTL>M", menu_new_conv_cb, 2760 { N_("/Conversation/New Instant _Message..."), "<CTL>M", menu_new_conv_cb,
2757 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW }, 2761 0, "<StockItem>", PIDGIN_STOCK_TOOLBAR_MESSAGE_NEW },
2758 2762
2759 { "/Conversation/sep0", NULL, NULL, 0, "<Separator>", NULL }, 2763 { "/Conversation/sep0", NULL, NULL, 0, "<Separator>", NULL },
2760 2764
2765 #if ENABLE_SHORTCUT
2761 { N_("/Conversation/_Find..."), NULL, menu_find_cb, 0, 2766 { N_("/Conversation/_Find..."), NULL, menu_find_cb, 0,
2762 "<StockItem>", GTK_STOCK_FIND }, 2767 "<StockItem>", GTK_STOCK_FIND },
2768 #else
2769 { N_("/Conversation/_Find..."), NULL, menu_find_cb, 0,
2770 "<Item>" },
2771 #endif
2763 { N_("/Conversation/View _Log"), NULL, menu_view_log_cb, 0, "<Item>", NULL }, 2772 { N_("/Conversation/View _Log"), NULL, menu_view_log_cb, 0, "<Item>", NULL },
2764 { N_("/Conversation/_Save As..."), NULL, menu_save_as_cb, 0, 2773 { N_("/Conversation/_Save As..."), NULL, menu_save_as_cb, 0,
2765 "<StockItem>", GTK_STOCK_SAVE_AS }, 2774 "<StockItem>", GTK_STOCK_SAVE_AS },
2775 #if ENABLE_SHORTCUT
2766 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR }, 2776 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<StockItem>", GTK_STOCK_CLEAR },
2767 2777 #else
2778 { N_("/Conversation/Clea_r Scrollback"), "<CTL>L", menu_clear_cb, 0, "<Item>" },
2779 #endif
2768 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL }, 2780 { "/Conversation/sep1", NULL, NULL, 0, "<Separator>", NULL },
2769 2781
2770 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_FILE_TRANSFER }, 2782 { N_("/Conversation/Se_nd File..."), NULL, menu_send_file_cb, 0, "<StockItem>", PIDGIN_STOCK_FILE_TRANSFER },
2771 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb, 2783 { N_("/Conversation/Add Buddy _Pounce..."), NULL, menu_add_pounce_cb,
2772 0, "<Item>", NULL }, 2784 0, "<Item>", NULL },
2785 #if ENABLE_SHORTCUT
2773 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0, 2786 { N_("/Conversation/_Get Info"), "<CTL>O", menu_get_info_cb, 0,
2774 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO }, 2787 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO },
2788 #else
2789 { N_("/Conversation/_Get Info"), NULL, menu_get_info_cb, 0,
2790 "<StockItem>", PIDGIN_STOCK_TOOLBAR_USER_INFO },
2791 #endif
2775 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0, 2792 { N_("/Conversation/In_vite..."), NULL, menu_invite_cb, 0,
2776 "<Item>", NULL }, 2793 "<Item>", NULL },
2777 { N_("/Conversation/M_ore"), NULL, NULL, 0, "<Branch>", NULL }, 2794 { N_("/Conversation/M_ore"), NULL, NULL, 0, "<Branch>", NULL },
2778 2795
2779 { "/Conversation/sep2", NULL, NULL, 0, "<Separator>", NULL }, 2796 { "/Conversation/sep2", NULL, NULL, 0, "<Separator>", NULL },
3336 3353
3337 if (win->menu.send_to != NULL) 3354 if (win->menu.send_to != NULL)
3338 gtk_widget_destroy(win->menu.send_to); 3355 gtk_widget_destroy(win->menu.send_to);
3339 3356
3340 /* Build the Send To menu */ 3357 /* Build the Send To menu */
3358
3359 #if ENABLE_SHORTCUT
3341 win->menu.send_to = gtk_menu_item_new_with_mnemonic(_("_Send To")); 3360 win->menu.send_to = gtk_menu_item_new_with_mnemonic(_("_Send To"));
3361 #else
3362 win->menu.send_to = gtk_menu_item_new_with_mnemonic(_("Send To"));
3363 #endif
3342 gtk_widget_show(win->menu.send_to); 3364 gtk_widget_show(win->menu.send_to);
3343 3365
3344 menu = gtk_menu_new(); 3366 menu = gtk_menu_new();
3345 gtk_menu_shell_insert(GTK_MENU_SHELL(win->menu.menubar), 3367 gtk_menu_shell_insert(GTK_MENU_SHELL(win->menu.menubar),
3346 win->menu.send_to, 2); 3368 win->menu.send_to, 2);
3810 PurplePluginProtocolInfo *prpl_info = NULL; 3832 PurplePluginProtocolInfo *prpl_info = NULL;
3811 PurpleConnection *gc; 3833 PurpleConnection *gc;
3812 PurpleConversation *conv = gtkconv->active_conv; 3834 PurpleConversation *conv = gtkconv->active_conv;
3813 PidginChatPane *gtkchat; 3835 PidginChatPane *gtkchat;
3814 char *new_topic; 3836 char *new_topic;
3815 const char *current_topic; 3837 // const char *current_topic;
3838 char dummy[] = "No Topic";
3839 char *current_topic = NULL;
3816 3840
3817 gc = purple_conversation_get_gc(conv); 3841 gc = purple_conversation_get_gc(conv);
3818 3842
3819 if(!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl))) 3843 if(!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)))
3820 return; 3844 return;
3823 return; 3847 return;
3824 3848
3825 gtkconv = PIDGIN_CONVERSATION(conv); 3849 gtkconv = PIDGIN_CONVERSATION(conv);
3826 gtkchat = gtkconv->u.chat; 3850 gtkchat = gtkconv->u.chat;
3827 new_topic = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtkchat->topic_text))); 3851 new_topic = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtkchat->topic_text)));
3852 // purple_debug_info("yaz gtkconv", "new_topic=%s\n", new_topic);
3828 current_topic = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)); 3853 current_topic = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv));
3854
3855 if(!current_topic)
3856 current_topic = dummy;
3857 // purple_debug_info("yaz gtkconv", "current_topic=%s\n", current_topic);
3829 3858
3830 if(current_topic && !g_utf8_collate(new_topic, current_topic)){ 3859 if(current_topic && !g_utf8_collate(new_topic, current_topic)){
3831 g_free(new_topic); 3860 g_free(new_topic);
3832 return; 3861 return;
3833 } 3862 }