annotate finch/gntconv.c @ 32523:5e1250393e28

*** Plucked rev 950eb2e674f6da789c0132765c4f2d68ccd0d617 (markdoliner@pidgin.im): Change the heuristic we use for setting od->icq. We used to set it to true any time the username contained only digits. Now we set it to try if account->protocol_id is prpl-icq. This means we're now relying on the user to tell us whether their account is AIM or ICQ... and I think that's fine. The reason for this change is that we/AOL apparently allow the user to login to ICQ accounts by entering their email address. This means we're no longer able to look at the username to determine whether it's an AIM name or an ICQ name. This was a problem because we were trying to format the spacing/capitalization in the username if the name was an icq email address, which resulted in an annoying popup error at login. Fixes #13883. It's probably safe for this to go into im.pidgin.pidgin (maybe after the pending release), but I really don't want to keep changing the 2.x.y branch. I think we need to move on to 3.x.y.
author Mark Doliner <mark@kingant.net>
date Sat, 18 Feb 2012 23:28:43 +0000
parents 62b11ad353eb
children 49a33bd1baf1 3828a61c44da
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /**
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 * @file gntconv.c GNT Conversation API
16194
0f0832c13fcb Rename the Doxygen group from gntui to finch and define the finch group
Richard Laager <rlaager@wiktel.com>
parents: 16128
diff changeset
3 * @ingroup finch
20251
6b8bc3309ab7 applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@wiktel.com>
parents: 19778
diff changeset
4 */
6b8bc3309ab7 applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@wiktel.com>
parents: 19778
diff changeset
5
6b8bc3309ab7 applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@wiktel.com>
parents: 19778
diff changeset
6 /* finch
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 *
15870
66dff3dfdea6 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@wiktel.com>
parents: 15822
diff changeset
8 * Finch is the legal property of its developers, whose names are too numerous
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * source distribution.
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 *
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * (at your option) any later version.
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 *
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 * GNU General Public License for more details.
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 *
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
19681
44b4e8bd759b The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19632
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 */
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26
28770
259bbfb423d4 Fix all the remaining files for which internal.h doesn't end up being the first include.
Paul Aurich <paul@darkrain42.org>
parents: 28417
diff changeset
27 #include <internal.h>
18210
b8572b937c09 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <stu@nosnilmot.com>
parents: 18100
diff changeset
28 #include "finch.h"
b8572b937c09 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <stu@nosnilmot.com>
parents: 18100
diff changeset
29
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 #include <cmds.h>
28263
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
31 #include <core.h>
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32 #include <idle.h>
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 #include <prefs.h>
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34 #include <util.h>
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 #include "gntaccount.h"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 #include "gntblist.h"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38 #include "gntconv.h"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39 #include "gntdebug.h"
22248
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
40 #include "gntlog.h"
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
41 #include "gntplugin.h"
23231
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
42 #include "gntpounce.h"
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
43 #include "gntprefs.h"
23231
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
44 #include "gntrequest.h"
19447
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
45 #include "gntsound.h"
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
46 #include "gntstatus.h"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
47
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48 #include "gnt.h"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
49 #include "gntbox.h"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
50 #include "gntentry.h"
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
51 #include "gntlabel.h"
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
52 #include "gntmenu.h"
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
53 #include "gntmenuitem.h"
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
54 #include "gntmenuitemcheck.h"
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
55 #include "gntstyle.h"
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
56 #include "gnttextview.h"
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
57 #include "gnttree.h"
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
58 #include "gntutils.h"
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
59 #include "gntwindow.h"
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60
16424
4999bbc52881 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@gmail.com>
parents: 16194
diff changeset
61 #define PREF_ROOT "/finch/conversations"
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
62 #define PREF_CHAT PREF_ROOT "/chats"
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
63 #define PREF_USERLIST PREF_CHAT "/userlist"
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
64
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65 #include "config.h"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
66
17021
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
67 static void finch_write_common(PurpleConversation *conv, const char *who,
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
68 const char *message, PurpleMessageFlags flags, time_t mtime);
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
69 static void generate_send_to_menu(FinchConv *ggc);
17021
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
70
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
71 static int color_message_receive;
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
72 static int color_message_send;
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
73 static int color_message_highlight;
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
74 static int color_message_action;
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
75 static int color_timestamp;
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
76
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
77 static PurpleBuddy *
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
78 find_buddy_for_conversation(PurpleConversation *conv)
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
79 {
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
80 return purple_find_buddy(purple_conversation_get_account(conv),
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
81 purple_conversation_get_name(conv));
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
82 }
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
83
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
84 static PurpleChat *
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
85 find_chat_for_conversation(PurpleConversation *conv)
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
86 {
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
87 return purple_blist_find_chat(purple_conversation_get_account(conv),
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
88 purple_conversation_get_name(conv));
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
89 }
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
90
19778
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
91 static PurpleBlistNode *
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
92 get_conversation_blist_node(PurpleConversation *conv)
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
93 {
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
94 PurpleBlistNode *node = NULL;
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
95
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
96 switch (purple_conversation_get_type(conv)) {
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
97 case PURPLE_CONV_TYPE_IM:
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
98 node = (PurpleBlistNode*)find_buddy_for_conversation(conv);
22212
6bb29f94862c Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22007
diff changeset
99 node = node ? purple_blist_node_get_parent(node) : NULL;
19778
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
100 break;
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
101 case PURPLE_CONV_TYPE_CHAT:
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
102 node = (PurpleBlistNode*)find_chat_for_conversation(conv);
19778
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
103 break;
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
104 default:
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
105 break;
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
106 }
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
107 return node;
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
108 }
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
109
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110 static void
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111 send_typing_notification(GntWidget *w, FinchConv *ggconv)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113 const char *text = gnt_entry_get_text(GNT_ENTRY(ggconv->entry));
17813
289ac53f753f Do not send typing notification if you are typing a /-command.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17750
diff changeset
114 gboolean empty = (!text || !*text || (*text == '/'));
16424
4999bbc52881 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@gmail.com>
parents: 16194
diff changeset
115 if (purple_prefs_get_bool("/finch/conversations/notify_typing")) {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
116 PurpleConversation *conv = ggconv->active_conv;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
117 PurpleConvIm *im = PURPLE_CONV_IM(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
118 if (!empty) {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
119 gboolean send = (purple_conv_im_get_send_typed_timeout(im) == 0);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
120
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
121 purple_conv_im_stop_send_typed_timeout(im);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
122 purple_conv_im_start_send_typed_timeout(im);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
123 if (send || (purple_conv_im_get_type_again(im) != 0 &&
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
124 time(NULL) > purple_conv_im_get_type_again(im))) {
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
125 unsigned int timeout;
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
126 timeout = serv_send_typing(purple_conversation_get_gc(conv),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
127 purple_conversation_get_name(conv),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
128 PURPLE_TYPING);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
129 purple_conv_im_set_type_again(im, timeout);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
130 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
131 } else {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
132 purple_conv_im_stop_send_typed_timeout(im);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
134 serv_send_typing(purple_conversation_get_gc(conv),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
135 purple_conversation_get_name(conv),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
136 PURPLE_NOT_TYPING);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
137 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
138 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
140
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
141 static void
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
142 entry_key_pressed(GntWidget *w, FinchConv *ggconv)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
143 {
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
144 const char *text = gnt_entry_get_text(GNT_ENTRY(ggconv->entry));
23361
54aaea893a89 Send '//message' as '/message', instead of looking for a 'message' command.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23309
diff changeset
145 if (*text == '/' && *(text + 1) != '/')
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
146 {
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
147 PurpleConversation *conv = ggconv->active_conv;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
148 PurpleCmdStatus status;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
149 const char *cmdline = text + 1;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
150 char *error = NULL, *escape;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
151
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
152 escape = g_markup_escape_text(cmdline, -1);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
153 status = purple_cmd_do_command(conv, cmdline, escape, &error);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
154 g_free(escape);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
155
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
156 switch (status)
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
157 {
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
158 case PURPLE_CMD_STATUS_OK:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
159 break;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
160 case PURPLE_CMD_STATUS_NOT_FOUND:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
161 purple_conversation_write(conv, "", _("No such command."),
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
162 PURPLE_MESSAGE_NO_LOG, time(NULL));
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
163 break;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
164 case PURPLE_CMD_STATUS_WRONG_ARGS:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
165 purple_conversation_write(conv, "", _("Syntax Error: You typed the wrong number of arguments "
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
166 "to that command."),
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
167 PURPLE_MESSAGE_NO_LOG, time(NULL));
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
168 break;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
169 case PURPLE_CMD_STATUS_FAILED:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
170 purple_conversation_write(conv, "", error ? error : _("Your command failed for an unknown reason."),
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
171 PURPLE_MESSAGE_NO_LOG, time(NULL));
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
172 break;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
173 case PURPLE_CMD_STATUS_WRONG_TYPE:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
174 if(purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
175 purple_conversation_write(conv, "", _("That command only works in chats, not IMs."),
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
176 PURPLE_MESSAGE_NO_LOG, time(NULL));
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
177 else
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
178 purple_conversation_write(conv, "", _("That command only works in IMs, not chats."),
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
179 PURPLE_MESSAGE_NO_LOG, time(NULL));
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
180 break;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
181 case PURPLE_CMD_STATUS_WRONG_PRPL:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
182 purple_conversation_write(conv, "", _("That command doesn't work on this protocol."),
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
183 PURPLE_MESSAGE_NO_LOG, time(NULL));
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
184 break;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
185 }
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
186 g_free(error);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
187 }
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
188 else if (!purple_account_is_connected(purple_conversation_get_account(ggconv->active_conv)))
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
189 {
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
190 purple_conversation_write(ggconv->active_conv, "", _("Message was not sent, because you are not signed on."),
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
191 PURPLE_MESSAGE_ERROR | PURPLE_MESSAGE_NO_LOG, time(NULL));
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
192 }
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
193 else
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
194 {
27440
4fc04d98e1e8 Use purple_markup_escape_text instead of the glib version.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 26541
diff changeset
195 char *escape = purple_markup_escape_text((*text == '/' ? text + 1 : text), -1);
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
196 switch (purple_conversation_get_type(ggconv->active_conv))
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
197 {
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
198 case PURPLE_CONV_TYPE_IM:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
199 purple_conv_im_send_with_flags(PURPLE_CONV_IM(ggconv->active_conv), escape, PURPLE_MESSAGE_SEND);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
200 break;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
201 case PURPLE_CONV_TYPE_CHAT:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
202 purple_conv_chat_send(PURPLE_CONV_CHAT(ggconv->active_conv), escape);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
203 break;
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
204 default:
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
205 g_free(escape);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
206 g_return_if_reached();
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
207 }
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
208 g_free(escape);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
209 purple_idle_touch();
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
210 }
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
211 gnt_entry_add_to_history(GNT_ENTRY(ggconv->entry), text);
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
212 gnt_entry_clear(GNT_ENTRY(ggconv->entry));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
213 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
214
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215 static void
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
216 closing_window(GntWidget *window, FinchConv *ggconv)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
217 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
218 GList *list = ggconv->list;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219 ggconv->window = NULL;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 while (list) {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
221 PurpleConversation *conv = list->data;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
222 list = list->next;
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
223 purple_conversation_destroy(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
226
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
227 static void
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
228 size_changed_cb(GntWidget *widget, int width, int height)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
229 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
230 int w, h;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
231 gnt_widget_get_size(widget, &w, &h);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
232 purple_prefs_set_int(PREF_ROOT "/size/width", w);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
233 purple_prefs_set_int(PREF_ROOT "/size/height", h);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
235
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
236 static void
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
237 save_position_cb(GntWidget *w, int x, int y)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
238 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
239 purple_prefs_set_int(PREF_ROOT "/position/x", x);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
240 purple_prefs_set_int(PREF_ROOT "/position/y", y);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
241 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
242
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
243 static PurpleConversation *
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
244 find_conv_with_contact(PurpleAccount *account, const char *name)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
246 PurpleBlistNode *node;
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
247 PurpleBuddy *buddy = purple_find_buddy(account, name);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
248 PurpleConversation *ret = NULL;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 if (!buddy)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 return NULL;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
252
22212
6bb29f94862c Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22007
diff changeset
253 for (node = purple_blist_node_get_first_child(purple_blist_node_get_parent((PurpleBlistNode*)buddy));
6bb29f94862c Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22007
diff changeset
254 node; node = purple_blist_node_get_sibling_next(node)) {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
255 if (node == (PurpleBlistNode*)buddy)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
256 continue;
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
257 if ((ret = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
22219
797230b3e48e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22217
diff changeset
258 purple_buddy_get_name((PurpleBuddy*)node), purple_buddy_get_account((PurpleBuddy*)node))) != NULL)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 break;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
260 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
261 return ret;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
263
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
264 static char *
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
265 get_conversation_title(PurpleConversation *conv, PurpleAccount *account)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
267 return g_strdup_printf(_("%s (%s -- %s)"), purple_conversation_get_title(conv),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
268 purple_account_get_username(account), purple_account_get_protocol_name(account));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
269 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
271 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
272 update_buddy_typing(PurpleAccount *account, const char *who, gpointer null)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
273 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
274 PurpleConversation *conv;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
275 FinchConv *ggc;
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
276 PurpleConvIm *im = NULL;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
277 char *title, *str;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
278
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
279 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, account);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
280
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
281 if (!conv)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
282 return;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
283
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
284 im = PURPLE_CONV_IM(conv);
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
285 ggc = FINCH_GET_DATA(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
286
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
287 if (purple_conv_im_get_typing_state(im) == PURPLE_TYPING) {
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288 int scroll;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 str = get_conversation_title(conv, account);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
290 title = g_strdup_printf(_("%s [%s]"), str,
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
291 gnt_ascii_only() ? "T" : "\342\243\277");
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
292 g_free(str);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
293
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
294 scroll = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggc->tv));
22437
ca6bc025aabb Patch from Kyle Turman to show the alias when available in the typing notification. Closes #4957.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22429
diff changeset
295 str = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_title(conv));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
296 /* Updating is a little buggy. So just remove and add a new one */
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
297 gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", NULL, TRUE);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
298 gnt_text_view_append_text_with_tag(GNT_TEXT_VIEW(ggc->tv),
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
299 str, GNT_TEXT_FLAG_DIM, "typing");
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
300 g_free(str);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301 if (scroll <= 1)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
302 gnt_text_view_scroll(GNT_TEXT_VIEW(ggc->tv), 0);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303 } else {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
304 title = get_conversation_title(conv, account);
18637
3597903cf8ff Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18427
diff changeset
305 gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", " ", TRUE);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
306 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
307 gnt_screen_rename_widget(ggc->window, title);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
308 g_free(title);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
309 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
310
17021
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
311 static void
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
312 chat_left_cb(PurpleConversation *conv, gpointer null)
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
313 {
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
314 finch_write_common(conv, NULL, _("You have left this chat."),
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
315 PURPLE_MESSAGE_SYSTEM, time(NULL));
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
316 }
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
317
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
318 static void
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
319 buddy_signed_on_off(PurpleBuddy *buddy, gpointer null)
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
320 {
22219
797230b3e48e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22217
diff changeset
321 PurpleConversation *conv = find_conv_with_contact(purple_buddy_get_account(buddy), purple_buddy_get_name(buddy));
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
322 if (conv == NULL)
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
323 return;
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
324 generate_send_to_menu(FINCH_GET_DATA(conv));
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
325 }
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
326
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
327 static void
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
328 account_signed_on_off(PurpleConnection *gc, gpointer null)
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
329 {
20053
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
330 GList *list = purple_get_ims();
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
331 while (list) {
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
332 PurpleConversation *conv = list->data;
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
333 PurpleConversation *cc = find_conv_with_contact(
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
334 purple_conversation_get_account(conv), purple_conversation_get_name(conv));
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
335 if (cc)
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
336 generate_send_to_menu(FINCH_GET_DATA(cc));
20053
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
337 list = list->next;
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
338 }
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
339
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
340 if (PURPLE_CONNECTION_IS_CONNECTED(gc)) {
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
341 /* We just signed on. Let's see if there's any chat that we have open,
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
342 * and hadn't left before the disconnect. */
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
343 list = purple_get_chats();
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
344 while (list) {
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
345 PurpleConversation *conv = list->data;
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
346 PurpleChat *chat;
20552
b7460582a135 Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20074
diff changeset
347 GHashTable *comps = NULL;
20053
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
348
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
349 list = list->next;
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
350 if (purple_conversation_get_account(conv) != purple_connection_get_account(gc) ||
20053
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
351 !purple_conversation_get_data(conv, "want-to-rejoin"))
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
352 continue;
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
353
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
354 chat = find_chat_for_conversation(conv);
20053
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
355 if (chat == NULL) {
22214
2b426862ffbf Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22213
diff changeset
356 PurplePluginProtocolInfo *info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
2b426862ffbf Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22213
diff changeset
357 if (info->chat_info_defaults != NULL)
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
358 comps = info->chat_info_defaults(gc, purple_conversation_get_name(conv));
20552
b7460582a135 Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20074
diff changeset
359 } else {
22219
797230b3e48e Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22217
diff changeset
360 comps = purple_chat_get_components(chat);
20053
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
361 }
20552
b7460582a135 Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20074
diff changeset
362 serv_join_chat(gc, comps);
b7460582a135 Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20074
diff changeset
363 if (chat == NULL && comps != NULL)
b7460582a135 Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20074
diff changeset
364 g_hash_table_destroy(comps);
20053
fb2880587f34 If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19778
diff changeset
365 }
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
366 }
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
367 }
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
368
28409
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
369 static void
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
370 account_signing_off(PurpleConnection *gc)
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
371 {
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
372 GList *list = purple_get_chats();
28417
e7bb163434c7 Show the message only for the chats for the account signing off.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28416
diff changeset
373 PurpleAccount *account = purple_connection_get_account(gc);
28409
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
374
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
375 /* We are about to sign off. See which chats we are currently in, and mark
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
376 * them for rejoin on reconnect. */
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
377 while (list) {
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
378 PurpleConversation *conv = list->data;
28417
e7bb163434c7 Show the message only for the chats for the account signing off.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28416
diff changeset
379 if (!purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv)) &&
e7bb163434c7 Show the message only for the chats for the account signing off.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28416
diff changeset
380 purple_conversation_get_account(conv) == account) {
28409
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
381 purple_conversation_set_data(conv, "want-to-rejoin", GINT_TO_POINTER(TRUE));
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
382 purple_conversation_write(conv, NULL, _("The account has disconnected and you are no "
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
383 "longer in this chat. You will be automatically rejoined in the chat when "
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
384 "the account reconnects."),
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
385 PURPLE_MESSAGE_SYSTEM, time(NULL));
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
386 }
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
387 list = list->next;
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
388 }
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
389 }
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
390
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
391 static gpointer
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21743
diff changeset
392 finch_conv_get_handle(void)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
393 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
394 static int handle;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
395 return &handle;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
396 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
397
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
398 static void
31444
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
399 cleared_message_history_cb(PurpleConversation *conv, gpointer data)
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
400 {
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
401 FinchConv *ggc = FINCH_GET_DATA(conv);
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
402 if (ggc)
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
403 gnt_text_view_clear(GNT_TEXT_VIEW(ggc->tv));
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
404 }
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
405
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
406 static void
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
407 clear_scrollback_cb(GntMenuItem *item, gpointer ggconv)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
408 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
409 FinchConv *ggc = ggconv;
31444
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
410 purple_conversation_clear_message_history(ggc->active_conv);
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
411 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
412
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
413 static void
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
414 send_file_cb(GntMenuItem *item, gpointer ggconv)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
415 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
416 FinchConv *ggc = ggconv;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
417 serv_send_file(purple_conversation_get_gc(ggc->active_conv),
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
418 purple_conversation_get_name(ggc->active_conv), NULL);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
419 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
420
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
421 static void
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
422 add_pounce_cb(GntMenuItem *item, gpointer ggconv)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
423 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
424 FinchConv *ggc = ggconv;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
425 finch_pounce_editor_show(
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
426 purple_conversation_get_account(ggc->active_conv),
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
427 purple_conversation_get_name(ggc->active_conv), NULL);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
428 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
429
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
430 static void
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
431 get_info_cb(GntMenuItem *item, gpointer ggconv)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
432 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
433 FinchConv *ggc = ggconv;
17750
319bcb73eb4e Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17091
diff changeset
434 finch_retrieve_user_info(purple_conversation_get_gc(ggc->active_conv),
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
435 purple_conversation_get_name(ggc->active_conv));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
436 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
437
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
438 static void
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
439 toggle_timestamps_cb(GntMenuItem *item, gpointer ggconv)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
440 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
441 purple_prefs_set_bool(PREF_ROOT "/timestamps",
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
442 !purple_prefs_get_bool(PREF_ROOT "/timestamps"));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
443 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
444
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
445 static void
19445
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
446 toggle_logging_cb(GntMenuItem *item, gpointer ggconv)
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
447 {
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
448 FinchConv *fc = ggconv;
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
449 PurpleConversation *conv = fc->active_conv;
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
450 gboolean logging = gnt_menuitem_check_get_checked(GNT_MENU_ITEM_CHECK(item));
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
451 GList *iter;
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
452
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
453 if (logging == purple_conversation_is_logging(conv))
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
454 return;
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
455
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
456 /* Xerox */
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
457 if (logging) {
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
458 /* Enable logging first so the message below can be logged. */
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
459 purple_conversation_set_logging(conv, TRUE);
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
460
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
461 purple_conversation_write(conv, NULL,
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
462 _("Logging started. Future messages in this conversation will be logged."),
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
463 PURPLE_MESSAGE_SYSTEM, time(NULL));
19445
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
464 } else {
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
465 purple_conversation_write(conv, NULL,
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
466 _("Logging stopped. Future messages in this conversation will not be logged."),
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
467 PURPLE_MESSAGE_SYSTEM, time(NULL));
19445
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
468
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
469 /* Disable the logging second, so that the above message can be logged. */
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
470 purple_conversation_set_logging(conv, FALSE);
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
471 }
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
472
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
473 /* Each conversation with the same person will have the same logging setting */
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
474 for (iter = fc->list; iter; iter = iter->next) {
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
475 if (iter->data == conv)
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
476 continue;
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
477 purple_conversation_set_logging(iter->data, logging);
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
478 }
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
479 }
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
480
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
481 static void
19447
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
482 toggle_sound_cb(GntMenuItem *item, gpointer ggconv)
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
483 {
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
484 FinchConv *fc = ggconv;
19778
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
485 PurpleBlistNode *node = get_conversation_blist_node(fc->active_conv);
19447
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
486 fc->flags ^= FINCH_CONV_NO_SOUND;
19778
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
487 if (node)
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
488 purple_blist_node_set_bool(node, "gnt-mute-sound", !!(fc->flags & FINCH_CONV_NO_SOUND));
19447
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
489 }
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
490
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
491 static void
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
492 send_to_cb(GntMenuItem *m, gpointer n)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
493 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
494 PurpleAccount *account = g_object_get_data(G_OBJECT(m), "purple_account");
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
495 gchar *buddy = g_object_get_data(G_OBJECT(m), "purple_buddy_name");
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
496 PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, buddy);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
497 finch_conversation_set_active(conv);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
498 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
499
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
500 static void
22248
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
501 view_log_cb(GntMenuItem *n, gpointer ggc)
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
502 {
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
503 FinchConv *fc;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
504 PurpleConversation *conv;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
505 PurpleLogType type;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
506 const char *name;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
507 PurpleAccount *account;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
508 GSList *buddies;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
509 GSList *cur;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
510
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
511 fc = ggc;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
512 conv = fc->active_conv;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
513
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
514 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
515 type = PURPLE_LOG_IM;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
516 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
517 type = PURPLE_LOG_CHAT;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
518 else
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
519 return;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
520
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
521 name = purple_conversation_get_name(conv);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
522 account = purple_conversation_get_account(conv);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
523
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
524 buddies = purple_find_buddies(account, name);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
525 for (cur = buddies; cur != NULL; cur = cur->next) {
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
526 PurpleBlistNode *node = cur->data;
25804
53c27ca1bb71 Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24237
diff changeset
527 if ((node != NULL) &&
53c27ca1bb71 Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24237
diff changeset
528 (purple_blist_node_get_sibling_prev(node) || purple_blist_node_get_sibling_next(node))) {
53c27ca1bb71 Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 24237
diff changeset
529 finch_log_show_contact((PurpleContact *)purple_blist_node_get_parent(node));
22248
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
530 g_slist_free(buddies);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
531 return;
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
532 }
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
533 }
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
534 g_slist_free(buddies);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
535
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
536 finch_log_show(type, name, account);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
537 }
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
538
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
539 static void
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
540 generate_send_to_menu(FinchConv *ggc)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
541 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
542 GntWidget *sub, *menu = ggc->menu;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
543 GntMenuItem *item;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
544 GSList *buds;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
545 GList *list = NULL;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
546
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
547 buds = purple_find_buddies(purple_conversation_get_account(ggc->active_conv),
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
548 purple_conversation_get_name(ggc->active_conv));
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
549 if (!buds)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
550 return;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
551
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
552 if ((item = ggc->u.im->sendto) == NULL) {
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
553 item = gnt_menuitem_new(_("Send To"));
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
554 gnt_menu_add_item(GNT_MENU(menu), item);
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
555 ggc->u.im->sendto = item;
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
556 }
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
557 sub = gnt_menu_new(GNT_MENU_POPUP);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
558 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
559
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
560 for (; buds; buds = g_slist_delete_link(buds, buds)) {
25827
0e08c847517d Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@wiktel.com>
parents: 25804
diff changeset
561 PurpleBlistNode *node = PURPLE_BLIST_NODE(purple_buddy_get_contact(PURPLE_BUDDY(buds->data)));
22212
6bb29f94862c Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22007
diff changeset
562 for (node = purple_blist_node_get_first_child(node); node != NULL;
6bb29f94862c Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22007
diff changeset
563 node = purple_blist_node_get_sibling_next(node)) {
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
564 PurpleBuddy *buddy = (PurpleBuddy *)node;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
565 PurpleAccount *account = purple_buddy_get_account(buddy);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
566 if (purple_account_is_connected(account)) {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
567 /* Use the PurplePresence to get unique buddies. */
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
568 PurplePresence *presence = purple_buddy_get_presence(buddy);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
569 if (!g_list_find(list, presence))
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
570 list = g_list_prepend(list, presence);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
571 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
572 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
573 }
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
574 for (list = g_list_reverse(list); list != NULL; list = g_list_delete_link(list, list)) {
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
575 PurplePresence *pre = list->data;
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
576 PurpleBuddy *buddy = purple_presence_get_buddy(pre);
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
577 PurpleAccount *account = purple_buddy_get_account(buddy);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
578 gchar *name = g_strdup(purple_buddy_get_name(buddy));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
579 gchar *text = g_strdup_printf("%s (%s)", purple_buddy_get_name(buddy), purple_account_get_username(account));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
580 item = gnt_menuitem_new(text);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
581 g_free(text);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
582 gnt_menu_add_item(GNT_MENU(sub), item);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
583 gnt_menuitem_set_callback(item, send_to_cb, NULL);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
584 g_object_set_data(G_OBJECT(item), "purple_account", account);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
585 g_object_set_data_full(G_OBJECT(item), "purple_buddy_name", name, g_free);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
586 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
587 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
588
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
589 static void
23231
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
590 invite_cb(GntMenuItem *item, gpointer ggconv)
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
591 {
26541
15ae2dea92b3 Open a chat-invite dialog when a buddy is dragged onto a chat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 25827
diff changeset
592 FinchConv *fc = ggconv;
15ae2dea92b3 Open a chat-invite dialog when a buddy is dragged onto a chat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 25827
diff changeset
593 PurpleConversation *conv = fc->active_conv;
15ae2dea92b3 Open a chat-invite dialog when a buddy is dragged onto a chat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 25827
diff changeset
594 purple_conv_chat_invite_user(PURPLE_CONV_CHAT(conv), NULL, NULL, TRUE);
23231
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
595 }
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
596
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
597 static void
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
598 gg_create_menu(FinchConv *ggc)
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
599 {
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
600 GntWidget *menu, *sub;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
601 GntMenuItem *item;
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
602
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
603 ggc->menu = menu = gnt_menu_new(GNT_MENU_TOPLEVEL);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
604 gnt_window_set_menu(GNT_WINDOW(ggc->window), GNT_MENU(menu));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
605
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
606 item = gnt_menuitem_new(_("Conversation"));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
607 gnt_menu_add_item(GNT_MENU(menu), item);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
608
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
609 sub = gnt_menu_new(GNT_MENU_POPUP);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
610 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
611
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
612 item = gnt_menuitem_new(_("Clear Scrollback"));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
613 gnt_menu_add_item(GNT_MENU(sub), item);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
614 gnt_menuitem_set_callback(item, clear_scrollback_cb, ggc);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
615
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
616 item = gnt_menuitem_check_new(_("Show Timestamps"));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
617 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item),
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
618 purple_prefs_get_bool(PREF_ROOT "/timestamps"));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
619 gnt_menu_add_item(GNT_MENU(sub), item);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
620 gnt_menuitem_set_callback(item, toggle_timestamps_cb, ggc);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
621
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
622 if (purple_conversation_get_type(ggc->active_conv) == PURPLE_CONV_TYPE_IM) {
16958
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
623 PurpleAccount *account = purple_conversation_get_account(ggc->active_conv);
22213
16ff37f64e29 Update finch to not touch the internals of PurpleAccount. This also includes a change I made to reduce the Cyclomatic Complexity of one of the functions.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22212
diff changeset
624 PurpleConnection *gc = purple_account_get_connection(account);
22214
2b426862ffbf Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22213
diff changeset
625 PurplePluginProtocolInfo *pinfo =
2b426862ffbf Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22213
diff changeset
626 gc ? PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)) : NULL;
16958
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
627
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
628 if (pinfo && pinfo->get_info) {
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
629 item = gnt_menuitem_new(_("Get Info"));
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
630 gnt_menu_add_item(GNT_MENU(sub), item);
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
631 gnt_menuitem_set_callback(item, get_info_cb, ggc);
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
632 }
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
633
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
634 item = gnt_menuitem_new(_("Add Buddy Pounce..."));
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
635 gnt_menu_add_item(GNT_MENU(sub), item);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
636 gnt_menuitem_set_callback(item, add_pounce_cb, ggc);
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
637
16958
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
638 if (pinfo && pinfo->send_file &&
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
639 (!pinfo->can_receive_file ||
22213
16ff37f64e29 Update finch to not touch the internals of PurpleAccount. This also includes a change I made to reduce the Cyclomatic Complexity of one of the functions.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22212
diff changeset
640 pinfo->can_receive_file(gc, purple_conversation_get_name(ggc->active_conv)))) {
16958
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
641 item = gnt_menuitem_new(_("Send File"));
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
642 gnt_menu_add_item(GNT_MENU(sub), item);
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
643 gnt_menuitem_set_callback(item, send_file_cb, ggc);
1a336cfc410e Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16930
diff changeset
644 }
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
645
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
646 generate_send_to_menu(ggc);
23231
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
647 } else if (purple_conversation_get_type(ggc->active_conv) == PURPLE_CONV_TYPE_CHAT) {
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
648 item = gnt_menuitem_new(_("Invite..."));
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
649 gnt_menu_add_item(GNT_MENU(sub), item);
cb241bc04f9b Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22697
diff changeset
650 gnt_menuitem_set_callback(item, invite_cb, ggc);
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
651 }
19445
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
652
22248
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
653 item = gnt_menuitem_new(_("View Log..."));
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
654 gnt_menu_add_item(GNT_MENU(sub), item);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
655 gnt_menuitem_set_callback(item, view_log_cb, ggc);
88796aff14d6 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22219
diff changeset
656
19445
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
657 item = gnt_menuitem_check_new(_("Enable Logging"));
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
658 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item),
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
659 purple_conversation_is_logging(ggc->active_conv));
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
660 gnt_menu_add_item(GNT_MENU(sub), item);
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
661 gnt_menuitem_set_callback(item, toggle_logging_cb, ggc);
19447
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
662
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
663 item = gnt_menuitem_check_new(_("Enable Sounds"));
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
664 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item),
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
665 !(ggc->flags & FINCH_CONV_NO_SOUND));
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
666 gnt_menu_add_item(GNT_MENU(sub), item);
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
667 gnt_menuitem_set_callback(item, toggle_sound_cb, ggc);
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
668 }
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
669
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
670 static void
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
671 create_conv_from_userlist(GntWidget *widget, FinchConv *fc)
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
672 {
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
673 PurpleAccount *account = purple_conversation_get_account(fc->active_conv);
28416
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
674 PurpleConnection *gc = purple_account_get_connection(account);
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
675 PurplePluginProtocolInfo *prpl_info = NULL;
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
676 char *name, *realname;
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
677
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
678 if (!gc) {
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
679 purple_conversation_write(fc->active_conv, NULL, _("You are not connected."),
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
680 PURPLE_MESSAGE_SYSTEM, time(NULL));
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
681 return;
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
682 }
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
683
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
684 name = gnt_tree_get_selection_data(GNT_TREE(widget));
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
685
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
686 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl);
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
687 if (prpl_info && PURPLE_PROTOCOL_PLUGIN_HAS_FUNC(prpl_info, get_cb_real_name))
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
688 realname = prpl_info->get_cb_real_name(gc, purple_conv_chat_get_id(PURPLE_CONV_CHAT(fc->active_conv)), name);
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
689 else
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
690 realname = NULL;
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
691 purple_conversation_new(PURPLE_CONV_TYPE_IM, account, realname ? realname : name);
72472238ad45 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28409
diff changeset
692 g_free(realname);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
693 }
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
694
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
695 static void
18100
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
696 gained_focus_cb(GntWindow *window, FinchConv *fc)
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
697 {
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
698 GList *iter;
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
699 for (iter = fc->list; iter; iter = iter->next) {
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
700 purple_conversation_set_data(iter->data, "unseen-count", 0);
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
701 purple_conversation_update(iter->data, PURPLE_CONV_UPDATE_UNSEEN);
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
702 }
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
703 }
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
704
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
705 static void
18383
9eb2f4d27990 Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18232
diff changeset
706 completion_cb(GntEntry *entry, const char *start, const char *end)
9eb2f4d27990 Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18232
diff changeset
707 {
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
708 if (start == entry->start && *start != '/')
18383
9eb2f4d27990 Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18232
diff changeset
709 gnt_widget_key_pressed(GNT_WIDGET(entry), ": ");
9eb2f4d27990 Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18232
diff changeset
710 }
9eb2f4d27990 Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18232
diff changeset
711
9eb2f4d27990 Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18232
diff changeset
712 static void
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
713 gg_setup_commands(FinchConv *fconv, gboolean remove_first)
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
714 {
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
715 GList *commands;
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
716 char command[256] = "/";
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
717
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
718 if (remove_first) {
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
719 commands = purple_cmd_list(NULL);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
720 for (; commands; commands = g_list_delete_link(commands, commands)) {
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
721 g_strlcpy(command + 1, commands->data, sizeof(command) - 1);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
722 gnt_entry_remove_suggest(GNT_ENTRY(fconv->entry), command);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
723 }
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
724 }
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
725
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
726 commands = purple_cmd_list(fconv->active_conv);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
727 for (; commands; commands = g_list_delete_link(commands, commands)) {
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
728 g_strlcpy(command + 1, commands->data, sizeof(command) - 1);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
729 gnt_entry_add_suggest(GNT_ENTRY(fconv->entry), command);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
730 }
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
731 }
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
732
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
733 static void
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
734 cmd_added_cb(const char *cmd, PurpleCmdPriority prior, PurpleCmdFlag flags,
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
735 FinchConv *fconv)
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
736 {
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
737 gg_setup_commands(fconv, TRUE);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
738 }
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
739
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
740 static void
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
741 cmd_removed_cb(const char *cmd, FinchConv *fconv)
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
742 {
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
743 char command[256] = "/";
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
744 g_strlcpy(command + 1, cmd, sizeof(command) - 1);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
745 gnt_entry_remove_suggest(GNT_ENTRY(fconv->entry), command);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
746 gg_setup_commands(fconv, TRUE);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
747 }
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
748
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
749 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
750 finch_create_conversation(PurpleConversation *conv)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
751 {
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
752 FinchConv *ggc = FINCH_GET_DATA(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
753 char *title;
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
754 PurpleConversationType type;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
755 PurpleConversation *cc;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
756 PurpleAccount *account;
19778
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
757 PurpleBlistNode *convnode = NULL;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
758
22429
b0b8c94118c8 Make sure an existing conversation selected from the 'Send IM' dialog is given the focus.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22280
diff changeset
759 if (ggc) {
b0b8c94118c8 Make sure an existing conversation selected from the 'Send IM' dialog is given the focus.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22280
diff changeset
760 gnt_window_present(ggc->window);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
761 return;
22429
b0b8c94118c8 Make sure an existing conversation selected from the 'Send IM' dialog is given the focus.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22280
diff changeset
762 }
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
763
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
764 account = purple_conversation_get_account(conv);
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
765 cc = find_conv_with_contact(account, purple_conversation_get_name(conv));
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
766 if (cc && FINCH_GET_DATA(cc))
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
767 ggc = FINCH_GET_DATA(cc);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
768 else
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
769 ggc = g_new0(FinchConv, 1);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
770
19445
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
771 /* Each conversation with the same person will have the same logging setting */
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
772 if (ggc->list) {
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
773 purple_conversation_set_logging(conv,
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
774 purple_conversation_is_logging(ggc->list->data));
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
775 }
6759eb4387a5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
776
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
777 ggc->list = g_list_prepend(ggc->list, conv);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
778 ggc->active_conv = conv;
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
779 FINCH_SET_DATA(conv, ggc);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
780
22697
c7c97c62e131 Fix a crash which I think happens when the same buddy is in the buddylist
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22437
diff changeset
781 if (cc && FINCH_GET_DATA(cc) && cc != conv) {
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
782 finch_conversation_set_active(conv);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
783 return;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
784 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
785
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
786 type = purple_conversation_get_type(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
787 title = get_conversation_title(conv, account);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
788
16892
373466e3151a Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16424
diff changeset
789 ggc->window = gnt_vwindow_new(FALSE);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
790 gnt_box_set_title(GNT_BOX(ggc->window), title);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
791 gnt_box_set_toplevel(GNT_BOX(ggc->window), TRUE);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
792 gnt_box_set_pad(GNT_BOX(ggc->window), 0);
18232
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
793
22215
07c2b8fa7bb4 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22214
diff changeset
794 switch (purple_conversation_get_type(conv)) {
18232
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
795 case PURPLE_CONV_TYPE_UNKNOWN:
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
796 gnt_widget_set_name(ggc->window, "conversation-window-unknown" );
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
797 break;
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
798 case PURPLE_CONV_TYPE_IM:
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
799 gnt_widget_set_name(ggc->window, "conversation-window-im" );
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
800 break;
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
801 case PURPLE_CONV_TYPE_CHAT:
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
802 gnt_widget_set_name(ggc->window, "conversation-window-chat" );
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
803 break;
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
804 case PURPLE_CONV_TYPE_MISC:
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
805 gnt_widget_set_name(ggc->window, "conversation-window-misc" );
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
806 break;
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
807 case PURPLE_CONV_TYPE_ANY:
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
808 gnt_widget_set_name(ggc->window, "conversation-window-any" );
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
809 break;
2b1af79e768f Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18222
diff changeset
810 }
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
811
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
812 ggc->tv = gnt_text_view_new();
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
813 gnt_widget_set_name(ggc->tv, "conversation-window-textview");
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
814 gnt_widget_set_size(ggc->tv, purple_prefs_get_int(PREF_ROOT "/size/width"),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
815 purple_prefs_get_int(PREF_ROOT "/size/height"));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
816
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
817 if (type == PURPLE_CONV_TYPE_CHAT) {
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
818 GntWidget *hbox, *tree;
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
819 FinchConvChat *fc = ggc->u.chat = g_new0(FinchConvChat, 1);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
820 hbox = gnt_hbox_new(FALSE);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
821 gnt_box_set_pad(GNT_BOX(hbox), 0);
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
822 tree = fc->userlist = gnt_tree_new_with_columns(2);
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
823 gnt_tree_set_col_width(GNT_TREE(tree), 0, 1); /* The flag column */
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
824 gnt_tree_set_compare_func(GNT_TREE(tree), (GCompareFunc)g_utf8_collate);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
825 gnt_tree_set_hash_fns(GNT_TREE(tree), g_str_hash, g_str_equal, g_free);
19632
61473f8a5e2b Use the proper column for searching users in the chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19509
diff changeset
826 gnt_tree_set_search_column(GNT_TREE(tree), 1);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
827 GNT_WIDGET_SET_FLAGS(tree, GNT_WIDGET_NO_BORDER);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
828 gnt_box_add_widget(GNT_BOX(hbox), ggc->tv);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
829 gnt_box_add_widget(GNT_BOX(hbox), tree);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
830 gnt_box_add_widget(GNT_BOX(ggc->window), hbox);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
831 g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(create_conv_from_userlist), ggc);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
832 gnt_widget_set_visible(tree, purple_prefs_get_bool(PREF_USERLIST));
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
833 } else {
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
834 ggc->u.im = g_new0(FinchConvIm, 1);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
835 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->tv);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
836 }
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
837
16128
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
838 ggc->info = gnt_vbox_new(FALSE);
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
839 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->info);
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
840
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
841 ggc->entry = gnt_entry_new(NULL);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
842 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->entry);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
843 gnt_widget_set_name(ggc->entry, "conversation-window-entry");
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
844 gnt_entry_set_history_length(GNT_ENTRY(ggc->entry), -1);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
845 gnt_entry_set_word_suggest(GNT_ENTRY(ggc->entry), TRUE);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
846 gnt_entry_set_always_suggest(GNT_ENTRY(ggc->entry), FALSE);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
847
16124
ab3f93232a2d Add a utility function to assist scrolling in a textview.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 15870
diff changeset
848 gnt_text_view_attach_scroll_widget(GNT_TEXT_VIEW(ggc->tv), ggc->entry);
18427
be8c4eba38f6 Use the utility function for the conversation and debug windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18383
diff changeset
849 gnt_text_view_attach_pager_widget(GNT_TEXT_VIEW(ggc->tv), ggc->entry);
be8c4eba38f6 Use the utility function for the conversation and debug windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18383
diff changeset
850
21281
d7d3f31d52fb I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20740
diff changeset
851 g_signal_connect_after(G_OBJECT(ggc->entry), "activate", G_CALLBACK(entry_key_pressed), ggc);
18383
9eb2f4d27990 Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18232
diff changeset
852 g_signal_connect(G_OBJECT(ggc->entry), "completion", G_CALLBACK(completion_cb), NULL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
853 g_signal_connect(G_OBJECT(ggc->window), "destroy", G_CALLBACK(closing_window), ggc);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
854
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
855 gnt_widget_set_position(ggc->window, purple_prefs_get_int(PREF_ROOT "/position/x"),
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
856 purple_prefs_get_int(PREF_ROOT "/position/y"));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
857 gnt_widget_show(ggc->window);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
858
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
859 g_signal_connect(G_OBJECT(ggc->tv), "size_changed", G_CALLBACK(size_changed_cb), NULL);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
860 g_signal_connect(G_OBJECT(ggc->window), "position_set", G_CALLBACK(save_position_cb), NULL);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
861
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
862 if (type == PURPLE_CONV_TYPE_IM) {
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
863 g_signal_connect(G_OBJECT(ggc->entry), "text_changed", G_CALLBACK(send_typing_notification), ggc);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
864 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
865
19778
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
866 convnode = get_conversation_blist_node(conv);
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
867 if ((convnode && purple_blist_node_get_bool(convnode, "gnt-mute-sound")) ||
959b3aaba0b6 Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19681
diff changeset
868 !finch_sound_is_enabled())
19447
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
869 ggc->flags |= FINCH_CONV_NO_SOUND;
1a9b30a95fa6 Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19446
diff changeset
870
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
871 gg_create_menu(ggc);
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
872 gg_setup_commands(ggc, FALSE);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
873
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
874 purple_signal_connect(purple_cmds_get_handle(), "cmd-added", ggc,
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
875 G_CALLBACK(cmd_added_cb), ggc);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
876 purple_signal_connect(purple_cmds_get_handle(), "cmd-removed", ggc,
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
877 G_CALLBACK(cmd_removed_cb), ggc);
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
878
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
879 g_free(title);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
880 gnt_box_give_focus_to_child(GNT_BOX(ggc->window), ggc->entry);
18100
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
881 g_signal_connect(G_OBJECT(ggc->window), "gained-focus", G_CALLBACK(gained_focus_cb), ggc);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
882 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
883
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
884 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
885 finch_destroy_conversation(PurpleConversation *conv)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
886 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
887 /* do stuff here */
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
888 FinchConv *ggc = FINCH_GET_DATA(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
889 ggc->list = g_list_remove(ggc->list, conv);
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
890 if (ggc->list && conv == ggc->active_conv) {
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
891 ggc->active_conv = ggc->list->data;
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
892 gg_setup_commands(ggc, TRUE);
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
893 }
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
894
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
895 if (ggc->list == NULL) {
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
896 g_free(ggc->u.chat);
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
897 purple_signals_disconnect_by_handle(ggc);
18222
ef65d43190e5 Fix a few runtime warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18210
diff changeset
898 if (ggc->window)
ef65d43190e5 Fix a few runtime warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18210
diff changeset
899 gnt_widget_destroy(ggc->window);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
900 g_free(ggc);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
901 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
902 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
903
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
904 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
905 finch_write_common(PurpleConversation *conv, const char *who, const char *message,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
906 PurpleMessageFlags flags, time_t mtime)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
907 {
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
908 FinchConv *ggconv = FINCH_GET_DATA(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
909 char *strip, *newline;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
910 GntTextFormatFlags fl = 0;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
911 int pos;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
912
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
913 g_return_if_fail(ggconv != NULL);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
914
24237
c1e58cfd1107 Set the urgent flag for conversation windows on receiving a /buzz etc.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23895
diff changeset
915 if ((flags & PURPLE_MESSAGE_SYSTEM) && !(flags & PURPLE_MESSAGE_NOTIFY)) {
22280
d680613669cc Ignore the recv/send flags when the system flag is set for a message.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22279
diff changeset
916 flags &= ~(PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV);
d680613669cc Ignore the recv/send flags when the system flag is set for a message.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22279
diff changeset
917 }
d680613669cc Ignore the recv/send flags when the system flag is set for a message.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22279
diff changeset
918
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
919 if (ggconv->active_conv != conv) {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
920 if (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV))
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
921 finch_conversation_set_active(conv);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
922 else
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
923 return;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
924 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
925
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
926 pos = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggconv->tv));
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
927
18637
3597903cf8ff Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18427
diff changeset
928 gnt_text_view_tag_change(GNT_TEXT_VIEW(ggconv->tv), "typing", NULL, TRUE);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
929 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), "\n", GNT_TEXT_FLAG_NORMAL);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
930
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
931 /* Unnecessary to print the timestamp for delayed message */
27522
37741237d146 Show the current time if the timestamp is zero.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27440
diff changeset
932 if (purple_prefs_get_bool("/finch/conversations/timestamps")) {
37741237d146 Show the current time if the timestamp is zero.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27440
diff changeset
933 if (!mtime)
37741237d146 Show the current time if the timestamp is zero.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27440
diff changeset
934 time(&mtime);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
935 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
936 purple_utf8_strftime("(%H:%M:%S)", localtime(&mtime)), gnt_color_pair(color_timestamp));
27522
37741237d146 Show the current time if the timestamp is zero.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27440
diff changeset
937 }
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
938
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
939 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), " ", GNT_TEXT_FLAG_NORMAL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
940
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
941 if (flags & PURPLE_MESSAGE_AUTO_RESP)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
942 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
943 _("<AUTO-REPLY> "), GNT_TEXT_FLAG_BOLD);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
944
20553
bed3c9affda6 Show 'buzz'/'nudge' etc. messages differently from regular messages.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20552
diff changeset
945 if (who && *who && (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) &&
bed3c9affda6 Show 'buzz'/'nudge' etc. messages differently from regular messages.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20552
diff changeset
946 !(flags & PURPLE_MESSAGE_NOTIFY))
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
947 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
948 char * name = NULL;
21743
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
949 GntTextFormatFlags msgflags = GNT_TEXT_FLAG_NORMAL;
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
950 gboolean me = FALSE;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
951
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
952 if (purple_message_meify((char*)message, -1)) {
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
953 name = g_strdup_printf("*** %s", who);
22279
40707fbabcbc Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22248
diff changeset
954 if (!(flags & PURPLE_MESSAGE_SEND) &&
40707fbabcbc Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22248
diff changeset
955 (flags & PURPLE_MESSAGE_NICK))
40707fbabcbc Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22248
diff changeset
956 msgflags = gnt_color_pair(color_message_highlight);
40707fbabcbc Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22248
diff changeset
957 else
40707fbabcbc Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22248
diff changeset
958 msgflags = gnt_color_pair(color_message_action);
21743
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
959 me = TRUE;
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
960 } else {
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
961 name = g_strdup_printf("%s", who);
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
962 if (flags & PURPLE_MESSAGE_SEND)
21743
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
963 msgflags = gnt_color_pair(color_message_send);
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
964 else if (flags & PURPLE_MESSAGE_NICK)
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
965 msgflags = gnt_color_pair(color_message_highlight);
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
966 else
21743
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
967 msgflags = gnt_color_pair(color_message_receive);
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
968 }
21743
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
969 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
970 name, msgflags);
5ff16647c50d Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21738
diff changeset
971 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), me ? " " : ": ", GNT_TEXT_FLAG_NORMAL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
972 g_free(name);
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
973 } else
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
974 fl = GNT_TEXT_FLAG_DIM;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
975
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
976 if (flags & PURPLE_MESSAGE_ERROR)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
977 fl |= GNT_TEXT_FLAG_BOLD;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
978
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
979 /* XXX: Remove this workaround when textview can parse messages. */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
980 newline = purple_strdup_withhtml(message);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
981 strip = purple_markup_strip_html(newline);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
982 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
983 strip, fl);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
984
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
985 g_free(newline);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
986 g_free(strip);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
987
18637
3597903cf8ff Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18427
diff changeset
988 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM &&
3597903cf8ff Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18427
diff changeset
989 purple_conv_im_get_typing_state(PURPLE_CONV_IM(conv)) == PURPLE_TYPING) {
22437
ca6bc025aabb Patch from Kyle Turman to show the alias when available in the typing notification. Closes #4957.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22429
diff changeset
990 strip = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_title(conv));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
991 gnt_text_view_append_text_with_tag(GNT_TEXT_VIEW(ggconv->tv),
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
992 strip, GNT_TEXT_FLAG_DIM, "typing");
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
993 g_free(strip);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
994 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
995
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
996 if (pos <= 1)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
997 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
998
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
999 if (flags & (PURPLE_MESSAGE_RECV | PURPLE_MESSAGE_NICK | PURPLE_MESSAGE_ERROR))
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1000 gnt_widget_set_urgent(ggconv->tv);
18100
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
1001 if (flags & PURPLE_MESSAGE_RECV && !gnt_widget_has_focus(ggconv->window)) {
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
1002 int count = GPOINTER_TO_INT(purple_conversation_get_data(conv, "unseen-count"));
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
1003 purple_conversation_set_data(conv, "unseen-count", GINT_TO_POINTER(count + 1));
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
1004 purple_conversation_update(conv, PURPLE_CONV_UPDATE_UNSEEN);
f63b3a23280d Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17813
diff changeset
1005 }
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1006 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1007
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1008 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1009 finch_write_chat(PurpleConversation *conv, const char *who, const char *message,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1010 PurpleMessageFlags flags, time_t mtime)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1011 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1012 purple_conversation_write(conv, who, message, flags, mtime);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1013 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1014
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1015 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1016 finch_write_im(PurpleConversation *conv, const char *who, const char *message,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1017 PurpleMessageFlags flags, time_t mtime)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1018 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1019 PurpleAccount *account = purple_conversation_get_account(conv);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1020 if (flags & PURPLE_MESSAGE_SEND)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1021 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1022 who = purple_connection_get_display_name(purple_account_get_connection(account));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1023 if (!who)
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1024 who = purple_account_get_alias(account);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1025 if (!who)
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1026 who = purple_account_get_username(account);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1027 }
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1028 else if (flags & PURPLE_MESSAGE_RECV)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1029 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1030 PurpleBuddy *buddy;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1031 who = purple_conversation_get_name(conv);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1032 buddy = purple_find_buddy(account, who);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1033 if (buddy)
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1034 who = purple_buddy_get_contact_alias(buddy);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1035 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1036
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1037 purple_conversation_write(conv, who, message, flags, mtime);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1038 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1039
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1040 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1041 finch_write_conv(PurpleConversation *conv, const char *who, const char *alias,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1042 const char *message, PurpleMessageFlags flags, time_t mtime)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1043 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1044 const char *name;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1045 if (alias && *alias)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1046 name = alias;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1047 else if (who && *who)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1048 name = who;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1049 else
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1050 name = NULL;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1051
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1052 finch_write_common(conv, name, message, flags, mtime);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1053 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1054
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1055 static const char *
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1056 chat_flag_text(PurpleConvChatBuddyFlags flags)
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1057 {
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1058 if (flags & PURPLE_CBFLAGS_FOUNDER)
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1059 return "~";
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1060 if (flags & PURPLE_CBFLAGS_OP)
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1061 return "@";
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1062 if (flags & PURPLE_CBFLAGS_HALFOP)
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1063 return "%";
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1064 if (flags & PURPLE_CBFLAGS_VOICE)
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1065 return "+";
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1066 return " ";
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1067 }
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1068
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1069 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1070 finch_chat_add_users(PurpleConversation *conv, GList *users, gboolean new_arrivals)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1071 {
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
1072 FinchConv *ggc = FINCH_GET_DATA(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1073 GntEntry *entry = GNT_ENTRY(ggc->entry);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1074
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1075 if (!new_arrivals)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1076 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1077 /* Print the list of users in the room */
23440
f4b2fecfb557 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23413
diff changeset
1078 GString *string = g_string_new(NULL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1079 GList *iter;
23440
f4b2fecfb557 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23413
diff changeset
1080 int count = g_list_length(users);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1081
23440
f4b2fecfb557 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23413
diff changeset
1082 g_string_printf(string,
f4b2fecfb557 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23413
diff changeset
1083 ngettext("List of %d user:\n", "List of %d users:\n", count), count);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1084 for (iter = users; iter; iter = iter->next)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1085 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1086 PurpleConvChatBuddy *cbuddy = iter->data;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1087 char *str;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1088
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1089 if ((str = cbuddy->alias) == NULL)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1090 str = cbuddy->name;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1091 g_string_append_printf(string, "[ %s ]", str);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1092 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1093
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1094 purple_conversation_write(conv, NULL, string->str,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1095 PURPLE_MESSAGE_SYSTEM, time(NULL));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1096 g_string_free(string, TRUE);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1097 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1098
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1099 for (; users; users = users->next)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1100 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1101 PurpleConvChatBuddy *cbuddy = users->data;
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1102 GntTree *tree = GNT_TREE(ggc->u.chat->userlist);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1103 gnt_entry_add_suggest(entry, cbuddy->name);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1104 gnt_entry_add_suggest(entry, cbuddy->alias);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1105 gnt_tree_add_row_after(tree, g_strdup(cbuddy->name),
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1106 gnt_tree_create_row(tree, chat_flag_text(cbuddy->flags), cbuddy->alias), NULL, NULL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1107 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1108 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1109
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1110 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1111 finch_chat_rename_user(PurpleConversation *conv, const char *old, const char *new_n, const char *new_a)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1112 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1113 /* Update the name for string completion */
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
1114 FinchConv *ggc = FINCH_GET_DATA(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1115 GntEntry *entry = GNT_ENTRY(ggc->entry);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1116 GntTree *tree = GNT_TREE(ggc->u.chat->userlist);
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1117 PurpleConvChatBuddy *cb = purple_conv_chat_cb_find(PURPLE_CONV_CHAT(conv), new_n);
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1118
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1119 gnt_entry_remove_suggest(entry, old);
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1120 gnt_tree_remove(tree, (gpointer)old);
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1121
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1122 gnt_entry_add_suggest(entry, new_n);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1123 gnt_entry_add_suggest(entry, new_a);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1124 gnt_tree_add_row_after(tree, g_strdup(new_n),
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1125 gnt_tree_create_row(tree, chat_flag_text(cb->flags), new_a), NULL, NULL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1126 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1127
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1128 static void
17091
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1129 finch_chat_remove_users(PurpleConversation *conv, GList *list)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1130 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1131 /* Remove the name from string completion */
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
1132 FinchConv *ggc = FINCH_GET_DATA(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1133 GntEntry *entry = GNT_ENTRY(ggc->entry);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1134 for (; list; list = list->next) {
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1135 GntTree *tree = GNT_TREE(ggc->u.chat->userlist);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1136 gnt_entry_remove_suggest(entry, list->data);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1137 gnt_tree_remove(tree, list->data);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1138 }
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1139 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1140
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1141 static void
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1142 finch_chat_update_user(PurpleConversation *conv, const char *user)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1143 {
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1144 PurpleConvChatBuddy *cb = purple_conv_chat_cb_find(PURPLE_CONV_CHAT(conv), user);
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
1145 FinchConv *ggc = FINCH_GET_DATA(conv);
17070
f2137f75fd10 Show user flags in chat userlist.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17021
diff changeset
1146 gnt_tree_change_text(GNT_TREE(ggc->u.chat->userlist), (gpointer)user, 0, chat_flag_text(cb->flags));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1147 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1148
19446
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1149 static void
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1150 finch_conv_present(PurpleConversation *conv)
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1151 {
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1152 FinchConv *fc = FINCH_CONV(conv);
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1153 if (fc && fc->window)
20718
803f0ee0c231 void functions shouldn't 'return'. Thanks tmcmahon2. Fixes #3151 (gntconv.c fails to compile in Solaris 9)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20553
diff changeset
1154 gnt_window_present(fc->window);
19446
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1155 }
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1156
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1157 static gboolean
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1158 finch_conv_has_focus(PurpleConversation *conv)
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1159 {
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1160 FinchConv *fc = FINCH_CONV(conv);
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1161 if (fc && fc->window)
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1162 return gnt_widget_has_focus(fc->window);
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1163 return FALSE;
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1164 }
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1165
31086
a8cc50c2279f Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents: 29377
diff changeset
1166 static PurpleConversationUiOps conv_ui_ops =
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1167 {
17091
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1168 finch_create_conversation,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1169 finch_destroy_conversation,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1170 finch_write_chat,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1171 finch_write_im,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1172 finch_write_conv,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1173 finch_chat_add_users,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1174 finch_chat_rename_user,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1175 finch_chat_remove_users,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1176 finch_chat_update_user,
19446
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1177 finch_conv_present, /* present */
5d200fce4170 Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19445
diff changeset
1178 finch_conv_has_focus, /* has_focus */
17091
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1179 NULL, /* custom_smiley_add */
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1180 NULL, /* custom_smiley_write */
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1181 NULL, /* custom_smiley_close */
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1182 NULL, /* send_confirm */
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1183 NULL,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1184 NULL,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1185 NULL,
46f2f86e08e4 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents: 17070
diff changeset
1186 NULL
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1187 };
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1188
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1189 PurpleConversationUiOps *finch_conv_get_ui_ops()
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1190 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1191 return &conv_ui_ops;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1192 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1193
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1194 /* Xerox */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1195 static PurpleCmdRet
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1196 say_command_cb(PurpleConversation *conv,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1197 const char *cmd, char **args, char **error, void *data)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1198 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1199 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1200 purple_conv_im_send(PURPLE_CONV_IM(conv), args[0]);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1201 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1202 purple_conv_chat_send(PURPLE_CONV_CHAT(conv), args[0]);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1203
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1204 return PURPLE_CMD_RET_OK;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1205 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1206
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1207 /* Xerox */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1208 static PurpleCmdRet
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1209 me_command_cb(PurpleConversation *conv,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1210 const char *cmd, char **args, char **error, void *data)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1211 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1212 char *tmp;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1213
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1214 tmp = g_strdup_printf("/me %s", args[0]);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1215
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1216 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1217 purple_conv_im_send(PURPLE_CONV_IM(conv), tmp);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1218 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1219 purple_conv_chat_send(PURPLE_CONV_CHAT(conv), tmp);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1220
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1221 g_free(tmp);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1222 return PURPLE_CMD_RET_OK;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1223 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1224
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1225 /* Xerox */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1226 static PurpleCmdRet
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1227 debug_command_cb(PurpleConversation *conv,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1228 const char *cmd, char **args, char **error, void *data)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1229 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1230 char *tmp, *markup;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1231
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1232 if (!g_ascii_strcasecmp(args[0], "version")) {
28263
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1233 tmp = g_strdup_printf("Using Finch v%s with libpurple v%s.",
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1234 DISPLAY_VERSION, purple_core_get_version());
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1235 } else if (!g_ascii_strcasecmp(args[0], "plugins")) {
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1236 /* Show all the loaded plugins, including the protocol plugins and plugin loaders.
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1237 * This is intentional, since third party prpls are often sources of bugs, and some
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1238 * plugin loaders (e.g. mono) can also be buggy.
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1239 */
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1240 GString *str = g_string_new("Loaded Plugins: ");
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1241 const GList *plugins = purple_plugins_get_loaded();
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1242 if (plugins) {
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1243 for (; plugins; plugins = plugins->next) {
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1244 str = g_string_append(str, purple_plugin_get_name(plugins->data));
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1245 if (plugins->next)
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1246 str = g_string_append(str, ", ");
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1247 }
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1248 } else {
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1249 str = g_string_append(str, "(none)");
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1250 }
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1251
28263
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1252 tmp = g_string_free(str, FALSE);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1253 } else {
28263
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1254 purple_conversation_write(conv, NULL, _("Supported debug options are: plugins version"),
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1255 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL));
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1256 return PURPLE_CMD_RET_OK;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1257 }
28263
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1258
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1259 markup = g_markup_escape_text(tmp, -1);
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1260 if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM)
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1261 purple_conv_im_send(PURPLE_CONV_IM(conv), markup);
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1262 else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT)
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1263 purple_conv_chat_send(PURPLE_CONV_CHAT(conv), markup);
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1264
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1265 g_free(tmp);
574fd92ff3e5 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 27587
diff changeset
1266 g_free(markup);
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1267 return PURPLE_CMD_RET_OK;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1268 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1269
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1270 /* Xerox */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1271 static PurpleCmdRet
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1272 clear_command_cb(PurpleConversation *conv,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1273 const char *cmd, char **args, char **error, void *data)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1274 {
19422
a277162b976e Clear the message history in the /clear callback.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19370
diff changeset
1275 purple_conversation_clear_message_history(conv);
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1276 return PURPLE_CMD_RET_OK;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1277 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1278
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1279 /* Xerox */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1280 static PurpleCmdRet
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1281 help_command_cb(PurpleConversation *conv,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1282 const char *cmd, char **args, char **error, void *data)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1283 {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1284 GList *l, *text;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1285 GString *s;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1286
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1287 if (args[0] != NULL) {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1288 s = g_string_new("");
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1289 text = purple_cmd_help(conv, args[0]);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1290
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1291 if (text) {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1292 for (l = text; l; l = l->next)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1293 if (l->next)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1294 g_string_append_printf(s, "%s\n", (char *)l->data);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1295 else
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1296 g_string_append_printf(s, "%s", (char *)l->data);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1297 } else {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1298 g_string_append(s, _("No such command (in this context)."));
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1299 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1300 } else {
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1301 s = g_string_new(_("Use \"/help &lt;command&gt;\" for help on a specific command.\n"
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1302 "The following commands are available in this context:\n"));
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1303
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1304 text = purple_cmd_list(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1305 for (l = text; l; l = l->next)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1306 if (l->next)
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1307 g_string_append_printf(s, "%s, ", (char *)l->data);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1308 else
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1309 g_string_append_printf(s, "%s.", (char *)l->data);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1310 g_list_free(text);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1311 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1312
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1313 purple_conversation_write(conv, NULL, s->str, PURPLE_MESSAGE_NO_LOG, time(NULL));
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1314 g_string_free(s, TRUE);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1315
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1316 return PURPLE_CMD_RET_OK;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1317 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1318
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1319 static PurpleCmdRet
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1320 cmd_show_window(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1321 {
22007
c38d72677c8a Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents: 21743
diff changeset
1322 void (*callback)(void) = data;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1323 callback();
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1324 return PURPLE_CMD_RET_OK;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1325 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1326
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1327 static PurpleCmdRet
23309
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1328 cmd_message_color(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1329 {
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1330 int *msgclass = NULL;
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1331 int fg, bg;
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1332
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1333 if (strcmp(args[0], "receive") == 0)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1334 msgclass = &color_message_receive;
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1335 else if (strcmp(args[0], "send") == 0)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1336 msgclass = &color_message_send;
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1337 else if (strcmp(args[0], "highlight") == 0)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1338 msgclass = &color_message_highlight;
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1339 else if (strcmp(args[0], "action") == 0)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1340 msgclass = &color_message_action;
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1341 else if (strcmp(args[0], "timestamp") == 0)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1342 msgclass = &color_timestamp;
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1343 else {
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1344 if (error)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1345 *error = g_strdup_printf(_("%s is not a valid message class. See '/help msgcolor' for valid message classes."), args[0]);
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1346 return PURPLE_CMD_RET_FAILED;
23309
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1347 }
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1348
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1349 fg = gnt_colors_get_color(args[1]);
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1350 if (fg == -EINVAL) {
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1351 if (error)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1352 *error = g_strdup_printf(_("%s is not a valid color. See '/help msgcolor' for valid colors."), args[1]);
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1353 return PURPLE_CMD_RET_FAILED;
23309
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1354 }
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1355
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1356 bg = gnt_colors_get_color(args[2]);
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1357 if (bg == -EINVAL) {
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1358 if (error)
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1359 *error = g_strdup_printf(_("%s is not a valid color. See '/help msgcolor' for valid colors."), args[2]);
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1360 return PURPLE_CMD_RET_FAILED;
23309
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1361 }
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1362
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1363 init_pair(*msgclass, fg, bg);
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1364
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1365 return PURPLE_CMD_RET_OK;
23309
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1366 }
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1367
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1368 static PurpleCmdRet
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1369 users_command_cb(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data)
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1370 {
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
1371 FinchConv *fc = FINCH_GET_DATA(conv);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1372 FinchConvChat *ch;
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1373 if (!fc)
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1374 return PURPLE_CMD_RET_FAILED;
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1375
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1376 ch = fc->u.chat;
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1377 gnt_widget_set_visible(ch->userlist,
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1378 (GNT_WIDGET_IS_FLAG_SET(ch->userlist, GNT_WIDGET_INVISIBLE)));
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1379 gnt_box_readjust(GNT_BOX(fc->window));
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1380 gnt_box_give_focus_to_child(GNT_BOX(fc->window), fc->entry);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1381 purple_prefs_set_bool(PREF_USERLIST, !(GNT_WIDGET_IS_FLAG_SET(ch->userlist, GNT_WIDGET_INVISIBLE)));
28264
f15b14df260d Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28263
diff changeset
1382 return PURPLE_CMD_RET_OK;
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1383 }
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1384
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1385 void finch_conversation_init()
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1386 {
21738
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1387 color_message_send = gnt_style_get_color(NULL, "color-message-sent");
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1388 if (!color_message_send)
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1389 color_message_send = gnt_color_add_pair(COLOR_CYAN, -1);
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1390 color_message_receive = gnt_style_get_color(NULL, "color-message-received");
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1391 if (!color_message_receive)
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1392 color_message_receive = gnt_color_add_pair(COLOR_RED, -1);
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1393 color_message_highlight = gnt_style_get_color(NULL, "color-message-highlight");
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1394 if (!color_message_highlight)
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1395 color_message_highlight = gnt_color_add_pair(COLOR_GREEN, -1);
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1396 color_timestamp = gnt_style_get_color(NULL, "color-timestamp");
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1397 if (!color_timestamp)
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1398 color_timestamp = gnt_color_add_pair(COLOR_BLUE, -1);
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1399 color_message_action = gnt_style_get_color(NULL, "color-message-action");
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1400 if (!color_message_action)
e3e64d1e4869 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21284
diff changeset
1401 color_message_action = gnt_color_add_pair(COLOR_YELLOW, -1);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1402 purple_prefs_add_none(PREF_ROOT);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1403 purple_prefs_add_none(PREF_ROOT "/size");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1404 purple_prefs_add_int(PREF_ROOT "/size/width", 70);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1405 purple_prefs_add_int(PREF_ROOT "/size/height", 20);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1406 purple_prefs_add_none(PREF_ROOT "/position");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1407 purple_prefs_add_int(PREF_ROOT "/position/x", 0);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1408 purple_prefs_add_int(PREF_ROOT "/position/y", 0);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1409 purple_prefs_add_none(PREF_CHAT);
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1410 purple_prefs_add_bool(PREF_USERLIST, FALSE);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1411
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1412 /* Xerox the commands */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1413 purple_cmd_register("say", "S", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1414 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1415 say_command_cb, _("say &lt;message&gt;: Send a message normally as if you weren't using a command."), NULL);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1416 purple_cmd_register("me", "S", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1417 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1418 me_command_cb, _("me &lt;action&gt;: Send an IRC style action to a buddy or chat."), NULL);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1419 purple_cmd_register("debug", "w", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1420 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1421 debug_command_cb, _("debug &lt;option&gt;: Send various debug information to the current conversation."), NULL);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1422 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1423 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1424 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1425 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1426 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1427 help_command_cb, _("help &lt;command&gt;: Help on a specific command."), NULL);
16893
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1428 purple_cmd_register("users", "", PURPLE_CMD_P_DEFAULT,
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1429 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL,
b799918b6cdc Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16892
diff changeset
1430 users_command_cb, _("users: Show the list of users in the chat."), NULL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1431
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1432 /* Now some commands to bring up some other windows */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1433 purple_cmd_register("plugins", "", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1434 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1435 cmd_show_window, _("plugins: Show the plugins window."), finch_plugins_show_all);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1436 purple_cmd_register("buddylist", "", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1437 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1438 cmd_show_window, _("buddylist: Show the buddylist."), finch_blist_show);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1439 purple_cmd_register("accounts", "", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1440 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1441 cmd_show_window, _("accounts: Show the accounts window."), finch_accounts_show_all);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1442 purple_cmd_register("debugwin", "", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1443 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1444 cmd_show_window, _("debugwin: Show the debug window."), finch_debug_window_show);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1445 purple_cmd_register("prefs", "", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1446 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1447 cmd_show_window, _("prefs: Show the preference window."), finch_prefs_show_all);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1448 purple_cmd_register("status", "", PURPLE_CMD_P_DEFAULT,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1449 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1450 cmd_show_window, _("statuses: Show the savedstatuses window."), finch_savedstatus_show_all);
17021
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1451
23309
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1452 /* Allow customizing the message colors using a command during run-time */
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1453 purple_cmd_register("msgcolor", "www", PURPLE_CMD_P_DEFAULT,
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1454 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1455 cmd_message_color, _("msgcolor &lt;class&gt; &lt;foreground&gt; &lt;background&gt;: "
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1456 "Set the color for different classes of messages in the conversation window.<br>"
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1457 " &lt;class&gt;: receive, send, highlight, action, timestamp<br>"
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1458 " &lt;foreground/background&gt;: black, red, green, blue, white, gray, darkgray, magenta, cyan, default<br><br>"
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1459 "EXAMPLE:<br> msgcolor send cyan default"),
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1460 NULL);
31546
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1461 purple_cmd_register("msgcolour", "www", PURPLE_CMD_P_DEFAULT,
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1462 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1463 cmd_message_color, _("msgcolor &lt;class&gt; &lt;foreground&gt; &lt;background&gt;: "
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1464 "Set the color for different classes of messages in the conversation window.<br>"
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1465 " &lt;class&gt;: receive, send, highlight, action, timestamp<br>"
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1466 " &lt;foreground/background&gt;: black, red, green, blue, white, gray, darkgray, magenta, cyan, default<br><br>"
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1467 "EXAMPLE:<br> msgcolor send cyan default"),
62b11ad353eb Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31444
diff changeset
1468 NULL);
23309
ea341703b1d3 msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23231
diff changeset
1469
17021
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1470 purple_signal_connect(purple_conversations_get_handle(), "buddy-typing", finch_conv_get_handle(),
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1471 PURPLE_CALLBACK(update_buddy_typing), NULL);
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1472 purple_signal_connect(purple_conversations_get_handle(), "buddy-typing-stopped", finch_conv_get_handle(),
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1473 PURPLE_CALLBACK(update_buddy_typing), NULL);
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1474 purple_signal_connect(purple_conversations_get_handle(), "chat-left", finch_conv_get_handle(),
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1475 PURPLE_CALLBACK(chat_left_cb), NULL);
31444
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
1476 purple_signal_connect(purple_conversations_get_handle(), "cleared-message-history", finch_conv_get_handle(),
a9e077fb65e9 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <paul@darkrain42.org>
parents: 31086
diff changeset
1477 PURPLE_CALLBACK(cleared_message_history_cb), NULL);
19321
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1478 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_conv_get_handle(),
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1479 PURPLE_CALLBACK(buddy_signed_on_off), NULL);
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1480 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_conv_get_handle(),
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1481 PURPLE_CALLBACK(buddy_signed_on_off), NULL);
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1482 purple_signal_connect(purple_connections_get_handle(), "signed-on", finch_conv_get_handle(),
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1483 PURPLE_CALLBACK(account_signed_on_off), NULL);
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1484 purple_signal_connect(purple_connections_get_handle(), "signed-off", finch_conv_get_handle(),
39d3a81a5850 Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18637
diff changeset
1485 PURPLE_CALLBACK(account_signed_on_off), NULL);
28409
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
1486 purple_signal_connect(purple_connections_get_handle(), "signing-off", finch_conv_get_handle(),
71dc3b5edbe7 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28264
diff changeset
1487 PURPLE_CALLBACK(account_signing_off), NULL);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1488 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1489
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1490 void finch_conversation_uninit()
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1491 {
17021
d6e855aedc30 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16978
diff changeset
1492 purple_signals_disconnect_by_handle(finch_conv_get_handle());
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1493 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1494
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1495 void finch_conversation_set_active(PurpleConversation *conv)
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1496 {
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
1497 FinchConv *ggconv = FINCH_GET_DATA(conv);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1498 PurpleAccount *account;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1499 char *title;
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1500
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1501 g_return_if_fail(ggconv);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1502 g_return_if_fail(g_list_find(ggconv->list, conv));
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
1503 if (ggconv->active_conv == conv)
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
1504 return;
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1505
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1506 ggconv->active_conv = conv;
23413
a2c625152c52 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23361
diff changeset
1507 gg_setup_commands(ggconv, TRUE);
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15817
diff changeset
1508 account = purple_conversation_get_account(conv);
15817
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1509 title = get_conversation_title(conv, account);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1510 gnt_screen_rename_widget(ggconv->window, title);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1511 g_free(title);
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1512 }
0e3a8505ebbe renamed gaim-text to finch
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1513
16128
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1514 void finch_conversation_set_info_widget(PurpleConversation *conv, GntWidget *widget)
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1515 {
22217
ad357ca94de9 We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22215
diff changeset
1516 FinchConv *fc = FINCH_GET_DATA(conv);
16128
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1517 int height, width;
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1518
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1519 gnt_box_remove_all(GNT_BOX(fc->info));
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1520
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1521 if (widget) {
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1522 gnt_box_add_widget(GNT_BOX(fc->info), widget);
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1523 gnt_box_readjust(GNT_BOX(fc->info));
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1524 }
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1525
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1526 gnt_widget_get_size(fc->window, &width, &height);
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1527 gnt_box_readjust(GNT_BOX(fc->window));
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1528 gnt_screen_resize_widget(fc->window, width, height);
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1529 gnt_box_give_focus_to_child(GNT_BOX(fc->window), fc->entry);
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1530 }
7a2ffa981c1a Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 16124
diff changeset
1531