Sat, 02 Feb 2008 03:51:19 +0000
Add a finch log viewer. This is largely copied from Pidgin.
The search box must be focused in order to scroll the log or fire up the pager,
and is labelled such. Feel free to come up with a better widget to attach these
to.
|
14620
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
1 | /** |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
2 | * @file gntconv.c GNT Conversation API |
|
16255
fa61ee19f526
Rename the Doxygen group from gntui to finch and define the finch group
Richard Laager <rlaager@pidgin.im>
parents:
16190
diff
changeset
|
3 | * @ingroup finch |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19986
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19986
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19986
diff
changeset
|
6 | /* finch |
|
14620
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
7 | * |
|
15931
716b5fac1895
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents:
15906
diff
changeset
|
8 | * Finch is the legal property of its developers, whose names are too numerous |
|
14620
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
10 | * source distribution. |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
11 | * |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
12 | * This program is free software; you can redistribute it and/or modify |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
13 | * it under the terms of the GNU General Public License as published by |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
14 | * the Free Software Foundation; either version 2 of the License, or |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
15 | * (at your option) any later version. |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
16 | * |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
17 | * This program is distributed in the hope that it will be useful, |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
20 | * GNU General Public License for more details. |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
21 | * |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
22 | * You should have received a copy of the GNU General Public License |
|
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
23 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19798
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
14620
90d599495d65
[gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14612
diff
changeset
|
25 | */ |
|
13958
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13949
diff
changeset
|
26 | #include <string.h> |
|
14028
eefce1b0c4e3
[gaim-migrate @ 16522]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14005
diff
changeset
|
27 | |
|
18273
e61c53184c52
#include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
18173
diff
changeset
|
28 | #include "finch.h" |
|
e61c53184c52
#include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
18173
diff
changeset
|
29 | |
|
14028
eefce1b0c4e3
[gaim-migrate @ 16522]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14005
diff
changeset
|
30 | #include <cmds.h> |
|
15821
26ca6a5c7668
Make 'last message sent' idleness work. Should we be doing gaim_idle_touch from somewhere inside libpurple instead?
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15373
diff
changeset
|
31 | #include <idle.h> |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
32 | #include <prefs.h> |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
33 | #include <util.h> |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
34 | |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
35 | #include "gntaccount.h" |
|
13978
70d7030b7f26
[gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13969
diff
changeset
|
36 | #include "gntblist.h" |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
37 | #include "gntconv.h" |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
38 | #include "gntdebug.h" |
|
22376
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
39 | #include "gntlog.h" |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
40 | #include "gntplugin.h" |
|
14121
3d8804b82150
[gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14109
diff
changeset
|
41 | #include "gntprefs.h" |
|
19612
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
42 | #include "gntsound.h" |
|
14188
cff503f91616
[gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
43 | #include "gntstatus.h" |
| 16948 | 44 | #include "gntpounce.h" |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
45 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
46 | #include "gnt.h" |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
47 | #include "gntbox.h" |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
48 | #include "gntentry.h" |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
49 | #include "gntlabel.h" |
| 16948 | 50 | #include "gntmenu.h" |
| 51 | #include "gntmenuitem.h" | |
| 52 | #include "gntmenuitemcheck.h" | |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
53 | #include "gntstyle.h" |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
54 | #include "gnttextview.h" |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
55 | #include "gnttree.h" |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
56 | #include "gntutils.h" |
| 16948 | 57 | #include "gntwindow.h" |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
58 | |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
16255
diff
changeset
|
59 | #define PREF_ROOT "/finch/conversations" |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
60 | #define PREF_CHAT PREF_ROOT "/chats" |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
61 | #define PREF_USERLIST PREF_CHAT "/userlist" |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
62 | |
|
14253
b63ebf84c42b
This is a hand-crafted commit to migrate across subversion revisions
Ethan Blanton <elb@pidgin.im>
parents:
14188
diff
changeset
|
63 | #include "config.h" |
|
b63ebf84c42b
This is a hand-crafted commit to migrate across subversion revisions
Ethan Blanton <elb@pidgin.im>
parents:
14188
diff
changeset
|
64 | |
|
17076
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
65 | static void finch_write_common(PurpleConversation *conv, const char *who, |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
66 | const char *message, PurpleMessageFlags flags, time_t mtime); |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
67 | static void generate_send_to_menu(FinchConv *ggc); |
|
17076
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
68 | |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
69 | static int color_message_receive; |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
70 | static int color_message_send; |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
71 | static int color_message_highlight; |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
72 | static int color_message_action; |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
73 | static int color_timestamp; |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
74 | |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
75 | static PurpleBuddy * |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
76 | find_buddy_for_conversation(PurpleConversation *conv) |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
77 | { |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
78 | return purple_find_buddy(purple_conversation_get_account(conv), |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
79 | purple_conversation_get_name(conv)); |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
80 | } |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
81 | |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
82 | static PurpleChat * |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
83 | find_chat_for_conversation(PurpleConversation *conv) |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
84 | { |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
85 | return purple_blist_find_chat(purple_conversation_get_account(conv), |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
86 | purple_conversation_get_name(conv)); |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
87 | } |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
88 | |
|
19986
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
89 | static PurpleBlistNode * |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
90 | get_conversation_blist_node(PurpleConversation *conv) |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
91 | { |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
92 | PurpleBlistNode *node = NULL; |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
93 | |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
94 | switch (purple_conversation_get_type(conv)) { |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
95 | case PURPLE_CONV_TYPE_IM: |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
96 | node = (PurpleBlistNode*)find_buddy_for_conversation(conv); |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22104
diff
changeset
|
97 | node = node ? purple_blist_node_get_parent(node) : NULL; |
|
19986
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
98 | break; |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
99 | case PURPLE_CONV_TYPE_CHAT: |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
100 | node = (PurpleBlistNode*)find_chat_for_conversation(conv); |
|
19986
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
101 | break; |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
102 | default: |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
103 | break; |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
104 | } |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
105 | return node; |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
106 | } |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
107 | |
|
15373
8483019d6961
[gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15262
diff
changeset
|
108 | static void |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
109 | send_typing_notification(GntWidget *w, FinchConv *ggconv) |
|
15262
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
110 | { |
|
15373
8483019d6961
[gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15262
diff
changeset
|
111 | const char *text = gnt_entry_get_text(GNT_ENTRY(ggconv->entry)); |
|
17854
7c5d9ee6846a
Do not send typing notification if you are typing a /-command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17360
diff
changeset
|
112 | gboolean empty = (!text || !*text || (*text == '/')); |
|
16478
19107605c565
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents:
16255
diff
changeset
|
113 | if (purple_prefs_get_bool("/finch/conversations/notify_typing")) { |
| 15884 | 114 | PurpleConversation *conv = ggconv->active_conv; |
| 115 | PurpleConvIm *im = PURPLE_CONV_IM(conv); | |
|
15373
8483019d6961
[gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15262
diff
changeset
|
116 | if (!empty) { |
| 15884 | 117 | gboolean send = (purple_conv_im_get_send_typed_timeout(im) == 0); |
|
15262
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
118 | |
| 15884 | 119 | purple_conv_im_stop_send_typed_timeout(im); |
| 120 | purple_conv_im_start_send_typed_timeout(im); | |
| 121 | if (send || (purple_conv_im_get_type_again(im) != 0 && | |
| 122 | time(NULL) > purple_conv_im_get_type_again(im))) { | |
|
15262
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
123 | unsigned int timeout; |
| 15884 | 124 | timeout = serv_send_typing(purple_conversation_get_gc(conv), |
| 125 | purple_conversation_get_name(conv), | |
| 126 | PURPLE_TYPING); | |
| 127 | purple_conv_im_set_type_again(im, timeout); | |
|
15262
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
128 | } |
|
15373
8483019d6961
[gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15262
diff
changeset
|
129 | } else { |
| 15884 | 130 | purple_conv_im_stop_send_typed_timeout(im); |
|
15373
8483019d6961
[gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15262
diff
changeset
|
131 | |
| 15884 | 132 | serv_send_typing(purple_conversation_get_gc(conv), |
| 133 | purple_conversation_get_name(conv), | |
| 134 | PURPLE_NOT_TYPING); | |
|
15262
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
135 | } |
|
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
136 | } |
|
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
137 | } |
|
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
138 | |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
139 | static void |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
140 | entry_key_pressed(GntWidget *w, FinchConv *ggconv) |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
141 | { |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
142 | const char *text = gnt_entry_get_text(GNT_ENTRY(ggconv->entry)); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
143 | if (*text == '/') |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
144 | { |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
145 | PurpleConversation *conv = ggconv->active_conv; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
146 | PurpleCmdStatus status; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
147 | const char *cmdline = text + 1; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
148 | char *error = NULL, *escape; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
149 | |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
150 | escape = g_markup_escape_text(cmdline, -1); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
151 | status = purple_cmd_do_command(conv, cmdline, escape, &error); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
152 | g_free(escape); |
|
14028
eefce1b0c4e3
[gaim-migrate @ 16522]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14005
diff
changeset
|
153 | |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
154 | switch (status) |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
155 | { |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
156 | case PURPLE_CMD_STATUS_OK: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
157 | break; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
158 | case PURPLE_CMD_STATUS_NOT_FOUND: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
159 | purple_conversation_write(conv, "", _("No such command."), |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
160 | PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
161 | break; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
162 | case PURPLE_CMD_STATUS_WRONG_ARGS: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
163 | purple_conversation_write(conv, "", _("Syntax Error: You typed the wrong number of arguments " |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
164 | "to that command."), |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
165 | PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
166 | break; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
167 | case PURPLE_CMD_STATUS_FAILED: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
168 | purple_conversation_write(conv, "", error ? error : _("Your command failed for an unknown reason."), |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
169 | PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
170 | break; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
171 | case PURPLE_CMD_STATUS_WRONG_TYPE: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
172 | if(purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
173 | purple_conversation_write(conv, "", _("That command only works in chats, not IMs."), |
| 15884 | 174 | PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
175 | else |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
176 | purple_conversation_write(conv, "", _("That command only works in IMs, not chats."), |
| 15884 | 177 | PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
178 | break; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
179 | case PURPLE_CMD_STATUS_WRONG_PRPL: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
180 | purple_conversation_write(conv, "", _("That command doesn't work on this protocol."), |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
181 | PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
182 | break; |
|
14000
aab306afdc43
[gaim-migrate @ 16469]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13993
diff
changeset
|
183 | } |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
184 | g_free(error); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
185 | } |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
186 | else if (!purple_account_is_connected(purple_conversation_get_account(ggconv->active_conv))) |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
187 | { |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
188 | purple_conversation_write(ggconv->active_conv, "", _("Message was not sent, because you are not signed on."), |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
189 | PURPLE_MESSAGE_ERROR | PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
190 | } |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
191 | else |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
192 | { |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
193 | char *escape = g_markup_escape_text(text, -1); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
194 | char *apos = purple_strreplace(escape, "'", "'"); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
195 | g_free(escape); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
196 | escape = apos; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
197 | switch (purple_conversation_get_type(ggconv->active_conv)) |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
198 | { |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
199 | case PURPLE_CONV_TYPE_IM: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
200 | purple_conv_im_send_with_flags(PURPLE_CONV_IM(ggconv->active_conv), escape, PURPLE_MESSAGE_SEND); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
201 | break; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
202 | case PURPLE_CONV_TYPE_CHAT: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
203 | purple_conv_chat_send(PURPLE_CONV_CHAT(ggconv->active_conv), escape); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
204 | break; |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
205 | default: |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
206 | g_free(escape); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
207 | g_return_if_reached(); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
208 | } |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
209 | g_free(escape); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
210 | purple_idle_touch(); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
211 | } |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
212 | gnt_entry_add_to_history(GNT_ENTRY(ggconv->entry), text); |
|
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
213 | gnt_entry_clear(GNT_ENTRY(ggconv->entry)); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
214 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
215 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
216 | static void |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
217 | closing_window(GntWidget *window, FinchConv *ggconv) |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
218 | { |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
219 | GList *list = ggconv->list; |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
220 | ggconv->window = NULL; |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
221 | while (list) { |
| 15884 | 222 | PurpleConversation *conv = list->data; |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
223 | list = list->next; |
| 15884 | 224 | purple_conversation_destroy(conv); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
225 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
226 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
227 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
228 | static void |
|
14923
ccb42b285510
[gaim-migrate @ 17630]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14884
diff
changeset
|
229 | size_changed_cb(GntWidget *widget, int width, int height) |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
230 | { |
|
14923
ccb42b285510
[gaim-migrate @ 17630]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14884
diff
changeset
|
231 | int w, h; |
|
ccb42b285510
[gaim-migrate @ 17630]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14884
diff
changeset
|
232 | gnt_widget_get_size(widget, &w, &h); |
| 15884 | 233 | purple_prefs_set_int(PREF_ROOT "/size/width", w); |
| 234 | purple_prefs_set_int(PREF_ROOT "/size/height", h); | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
235 | } |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
236 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
237 | static void |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
238 | save_position_cb(GntWidget *w, int x, int y) |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
239 | { |
| 15884 | 240 | purple_prefs_set_int(PREF_ROOT "/position/x", x); |
| 241 | purple_prefs_set_int(PREF_ROOT "/position/y", y); | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
242 | } |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
243 | |
| 15884 | 244 | static PurpleConversation * |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
245 | find_conv_with_contact(PurpleAccount *account, const char *name) |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
246 | { |
| 15884 | 247 | PurpleBlistNode *node; |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
248 | PurpleBuddy *buddy = purple_find_buddy(account, name); |
| 15884 | 249 | PurpleConversation *ret = NULL; |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
250 | |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
251 | if (!buddy) |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
252 | return NULL; |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
253 | |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22104
diff
changeset
|
254 | for (node = purple_blist_node_get_first_child(purple_blist_node_get_parent((PurpleBlistNode*)buddy)); |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22104
diff
changeset
|
255 | node; node = purple_blist_node_get_sibling_next(node)) { |
| 15884 | 256 | if (node == (PurpleBlistNode*)buddy) |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
257 | continue; |
| 15884 | 258 | if ((ret = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, |
|
22341
ed341c90116e
Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22339
diff
changeset
|
259 | purple_buddy_get_name((PurpleBuddy*)node), purple_buddy_get_account((PurpleBuddy*)node))) != NULL) |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
260 | break; |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
261 | } |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
262 | return ret; |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
263 | } |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
264 | |
| 14612 | 265 | static char * |
| 15884 | 266 | get_conversation_title(PurpleConversation *conv, PurpleAccount *account) |
| 14612 | 267 | { |
| 15884 | 268 | return g_strdup_printf(_("%s (%s -- %s)"), purple_conversation_get_title(conv), |
| 269 | purple_account_get_username(account), purple_account_get_protocol_name(account)); | |
| 14612 | 270 | } |
| 271 | ||
| 272 | static void | |
| 15884 | 273 | update_buddy_typing(PurpleAccount *account, const char *who, gpointer null) |
| 14612 | 274 | { |
| 15884 | 275 | PurpleConversation *conv; |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
276 | FinchConv *ggc; |
| 15884 | 277 | PurpleConvIm *im = NULL; |
|
15233
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
278 | char *title, *str; |
| 14612 | 279 | |
| 15884 | 280 | conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, account); |
| 14612 | 281 | |
| 282 | if (!conv) | |
| 283 | return; | |
| 284 | ||
| 15884 | 285 | im = PURPLE_CONV_IM(conv); |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
286 | ggc = FINCH_GET_DATA(conv); |
|
14750
1dad59ae254d
[gaim-migrate @ 17440]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
14620
diff
changeset
|
287 | |
| 15884 | 288 | if (purple_conv_im_get_typing_state(im) == PURPLE_TYPING) { |
|
15233
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
289 | int scroll; |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
290 | str = get_conversation_title(conv, account); |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
291 | title = g_strdup_printf(_("%s [%s]"), str, |
| 14612 | 292 | gnt_ascii_only() ? "T" : "\342\243\277"); |
|
15233
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
293 | g_free(str); |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
294 | |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
295 | scroll = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggc->tv)); |
| 15884 | 296 | str = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_name(conv)); |
|
15262
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
297 | /* Updating is a little buggy. So just remove and add a new one */ |
|
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
298 | gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", NULL, TRUE); |
|
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
299 | gnt_text_view_append_text_with_tag(GNT_TEXT_VIEW(ggc->tv), |
|
8f97f9047232
[gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15250
diff
changeset
|
300 | str, GNT_TEXT_FLAG_DIM, "typing"); |
|
15233
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
301 | g_free(str); |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
302 | if (scroll <= 1) |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
303 | gnt_text_view_scroll(GNT_TEXT_VIEW(ggc->tv), 0); |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
304 | } else { |
| 14612 | 305 | title = get_conversation_title(conv, account); |
|
18935
902fd1b53149
Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18605
diff
changeset
|
306 | gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", " ", TRUE); |
|
15233
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
307 | } |
| 14612 | 308 | gnt_screen_rename_widget(ggc->window, title); |
| 309 | g_free(title); | |
| 310 | } | |
| 311 | ||
|
17076
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
312 | static void |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
313 | chat_left_cb(PurpleConversation *conv, gpointer null) |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
314 | { |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
315 | finch_write_common(conv, NULL, _("You have left this chat."), |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
316 | PURPLE_MESSAGE_SYSTEM, time(NULL)); |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
317 | } |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
318 | |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
319 | static void |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
320 | buddy_signed_on_off(PurpleBuddy *buddy, gpointer null) |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
321 | { |
|
22341
ed341c90116e
Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22339
diff
changeset
|
322 | PurpleConversation *conv = find_conv_with_contact(purple_buddy_get_account(buddy), purple_buddy_get_name(buddy)); |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
323 | if (conv == NULL) |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
324 | return; |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
325 | generate_send_to_menu(FINCH_GET_DATA(conv)); |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
326 | } |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
327 | |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
328 | static void |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
329 | account_signed_on_off(PurpleConnection *gc, gpointer null) |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
330 | { |
|
20315
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
331 | GList *list = purple_get_ims(); |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
332 | while (list) { |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
333 | PurpleConversation *conv = list->data; |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
334 | PurpleConversation *cc = find_conv_with_contact( |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
335 | purple_conversation_get_account(conv), purple_conversation_get_name(conv)); |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
336 | if (cc) |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
337 | generate_send_to_menu(FINCH_GET_DATA(cc)); |
|
20315
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
338 | list = list->next; |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
339 | } |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
340 | |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
341 | if (PURPLE_CONNECTION_IS_CONNECTED(gc)) { |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
342 | /* We just signed on. Let's see if there's any chat that we have open, |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
343 | * and hadn't left before the disconnect. */ |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
344 | list = purple_get_chats(); |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
345 | while (list) { |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
346 | PurpleConversation *conv = list->data; |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
347 | PurpleChat *chat; |
|
20622
30e148be3e2c
Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20330
diff
changeset
|
348 | GHashTable *comps = NULL; |
|
20315
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
349 | |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
350 | list = list->next; |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
351 | if (purple_conversation_get_account(conv) != purple_connection_get_account(gc) || |
|
20315
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
352 | !purple_conversation_get_data(conv, "want-to-rejoin")) |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
353 | continue; |
|
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
354 | |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
355 | chat = find_chat_for_conversation(conv); |
|
20315
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
356 | if (chat == NULL) { |
|
22336
ac905bb0a8ec
Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22335
diff
changeset
|
357 | PurplePluginProtocolInfo *info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
|
ac905bb0a8ec
Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22335
diff
changeset
|
358 | if (info->chat_info_defaults != NULL) |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
359 | comps = info->chat_info_defaults(gc, purple_conversation_get_name(conv)); |
|
20622
30e148be3e2c
Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20330
diff
changeset
|
360 | } else { |
|
22341
ed341c90116e
Add accessor and update finch to not touch the internals of PurpleBuddy and PurpleChat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22339
diff
changeset
|
361 | comps = purple_chat_get_components(chat); |
|
20315
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
362 | } |
|
20622
30e148be3e2c
Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20330
diff
changeset
|
363 | serv_join_chat(gc, comps); |
|
30e148be3e2c
Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20330
diff
changeset
|
364 | if (chat == NULL && comps != NULL) |
|
30e148be3e2c
Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20330
diff
changeset
|
365 | g_hash_table_destroy(comps); |
|
20315
21fbfe31160a
If there's a chat open when an account gets disconnected because of an error,
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19986
diff
changeset
|
366 | } |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
367 | } |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
368 | } |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
369 | |
| 14612 | 370 | static gpointer |
|
22104
56970903b8e9
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents:
21859
diff
changeset
|
371 | finch_conv_get_handle(void) |
| 14612 | 372 | { |
| 373 | static int handle; | |
| 374 | return &handle; | |
| 375 | } | |
| 376 | ||
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
377 | static void |
| 16948 | 378 | clear_scrollback_cb(GntMenuItem *item, gpointer ggconv) |
| 379 | { | |
| 380 | FinchConv *ggc = ggconv; | |
| 381 | gnt_text_view_clear(GNT_TEXT_VIEW(ggc->tv)); | |
| 382 | } | |
| 383 | ||
| 384 | static void | |
| 385 | send_file_cb(GntMenuItem *item, gpointer ggconv) | |
| 386 | { | |
| 387 | FinchConv *ggc = ggconv; | |
| 388 | serv_send_file(purple_conversation_get_gc(ggc->active_conv), | |
| 389 | purple_conversation_get_name(ggc->active_conv), NULL); | |
| 390 | } | |
| 391 | ||
| 392 | static void | |
| 393 | add_pounce_cb(GntMenuItem *item, gpointer ggconv) | |
| 394 | { | |
| 395 | FinchConv *ggc = ggconv; | |
| 396 | finch_pounce_editor_show( | |
| 397 | purple_conversation_get_account(ggc->active_conv), | |
| 398 | purple_conversation_get_name(ggc->active_conv), NULL); | |
| 399 | } | |
| 400 | ||
| 401 | static void | |
| 402 | get_info_cb(GntMenuItem *item, gpointer ggconv) | |
| 403 | { | |
| 404 | FinchConv *ggc = ggconv; | |
|
17360
4b04b2ee459a
Use utility functions to get user info. Closes #964.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17164
diff
changeset
|
405 | finch_retrieve_user_info(purple_conversation_get_gc(ggc->active_conv), |
| 16948 | 406 | purple_conversation_get_name(ggc->active_conv)); |
| 407 | } | |
| 408 | ||
| 409 | static void | |
| 410 | toggle_timestamps_cb(GntMenuItem *item, gpointer ggconv) | |
| 411 | { | |
| 412 | purple_prefs_set_bool(PREF_ROOT "/timestamps", | |
| 413 | !purple_prefs_get_bool(PREF_ROOT "/timestamps")); | |
| 414 | } | |
| 415 | ||
| 416 | static void | |
|
19610
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
417 | toggle_logging_cb(GntMenuItem *item, gpointer ggconv) |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
418 | { |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
419 | FinchConv *fc = ggconv; |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
420 | PurpleConversation *conv = fc->active_conv; |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
421 | gboolean logging = gnt_menuitem_check_get_checked(GNT_MENU_ITEM_CHECK(item)); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
422 | GList *iter; |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
423 | |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
424 | if (logging == purple_conversation_is_logging(conv)) |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
425 | return; |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
426 | |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
427 | /* Xerox */ |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
428 | if (logging) { |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
429 | /* Enable logging first so the message below can be logged. */ |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
430 | purple_conversation_set_logging(conv, TRUE); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
431 | |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
432 | purple_conversation_write(conv, NULL, |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
433 | _("Logging started. Future messages in this conversation will be logged."), |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
434 | PURPLE_MESSAGE_SYSTEM, time(NULL)); |
|
19610
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
435 | } else { |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
436 | purple_conversation_write(conv, NULL, |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
437 | _("Logging stopped. Future messages in this conversation will not be logged."), |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
438 | PURPLE_MESSAGE_SYSTEM, time(NULL)); |
|
19610
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
439 | |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
440 | /* Disable the logging second, so that the above message can be logged. */ |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
441 | purple_conversation_set_logging(conv, FALSE); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
442 | } |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
443 | |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
444 | /* Each conversation with the same person will have the same logging setting */ |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
445 | for (iter = fc->list; iter; iter = iter->next) { |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
446 | if (iter->data == conv) |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
447 | continue; |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
448 | purple_conversation_set_logging(iter->data, logging); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
449 | } |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
450 | } |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
451 | |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
452 | static void |
|
19612
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
453 | toggle_sound_cb(GntMenuItem *item, gpointer ggconv) |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
454 | { |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
455 | FinchConv *fc = ggconv; |
|
19986
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
456 | PurpleBlistNode *node = get_conversation_blist_node(fc->active_conv); |
|
19612
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
457 | fc->flags ^= FINCH_CONV_NO_SOUND; |
|
19986
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
458 | if (node) |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
459 | purple_blist_node_set_bool(node, "gnt-mute-sound", !!(fc->flags & FINCH_CONV_NO_SOUND)); |
|
19612
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
460 | } |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
461 | |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
462 | static void |
| 16948 | 463 | send_to_cb(GntMenuItem *m, gpointer n) |
| 464 | { | |
| 465 | PurpleAccount *account = g_object_get_data(G_OBJECT(m), "purple_account"); | |
| 466 | gchar *buddy = g_object_get_data(G_OBJECT(m), "purple_buddy_name"); | |
| 467 | PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, buddy); | |
| 468 | finch_conversation_set_active(conv); | |
| 469 | } | |
| 470 | ||
| 471 | static void | |
|
22376
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
472 | view_log_cb(GntMenuItem *n, gpointer ggc) |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
473 | { |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
474 | FinchConv *fc; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
475 | PurpleConversation *conv; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
476 | PurpleLogType type; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
477 | const char *name; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
478 | PurpleAccount *account; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
479 | GSList *buddies; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
480 | GSList *cur; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
481 | |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
482 | fc = ggc; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
483 | conv = fc->active_conv; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
484 | |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
485 | if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
486 | type = PURPLE_LOG_IM; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
487 | else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
488 | type = PURPLE_LOG_CHAT; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
489 | else |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
490 | return; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
491 | |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
492 | name = purple_conversation_get_name(conv); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
493 | account = purple_conversation_get_account(conv); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
494 | |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
495 | buddies = purple_find_buddies(account, name); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
496 | for (cur = buddies; cur != NULL; cur = cur->next) { |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
497 | PurpleBlistNode *node = cur->data; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
498 | if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL))) { |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
499 | finch_log_show_contact((PurpleContact *)node->parent); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
500 | g_slist_free(buddies); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
501 | return; |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
502 | } |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
503 | } |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
504 | g_slist_free(buddies); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
505 | |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
506 | finch_log_show(type, name, account); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
507 | } |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
508 | |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
509 | static void |
| 16948 | 510 | generate_send_to_menu(FinchConv *ggc) |
| 511 | { | |
| 512 | GntWidget *sub, *menu = ggc->menu; | |
| 513 | GntMenuItem *item; | |
| 514 | GSList *buds; | |
| 515 | GList *list = NULL; | |
| 516 | ||
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
517 | buds = purple_find_buddies(purple_conversation_get_account(ggc->active_conv), |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
518 | purple_conversation_get_name(ggc->active_conv)); |
| 16948 | 519 | if (!buds) |
| 520 | return; | |
| 521 | ||
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
522 | if ((item = ggc->u.im->sendto) == NULL) { |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
523 | item = gnt_menuitem_new(_("Send To")); |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
524 | gnt_menu_add_item(GNT_MENU(menu), item); |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
525 | ggc->u.im->sendto = item; |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
526 | } |
| 16948 | 527 | sub = gnt_menu_new(GNT_MENU_POPUP); |
| 528 | gnt_menuitem_set_submenu(item, GNT_MENU(sub)); | |
| 529 | ||
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
530 | for (; buds; buds = g_slist_delete_link(buds, buds)) { |
| 16948 | 531 | PurpleBlistNode *node = (PurpleBlistNode *)purple_buddy_get_contact((PurpleBuddy *)buds->data); |
|
22334
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22104
diff
changeset
|
532 | for (node = purple_blist_node_get_first_child(node); node != NULL; |
|
6eec04817c0d
Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22104
diff
changeset
|
533 | node = purple_blist_node_get_sibling_next(node)) { |
| 16948 | 534 | PurpleBuddy *buddy = (PurpleBuddy *)node; |
| 535 | PurpleAccount *account = purple_buddy_get_account(buddy); | |
| 536 | if (purple_account_is_connected(account)) { | |
| 537 | /* Use the PurplePresence to get unique buddies. */ | |
| 538 | PurplePresence *presence = purple_buddy_get_presence(buddy); | |
| 539 | if (!g_list_find(list, presence)) | |
| 540 | list = g_list_prepend(list, presence); | |
| 541 | } | |
| 542 | } | |
| 543 | } | |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
544 | for (list = g_list_reverse(list); list != NULL; list = g_list_delete_link(list, list)) { |
| 16948 | 545 | PurplePresence *pre = list->data; |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
546 | PurpleBuddy *buddy = purple_presence_get_buddy(pre); |
| 16948 | 547 | PurpleAccount *account = purple_buddy_get_account(buddy); |
| 548 | gchar *name = g_strdup(purple_buddy_get_name(buddy)); | |
| 549 | gchar *text = g_strdup_printf("%s (%s)", purple_buddy_get_name(buddy), purple_account_get_username(account)); | |
| 550 | item = gnt_menuitem_new(text); | |
| 551 | g_free(text); | |
| 552 | gnt_menu_add_item(GNT_MENU(sub), item); | |
| 553 | gnt_menuitem_set_callback(item, send_to_cb, NULL); | |
| 554 | g_object_set_data(G_OBJECT(item), "purple_account", account); | |
| 555 | g_object_set_data_full(G_OBJECT(item), "purple_buddy_name", name, g_free); | |
| 556 | } | |
| 557 | } | |
| 558 | ||
| 559 | static void | |
| 560 | gg_create_menu(FinchConv *ggc) | |
| 561 | { | |
| 562 | GntWidget *menu, *sub; | |
| 563 | GntMenuItem *item; | |
| 564 | ||
| 565 | ggc->menu = menu = gnt_menu_new(GNT_MENU_TOPLEVEL); | |
| 566 | gnt_window_set_menu(GNT_WINDOW(ggc->window), GNT_MENU(menu)); | |
| 567 | ||
| 568 | item = gnt_menuitem_new(_("Conversation")); | |
| 569 | gnt_menu_add_item(GNT_MENU(menu), item); | |
| 570 | ||
| 571 | sub = gnt_menu_new(GNT_MENU_POPUP); | |
| 572 | gnt_menuitem_set_submenu(item, GNT_MENU(sub)); | |
| 573 | ||
| 574 | item = gnt_menuitem_new(_("Clear Scrollback")); | |
| 575 | gnt_menu_add_item(GNT_MENU(sub), item); | |
| 576 | gnt_menuitem_set_callback(item, clear_scrollback_cb, ggc); | |
| 577 | ||
| 578 | item = gnt_menuitem_check_new(_("Show Timestamps")); | |
| 579 | gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item), | |
| 580 | purple_prefs_get_bool(PREF_ROOT "/timestamps")); | |
| 581 | gnt_menu_add_item(GNT_MENU(sub), item); | |
| 582 | gnt_menuitem_set_callback(item, toggle_timestamps_cb, ggc); | |
| 583 | ||
| 584 | if (purple_conversation_get_type(ggc->active_conv) == PURPLE_CONV_TYPE_IM) { | |
|
17018
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
585 | PurpleAccount *account = purple_conversation_get_account(ggc->active_conv); |
|
22335
f6715418a9a8
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 <sadrul@pidgin.im>
parents:
22334
diff
changeset
|
586 | PurpleConnection *gc = purple_account_get_connection(account); |
|
22336
ac905bb0a8ec
Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22335
diff
changeset
|
587 | PurplePluginProtocolInfo *pinfo = |
|
ac905bb0a8ec
Add accessor and update finch to not touch the internals of PurpleConnection.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22335
diff
changeset
|
588 | gc ? PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)) : NULL; |
|
17018
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
589 | |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
590 | if (pinfo && pinfo->get_info) { |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
591 | item = gnt_menuitem_new(_("Get Info")); |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
592 | gnt_menu_add_item(GNT_MENU(sub), item); |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
593 | gnt_menuitem_set_callback(item, get_info_cb, ggc); |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
594 | } |
| 16948 | 595 | |
| 596 | item = gnt_menuitem_new(_("Add Buddy Pounce...")); | |
| 597 | gnt_menu_add_item(GNT_MENU(sub), item); | |
| 598 | gnt_menuitem_set_callback(item, add_pounce_cb, ggc); | |
| 599 | ||
|
17018
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
600 | if (pinfo && pinfo->send_file && |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
601 | (!pinfo->can_receive_file || |
|
22335
f6715418a9a8
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 <sadrul@pidgin.im>
parents:
22334
diff
changeset
|
602 | pinfo->can_receive_file(gc, purple_conversation_get_name(ggc->active_conv)))) { |
|
17018
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
603 | item = gnt_menuitem_new(_("Send File")); |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
604 | gnt_menu_add_item(GNT_MENU(sub), item); |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
605 | gnt_menuitem_set_callback(item, send_file_cb, ggc); |
|
18b76ac05780
Change a string, and make sure non-functional items are not added in the conversation window menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16986
diff
changeset
|
606 | } |
| 16948 | 607 | |
| 608 | generate_send_to_menu(ggc); | |
| 609 | } | |
|
19610
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
610 | |
|
22376
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
611 | item = gnt_menuitem_new(_("View Log...")); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
612 | gnt_menu_add_item(GNT_MENU(sub), item); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
613 | gnt_menuitem_set_callback(item, view_log_cb, ggc); |
|
25a17b6b69c2
Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents:
22341
diff
changeset
|
614 | |
|
19610
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
615 | item = gnt_menuitem_check_new(_("Enable Logging")); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
616 | gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item), |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
617 | purple_conversation_is_logging(ggc->active_conv)); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
618 | gnt_menu_add_item(GNT_MENU(sub), item); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
619 | gnt_menuitem_set_callback(item, toggle_logging_cb, ggc); |
|
19612
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
620 | |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
621 | item = gnt_menuitem_check_new(_("Enable Sounds")); |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
622 | gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item), |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
623 | !(ggc->flags & FINCH_CONV_NO_SOUND)); |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
624 | gnt_menu_add_item(GNT_MENU(sub), item); |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
625 | gnt_menuitem_set_callback(item, toggle_sound_cb, ggc); |
| 16948 | 626 | } |
| 627 | ||
| 628 | static void | |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
629 | create_conv_from_userlist(GntWidget *widget, FinchConv *fc) |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
630 | { |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
631 | PurpleAccount *account = purple_conversation_get_account(fc->active_conv); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
632 | char *name = gnt_tree_get_selection_data(GNT_TREE(widget)); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
633 | purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
634 | } |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
635 | |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
636 | static void |
|
18173
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
637 | gained_focus_cb(GntWindow *window, FinchConv *fc) |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
638 | { |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
639 | GList *iter; |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
640 | for (iter = fc->list; iter; iter = iter->next) { |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
641 | purple_conversation_set_data(iter->data, "unseen-count", 0); |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
642 | purple_conversation_update(iter->data, PURPLE_CONV_UPDATE_UNSEEN); |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
643 | } |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
644 | } |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
645 | |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
646 | static void |
|
18423
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
647 | completion_cb(GntEntry *entry, const char *start, const char *end) |
|
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
648 | { |
|
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
649 | if (start == entry->start) |
|
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
650 | gnt_widget_key_pressed(GNT_WIDGET(entry), ": "); |
|
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
651 | } |
|
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
652 | |
|
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
653 | static void |
| 15884 | 654 | finch_create_conversation(PurpleConversation *conv) |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
655 | { |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
656 | FinchConv *ggc = FINCH_GET_DATA(conv); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
657 | char *title; |
| 15884 | 658 | PurpleConversationType type; |
| 659 | PurpleConversation *cc; | |
| 660 | PurpleAccount *account; | |
|
19986
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
661 | PurpleBlistNode *convnode = NULL; |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
662 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
663 | if (ggc) |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
664 | return; |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
665 | |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
666 | account = purple_conversation_get_account(conv); |
|
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
667 | cc = find_conv_with_contact(account, purple_conversation_get_name(conv)); |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
668 | if (cc && FINCH_GET_DATA(cc)) |
|
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
669 | ggc = FINCH_GET_DATA(cc); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
670 | else |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
671 | ggc = g_new0(FinchConv, 1); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
672 | |
|
19610
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
673 | /* Each conversation with the same person will have the same logging setting */ |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
674 | if (ggc->list) { |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
675 | purple_conversation_set_logging(conv, |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
676 | purple_conversation_is_logging(ggc->list->data)); |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
677 | } |
|
0663ae14e7c5
Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
678 | |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
679 | ggc->list = g_list_prepend(ggc->list, conv); |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
680 | ggc->active_conv = conv; |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
681 | FINCH_SET_DATA(conv, ggc); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
682 | |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
683 | if (cc && FINCH_GET_DATA(cc)) { |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
684 | finch_conversation_set_active(conv); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
685 | return; |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
686 | } |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
687 | |
| 15884 | 688 | type = purple_conversation_get_type(conv); |
| 14612 | 689 | title = get_conversation_title(conv, account); |
| 690 | ||
| 16948 | 691 | ggc->window = gnt_vwindow_new(FALSE); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
692 | gnt_box_set_title(GNT_BOX(ggc->window), title); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
693 | gnt_box_set_toplevel(GNT_BOX(ggc->window), TRUE); |
|
13978
70d7030b7f26
[gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13969
diff
changeset
|
694 | gnt_box_set_pad(GNT_BOX(ggc->window), 0); |
|
18305
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
695 | |
|
22337
9868137b6724
Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22336
diff
changeset
|
696 | switch (purple_conversation_get_type(conv)) { |
|
18305
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
697 | case PURPLE_CONV_TYPE_UNKNOWN: |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
698 | gnt_widget_set_name(ggc->window, "conversation-window-unknown" ); |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
699 | break; |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
700 | case PURPLE_CONV_TYPE_IM: |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
701 | gnt_widget_set_name(ggc->window, "conversation-window-im" ); |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
702 | break; |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
703 | case PURPLE_CONV_TYPE_CHAT: |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
704 | gnt_widget_set_name(ggc->window, "conversation-window-chat" ); |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
705 | break; |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
706 | case PURPLE_CONV_TYPE_MISC: |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
707 | gnt_widget_set_name(ggc->window, "conversation-window-misc" ); |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
708 | break; |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
709 | case PURPLE_CONV_TYPE_ANY: |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
710 | gnt_widget_set_name(ggc->window, "conversation-window-any" ); |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
711 | break; |
|
7301814a6124
Plucked revision from finchfeat to give different names to windows for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18301
diff
changeset
|
712 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
713 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
714 | ggc->tv = gnt_text_view_new(); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
715 | gnt_widget_set_name(ggc->tv, "conversation-window-textview"); |
| 15884 | 716 | gnt_widget_set_size(ggc->tv, purple_prefs_get_int(PREF_ROOT "/size/width"), |
| 717 | purple_prefs_get_int(PREF_ROOT "/size/height")); | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
718 | |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
719 | if (type == PURPLE_CONV_TYPE_CHAT) { |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
720 | GntWidget *hbox, *tree; |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
721 | FinchConvChat *fc = ggc->u.chat = g_new0(FinchConvChat, 1); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
722 | hbox = gnt_hbox_new(FALSE); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
723 | gnt_box_set_pad(GNT_BOX(hbox), 0); |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
724 | tree = fc->userlist = gnt_tree_new_with_columns(2); |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
725 | gnt_tree_set_col_width(GNT_TREE(tree), 0, 1); /* The flag column */ |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
726 | gnt_tree_set_compare_func(GNT_TREE(tree), (GCompareFunc)g_utf8_collate); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
727 | gnt_tree_set_hash_fns(GNT_TREE(tree), g_str_hash, g_str_equal, g_free); |
|
19798
73b881a6c1f9
Use the proper column for searching users in the chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19672
diff
changeset
|
728 | gnt_tree_set_search_column(GNT_TREE(tree), 1); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
729 | GNT_WIDGET_SET_FLAGS(tree, GNT_WIDGET_NO_BORDER); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
730 | gnt_box_add_widget(GNT_BOX(hbox), ggc->tv); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
731 | gnt_box_add_widget(GNT_BOX(hbox), tree); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
732 | gnt_box_add_widget(GNT_BOX(ggc->window), hbox); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
733 | g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(create_conv_from_userlist), ggc); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
734 | gnt_widget_set_visible(tree, purple_prefs_get_bool(PREF_USERLIST)); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
735 | } else { |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
736 | ggc->u.im = g_new0(FinchConvIm, 1); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
737 | gnt_box_add_widget(GNT_BOX(ggc->window), ggc->tv); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
738 | } |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
739 | |
|
16190
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
740 | ggc->info = gnt_vbox_new(FALSE); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
741 | gnt_box_add_widget(GNT_BOX(ggc->window), ggc->info); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
742 | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
743 | ggc->entry = gnt_entry_new(NULL); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
744 | gnt_box_add_widget(GNT_BOX(ggc->window), ggc->entry); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
745 | gnt_widget_set_name(ggc->entry, "conversation-window-entry"); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
746 | gnt_entry_set_history_length(GNT_ENTRY(ggc->entry), -1); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
747 | gnt_entry_set_word_suggest(GNT_ENTRY(ggc->entry), TRUE); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
748 | gnt_entry_set_always_suggest(GNT_ENTRY(ggc->entry), FALSE); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
749 | |
|
16186
73cb5b43aaf9
Add a utility function to assist scrolling in a textview.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15931
diff
changeset
|
750 | gnt_text_view_attach_scroll_widget(GNT_TEXT_VIEW(ggc->tv), ggc->entry); |
|
18605
76230f659c3f
Use the utility function for the conversation and debug windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18423
diff
changeset
|
751 | gnt_text_view_attach_pager_widget(GNT_TEXT_VIEW(ggc->tv), ggc->entry); |
|
76230f659c3f
Use the utility function for the conversation and debug windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18423
diff
changeset
|
752 | |
|
21271
2b594093a1ca
I feel good when I am able to send messages, instead of just typing them.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20791
diff
changeset
|
753 | g_signal_connect_after(G_OBJECT(ggc->entry), "activate", G_CALLBACK(entry_key_pressed), ggc); |
|
18423
83cabde8668d
Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18305
diff
changeset
|
754 | g_signal_connect(G_OBJECT(ggc->entry), "completion", G_CALLBACK(completion_cb), NULL); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
755 | g_signal_connect(G_OBJECT(ggc->window), "destroy", G_CALLBACK(closing_window), ggc); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
756 | |
| 15884 | 757 | gnt_widget_set_position(ggc->window, purple_prefs_get_int(PREF_ROOT "/position/x"), |
| 758 | purple_prefs_get_int(PREF_ROOT "/position/y")); | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
759 | gnt_widget_show(ggc->window); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
760 | |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
761 | g_signal_connect(G_OBJECT(ggc->tv), "size_changed", G_CALLBACK(size_changed_cb), NULL); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
762 | g_signal_connect(G_OBJECT(ggc->window), "position_set", G_CALLBACK(save_position_cb), NULL); |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
763 | |
| 15884 | 764 | if (type == PURPLE_CONV_TYPE_IM) { |
|
15841
f2c4347c1597
Typing notifications are relevant only for IMs.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15821
diff
changeset
|
765 | g_signal_connect(G_OBJECT(ggc->entry), "text_changed", G_CALLBACK(send_typing_notification), ggc); |
|
f2c4347c1597
Typing notifications are relevant only for IMs.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15821
diff
changeset
|
766 | } |
| 14612 | 767 | |
|
19986
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
768 | convnode = get_conversation_blist_node(conv); |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
769 | if ((convnode && purple_blist_node_get_bool(convnode, "gnt-mute-sound")) || |
|
7c725191167c
Remember the 'Enable Sounds' setting for a conversation. Closes #312.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19859
diff
changeset
|
770 | !finch_sound_is_enabled()) |
|
19612
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
771 | ggc->flags |= FINCH_CONV_NO_SOUND; |
|
043dcbf3a36e
Fix #2767 (per-conversation/chat mute option).
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19611
diff
changeset
|
772 | |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
773 | gg_create_menu(ggc); |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
774 | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
775 | g_free(title); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
776 | gnt_box_give_focus_to_child(GNT_BOX(ggc->window), ggc->entry); |
|
18173
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
777 | g_signal_connect(G_OBJECT(ggc->window), "gained-focus", G_CALLBACK(gained_focus_cb), ggc); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
778 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
779 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
780 | static void |
| 15884 | 781 | finch_destroy_conversation(PurpleConversation *conv) |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
782 | { |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
783 | /* do stuff here */ |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
784 | FinchConv *ggc = FINCH_GET_DATA(conv); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
785 | ggc->list = g_list_remove(ggc->list, conv); |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
786 | if (ggc->list && conv == ggc->active_conv) |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
787 | ggc->active_conv = ggc->list->data; |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
788 | |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
789 | if (ggc->list == NULL) { |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
790 | g_free(ggc->u.chat); |
|
18301
1988607deed3
Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18273
diff
changeset
|
791 | if (ggc->window) |
|
1988607deed3
Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18273
diff
changeset
|
792 | gnt_widget_destroy(ggc->window); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
793 | g_free(ggc); |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
794 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
795 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
796 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
797 | static void |
| 15884 | 798 | finch_write_common(PurpleConversation *conv, const char *who, const char *message, |
| 799 | PurpleMessageFlags flags, time_t mtime) | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
800 | { |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
801 | FinchConv *ggconv = FINCH_GET_DATA(conv); |
|
14073
db4207d73bd7
[gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
802 | char *strip, *newline; |
|
13993
8c12e7d15b40
[gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13989
diff
changeset
|
803 | GntTextFormatFlags fl = 0; |
|
14092
191e12cbe464
[gaim-migrate @ 16632]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14086
diff
changeset
|
804 | int pos; |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
805 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
806 | g_return_if_fail(ggconv != NULL); |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
807 | |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
808 | if (ggconv->active_conv != conv) { |
| 15884 | 809 | if (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
810 | finch_conversation_set_active(conv); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
811 | else |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
812 | return; |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
813 | } |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
814 | |
|
14284
6c99565d0f50
[gaim-migrate @ 16903]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14253
diff
changeset
|
815 | pos = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggconv->tv)); |
|
6c99565d0f50
[gaim-migrate @ 16903]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14253
diff
changeset
|
816 | |
|
18935
902fd1b53149
Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18605
diff
changeset
|
817 | gnt_text_view_tag_change(GNT_TEXT_VIEW(ggconv->tv), "typing", NULL, TRUE); |
|
14777
c0ad17caf8ad
[gaim-migrate @ 17469]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14750
diff
changeset
|
818 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), "\n", GNT_TEXT_FLAG_NORMAL); |
|
14284
6c99565d0f50
[gaim-migrate @ 16903]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14253
diff
changeset
|
819 | |
|
14296
ac12fbad24f7
[gaim-migrate @ 16916]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14284
diff
changeset
|
820 | /* Unnecessary to print the timestamp for delayed message */ |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
821 | if (purple_prefs_get_bool("/finch/conversations/timestamps")) |
|
14122
daf2aaa61829
[gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14121
diff
changeset
|
822 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
823 | purple_utf8_strftime("(%H:%M:%S)", localtime(&mtime)), gnt_color_pair(color_timestamp)); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
824 | |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
825 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), " ", GNT_TEXT_FLAG_NORMAL); |
|
14427
8af0c81db5b9
[gaim-migrate @ 17071]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14413
diff
changeset
|
826 | |
| 15884 | 827 | if (flags & PURPLE_MESSAGE_AUTO_RESP) |
|
14483
82b73e12ce27
[gaim-migrate @ 17129]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14470
diff
changeset
|
828 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), |
|
82b73e12ce27
[gaim-migrate @ 17129]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14470
diff
changeset
|
829 | _("<AUTO-REPLY> "), GNT_TEXT_FLAG_BOLD); |
|
82b73e12ce27
[gaim-migrate @ 17129]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14470
diff
changeset
|
830 | |
|
20625
de0fcfa2bbc1
Show 'buzz'/'nudge' etc. messages differently from regular messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20622
diff
changeset
|
831 | if (who && *who && (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) && |
|
de0fcfa2bbc1
Show 'buzz'/'nudge' etc. messages differently from regular messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20622
diff
changeset
|
832 | !(flags & PURPLE_MESSAGE_NOTIFY)) |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
833 | { |
|
14427
8af0c81db5b9
[gaim-migrate @ 17071]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14413
diff
changeset
|
834 | char * name = NULL; |
|
21859
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
835 | GntTextFormatFlags msgflags = GNT_TEXT_FLAG_NORMAL; |
|
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
836 | gboolean me = FALSE; |
|
14427
8af0c81db5b9
[gaim-migrate @ 17071]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14413
diff
changeset
|
837 | |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
838 | if (purple_message_meify((char*)message, -1)) { |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
839 | name = g_strdup_printf("*** %s", who); |
|
21859
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
840 | msgflags = gnt_color_pair(color_message_action); |
|
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
841 | me = TRUE; |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
842 | } else { |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
843 | name = g_strdup_printf("%s", who); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
844 | if (flags & PURPLE_MESSAGE_SEND) |
|
21859
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
845 | msgflags = gnt_color_pair(color_message_send); |
|
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
846 | else if (flags & PURPLE_MESSAGE_NICK) |
|
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
847 | msgflags = gnt_color_pair(color_message_highlight); |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
848 | else |
|
21859
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
849 | msgflags = gnt_color_pair(color_message_receive); |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
850 | } |
|
21859
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
851 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), |
|
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
852 | name, msgflags); |
|
5107469829ef
Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21855
diff
changeset
|
853 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), me ? " " : ": ", GNT_TEXT_FLAG_NORMAL); |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
854 | g_free(name); |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
855 | } else |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
856 | fl = GNT_TEXT_FLAG_DIM; |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
857 | |
| 15884 | 858 | if (flags & PURPLE_MESSAGE_ERROR) |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
859 | fl |= GNT_TEXT_FLAG_BOLD; |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
860 | |
|
14073
db4207d73bd7
[gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
861 | /* XXX: Remove this workaround when textview can parse messages. */ |
| 15884 | 862 | newline = purple_strdup_withhtml(message); |
| 863 | strip = purple_markup_strip_html(newline); | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
864 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
865 | strip, fl); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
866 | |
|
14073
db4207d73bd7
[gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14072
diff
changeset
|
867 | g_free(newline); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
868 | g_free(strip); |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
869 | |
|
18935
902fd1b53149
Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18605
diff
changeset
|
870 | if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM && |
|
902fd1b53149
Just show an empty line, instead of bouncing the text down when the user
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18605
diff
changeset
|
871 | purple_conv_im_get_typing_state(PURPLE_CONV_IM(conv)) == PURPLE_TYPING) { |
| 15884 | 872 | strip = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_name(conv)); |
|
15233
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
873 | gnt_text_view_append_text_with_tag(GNT_TEXT_VIEW(ggconv->tv), |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
874 | strip, GNT_TEXT_FLAG_DIM, "typing"); |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
875 | g_free(strip); |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
876 | } |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
877 | |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
878 | if (pos <= 1) |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
879 | gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0); |
|
fdd9e78534ad
[gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
880 | |
| 15884 | 881 | if (flags & (PURPLE_MESSAGE_RECV | PURPLE_MESSAGE_NICK | PURPLE_MESSAGE_ERROR)) |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
882 | gnt_widget_set_urgent(ggconv->tv); |
|
18173
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
883 | if (flags & PURPLE_MESSAGE_RECV && !gnt_widget_has_focus(ggconv->window)) { |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
884 | int count = GPOINTER_TO_INT(purple_conversation_get_data(conv, "unseen-count")); |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
885 | purple_conversation_set_data(conv, "unseen-count", GINT_TO_POINTER(count + 1)); |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
886 | purple_conversation_update(conv, PURPLE_CONV_UPDATE_UNSEEN); |
|
2e65bc9fa310
Provide a 'unseen-count' data for the conversations so the dbus-docklet can use that information.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17854
diff
changeset
|
887 | } |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
888 | } |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
889 | |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
890 | static void |
| 15884 | 891 | finch_write_chat(PurpleConversation *conv, const char *who, const char *message, |
| 892 | PurpleMessageFlags flags, time_t mtime) | |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
893 | { |
| 15884 | 894 | purple_conversation_write(conv, who, message, flags, mtime); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
895 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
896 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
897 | static void |
| 15884 | 898 | finch_write_im(PurpleConversation *conv, const char *who, const char *message, |
| 899 | PurpleMessageFlags flags, time_t mtime) | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
900 | { |
| 15884 | 901 | PurpleAccount *account = purple_conversation_get_account(conv); |
| 902 | if (flags & PURPLE_MESSAGE_SEND) | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
903 | { |
| 15884 | 904 | who = purple_connection_get_display_name(purple_account_get_connection(account)); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
905 | if (!who) |
| 15884 | 906 | who = purple_account_get_alias(account); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
907 | if (!who) |
| 15884 | 908 | who = purple_account_get_username(account); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
909 | } |
| 15884 | 910 | else if (flags & PURPLE_MESSAGE_RECV) |
| 14070 | 911 | { |
| 15884 | 912 | PurpleBuddy *buddy; |
| 913 | who = purple_conversation_get_name(conv); | |
| 914 | buddy = purple_find_buddy(account, who); | |
| 14070 | 915 | if (buddy) |
| 15884 | 916 | who = purple_buddy_get_contact_alias(buddy); |
| 14070 | 917 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
918 | |
| 15884 | 919 | purple_conversation_write(conv, who, message, flags, mtime); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
920 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
921 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
922 | static void |
| 15884 | 923 | finch_write_conv(PurpleConversation *conv, const char *who, const char *alias, |
| 924 | const char *message, PurpleMessageFlags flags, time_t mtime) | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
925 | { |
|
13959
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
926 | const char *name; |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
927 | if (alias && *alias) |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
928 | name = alias; |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
929 | else if (who && *who) |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
930 | name = who; |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
931 | else |
|
49d3a87c2679
[gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
932 | name = NULL; |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
933 | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
934 | finch_write_common(conv, name, message, flags, mtime); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
935 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
936 | |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
937 | static const char * |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
938 | chat_flag_text(PurpleConvChatBuddyFlags flags) |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
939 | { |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
940 | if (flags & PURPLE_CBFLAGS_FOUNDER) |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
941 | return "~"; |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
942 | if (flags & PURPLE_CBFLAGS_OP) |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
943 | return "@"; |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
944 | if (flags & PURPLE_CBFLAGS_HALFOP) |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
945 | return "%"; |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
946 | if (flags & PURPLE_CBFLAGS_VOICE) |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
947 | return "+"; |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
948 | return " "; |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
949 | } |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
950 | |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
951 | static void |
| 15884 | 952 | finch_chat_add_users(PurpleConversation *conv, GList *users, gboolean new_arrivals) |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
953 | { |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
954 | FinchConv *ggc = FINCH_GET_DATA(conv); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
955 | GntEntry *entry = GNT_ENTRY(ggc->entry); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
956 | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
957 | if (!new_arrivals) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
958 | { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
959 | /* Print the list of users in the room */ |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
960 | GString *string = g_string_new(_("List of users:\n")); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
961 | GList *iter; |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
962 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
963 | for (iter = users; iter; iter = iter->next) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
964 | { |
| 15884 | 965 | PurpleConvChatBuddy *cbuddy = iter->data; |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
966 | char *str; |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
967 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
968 | if ((str = cbuddy->alias) == NULL) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
969 | str = cbuddy->name; |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
970 | g_string_append_printf(string, "[ %s ]", str); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
971 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
972 | |
| 15884 | 973 | purple_conversation_write(conv, NULL, string->str, |
| 974 | PURPLE_MESSAGE_SYSTEM, time(NULL)); | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
975 | g_string_free(string, TRUE); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
976 | } |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
977 | |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
978 | for (; users; users = users->next) |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
979 | { |
| 15884 | 980 | PurpleConvChatBuddy *cbuddy = users->data; |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
981 | GntTree *tree = GNT_TREE(ggc->u.chat->userlist); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
982 | gnt_entry_add_suggest(entry, cbuddy->name); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
983 | gnt_entry_add_suggest(entry, cbuddy->alias); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
984 | gnt_tree_add_row_after(tree, g_strdup(cbuddy->name), |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
985 | gnt_tree_create_row(tree, chat_flag_text(cbuddy->flags), cbuddy->alias), NULL, NULL); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
986 | } |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
987 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
988 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
989 | static void |
| 15884 | 990 | finch_chat_rename_user(PurpleConversation *conv, const char *old, const char *new_n, const char *new_a) |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
991 | { |
|
14318
07aba2cdc261
[gaim-migrate @ 16938]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14296
diff
changeset
|
992 | /* Update the name for string completion */ |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
993 | FinchConv *ggc = FINCH_GET_DATA(conv); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
994 | GntEntry *entry = GNT_ENTRY(ggc->entry); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
995 | GntTree *tree = GNT_TREE(ggc->u.chat->userlist); |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
996 | PurpleConvChatBuddy *cb = purple_conv_chat_cb_find(PURPLE_CONV_CHAT(conv), new_n); |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
997 | |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
998 | gnt_entry_remove_suggest(entry, old); |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
999 | gnt_tree_remove(tree, (gpointer)old); |
|
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
1000 | |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
1001 | gnt_entry_add_suggest(entry, new_n); |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
1002 | gnt_entry_add_suggest(entry, new_a); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1003 | gnt_tree_add_row_after(tree, g_strdup(new_n), |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
1004 | gnt_tree_create_row(tree, chat_flag_text(cb->flags), new_a), NULL, NULL); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1005 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1006 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1007 | static void |
|
17164
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1008 | finch_chat_remove_users(PurpleConversation *conv, GList *list) |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1009 | { |
|
14318
07aba2cdc261
[gaim-migrate @ 16938]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14296
diff
changeset
|
1010 | /* Remove the name from string completion */ |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
1011 | FinchConv *ggc = FINCH_GET_DATA(conv); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
1012 | GntEntry *entry = GNT_ENTRY(ggc->entry); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1013 | for (; list; list = list->next) { |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1014 | GntTree *tree = GNT_TREE(ggc->u.chat->userlist); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14122
diff
changeset
|
1015 | gnt_entry_remove_suggest(entry, list->data); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1016 | gnt_tree_remove(tree, list->data); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1017 | } |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1018 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1019 | |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1020 | static void |
| 15884 | 1021 | finch_chat_update_user(PurpleConversation *conv, const char *user) |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1022 | { |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
1023 | PurpleConvChatBuddy *cb = purple_conv_chat_cb_find(PURPLE_CONV_CHAT(conv), user); |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
1024 | FinchConv *ggc = FINCH_GET_DATA(conv); |
|
17115
7295bc64f5fa
Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17076
diff
changeset
|
1025 | gnt_tree_change_text(GNT_TREE(ggc->u.chat->userlist), (gpointer)user, 0, chat_flag_text(cb->flags)); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1026 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1027 | |
|
19611
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1028 | static void |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1029 | finch_conv_present(PurpleConversation *conv) |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1030 | { |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1031 | FinchConv *fc = FINCH_CONV(conv); |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1032 | if (fc && fc->window) |
|
20780
c48390a2851d
void functions shouldn't 'return'. Thanks tmcmahon2. Fixes #3151 (gntconv.c fails to compile in Solaris 9)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20625
diff
changeset
|
1033 | gnt_window_present(fc->window); |
|
19611
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1034 | } |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1035 | |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1036 | static gboolean |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1037 | finch_conv_has_focus(PurpleConversation *conv) |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1038 | { |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1039 | FinchConv *fc = FINCH_CONV(conv); |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1040 | if (fc && fc->window) |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1041 | return gnt_widget_has_focus(fc->window); |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1042 | return FALSE; |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1043 | } |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1044 | |
| 15884 | 1045 | static PurpleConversationUiOps conv_ui_ops = |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1046 | { |
|
17164
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1047 | finch_create_conversation, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1048 | finch_destroy_conversation, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1049 | finch_write_chat, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1050 | finch_write_im, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1051 | finch_write_conv, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1052 | finch_chat_add_users, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1053 | finch_chat_rename_user, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1054 | finch_chat_remove_users, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1055 | finch_chat_update_user, |
|
19611
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1056 | finch_conv_present, /* present */ |
|
1ea4a579fbfa
Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19610
diff
changeset
|
1057 | finch_conv_has_focus, /* has_focus */ |
|
17164
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1058 | NULL, /* custom_smiley_add */ |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1059 | NULL, /* custom_smiley_write */ |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1060 | NULL, /* custom_smiley_close */ |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1061 | NULL, /* send_confirm */ |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1062 | NULL, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1063 | NULL, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1064 | NULL, |
|
3a005b9e8f28
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents:
17115
diff
changeset
|
1065 | NULL |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1066 | }; |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1067 | |
| 15884 | 1068 | PurpleConversationUiOps *finch_conv_get_ui_ops() |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1069 | { |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1070 | return &conv_ui_ops; |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1071 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1072 | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1073 | /* Xerox */ |
| 15884 | 1074 | static PurpleCmdRet |
| 1075 | say_command_cb(PurpleConversation *conv, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1076 | const char *cmd, char **args, char **error, void *data) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1077 | { |
| 15884 | 1078 | if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
| 1079 | purple_conv_im_send(PURPLE_CONV_IM(conv), args[0]); | |
| 1080 | else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) | |
| 1081 | purple_conv_chat_send(PURPLE_CONV_CHAT(conv), args[0]); | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1082 | |
| 15884 | 1083 | return PURPLE_CMD_RET_OK; |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1084 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1085 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1086 | /* Xerox */ |
| 15884 | 1087 | static PurpleCmdRet |
| 1088 | me_command_cb(PurpleConversation *conv, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1089 | const char *cmd, char **args, char **error, void *data) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1090 | { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1091 | char *tmp; |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1092 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1093 | tmp = g_strdup_printf("/me %s", args[0]); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1094 | |
| 15884 | 1095 | if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) |
| 1096 | purple_conv_im_send(PURPLE_CONV_IM(conv), tmp); | |
| 1097 | else if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) | |
| 1098 | purple_conv_chat_send(PURPLE_CONV_CHAT(conv), tmp); | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1099 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1100 | g_free(tmp); |
| 15884 | 1101 | return PURPLE_CMD_RET_OK; |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1102 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1103 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1104 | /* Xerox */ |
| 15884 | 1105 | static PurpleCmdRet |
| 1106 | debug_command_cb(PurpleConversation *conv, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1107 | const char *cmd, char **args, char **error, void *data) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1108 | { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1109 | char *tmp, *markup; |
| 15884 | 1110 | PurpleCmdStatus status; |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1111 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1112 | if (!g_ascii_strcasecmp(args[0], "version")) { |
|
21106
b85fbef13eed
Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
21076
diff
changeset
|
1113 | tmp = g_strdup_printf("me is using Finch v%s.", DISPLAY_VERSION); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1114 | markup = g_markup_escape_text(tmp, -1); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1115 | |
| 15884 | 1116 | status = purple_cmd_do_command(conv, tmp, markup, error); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1117 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1118 | g_free(tmp); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1119 | g_free(markup); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1120 | return status; |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1121 | } else { |
| 15884 | 1122 | purple_conversation_write(conv, NULL, _("Supported debug options are: version"), |
| 1123 | PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); | |
| 1124 | return PURPLE_CMD_STATUS_OK; | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1125 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1126 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1127 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1128 | /* Xerox */ |
| 15884 | 1129 | static PurpleCmdRet |
| 1130 | clear_command_cb(PurpleConversation *conv, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1131 | const char *cmd, char **args, char **error, void *data) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1132 | { |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
1133 | FinchConv *ggconv = FINCH_GET_DATA(conv); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1134 | gnt_text_view_clear(GNT_TEXT_VIEW(ggconv->tv)); |
|
19599
5d2c452fbc12
Clear the message history in the /clear callback.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19550
diff
changeset
|
1135 | purple_conversation_clear_message_history(conv); |
| 15884 | 1136 | return PURPLE_CMD_STATUS_OK; |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1137 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1138 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1139 | /* Xerox */ |
| 15884 | 1140 | static PurpleCmdRet |
| 1141 | help_command_cb(PurpleConversation *conv, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1142 | const char *cmd, char **args, char **error, void *data) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1143 | { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1144 | GList *l, *text; |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1145 | GString *s; |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1146 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1147 | if (args[0] != NULL) { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1148 | s = g_string_new(""); |
| 15884 | 1149 | text = purple_cmd_help(conv, args[0]); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1150 | |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1151 | if (text) { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1152 | for (l = text; l; l = l->next) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1153 | if (l->next) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1154 | g_string_append_printf(s, "%s\n", (char *)l->data); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1155 | else |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1156 | g_string_append_printf(s, "%s", (char *)l->data); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1157 | } else { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1158 | g_string_append(s, _("No such command (in this context).")); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1159 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1160 | } else { |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1161 | s = g_string_new(_("Use \"/help <command>\" for help on a specific command.\n" |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1162 | "The following commands are available in this context:\n")); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1163 | |
| 15884 | 1164 | text = purple_cmd_list(conv); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1165 | for (l = text; l; l = l->next) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1166 | if (l->next) |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1167 | g_string_append_printf(s, "%s, ", (char *)l->data); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1168 | else |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1169 | g_string_append_printf(s, "%s.", (char *)l->data); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1170 | g_list_free(text); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1171 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1172 | |
| 15884 | 1173 | purple_conversation_write(conv, NULL, s->str, PURPLE_MESSAGE_NO_LOG, time(NULL)); |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1174 | g_string_free(s, TRUE); |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1175 | |
| 15884 | 1176 | return PURPLE_CMD_STATUS_OK; |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1177 | } |
|
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1178 | |
| 15884 | 1179 | static PurpleCmdRet |
| 1180 | cmd_show_window(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data) | |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
1181 | { |
|
22104
56970903b8e9
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents:
21859
diff
changeset
|
1182 | void (*callback)(void) = data; |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
1183 | callback(); |
| 15884 | 1184 | return PURPLE_CMD_STATUS_OK; |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
1185 | } |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1186 | |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1187 | static PurpleCmdRet |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1188 | users_command_cb(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data) |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1189 | { |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
1190 | FinchConv *fc = FINCH_GET_DATA(conv); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1191 | FinchConvChat *ch; |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1192 | if (!fc) |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1193 | return PURPLE_CMD_STATUS_FAILED; |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1194 | |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1195 | ch = fc->u.chat; |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1196 | gnt_widget_set_visible(ch->userlist, |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1197 | (GNT_WIDGET_IS_FLAG_SET(ch->userlist, GNT_WIDGET_INVISIBLE))); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1198 | gnt_box_readjust(GNT_BOX(fc->window)); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1199 | gnt_box_give_focus_to_child(GNT_BOX(fc->window), fc->entry); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1200 | purple_prefs_set_bool(PREF_USERLIST, !(GNT_WIDGET_IS_FLAG_SET(ch->userlist, GNT_WIDGET_INVISIBLE))); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1201 | return PURPLE_CMD_STATUS_OK; |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1202 | } |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1203 | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1204 | void finch_conversation_init() |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1205 | { |
|
21855
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1206 | color_message_send = gnt_style_get_color(NULL, "color-message-sent"); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1207 | if (!color_message_send) |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1208 | color_message_send = gnt_color_add_pair(COLOR_CYAN, -1); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1209 | color_message_receive = gnt_style_get_color(NULL, "color-message-received"); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1210 | if (!color_message_receive) |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1211 | color_message_receive = gnt_color_add_pair(COLOR_RED, -1); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1212 | color_message_highlight = gnt_style_get_color(NULL, "color-message-highlight"); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1213 | if (!color_message_highlight) |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1214 | color_message_highlight = gnt_color_add_pair(COLOR_GREEN, -1); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1215 | color_timestamp = gnt_style_get_color(NULL, "color-timestamp"); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1216 | if (!color_timestamp) |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1217 | color_timestamp = gnt_color_add_pair(COLOR_BLUE, -1); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1218 | color_message_action = gnt_style_get_color(NULL, "color-message-action"); |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1219 | if (!color_message_action) |
|
fc93ce6595e4
Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents:
21453
diff
changeset
|
1220 | color_message_action = gnt_color_add_pair(COLOR_YELLOW, -1); |
| 15884 | 1221 | purple_prefs_add_none(PREF_ROOT); |
| 1222 | purple_prefs_add_none(PREF_ROOT "/size"); | |
| 1223 | purple_prefs_add_int(PREF_ROOT "/size/width", 70); | |
| 1224 | purple_prefs_add_int(PREF_ROOT "/size/height", 20); | |
| 1225 | purple_prefs_add_none(PREF_ROOT "/position"); | |
| 1226 | purple_prefs_add_int(PREF_ROOT "/position/x", 0); | |
| 1227 | purple_prefs_add_int(PREF_ROOT "/position/y", 0); | |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1228 | purple_prefs_add_none(PREF_CHAT); |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1229 | purple_prefs_add_bool(PREF_USERLIST, FALSE); |
|
14072
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
1230 | |
|
4e64a4f18686
[gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14070
diff
changeset
|
1231 | /* Xerox the commands */ |
| 15884 | 1232 | purple_cmd_register("say", "S", PURPLE_CMD_P_DEFAULT, |
| 1233 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1234 | say_command_cb, _("say <message>: Send a message normally as if you weren't using a command."), NULL); |
| 15884 | 1235 | purple_cmd_register("me", "S", PURPLE_CMD_P_DEFAULT, |
| 1236 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1237 | me_command_cb, _("me <action>: Send an IRC style action to a buddy or chat."), NULL); |
| 15884 | 1238 | purple_cmd_register("debug", "w", PURPLE_CMD_P_DEFAULT, |
| 1239 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1240 | debug_command_cb, _("debug <option>: Send various debug information to the current conversation."), NULL); |
| 15884 | 1241 | purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, |
| 1242 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1243 | clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); |
| 15884 | 1244 | purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, |
| 1245 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, | |
|
14033
127990de806d
[gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14028
diff
changeset
|
1246 | help_command_cb, _("help <command>: Help on a specific command."), NULL); |
|
16949
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1247 | purple_cmd_register("users", "", PURPLE_CMD_P_DEFAULT, |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1248 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, |
|
fd7fcea88ac0
Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16948
diff
changeset
|
1249 | users_command_cb, _("users: Show the list of users in the chat."), NULL); |
|
14086
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
1250 | |
|
732c14687955
[gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14073
diff
changeset
|
1251 | /* Now some commands to bring up some other windows */ |
| 15884 | 1252 | purple_cmd_register("plugins", "", PURPLE_CMD_P_DEFAULT, |
| 1253 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1254 | cmd_show_window, _("plugins: Show the plugins window."), finch_plugins_show_all); |
| 15884 | 1255 | purple_cmd_register("buddylist", "", PURPLE_CMD_P_DEFAULT, |
| 1256 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1257 | cmd_show_window, _("buddylist: Show the buddylist."), finch_blist_show); |
| 15884 | 1258 | purple_cmd_register("accounts", "", PURPLE_CMD_P_DEFAULT, |
| 1259 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1260 | cmd_show_window, _("accounts: Show the accounts window."), finch_accounts_show_all); |
| 15884 | 1261 | purple_cmd_register("debugwin", "", PURPLE_CMD_P_DEFAULT, |
| 1262 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1263 | cmd_show_window, _("debugwin: Show the debug window."), finch_debug_window_show); |
| 15884 | 1264 | purple_cmd_register("prefs", "", PURPLE_CMD_P_DEFAULT, |
| 1265 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1266 | cmd_show_window, _("prefs: Show the preference window."), finch_prefs_show_all); |
| 15884 | 1267 | purple_cmd_register("status", "", PURPLE_CMD_P_DEFAULT, |
| 1268 | PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1269 | cmd_show_window, _("statuses: Show the savedstatuses window."), finch_savedstatus_show_all); |
|
17076
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1270 | |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1271 | purple_signal_connect(purple_conversations_get_handle(), "buddy-typing", finch_conv_get_handle(), |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1272 | PURPLE_CALLBACK(update_buddy_typing), NULL); |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1273 | purple_signal_connect(purple_conversations_get_handle(), "buddy-typing-stopped", finch_conv_get_handle(), |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1274 | PURPLE_CALLBACK(update_buddy_typing), NULL); |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1275 | purple_signal_connect(purple_conversations_get_handle(), "chat-left", finch_conv_get_handle(), |
|
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1276 | PURPLE_CALLBACK(chat_left_cb), NULL); |
|
19449
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1277 | purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_conv_get_handle(), |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1278 | PURPLE_CALLBACK(buddy_signed_on_off), NULL); |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1279 | purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_conv_get_handle(), |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1280 | PURPLE_CALLBACK(buddy_signed_on_off), NULL); |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1281 | purple_signal_connect(purple_connections_get_handle(), "signed-on", finch_conv_get_handle(), |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1282 | PURPLE_CALLBACK(account_signed_on_off), NULL); |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1283 | purple_signal_connect(purple_connections_get_handle(), "signed-off", finch_conv_get_handle(), |
|
a1a8233074ec
Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18935
diff
changeset
|
1284 | PURPLE_CALLBACK(account_signed_on_off), NULL); |
|
13947
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1285 | } |
|
a77f6f615c20
[gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1286 | |
|
15878
f52832b611fe
renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents:
15841
diff
changeset
|
1287 | void finch_conversation_uninit() |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
1288 | { |
|
17076
9968d75058a4
Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17028
diff
changeset
|
1289 | purple_signals_disconnect_by_handle(finch_conv_get_handle()); |
|
13969
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
1290 | } |
|
0541f389442e
[gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13959
diff
changeset
|
1291 | |
| 15884 | 1292 | void finch_conversation_set_active(PurpleConversation *conv) |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1293 | { |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
1294 | FinchConv *ggconv = FINCH_GET_DATA(conv); |
| 15884 | 1295 | PurpleAccount *account; |
|
14470
352d47a0724d
[gaim-migrate @ 17116]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14450
diff
changeset
|
1296 | char *title; |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1297 | |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1298 | g_return_if_fail(ggconv); |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1299 | g_return_if_fail(g_list_find(ggconv->list, conv)); |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1300 | |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1301 | ggconv->active_conv = conv; |
| 15884 | 1302 | account = purple_conversation_get_account(conv); |
| 14612 | 1303 | title = get_conversation_title(conv, account); |
|
14470
352d47a0724d
[gaim-migrate @ 17116]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14450
diff
changeset
|
1304 | gnt_screen_rename_widget(ggconv->window, title); |
|
352d47a0724d
[gaim-migrate @ 17116]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14450
diff
changeset
|
1305 | g_free(title); |
|
14450
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1306 | } |
|
1ac2b6e98ef8
[gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14427
diff
changeset
|
1307 | |
|
16190
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1308 | void finch_conversation_set_info_widget(PurpleConversation *conv, GntWidget *widget) |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1309 | { |
|
22339
f68309ed6c0a
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22337
diff
changeset
|
1310 | FinchConv *fc = FINCH_GET_DATA(conv); |
|
16190
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1311 | int height, width; |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1312 | |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1313 | gnt_box_remove_all(GNT_BOX(fc->info)); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1314 | |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1315 | if (widget) { |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1316 | gnt_box_add_widget(GNT_BOX(fc->info), widget); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1317 | gnt_box_readjust(GNT_BOX(fc->info)); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1318 | } |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1319 | |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1320 | gnt_widget_get_size(fc->window, &width, &height); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1321 | gnt_box_readjust(GNT_BOX(fc->window)); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1322 | gnt_screen_resize_widget(fc->window, width, height); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1323 | gnt_box_give_focus_to_child(GNT_BOX(fc->window), fc->entry); |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1324 | } |
|
435e34f11655
Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16186
diff
changeset
|
1325 |