finch/gntconv.c

Sat, 02 Jan 2021 22:05:09 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 02 Jan 2021 22:05:09 -0600
changeset 40683
dcc53af7a4fb
parent 40616
064ff9f4150a
child 40697
81f81f5d2f39
permissions
-rw-r--r--

Remove the buddy pounces api

This feature has more or less been stalkerware since its inception and the
only useful feature that came of it was offline message emulation which isn't
necessary for most networks nowadays.

Testing Done:
Compiled and ran locally.

Reviewed at https://reviews.imfreedom.org/r/322/

39887
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39834
diff changeset
1 /*
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39834
diff changeset
2 * finch
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
3 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15906
diff changeset
4 * 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
5 * 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
6 * source distribution.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
7 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
8 * 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
9 * 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
10 * 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
11 * (at your option) any later version.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
12 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
13 * 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
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
16 * GNU General Public License for more details.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
17 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14612
diff changeset
18 * 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
19 * 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
20 * 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
21 */
14028
eefce1b0c4e3 [gaim-migrate @ 16522]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
22
39362
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38848
diff changeset
23 #include NCURSES_HEADER
3e92f470c176 Add explicit ncurses dependency to finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38848
diff changeset
24
40462
24ed25d87550 Fix some issues on macos that resulted from the internal.h cleanup
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
25 #include <errno.h>
24ed25d87550 Fix some issues on macos that resulted from the internal.h cleanup
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
26
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
27 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
28
40359
ca141ea93b83 Make all of finch use purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40304
diff changeset
29 #include <purple.h>
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
30
40511
ec08ac1f7d5f Fix Finch for the libgnt single header file
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
31 #include <gnt.h>
ec08ac1f7d5f Fix Finch for the libgnt single header file
Gary Kramlich <grim@reaperworld.com>
parents: 40509
diff changeset
32
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
33 #include "gntaccount.h"
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
34 #include "gntblist.h"
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
35 #include "gntconv.h"
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
36 #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
37 #include "gntlog.h"
40616
064ff9f4150a Don't allow libraries to include their own global header files.
Gary Kramlich <grim@reaperworld.com>
parents: 40590
diff changeset
38 #include "gntmenuutil.h"
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
39 #include "gntplugin.h"
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
40 #include "gntprefs.h"
23374
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
41 #include "gntrequest.h"
14188
cff503f91616 [gaim-migrate @ 16764]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14153
diff changeset
42 #include "gntstatus.h"
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
43
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
44 #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
45 #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
46 #define PREF_USERLIST PREF_CHAT "/userlist"
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
47
14253
b63ebf84c42b This is a hand-crafted commit to migrate across subversion revisions
Ethan Blanton <elb@pidgin.im>
parents: 14188
diff changeset
48 #include "config.h"
b63ebf84c42b This is a hand-crafted commit to migrate across subversion revisions
Ethan Blanton <elb@pidgin.im>
parents: 14188
diff changeset
49
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
50 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
51
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
52 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
53 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
54 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
55 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
56 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
57
22337
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
58 static PurpleChat *
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
59 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
60 {
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
61 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
62 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
63 }
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
64
15373
8483019d6961 [gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15262
diff changeset
65 static void
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15841
diff changeset
66 send_typing_notification(GntWidget *w, FinchConv *ggconv)
15262
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
67 {
15373
8483019d6961 [gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15262
diff changeset
68 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
69 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
70 if (purple_prefs_get_bool("/finch/conversations/notify_typing")) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
71 PurpleConversation *conv = ggconv->active_conv;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
72 PurpleIMConversation *im = PURPLE_IM_CONVERSATION(conv);
15373
8483019d6961 [gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15262
diff changeset
73 if (!empty) {
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
74 gboolean send = (purple_im_conversation_get_send_typed_timeout(im) == 0);
15262
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
75
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
76 purple_im_conversation_stop_send_typed_timeout(im);
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
77 purple_im_conversation_start_send_typed_timeout(im);
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
78 if (send || (purple_im_conversation_get_type_again(im) != 0 &&
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
79 time(NULL) > purple_im_conversation_get_type_again(im))) {
15262
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
80 unsigned int timeout;
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
81 timeout = purple_serv_send_typing(purple_conversation_get_connection(conv),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
82 purple_conversation_get_name(conv),
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
83 PURPLE_IM_TYPING);
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
84 purple_im_conversation_set_type_again(im, timeout);
15262
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
85 }
15373
8483019d6961 [gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15262
diff changeset
86 } else {
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
87 purple_im_conversation_stop_send_typed_timeout(im);
15373
8483019d6961 [gaim-migrate @ 18102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15262
diff changeset
88
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
89 purple_serv_send_typing(purple_conversation_get_connection(conv),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
90 purple_conversation_get_name(conv),
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
91 PURPLE_IM_NOT_TYPING);
15262
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
92 }
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
93 }
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
94 }
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
95
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
96 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
97 entry_key_pressed(GntWidget *w, FinchConv *ggconv)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
98 {
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
99 const char *text = gnt_entry_get_text(GNT_ENTRY(ggconv->entry));
23503
9a0d740df39f Send '//message' as '/message', instead of looking for a 'message' command.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23452
diff changeset
100 if (*text == '/' && *(text + 1) != '/')
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
101 {
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
102 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
103 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
104 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
105 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
106
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
107 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
108 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
109 g_free(escape);
14028
eefce1b0c4e3 [gaim-migrate @ 16522]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
110
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
111 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
112 {
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
113 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
114 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
115 case PURPLE_CMD_STATUS_NOT_FOUND:
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
116 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
117 _("No such command."), PURPLE_MESSAGE_NO_LOG);
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
118 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
119 case PURPLE_CMD_STATUS_WRONG_ARGS:
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
120 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
121 _("Syntax Error: You typed the wrong "
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
122 "number of arguments to that command."),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
123 PURPLE_MESSAGE_NO_LOG);
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
124 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
125 case PURPLE_CMD_STATUS_FAILED:
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
126 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
127 error ? error : _("Your command failed for an unknown reason."),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
128 PURPLE_MESSAGE_NO_LOG);
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
129 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
130 case PURPLE_CMD_STATUS_WRONG_TYPE:
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
131 if(PURPLE_IS_IM_CONVERSATION(conv))
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
132 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
133 _("That command only works in chats, not IMs."),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
134 PURPLE_MESSAGE_NO_LOG);
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
135 else
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
136 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
137 _("That command only works in IMs, not chats."),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
138 PURPLE_MESSAGE_NO_LOG);
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 break;
36545
23b59a16c808 Replaced some _prpl_ stuff with _protocol_
Ankit Vani <a@nevitus.org>
parents: 36544
diff changeset
140 case PURPLE_CMD_STATUS_WRONG_PROTOCOL:
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
141 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
142 _("That command doesn't work on this protocol."),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
143 PURPLE_MESSAGE_NO_LOG);
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
144 break;
14000
aab306afdc43 [gaim-migrate @ 16469]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13993
diff changeset
145 }
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
146 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
147 }
22337
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
148 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
149 {
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
150 purple_conversation_write_system_message(ggconv->active_conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
151 _("Message was not sent, because you are not signed on."),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
152 PURPLE_MESSAGE_ERROR | PURPLE_MESSAGE_NO_LOG);
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
153 }
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 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
155 {
27699
8f6edef17bf5 Use purple_markup_escape_text instead of the glib version.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26762
diff changeset
156 char *escape = purple_markup_escape_text((*text == '/' ? text + 1 : text), -1);
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
157 purple_conversation_send(ggconv->active_conv, escape);
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
158 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
159 purple_idle_touch();
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
160 }
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
161 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
162 gnt_entry_clear(GNT_ENTRY(ggconv->entry));
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
163 }
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
164
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
165 static void
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15841
diff changeset
166 closing_window(GntWidget *window, FinchConv *ggconv)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
167 {
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
168 GList *list = ggconv->list;
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
169 ggconv->window = NULL;
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
170 while (list) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
171 PurpleConversation *conv = list->data;
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
172 list = list->next;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
173 g_object_unref(conv);
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
174 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
175 }
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
176
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
177 static void
14923
ccb42b285510 [gaim-migrate @ 17630]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14884
diff changeset
178 size_changed_cb(GntWidget *widget, int width, int height)
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
179 {
14923
ccb42b285510 [gaim-migrate @ 17630]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14884
diff changeset
180 int w, h;
ccb42b285510 [gaim-migrate @ 17630]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14884
diff changeset
181 gnt_widget_get_size(widget, &w, &h);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
182 purple_prefs_set_int(PREF_ROOT "/size/width", w);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
183 purple_prefs_set_int(PREF_ROOT "/size/height", h);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
184 }
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
185
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
186 static void
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
187 save_position_cb(GntWidget *w, int x, int y)
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
188 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
189 purple_prefs_set_int(PREF_ROOT "/position/x", x);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
190 purple_prefs_set_int(PREF_ROOT "/position/y", y);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
191 }
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
192
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
193 static PurpleIMConversation *
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
194 find_im_with_contact(PurpleAccount *account, const char *name)
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
195 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
196 PurpleBlistNode *node;
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
197 PurpleBuddy *buddy = purple_blist_find_buddy(account, name);
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
198 PurpleIMConversation *im = NULL;
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
199
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
200 if (!buddy)
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
201 return NULL;
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
202
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
203 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
204 node; node = purple_blist_node_get_sibling_next(node)) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
205 if (node == (PurpleBlistNode*)buddy)
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
206 continue;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
207 if ((im = purple_conversations_find_im_with_account(
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
208 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
209 break;
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
210 }
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
211 return im;
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
212 }
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
213
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
214 static char *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
215 get_conversation_title(PurpleConversation *conv, PurpleAccount *account)
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
216 {
40304
a3d49ff045a8 The e2ee api appears to not be used anywhere. It could use a bunch of cleanup, but I'd rather do that when we're implementing e2ee in protocols as we'll have a better understanding of what it needs then.
Gary Kramlich <grim@reaperworld.com>
parents: 39902
diff changeset
217 return g_strdup_printf(_("%s (%s -- %s)"),
35916
96593c46d85c Finch-OTR: display e2ee state in conv title
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
218 purple_conversation_get_title(conv),
96593c46d85c Finch-OTR: display e2ee state in conv title
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
219 purple_account_get_username(account),
40304
a3d49ff045a8 The e2ee api appears to not be used anywhere. It could use a bunch of cleanup, but I'd rather do that when we're implementing e2ee in protocols as we'll have a better understanding of what it needs then.
Gary Kramlich <grim@reaperworld.com>
parents: 39902
diff changeset
220 purple_account_get_protocol_name(account));
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
221 }
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
222
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
223 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
224 update_buddy_typing(PurpleAccount *account, const char *who, gpointer null)
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
225 {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
226 FinchConv *ggc;
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
227 PurpleIMConversation *im;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
228 PurpleConversation *conv;
15233
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
229 char *title, *str;
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
230
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
231 im = purple_conversations_find_im_with_account(who, account);
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
232
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
233 if (!im)
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
234 return;
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
235
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
236 conv = PURPLE_CONVERSATION(im);
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
237 ggc = FINCH_CONV(conv);
14750
1dad59ae254d [gaim-migrate @ 17440]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14620
diff changeset
238
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
239 if (purple_im_conversation_get_typing_state(im) == PURPLE_IM_TYPING) {
15233
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
240 int scroll;
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
241 str = get_conversation_title(conv, account);
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
242 title = g_strdup_printf(_("%s [%s]"), str,
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
243 gnt_ascii_only() ? "T" : "\342\243\277");
15233
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
244 g_free(str);
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
245
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
246 scroll = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggc->tv));
22573
54822222d0cc Patch from Kyle Turman to show the alias when available in the typing notification. Closes #4957.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22556
diff changeset
247 str = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_title(conv));
15262
8f97f9047232 [gaim-migrate @ 17990]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15250
diff changeset
248 /* 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
249 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
250 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
251 str, GNT_TEXT_FLAG_DIM, "typing");
15233
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
252 g_free(str);
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
253 if (scroll <= 1)
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
254 gnt_text_view_scroll(GNT_TEXT_VIEW(ggc->tv), 0);
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
255 } else {
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
256 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
257 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
258 }
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
259 gnt_screen_rename_widget(ggc->window, title);
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
260 g_free(title);
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
261 }
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
262
17076
9968d75058a4 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17028
diff changeset
263 static void
9968d75058a4 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17028
diff changeset
264 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
265 {
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
266 purple_conversation_write_system_message(conv,
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
267 _("You have left this chat."), 0);
17076
9968d75058a4 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17028
diff changeset
268 }
9968d75058a4 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17028
diff changeset
269
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
270 static void
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
271 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
272 {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
273 PurpleIMConversation *im = find_im_with_contact(purple_buddy_get_account(buddy), purple_buddy_get_name(buddy));
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
274 if (im == NULL)
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
275 return;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
276 generate_send_to_menu(FINCH_CONV(PURPLE_CONVERSATION(im)));
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
277 }
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
278
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
279 static void
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
280 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
281 {
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
282 GList *list = purple_conversations_get_ims();
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
283 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
284 PurpleConversation *conv = list->data;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
285 PurpleIMConversation *cc = find_im_with_contact(
22337
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
286 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
287 if (cc)
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
288 generate_send_to_menu(FINCH_CONV(PURPLE_CONVERSATION(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
289 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
290 }
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
291
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
292 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
293 /* 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
294 * and hadn't left before the disconnect. */
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
295 list = purple_conversations_get_chats();
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
296 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
297 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
298 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
299 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
300
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
301 list = list->next;
22337
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
302 if (purple_conversation_get_account(conv) != purple_connection_get_account(gc) ||
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34671
diff changeset
303 !g_object_get_data(G_OBJECT(conv), "want-to-rejoin"))
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
304 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
305
22337
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
306 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
307 if (chat == NULL) {
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
308 PurpleProtocol *protocol = purple_connection_get_protocol(gc);
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36716
diff changeset
309 comps = purple_protocol_chat_iface_info_defaults(protocol, gc,
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
310 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
311 } 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
312 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
313 }
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
314 purple_serv_join_chat(gc, comps);
20622
30e148be3e2c Fix #104 (Reconnect to network should reconnect chats also). This has been
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20330
diff changeset
315 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
316 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
317 }
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
318 }
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
319 }
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
320
28716
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
321 static void
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
322 account_signing_off(PurpleConnection *gc)
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
323 {
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
324 GList *list = purple_conversations_get_chats();
28729
93b39c16fb3b Show the message only for the chats for the account signing off.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28728
diff changeset
325 PurpleAccount *account = purple_connection_get_account(gc);
28716
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
326
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
327 /* We are about to sign off. See which chats we are currently in, and mark
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
328 * them for rejoin on reconnect. */
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
329 while (list) {
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
330 PurpleConversation *conv = list->data;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
331 if (!purple_chat_conversation_has_left(PURPLE_CHAT_CONVERSATION(conv)) &&
28729
93b39c16fb3b Show the message only for the chats for the account signing off.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28728
diff changeset
332 purple_conversation_get_account(conv) == account) {
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34671
diff changeset
333 g_object_set_data(G_OBJECT(conv), "want-to-rejoin", GINT_TO_POINTER(TRUE));
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
334 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
335 _("The account has disconnected and you are no "
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
336 "longer in this chat. You will be automatically rejoined in the chat when "
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
337 "the account reconnects."),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
338 PURPLE_MESSAGE_NO_LOG);
28716
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
339 }
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
340 list = list->next;
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
341 }
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
342 }
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
343
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
344 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
345 finch_conv_get_handle(void)
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
346 {
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
347 static int handle;
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
348 return &handle;
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
349 }
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
350
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
351 static void
31643
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
352 cleared_message_history_cb(PurpleConversation *conv, gpointer data)
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
353 {
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
354 FinchConv *ggc = FINCH_CONV(conv);
31643
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
355 if (ggc)
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
356 gnt_text_view_clear(GNT_TEXT_VIEW(ggc->tv));
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
357 }
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
358
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
359 static void
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
360 gg_extended_menu(FinchConv *ggc)
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
361 {
35637
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
362 GntMenu *sub;
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
363 GList *list;
35918
3f84738fbc15 Finch: better UI for menus
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35917
diff changeset
364 gboolean is_empty = TRUE;
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
365
35637
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
366 g_return_if_fail(ggc != NULL);
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
367
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
368 sub = GNT_MENU(gnt_menu_new(GNT_MENU_POPUP));
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
369 gnt_menuitem_set_submenu(ggc->plugins, sub);
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
370
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
371 for (list = purple_conversation_get_extended_menu(ggc->active_conv);
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
372 list; list = g_list_delete_link(list, list))
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
373 {
35637
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
374 finch_append_menu_action(sub, list->data, ggc->active_conv);
35918
3f84738fbc15 Finch: better UI for menus
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35917
diff changeset
375 is_empty = FALSE;
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
376 }
35918
3f84738fbc15 Finch: better UI for menus
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35917
diff changeset
377 gnt_menuitem_set_visible(ggc->plugins, !is_empty);
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
378 }
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
379
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
380 static void
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
381 conv_updated(PurpleConversation *conv, PurpleConversationUpdateType type)
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
382 {
35637
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
383 if (purple_conversation_get_ui_data(conv) == NULL)
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
384 return;
965caf7eb32e Finch: fix a crash when opening a new conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35499
diff changeset
385
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
386 if (type == PURPLE_CONVERSATION_UPDATE_FEATURES) {
34681
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
387 gg_extended_menu(purple_conversation_get_ui_data(conv));
35916
96593c46d85c Finch-OTR: display e2ee state in conv title
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
388 return;
96593c46d85c Finch-OTR: display e2ee state in conv title
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35745
diff changeset
389 }
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
390 }
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
391
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
392 static void
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
393 clear_scrollback_cb(GntMenuItem *item, gpointer ggconv)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
394 {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
395 FinchConv *ggc = ggconv;
31643
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
396 purple_conversation_clear_message_history(ggc->active_conv);
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
397 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
398
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
399 static void
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
400 send_file_cb(GntMenuItem *item, gpointer ggconv)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
401 {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
402 FinchConv *ggc = ggconv;
35499
c4c5e0a670b1 Fix namespaces issues in libpurple.
Ankit Vani <a@nevitus.org>
parents: 35494
diff changeset
403 purple_serv_send_file(purple_conversation_get_connection(ggc->active_conv),
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
404 purple_conversation_get_name(ggc->active_conv), NULL);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
405 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
406
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
407 static void
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
408 get_info_cb(GntMenuItem *item, gpointer ggconv)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
409 {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
410 FinchConv *ggc = ggconv;
32698
154e4a2a6287 Our API really shouldn't have a 'gc' in it anymore.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32678
diff changeset
411 finch_retrieve_user_info(purple_conversation_get_connection(ggc->active_conv),
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
412 purple_conversation_get_name(ggc->active_conv));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
413 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
414
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
415 static void
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
416 toggle_timestamps_cb(GntMenuItem *item, gpointer ggconv)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
417 {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
418 purple_prefs_set_bool(PREF_ROOT "/timestamps",
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
419 !purple_prefs_get_bool(PREF_ROOT "/timestamps"));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
420 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
421
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
422 static void
19610
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
423 toggle_logging_cb(GntMenuItem *item, gpointer ggconv)
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
424 {
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
425 FinchConv *fc = ggconv;
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
426 PurpleConversation *conv = fc->active_conv;
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
427 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
428 GList *iter;
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
429
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
430 if (logging == purple_conversation_is_logging(conv))
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
431 return;
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
432
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
433 /* Xerox */
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
434 if (logging) {
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
435 /* 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
436 purple_conversation_set_logging(conv, TRUE);
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
437
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
438 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
439 _("Logging started. Future messages in this "
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
440 "conversation will be logged."), 0);
19610
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
441 } else {
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
442 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
443 _("Logging stopped. Future messages in this "
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
444 "conversation will not be logged."), 0);
19610
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
445
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
446 /* 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
447 purple_conversation_set_logging(conv, FALSE);
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
448 }
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 /* 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
451 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
452 if (iter->data == conv)
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
453 continue;
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
454 purple_conversation_set_logging(iter->data, logging);
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
455 }
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
456 }
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
457
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
458 static void
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
459 send_to_cb(GntMenuItem *m, gpointer n)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
460 {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
461 PurpleAccount *account = g_object_get_data(G_OBJECT(m), "purple_account");
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
462 gchar *buddy = g_object_get_data(G_OBJECT(m), "purple_buddy_name");
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
463 PurpleIMConversation *im = purple_im_conversation_new(account, buddy);
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
464 finch_conversation_set_active(PURPLE_CONVERSATION(im));
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
465 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
466
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
467 static void
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
468 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
469 {
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
470 FinchConv *fc;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
471 PurpleConversation *conv;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
472 PurpleLogType type;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
473 const char *name;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
474 PurpleAccount *account;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
475 GSList *buddies;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
476 GSList *cur;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
477
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
478 fc = ggc;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
479 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
480
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
481 if (PURPLE_IS_IM_CONVERSATION(conv))
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
482 type = PURPLE_LOG_IM;
35068
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
483 else if (PURPLE_IS_CHAT_CONVERSATION(conv))
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
484 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
485 else
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
486 return;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
487
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
488 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
489 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
490
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
491 buddies = purple_blist_find_buddies(account, name);
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
492 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
493 PurpleBlistNode *node = cur->data;
24951
d0837696fd3a Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24456
diff changeset
494 if ((node != NULL) &&
d0837696fd3a Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24456
diff changeset
495 (purple_blist_node_get_sibling_prev(node) || purple_blist_node_get_sibling_next(node))) {
d0837696fd3a Struct hiding for Finch. PurpleChat:alias and PurpleContact:totalsize are still used.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24456
diff changeset
496 finch_log_show_contact((PurpleContact *)purple_blist_node_get_parent(node));
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
497 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
498 return;
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
499 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
500 }
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
501 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
502
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
503 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
504 }
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 static void
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
507 generate_send_to_menu(FinchConv *ggc)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
508 {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
509 GntWidget *sub, *menu = ggc->menu;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
510 GntMenuItem *item;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
511 GSList *buds;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
512 GList *list = NULL;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
513
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
514 buds = purple_blist_find_buddies(purple_conversation_get_account(ggc->active_conv),
22337
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
515 purple_conversation_get_name(ggc->active_conv));
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
516 if (!buds)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
517 return;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
518
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
519 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
520 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
521 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
522 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
523 }
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
524 sub = gnt_menu_new(GNT_MENU_POPUP);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
525 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
526
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
527 for (; buds; buds = g_slist_delete_link(buds, buds)) {
24974
a81952e9babb Update some casts (that the script didn't fix correctly) to GObject macros.
Richard Laager <rlaager@pidgin.im>
parents: 24951
diff changeset
528 PurpleBlistNode *node = PURPLE_BLIST_NODE(purple_buddy_get_contact(PURPLE_BUDDY(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
529 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
530 node = purple_blist_node_get_sibling_next(node)) {
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
531 PurpleBuddy *buddy = (PurpleBuddy *)node;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
532 PurpleAccount *account = purple_buddy_get_account(buddy);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
533 if (purple_account_is_connected(account)) {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
534 /* Use the PurplePresence to get unique buddies. */
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
535 PurplePresence *presence = purple_buddy_get_presence(buddy);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
536 if (!g_list_find(list, presence))
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
537 list = g_list_prepend(list, presence);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
538 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
539 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
540 }
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
541 for (list = g_list_reverse(list); list != NULL; list = g_list_delete_link(list, list)) {
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
542 PurplePresence *pre = list->data;
34849
4676b30130c9 Refactored finch to use the GObject PurplePresence API
Ankit Vani <a@nevitus.org>
parents: 34838
diff changeset
543 PurpleBuddy *buddy = purple_buddy_presence_get_buddy(PURPLE_BUDDY_PRESENCE(pre));
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
544 PurpleAccount *account = purple_buddy_get_account(buddy);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
545 gchar *name = g_strdup(purple_buddy_get_name(buddy));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
546 gchar *text = g_strdup_printf("%s (%s)", purple_buddy_get_name(buddy), purple_account_get_username(account));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
547 item = gnt_menuitem_new(text);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
548 g_free(text);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
549 gnt_menu_add_item(GNT_MENU(sub), item);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
550 gnt_menuitem_set_callback(item, send_to_cb, NULL);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
551 g_object_set_data(G_OBJECT(item), "purple_account", account);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
552 g_object_set_data_full(G_OBJECT(item), "purple_buddy_name", name, g_free);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
553 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
554 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
555
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
556 static void
23374
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
557 invite_cb(GntMenuItem *item, gpointer ggconv)
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
558 {
26762
8cd83b679338 Open a chat-invite dialog when a buddy is dragged onto a chat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24974
diff changeset
559 FinchConv *fc = ggconv;
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
560 PurpleChatConversation *chat = PURPLE_CHAT_CONVERSATION(fc->active_conv);
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
561 purple_chat_conversation_invite_user(chat, NULL, NULL, TRUE);
23374
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
562 }
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
563
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
564 static void
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
565 plugin_changed_cb(PurplePlugin *p, gpointer data)
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
566 {
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
567 gg_extended_menu(data);
23374
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
568 }
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
569
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
570 static void
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
571 gg_create_menu(FinchConv *ggc)
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
572 {
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
573 GntWidget *menu, *sub;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
574 GntMenuItem *item;
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
575
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
576 ggc->menu = menu = gnt_menu_new(GNT_MENU_TOPLEVEL);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
577 gnt_window_set_menu(GNT_WINDOW(ggc->window), GNT_MENU(menu));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
578
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
579 item = gnt_menuitem_new(_("Conversation"));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
580 gnt_menu_add_item(GNT_MENU(menu), item);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
581
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
582 sub = gnt_menu_new(GNT_MENU_POPUP);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
583 gnt_menuitem_set_submenu(item, GNT_MENU(sub));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
584
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
585 item = gnt_menuitem_new(_("Clear Scrollback"));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
586 gnt_menu_add_item(GNT_MENU(sub), item);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
587 gnt_menuitem_set_callback(item, clear_scrollback_cb, ggc);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
588
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
589 item = gnt_menuitem_check_new(_("Show Timestamps"));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
590 gnt_menuitem_check_set_checked(GNT_MENU_ITEM_CHECK(item),
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
591 purple_prefs_get_bool(PREF_ROOT "/timestamps"));
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
592 gnt_menu_add_item(GNT_MENU(sub), item);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
593 gnt_menuitem_set_callback(item, toggle_timestamps_cb, ggc);
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
594
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
595 if (PURPLE_IS_IM_CONVERSATION(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
596 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
597 PurpleConnection *gc = purple_account_get_connection(account);
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
598 PurpleProtocol *protocol =
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
599 gc ? purple_connection_get_protocol(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
600
39759
ea1401483849 Rename *_GET_*_IFACE to more standard *_GET_IFACE.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39620
diff changeset
601 if (protocol && PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER, get_info)) {
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
602 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
603 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
604 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
605 }
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
606
38848
22e32372b906 Fix a few typos and cleanup some whitespace
Gary Kramlich <grim@reaperworld.com>
parents: 38827
diff changeset
607 if (PURPLE_IS_PROTOCOL_XFER(protocol) &&
38827
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
608 purple_protocol_xfer_can_receive(
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
609 PURPLE_PROTOCOL_XFER(protocol),
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
610 gc,
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
611 purple_conversation_get_name(ggc->active_conv)
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
612 )
3573c82d32d8 Initial attempt at removing the magic around PurpleProtocolXferInterface
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
613 ) {
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
614 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
615 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
616 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
617 }
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
618
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
619 generate_send_to_menu(ggc);
35068
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
620 } else if (PURPLE_IS_CHAT_CONVERSATION(ggc->active_conv)) {
23374
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
621 item = gnt_menuitem_new(_("Invite..."));
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
622 gnt_menu_add_item(GNT_MENU(sub), item);
70c054708da7 Add an invite menu for chats
Richard Nelson <wabz@pidgin.im>
parents: 22840
diff changeset
623 gnt_menuitem_set_callback(item, invite_cb, ggc);
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
624 }
19610
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
625
22376
25a17b6b69c2 Add a finch log viewer. This is largely copied from Pidgin.
Richard Nelson <wabz@pidgin.im>
parents: 22341
diff changeset
626 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
627 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
628 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
629
19610
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
630 item = gnt_menuitem_check_new(_("Enable Logging"));
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
631 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
632 purple_conversation_is_logging(ggc->active_conv));
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
633 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
634 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
635
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
636 item = gnt_menuitem_new(_("Plugins"));
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
637 gnt_menu_add_item(GNT_MENU(menu), item);
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
638 ggc->plugins = item;
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
639
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
640 gg_extended_menu(ggc);
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
641 }
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
642
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
643 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
644 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
645 {
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
646 PurpleAccount *account = purple_conversation_get_account(fc->active_conv);
28728
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
647 PurpleConnection *gc = purple_account_get_connection(account);
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
648 PurpleProtocol *protocol = NULL;
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
649 char *name, *realname = NULL;
28728
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
650
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
651 if (!gc) {
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
652 purple_conversation_write_system_message(fc->active_conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
653 _("You are not connected."), 0);
28728
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
654 return;
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
655 }
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
656
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
657 name = gnt_tree_get_selection_data(GNT_TREE(widget));
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
658
36623
caaadef03507 Renamed purple_connection_get_protocol_info() to purple_connection_get_protocol()
Ankit Vani <a@nevitus.org>
parents: 36606
diff changeset
659 protocol = purple_connection_get_protocol(gc);
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
660 if (protocol)
36719
0d7682bdf828 Updated protocol iface calls
Ankit Vani <a@nevitus.org>
parents: 36716
diff changeset
661 realname = purple_protocol_chat_iface_get_user_real_name(protocol, gc,
36716
94a965c18f01 Renamed get_cb_real_name to get_cuser_real_name
Ankit Vani <a@nevitus.org>
parents: 36691
diff changeset
662 purple_chat_conversation_get_id(
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
663 PURPLE_CHAT_CONVERSATION(fc->active_conv)), name);
36632
1f0650e7b1b5 Refactored finch and a bit of libpurple plugins to use the new protocol API
Ankit Vani <a@nevitus.org>
parents: 36623
diff changeset
664
34627
08733a7475df Replaced purple_conversation_new() with purple_[im,chat]_conversation_new()
Ankit Vani <a@nevitus.org>
parents: 34625
diff changeset
665 purple_im_conversation_new(account, realname ? realname : name);
28728
0e157b00c8d2 Fix creating a conversation with a user in a chatroom from the userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28716
diff changeset
666 g_free(realname);
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
667 }
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
668
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
669 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
670 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
671 {
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
672 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
673 for (iter = fc->list; iter; iter = iter->next) {
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34671
diff changeset
674 g_object_set_data(G_OBJECT(iter->data), "unseen-count", 0);
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
675 purple_conversation_update(iter->data, PURPLE_CONVERSATION_UPDATE_UNSEEN);
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
676 }
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
677 }
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
678
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
679 static void
39902
d3887f548a28 finch: Mark unused variable.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39887
diff changeset
680 completion_cb(GntEntry *entry, const char *start, G_GNUC_UNUSED const char *end)
18423
83cabde8668d Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18305
diff changeset
681 {
39620
72bc1964b230 Use gnt_*_get_text accessors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39617
diff changeset
682 if (start == gnt_entry_get_text(entry) && *start != '/')
18423
83cabde8668d Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18305
diff changeset
683 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
684 }
83cabde8668d Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18305
diff changeset
685
83cabde8668d Use the completion-signal to append a ': ' after a tab-completed nick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18305
diff changeset
686 static void
23556
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
687 gg_setup_commands(FinchConv *fconv, gboolean remove_first)
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
688 {
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
689 GList *commands;
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
690 char command[256] = "/";
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
691
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
692 if (remove_first) {
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
693 commands = purple_cmd_list(NULL);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
694 for (; commands; commands = g_list_delete_link(commands, commands)) {
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
695 g_strlcpy(command + 1, commands->data, sizeof(command) - 1);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
696 gnt_entry_remove_suggest(GNT_ENTRY(fconv->entry), command);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
697 }
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
698 }
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
699
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
700 commands = purple_cmd_list(fconv->active_conv);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
701 for (; commands; commands = g_list_delete_link(commands, commands)) {
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
702 g_strlcpy(command + 1, commands->data, sizeof(command) - 1);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
703 gnt_entry_add_suggest(GNT_ENTRY(fconv->entry), command);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
704 }
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
705 }
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
706
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
707 static void
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
708 cmd_added_cb(const char *cmd, PurpleCmdPriority prior, PurpleCmdFlag flags,
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
709 FinchConv *fconv)
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
710 {
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
711 gg_setup_commands(fconv, TRUE);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
712 }
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
713
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
714 static void
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
715 cmd_removed_cb(const char *cmd, FinchConv *fconv)
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
716 {
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
717 char command[256] = "/";
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
718 g_strlcpy(command + 1, cmd, sizeof(command) - 1);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
719 gnt_entry_remove_suggest(GNT_ENTRY(fconv->entry), command);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
720 gg_setup_commands(fconv, TRUE);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
721 }
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
722
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
723 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
724 finch_create_conversation(PurpleConversation *conv)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
725 {
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
726 FinchConv *ggc = FINCH_CONV(conv);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
727 char *title;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
728 PurpleConversation *cc;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
729 PurpleAccount *account;
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
730
22556
dc08052dcac2 Make sure an existing conversation selected from the 'Send IM' dialog is given the focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22410
diff changeset
731 if (ggc) {
dc08052dcac2 Make sure an existing conversation selected from the 'Send IM' dialog is given the focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22410
diff changeset
732 gnt_window_present(ggc->window);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
733 return;
22556
dc08052dcac2 Make sure an existing conversation selected from the 'Send IM' dialog is given the focus.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22410
diff changeset
734 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
735
22337
9868137b6724 Update finch to not touch the internals of PurpleConversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22336
diff changeset
736 account = purple_conversation_get_account(conv);
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
737 cc = PURPLE_CONVERSATION(find_im_with_contact(account, purple_conversation_get_name(conv)));
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
738 if (cc && FINCH_CONV(cc))
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
739 ggc = FINCH_CONV(cc);
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
740 else
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15841
diff changeset
741 ggc = g_new0(FinchConv, 1);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
742
19610
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
743 /* 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
744 if (ggc->list) {
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
745 purple_conversation_set_logging(conv,
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
746 purple_conversation_is_logging(ggc->list->data));
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
747 }
0663ae14e7c5 Separate logging support for each conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
748
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
749 ggc->list = g_list_prepend(ggc->list, conv);
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
750 ggc->active_conv = conv;
34681
1b2233f987cb Backed out changeset f39c64847a3d
Ankit Vani <a@nevitus.org>
parents: 34680
diff changeset
751 purple_conversation_set_ui_data(conv, ggc);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
752
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
753 if (cc && FINCH_CONV(cc) && cc != conv) {
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15841
diff changeset
754 finch_conversation_set_active(conv);
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
755 return;
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
756 }
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
757
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
758 title = get_conversation_title(conv, account);
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
759
16948
1b74eac08677 Conversation menus
Richard Nelson <wabz@pidgin.im>
parents: 16478
diff changeset
760 ggc->window = gnt_vwindow_new(FALSE);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
761 gnt_box_set_title(GNT_BOX(ggc->window), title);
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
762 gnt_box_set_toplevel(GNT_BOX(ggc->window), TRUE);
13978
70d7030b7f26 [gaim-migrate @ 16418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13969
diff changeset
763 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
764
35068
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
765 if (PURPLE_IS_IM_CONVERSATION(conv))
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
766 gnt_widget_set_name(ggc->window, "conversation-window-im");
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
767 else if (PURPLE_IS_CHAT_CONVERSATION(conv))
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
768 gnt_widget_set_name(ggc->window, "conversation-window-chat");
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
769 else
7fc063ef8da1 finch: Don't assume a conversation is always an IM or a chat
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
770 gnt_widget_set_name(ggc->window, "conversation-window-other");
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
771
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
772 ggc->tv = gnt_text_view_new();
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
773 gnt_widget_set_name(ggc->tv, "conversation-window-textview");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
774 gnt_widget_set_size(ggc->tv, purple_prefs_get_int(PREF_ROOT "/size/width"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
775 purple_prefs_get_int(PREF_ROOT "/size/height"));
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
776
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
777 if (PURPLE_IS_CHAT_CONVERSATION(conv)) {
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
778 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
779 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
780 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
781 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
782 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
783 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
784 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
785 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
786 gnt_tree_set_search_column(GNT_TREE(tree), 1);
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39481
diff changeset
787 gnt_widget_set_has_border(tree, FALSE);
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
788 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
789 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
790 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
791 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
792 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
793 } else {
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
794 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
795 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
796 }
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
797
16190
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
798 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
799 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
800
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
801 ggc->entry = gnt_entry_new(NULL);
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
802 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->entry);
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
803 gnt_widget_set_name(ggc->entry, "conversation-window-entry");
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
804 gnt_entry_set_history_length(GNT_ENTRY(ggc->entry), -1);
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
805 gnt_entry_set_word_suggest(GNT_ENTRY(ggc->entry), TRUE);
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
806 gnt_entry_set_always_suggest(GNT_ENTRY(ggc->entry), FALSE);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
807
16186
73cb5b43aaf9 Add a utility function to assist scrolling in a textview.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15931
diff changeset
808 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
809 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
810
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
811 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
812 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
813 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
814
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
815 gnt_widget_set_position(ggc->window, purple_prefs_get_int(PREF_ROOT "/position/x"),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
816 purple_prefs_get_int(PREF_ROOT "/position/y"));
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
817 gnt_widget_show(ggc->window);
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
818
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
819 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
820 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
821
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
822 if (PURPLE_IS_IM_CONVERSATION(conv))
15841
f2c4347c1597 Typing notifications are relevant only for IMs.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15821
diff changeset
823 g_signal_connect(G_OBJECT(ggc->entry), "text_changed", G_CALLBACK(send_typing_notification), ggc);
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
824
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
825 gg_create_menu(ggc);
23556
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
826 gg_setup_commands(ggc, FALSE);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
827
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
828 purple_signal_connect(purple_cmds_get_handle(), "cmd-added", ggc,
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
829 G_CALLBACK(cmd_added_cb), ggc);
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
830 purple_signal_connect(purple_cmds_get_handle(), "cmd-removed", ggc,
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
831 G_CALLBACK(cmd_removed_cb), ggc);
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
832
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
833 purple_signal_connect(purple_plugins_get_handle(), "plugin-load", ggc,
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
834 PURPLE_CALLBACK(plugin_changed_cb), ggc);
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
835 purple_signal_connect(purple_plugins_get_handle(), "plugin-unload", ggc,
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
836 PURPLE_CALLBACK(plugin_changed_cb), ggc);
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
837
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
838 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
839 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
840 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
841 }
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
842
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
843 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
844 finch_destroy_conversation(PurpleConversation *conv)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
845 {
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
846 /* do stuff here */
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
847 FinchConv *ggc = FINCH_CONV(conv);
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
848 ggc->list = g_list_remove(ggc->list, conv);
35924
220fb09c4056 Finch-OTR: update e2ee menu when switching active conversation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35918
diff changeset
849 if (ggc->list && conv == ggc->active_conv)
220fb09c4056 Finch-OTR: update e2ee menu when switching active conversation
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35918
diff changeset
850 finch_conversation_set_active(ggc->list->data);
23556
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
851
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
852 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
853 g_free(ggc->u.chat);
23556
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
854 purple_signals_disconnect_by_handle(ggc);
18301
1988607deed3 Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18273
diff changeset
855 if (ggc->window)
1988607deed3 Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18273
diff changeset
856 gnt_widget_destroy(ggc->window);
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
857 g_free(ggc);
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
858 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
859 }
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
860
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
861 static void
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
862 finch_write_conv(PurpleConversation *conv, PurpleMessage *msg)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
863 {
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
864 FinchConv *ggconv = FINCH_CONV(conv);
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
865 char *strip, *newline;
13993
8c12e7d15b40 [gaim-migrate @ 16458]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
866 GntTextFormatFlags fl = 0;
14092
191e12cbe464 [gaim-migrate @ 16632]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14086
diff changeset
867 int pos;
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
868 PurpleMessageFlags flags = purple_message_get_flags(msg);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
869
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
870 g_return_if_fail(ggconv != NULL);
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
871
24456
fa1be35a86da Set the urgent flag for conversation windows on receiving a /buzz etc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24103
diff changeset
872 if ((flags & PURPLE_MESSAGE_SYSTEM) && !(flags & PURPLE_MESSAGE_NOTIFY)) {
22410
6d2a5d806cc6 Ignore the recv/send flags when the system flag is set for a message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22409
diff changeset
873 flags &= ~(PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV);
6d2a5d806cc6 Ignore the recv/send flags when the system flag is set for a message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22409
diff changeset
874 }
6d2a5d806cc6 Ignore the recv/send flags when the system flag is set for a message.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22409
diff changeset
875
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
876 if (ggconv->active_conv != conv) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
877 if (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV))
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15841
diff changeset
878 finch_conversation_set_active(conv);
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
879 else
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
880 return;
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
881 }
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
882
14284
6c99565d0f50 [gaim-migrate @ 16903]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14253
diff changeset
883 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
884
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
885 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
886 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
887
14296
ac12fbad24f7 [gaim-migrate @ 16916]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14284
diff changeset
888 /* Unnecessary to print the timestamp for delayed message */
27759
e984405d8ae8 Show the current time if the timestamp is zero.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27699
diff changeset
889 if (purple_prefs_get_bool("/finch/conversations/timestamps")) {
40541
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 40512
diff changeset
890 gchar *timestamp = NULL;
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 40512
diff changeset
891
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 40512
diff changeset
892 timestamp = purple_message_format_timestamp(msg, "(%H:%M:%S)");
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 40512
diff changeset
893
14122
daf2aaa61829 [gaim-migrate @ 16678]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
894 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
40541
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 40512
diff changeset
895 timestamp,
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 40512
diff changeset
896 gnt_color_pair(color_timestamp));
9ceb8d25d4d9 PurpleMessage cleanups from hell
Gary Kramlich <grim@reaperworld.com>
parents: 40512
diff changeset
897 g_free(timestamp);
27759
e984405d8ae8 Show the current time if the timestamp is zero.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27699
diff changeset
898 }
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
899
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
900 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
901
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
902 if (flags & PURPLE_MESSAGE_AUTO_RESP)
14483
82b73e12ce27 [gaim-migrate @ 17129]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14470
diff changeset
903 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
904 _("<AUTO-REPLY> "), GNT_TEXT_FLAG_BOLD);
82b73e12ce27 [gaim-migrate @ 17129]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14470
diff changeset
905
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
906 if (purple_message_get_author(msg) && (flags & (PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_RECV)) &&
20625
de0fcfa2bbc1 Show 'buzz'/'nudge' etc. messages differently from regular messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20622
diff changeset
907 !(flags & PURPLE_MESSAGE_NOTIFY))
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
908 {
14427
8af0c81db5b9 [gaim-migrate @ 17071]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
909 char * name = NULL;
21859
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
910 GntTextFormatFlags msgflags = GNT_TEXT_FLAG_NORMAL;
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
911 gboolean me = FALSE;
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
912 gchar *msg_text = g_strdup(purple_message_get_contents(msg));
14427
8af0c81db5b9 [gaim-migrate @ 17071]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
913
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
914 if (purple_message_meify(msg_text, -1)) {
37592
741f27684265 Use alias when available for finch conversation buddies
Ethan Blanton <elb@pidgin.im>
parents: 37155
diff changeset
915 name = g_strdup_printf("*** %s", purple_message_get_author_alias(msg));
22409
64d529e825cd Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22376
diff changeset
916 if (!(flags & PURPLE_MESSAGE_SEND) &&
64d529e825cd Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22376
diff changeset
917 (flags & PURPLE_MESSAGE_NICK))
64d529e825cd Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22376
diff changeset
918 msgflags = gnt_color_pair(color_message_highlight);
64d529e825cd Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22376
diff changeset
919 else
64d529e825cd Highlighted message color has a higher priority over an action message color.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22376
diff changeset
920 msgflags = gnt_color_pair(color_message_action);
21859
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
921 me = TRUE;
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
922 } else {
37592
741f27684265 Use alias when available for finch conversation buddies
Ethan Blanton <elb@pidgin.im>
parents: 37155
diff changeset
923 name = g_strdup_printf("%s", purple_message_get_author_alias(msg));
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
924 if (flags & PURPLE_MESSAGE_SEND)
21859
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
925 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
926 else if (flags & PURPLE_MESSAGE_NICK)
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
927 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
928 else
21859
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
929 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
930 }
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
931 purple_message_set_contents(msg, msg_text); /* might be "meified" */
21859
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
932 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
933 name, msgflags);
5107469829ef Do not append ':' after expanding a /me.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21855
diff changeset
934 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
935 g_free(name);
39797
b291719ba156 Fix a small leak.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39759
diff changeset
936 g_free(msg_text);
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
937 } else
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
938 fl = GNT_TEXT_FLAG_DIM;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
939
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
940 if (flags & PURPLE_MESSAGE_ERROR)
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
941 fl |= GNT_TEXT_FLAG_BOLD;
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
942
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
943 /* XXX: Remove this workaround when textview can parse messages. */
36111
f72e153dd417 Drop finch_write_common in favor of finch_write_conv
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36110
diff changeset
944 newline = purple_strdup_withhtml(purple_message_get_contents(msg));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
945 strip = purple_markup_strip_html(newline);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
946 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
947 strip, fl);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
948
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
949 g_free(newline);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
950 g_free(strip);
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
951
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
952 if (PURPLE_IS_IM_CONVERSATION(conv) && purple_im_conversation_get_typing_state(
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
953 PURPLE_IM_CONVERSATION(conv)) == PURPLE_IM_TYPING) {
22573
54822222d0cc Patch from Kyle Turman to show the alias when available in the typing notification. Closes #4957.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22556
diff changeset
954 strip = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_title(conv));
15233
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
955 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
956 strip, GNT_TEXT_FLAG_DIM, "typing");
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
957 g_free(strip);
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
958 }
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
959
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
960 if (pos <= 1)
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
961 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
fdd9e78534ad [gaim-migrate @ 17957]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14939
diff changeset
962
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
963 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
964 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
965 if (flags & PURPLE_MESSAGE_RECV && !gnt_widget_has_focus(ggconv->window)) {
34678
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34671
diff changeset
966 int count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "unseen-count"));
40a30f74a7b8 Removed purple_conversation_[gs]et_data(). Used g_object_[gs]et_data() instead.
Ankit Vani <a@nevitus.org>
parents: 34671
diff changeset
967 g_object_set_data(G_OBJECT(conv), "unseen-count", GINT_TO_POINTER(count + 1));
34622
753f46dd000f Global replace - renamed functions and types according to GObject-based PurpleConversation API
Ankit Vani <a@nevitus.org>
parents: 34589
diff changeset
968 purple_conversation_update(conv, PURPLE_CONVERSATION_UPDATE_UNSEEN);
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
969 }
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
970 }
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
971
17115
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
972 static const char *
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
973 chat_flag_text(PurpleChatUserFlags flags)
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
974 {
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
975 if (flags & PURPLE_CHAT_USER_FOUNDER)
17115
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
976 return "~";
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
977 if (flags & PURPLE_CHAT_USER_OP)
17115
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
978 return "@";
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
979 if (flags & PURPLE_CHAT_USER_HALFOP)
17115
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
980 return "%";
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
981 if (flags & PURPLE_CHAT_USER_VOICE)
17115
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
982 return "+";
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
983 return " ";
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
984 }
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
985
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
986 static void
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
987 finch_chat_add_users(PurpleChatConversation *chat, GList *users, gboolean new_arrivals)
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
988 {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
989 PurpleConversation *conv = PURPLE_CONVERSATION(chat);
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
990 FinchConv *ggc = FINCH_CONV(conv);
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
991 GntEntry *entry = GNT_ENTRY(ggc->entry);
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
992
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
993 if (!new_arrivals)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
994 {
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
995 /* Print the list of users in the room */
23585
7b7739c29f86 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23556
diff changeset
996 GString *string = g_string_new(NULL);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
997 GList *iter;
23585
7b7739c29f86 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23556
diff changeset
998 int count = g_list_length(users);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
999
23585
7b7739c29f86 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23556
diff changeset
1000 g_string_printf(string,
7b7739c29f86 Show the count of users when joining a chat.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23556
diff changeset
1001 ngettext("List of %d user:\n", "List of %d users:\n", count), count);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1002 for (iter = users; iter; iter = iter->next)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1003 {
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1004 PurpleChatUser *chatuser = iter->data;
32615
18515e130606 Hide struct _PurpleConvChatBuddy.
Andrew Victor <andrew.victor@mxit.com>
parents: 32254
diff changeset
1005 const char *str;
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1006
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1007 if ((str = purple_chat_user_get_alias(chatuser)) == NULL)
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1008 str = purple_chat_user_get_name(chatuser);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1009 g_string_append_printf(string, "[ %s ]", str);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1010 }
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1011
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
1012 purple_conversation_write_system_message(
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
1013 conv, string->str, 0);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1014 g_string_free(string, TRUE);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1015 }
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1016
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1017 for (; users; users = users->next)
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1018 {
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1019 PurpleChatUser *chatuser = 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
1020 GntTree *tree = GNT_TREE(ggc->u.chat->userlist);
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1021 gnt_entry_add_suggest(entry, purple_chat_user_get_name(chatuser));
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1022 gnt_entry_add_suggest(entry, purple_chat_user_get_alias(chatuser));
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1023 gnt_tree_add_row_after(tree, g_strdup(purple_chat_user_get_name(chatuser)),
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1024 gnt_tree_create_row(tree, chat_flag_text(purple_chat_user_get_flags(chatuser)), purple_chat_user_get_alias(chatuser)), NULL, NULL);
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1025 }
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
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1028 static void
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1029 finch_chat_rename_user(PurpleChatConversation *chat, 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
1030 {
14318
07aba2cdc261 [gaim-migrate @ 16938]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14296
diff changeset
1031 /* Update the name for string completion */
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1032 FinchConv *ggc = FINCH_CONV(PURPLE_CONVERSATION(chat));
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1033 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
1034 GntTree *tree = GNT_TREE(ggc->u.chat->userlist);
34671
ca9b45be7a63 Renamed chat buddy to chat user in a few more places
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
1035 PurpleChatUser *cb = purple_chat_conversation_find_user(chat, new_n);
17115
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
1036
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1037 gnt_entry_remove_suggest(entry, old);
17115
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
1038 gnt_tree_remove(tree, (gpointer)old);
7295bc64f5fa Show user flags in chat userlist.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17076
diff changeset
1039
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1040 gnt_entry_add_suggest(entry, new_n);
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1041 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
1042 gnt_tree_add_row_after(tree, g_strdup(new_n),
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1043 gnt_tree_create_row(tree, chat_flag_text(purple_chat_user_get_flags(cb)), new_a), NULL, NULL);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1044 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1045
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1046 static void
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1047 finch_chat_remove_users(PurpleChatConversation *chat, GList *list)
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1048 {
14318
07aba2cdc261 [gaim-migrate @ 16938]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14296
diff changeset
1049 /* Remove the name from string completion */
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1050 FinchConv *ggc = FINCH_CONV(PURPLE_CONVERSATION(chat));
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1051 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
1052 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
1053 GntTree *tree = GNT_TREE(ggc->u.chat->userlist);
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14122
diff changeset
1054 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
1055 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
1056 }
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1057 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1058
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1059 static void
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1060 finch_chat_update_user(PurpleChatUser *cb)
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1061 {
34666
cd9ebef950c6 Added a check in finch_chat_update_user(), removed unnecessary reminders from conversation.h
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1062 PurpleChatConversation *chat;
cd9ebef950c6 Added a check in finch_chat_update_user(), removed unnecessary reminders from conversation.h
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1063 FinchConv *ggc;
cd9ebef950c6 Added a check in finch_chat_update_user(), removed unnecessary reminders from conversation.h
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1064 if (!cb)
cd9ebef950c6 Added a check in finch_chat_update_user(), removed unnecessary reminders from conversation.h
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1065 return;
cd9ebef950c6 Added a check in finch_chat_update_user(), removed unnecessary reminders from conversation.h
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1066
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1067 chat = purple_chat_user_get_chat(cb);
34666
cd9ebef950c6 Added a check in finch_chat_update_user(), removed unnecessary reminders from conversation.h
Ankit Vani <a@nevitus.org>
parents: 34657
diff changeset
1068 ggc = FINCH_CONV(PURPLE_CONVERSATION(chat));
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1069 gnt_tree_change_text(GNT_TREE(ggc->u.chat->userlist),
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1070 (gpointer)purple_chat_user_get_name(cb), 0,
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34666
diff changeset
1071 chat_flag_text(purple_chat_user_get_flags(cb)));
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1072 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1073
19611
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1074 static void
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1075 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
1076 {
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1077 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
1078 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
1079 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
1080 }
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1081
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1082 static gboolean
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1083 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
1084 {
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1085 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
1086 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
1087 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
1088 return FALSE;
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1089 }
1ea4a579fbfa Add two missing conversation-uiops functions. (has_focus and present)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19610
diff changeset
1090
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 29712
diff changeset
1091 static PurpleConversationUiOps conv_ui_ops =
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1092 {
17164
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1093 finch_create_conversation,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1094 finch_destroy_conversation,
36099
a4eb488f88ae Remove redundant write_chat and write_im implementations
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36098
diff changeset
1095 NULL, /* write_chat */
a4eb488f88ae Remove redundant write_chat and write_im implementations
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36098
diff changeset
1096 NULL, /* write_im */
17164
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1097 finch_write_conv,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1098 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
1099 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
1100 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
1101 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
1102 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
1103 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
1104 NULL, /* send_confirm */
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1105 NULL,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1106 NULL,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1107 NULL,
3a005b9e8f28 Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@pidgin.im>
parents: 17115
diff changeset
1108 NULL
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1109 };
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1110
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1111 PurpleConversationUiOps *finch_conv_get_ui_ops()
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1112 {
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1113 return &conv_ui_ops;
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1114 }
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1115
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1116 /* Xerox */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1117 static PurpleCmdRet
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1118 say_command_cb(PurpleConversation *conv,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1119 const char *cmd, char **args, char **error, void *data)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1120 {
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1121 purple_conversation_send(conv, args[0]);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1122
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1123 return PURPLE_CMD_RET_OK;
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1124 }
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 /* Xerox */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1127 static PurpleCmdRet
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1128 me_command_cb(PurpleConversation *conv,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1129 const char *cmd, char **args, char **error, void *data)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1130 {
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1131 char *tmp;
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1132
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1133 tmp = g_strdup_printf("/me %s", args[0]);
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1134 purple_conversation_send(conv, tmp);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1135
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1136 g_free(tmp);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1137 return PURPLE_CMD_RET_OK;
14033
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
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1140 /* Xerox */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1141 static PurpleCmdRet
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1142 debug_command_cb(PurpleConversation *conv,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1143 const char *cmd, char **args, char **error, void *data)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1144 {
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1145 char *tmp, *markup;
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 (!g_ascii_strcasecmp(args[0], "version")) {
28543
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1148 tmp = g_strdup_printf("Using Finch v%s with libpurple v%s.",
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1149 DISPLAY_VERSION, purple_core_get_version());
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1150 } else if (!g_ascii_strcasecmp(args[0], "plugins")) {
36691
92122af1f083 Some documentation updates with regard to 'protocol plugins' and 'protocols'
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
1151 /* Show all the loaded plugins, including plugins marked internal.
36637
9b0109ae118d Renamed some prpl stuff to protocol stuff.
Ankit Vani <a@nevitus.org>
parents: 36632
diff changeset
1152 * This is intentional, since third party protocols are often sources of bugs, and some
36691
92122af1f083 Some documentation updates with regard to 'protocol plugins' and 'protocols'
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
1153 * loaders can also be buggy.
28543
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1154 */
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1155 GString *str = g_string_new("Loaded Plugins: ");
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1156 const GList *plugins = purple_plugins_get_loaded();
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1157 if (plugins) {
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1158 for (; plugins; plugins = plugins->next) {
39834
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39797
diff changeset
1159 GPluginPluginInfo *plugin_info =
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39797
diff changeset
1160 GPLUGIN_PLUGIN_INFO(
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39797
diff changeset
1161 purple_plugin_get_info(
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39797
diff changeset
1162 plugins->data));
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39797
diff changeset
1163 str = g_string_append(
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39797
diff changeset
1164 str, gplugin_plugin_info_get_name(
0345d198dbd6 Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39797
diff changeset
1165 plugin_info));
36393
24b99fa7ece6 Refactored gntconv and finch core to use the initial GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 36362
diff changeset
1166
28543
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1167 if (plugins->next)
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1168 str = g_string_append(str, ", ");
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1169 }
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1170 } else {
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1171 str = g_string_append(str, "(none)");
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1172 }
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1173
28543
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1174 tmp = g_string_free(str, FALSE);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1175 } else {
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
1176 purple_conversation_write_system_message(conv,
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
1177 _("Supported debug options are: plugins version"),
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
1178 PURPLE_MESSAGE_NO_LOG | PURPLE_MESSAGE_ERROR);
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1179 return PURPLE_CMD_RET_OK;
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1180 }
28543
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1181
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1182 markup = g_markup_escape_text(tmp, -1);
34657
b10d6297ffd5 Refactored finch to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34630
diff changeset
1183 purple_conversation_send(conv, markup);
28543
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1184
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1185 g_free(tmp);
1a8becaa2a21 '/debug plugins' will announce the list of loaded plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27829
diff changeset
1186 g_free(markup);
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1187 return PURPLE_CMD_RET_OK;
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1188 }
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1189
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1190 /* Xerox */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1191 static PurpleCmdRet
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1192 clear_command_cb(PurpleConversation *conv,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1193 const char *cmd, char **args, char **error, void *data)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1194 {
19599
5d2c452fbc12 Clear the message history in the /clear callback.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19550
diff changeset
1195 purple_conversation_clear_message_history(conv);
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1196 return PURPLE_CMD_RET_OK;
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1197 }
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1198
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1199 /* Xerox */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1200 static PurpleCmdRet
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1201 help_command_cb(PurpleConversation *conv,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1202 const char *cmd, char **args, char **error, void *data)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1203 {
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1204 GList *l, *text;
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1205 GString *s;
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1206
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1207 if (args[0] != NULL) {
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1208 s = g_string_new("");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1209 text = purple_cmd_help(conv, args[0]);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1210
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1211 if (text) {
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1212 for (l = text; l; l = l->next)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1213 if (l->next)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1214 g_string_append_printf(s, "%s\n", (char *)l->data);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1215 else
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1216 g_string_append_printf(s, "%s", (char *)l->data);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1217 } else {
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1218 g_string_append(s, _("No such command (in this context)."));
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1219 }
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1220 } else {
36133
b143d7e8e919 Change strings from "help on a specific command" to "help with a specific command"
Mark Doliner <mark@kingant.net>
parents: 36111
diff changeset
1221 s = g_string_new(_("Use \"/help &lt;command&gt;\" for help with a "
b143d7e8e919 Change strings from "help on a specific command" to "help with a specific command"
Mark Doliner <mark@kingant.net>
parents: 36111
diff changeset
1222 "specific command.\nThe following commands are available in "
b143d7e8e919 Change strings from "help on a specific command" to "help with a specific command"
Mark Doliner <mark@kingant.net>
parents: 36111
diff changeset
1223 "this context:\n"));
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1224
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1225 text = purple_cmd_list(conv);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1226 for (l = text; l; l = l->next)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1227 if (l->next)
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1228 g_string_append_printf(s, "%s, ", (char *)l->data);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1229 else
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1230 g_string_append_printf(s, "%s.", (char *)l->data);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1231 g_list_free(text);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1232 }
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1233
36089
c035b9a63457 Use purple_conversation_write_system_message where appropriate
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36088
diff changeset
1234 purple_conversation_write_system_message(conv, s->str, PURPLE_MESSAGE_NO_LOG);
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1235 g_string_free(s, TRUE);
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1236
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1237 return PURPLE_CMD_RET_OK;
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1238 }
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1239
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1240 static PurpleCmdRet
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1241 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
1242 {
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21859
diff changeset
1243 void (*callback)(void) = data;
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
1244 callback();
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1245 return PURPLE_CMD_RET_OK;
14086
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
1246 }
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1247
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1248 static PurpleCmdRet
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1249 cmd_message_color(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer data)
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1250 {
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1251 int *msgclass = NULL;
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1252 int fg, bg;
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1253
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31756
diff changeset
1254 if (purple_strequal(args[0], "receive"))
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1255 msgclass = &color_message_receive;
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31756
diff changeset
1256 else if (purple_strequal(args[0], "send"))
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1257 msgclass = &color_message_send;
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31756
diff changeset
1258 else if (purple_strequal(args[0], "highlight"))
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1259 msgclass = &color_message_highlight;
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31756
diff changeset
1260 else if (purple_strequal(args[0], "action"))
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1261 msgclass = &color_message_action;
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 31756
diff changeset
1262 else if (purple_strequal(args[0], "timestamp"))
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1263 msgclass = &color_timestamp;
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1264 else {
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1265 if (error)
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1266 *error = g_strdup_printf(_("%s is not a valid message class. See '/help msgcolor' for valid message classes."), args[0]);
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1267 return PURPLE_CMD_RET_FAILED;
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1268 }
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1269
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1270 fg = gnt_colors_get_color(args[1]);
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1271 if (fg == -EINVAL) {
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1272 if (error)
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1273 *error = g_strdup_printf(_("%s is not a valid color. See '/help msgcolor' for valid colors."), args[1]);
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1274 return PURPLE_CMD_RET_FAILED;
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1275 }
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1276
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1277 bg = gnt_colors_get_color(args[2]);
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1278 if (bg == -EINVAL) {
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1279 if (error)
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1280 *error = g_strdup_printf(_("%s is not a valid color. See '/help msgcolor' for valid colors."), args[2]);
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1281 return PURPLE_CMD_RET_FAILED;
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1282 }
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1283
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1284 init_pair(*msgclass, fg, bg);
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1285
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1286 return PURPLE_CMD_RET_OK;
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1287 }
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1288
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1289 static PurpleCmdRet
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1290 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
1291 {
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
1292 FinchConv *fc = FINCH_CONV(conv);
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1293 FinchConvChat *ch;
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1294 if (!fc)
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1295 return PURPLE_CMD_RET_FAILED;
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1296
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1297 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
1298 gnt_widget_set_visible(ch->userlist,
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39481
diff changeset
1299 !gnt_widget_get_visible(ch->userlist));
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1300 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
1301 gnt_box_give_focus_to_child(GNT_BOX(fc->window), fc->entry);
39617
1d0453799f73 Use GntWidget flag accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39481
diff changeset
1302 purple_prefs_set_bool(PREF_USERLIST, gnt_widget_get_visible(ch->userlist));
28544
093965f9d811 Return the proper enum values from command callbacks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28543
diff changeset
1303 return PURPLE_CMD_RET_OK;
16949
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1304 }
fd7fcea88ac0 Add a /users command to toggle the userlist in chat windows.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16948
diff changeset
1305
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15841
diff changeset
1306 void finch_conversation_init()
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1307 {
21855
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
1308 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
1309 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
1310 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
1311 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
1312 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
1313 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
1314 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
1315 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
1316 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
1317 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
1318 if (!color_timestamp)
fc93ce6595e4 Add color to the conversation window to indicate various message attributes
Richard Nelson <wabz@pidgin.im>
parents: 21453
diff changeset
1319 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
1320 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
1321 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
1322 color_message_action = gnt_color_add_pair(COLOR_YELLOW, -1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1323 purple_prefs_add_none(PREF_ROOT);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1324 purple_prefs_add_none(PREF_ROOT "/size");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1325 purple_prefs_add_int(PREF_ROOT "/size/width", 70);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1326 purple_prefs_add_int(PREF_ROOT "/size/height", 20);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1327 purple_prefs_add_none(PREF_ROOT "/position");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1328 purple_prefs_add_int(PREF_ROOT "/position/x", 0);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1329 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
1330 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
1331 purple_prefs_add_bool(PREF_USERLIST, FALSE);
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
1332
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14070
diff changeset
1333 /* Xerox the commands */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1334 purple_cmd_register("say", "S", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1335 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1336 say_command_cb, _("say &lt;message&gt;: Send a message normally as if you weren't using a command."), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1337 purple_cmd_register("me", "S", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1338 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1339 me_command_cb, _("me &lt;action&gt;: Send an IRC style action to a buddy or chat."), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1340 purple_cmd_register("debug", "w", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1341 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1342 debug_command_cb, _("debug &lt;option&gt;: Send various debug information to the current conversation."), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1343 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1344 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
14033
127990de806d [gaim-migrate @ 16529]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14028
diff changeset
1345 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1346 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1347 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
1348 help_command_cb, _("help &lt;command&gt;: 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
1349 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
1350 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
1351 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
1352
732c14687955 [gaim-migrate @ 16622]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
1353 /* Now some commands to bring up some other windows */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1354 purple_cmd_register("plugins", "", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1355 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
1356 cmd_show_window, _("plugins: Show the plugins window."), finch_plugins_show_all);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1357 purple_cmd_register("buddylist", "", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1358 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
1359 cmd_show_window, _("buddylist: Show the buddylist."), finch_blist_show);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1360 purple_cmd_register("accounts", "", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1361 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
1362 cmd_show_window, _("accounts: Show the accounts window."), finch_accounts_show_all);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1363 purple_cmd_register("debugwin", "", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1364 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
1365 cmd_show_window, _("debugwin: Show the debug window."), finch_debug_window_show);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1366 purple_cmd_register("prefs", "", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1367 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
1368 cmd_show_window, _("prefs: Show the preference window."), finch_prefs_show_all);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1369 purple_cmd_register("status", "", PURPLE_CMD_P_DEFAULT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1370 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
1371 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
1372
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1373 /* Allow customizing the message colors using a command during run-time */
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1374 purple_cmd_register("msgcolor", "www", PURPLE_CMD_P_DEFAULT,
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1375 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1376 cmd_message_color, _("msgcolor &lt;class&gt; &lt;foreground&gt; &lt;background&gt;: "
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1377 "Set the color for different classes of messages in the conversation window.<br>"
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1378 " &lt;class&gt;: receive, send, highlight, action, timestamp<br>"
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1379 " &lt;foreground/background&gt;: black, red, green, blue, white, gray, darkgray, magenta, cyan, default<br><br>"
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1380 "EXAMPLE:<br> msgcolor send cyan default"),
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1381 NULL);
31756
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1382 purple_cmd_register("msgcolour", "www", PURPLE_CMD_P_DEFAULT,
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1383 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1384 cmd_message_color, _("msgcolor &lt;class&gt; &lt;foreground&gt; &lt;background&gt;: "
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1385 "Set the color for different classes of messages in the conversation window.<br>"
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1386 " &lt;class&gt;: receive, send, highlight, action, timestamp<br>"
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1387 " &lt;foreground/background&gt;: black, red, green, blue, white, gray, darkgray, magenta, cyan, default<br><br>"
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1388 "EXAMPLE:<br> msgcolor send cyan default"),
17b32efc423a Register both spellings for the msgcolour command, for people who
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31643
diff changeset
1389 NULL);
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23374
diff changeset
1390
17076
9968d75058a4 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17028
diff changeset
1391 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
1392 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
1393 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
1394 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
1395 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
1396 PURPLE_CALLBACK(chat_left_cb), NULL);
31643
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
1397 purple_signal_connect(purple_conversations_get_handle(), "cleared-message-history", finch_conv_get_handle(),
805b37d317a2 Add a cleared-message-history conversation signal, and use it in Pidgin and Finch
Paul Aurich <darkrain42@pidgin.im>
parents: 31294
diff changeset
1398 PURPLE_CALLBACK(cleared_message_history_cb), NULL);
32849
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
1399 purple_signal_connect(purple_conversations_get_handle(), "conversation-updated", finch_conv_get_handle(),
bffb3866bbde Add support for conversation-extended signals in Finch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32698
diff changeset
1400 PURPLE_CALLBACK(conv_updated), NULL);
19449
a1a8233074ec Update the 'send to' menu in conversation windows when necessary.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18935
diff changeset
1401 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
1402 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
1403 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
1404 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
1405 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
1406 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
1407 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
1408 PURPLE_CALLBACK(account_signed_on_off), NULL);
28716
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
1409 purple_signal_connect(purple_connections_get_handle(), "signing-off", finch_conv_get_handle(),
97be946ff188 Rejoin an opened chat after an account reconnects.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28544
diff changeset
1410 PURPLE_CALLBACK(account_signing_off), NULL);
13947
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1411 }
a77f6f615c20 [gaim-migrate @ 16365]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
1412
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15841
diff changeset
1413 void finch_conversation_uninit()
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
1414 {
17076
9968d75058a4 Notify when you leave a chat, after /part or /kick.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17028
diff changeset
1415 purple_signals_disconnect_by_handle(finch_conv_get_handle());
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
1416 }
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
1417
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1418 void finch_conversation_set_active(PurpleConversation *conv)
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1419 {
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
1420 FinchConv *ggconv = FINCH_CONV(conv);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1421 PurpleAccount *account;
14470
352d47a0724d [gaim-migrate @ 17116]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14450
diff changeset
1422 char *title;
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1423
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1424 g_return_if_fail(ggconv);
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1425 g_return_if_fail(g_list_find(ggconv->list, conv));
23556
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
1426 if (ggconv->active_conv == conv)
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
1427 return;
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1428
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1429 ggconv->active_conv = conv;
23556
33eca6f632b9 Tab-completion for commands in finch.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23503
diff changeset
1430 gg_setup_commands(ggconv, TRUE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
1431 account = purple_conversation_get_account(conv);
14612
308d4a6d4e84 [gaim-migrate @ 17273]
Richard Nelson <wabz@pidgin.im>
parents: 14483
diff changeset
1432 title = get_conversation_title(conv, account);
14470
352d47a0724d [gaim-migrate @ 17116]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14450
diff changeset
1433 gnt_screen_rename_widget(ggconv->window, title);
352d47a0724d [gaim-migrate @ 17116]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14450
diff changeset
1434 g_free(title);
14450
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1435 }
1ac2b6e98ef8 [gaim-migrate @ 17094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14427
diff changeset
1436
16190
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1437 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
1438 {
32254
5cd44bd83684 Use the new accessor functions.
Andrew Victor <andrew.victor@mxit.com>
parents: 31756
diff changeset
1439 FinchConv *fc = FINCH_CONV(conv);
16190
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1440 int height, width;
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1441
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1442 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
1443
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1444 if (widget) {
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1445 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
1446 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
1447 }
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1448
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1449 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
1450 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
1451 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
1452 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
1453 }
435e34f11655 Allow adding information widgets in the conversation window.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16186
diff changeset
1454

mercurial