pidgin/plugins/xmppconsole/xmppconsole.c

Tue, 11 Apr 2023 00:17:15 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 11 Apr 2023 00:17:15 -0500
changeset 42202
2273647d24b0
parent 42074
58ae70ad7f21
child 42453
1c13bc243b7d
permissions
-rw-r--r--

Use gtk_widget_set_visible for everything

gtk_widget_show and gtk_widget_hide are deprecated in GTK 4.10. However,
gtk_widget_set_visible has been around forever so we just need to move to that.

I didn't test all of these and there are probably some that can still be
removed, but most of those are in code that is going to get refreshed in the
future so I didn't bother for now.

Testing Done:
I tested the join chat, add chat, and add buddy dialogs, as well as the contact added notification.

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

15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
1 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
2 * Purple - XMPP debugging tool
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
4 *
39810
f75b20dbdfbb Use standard legalese in XMPP console.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39808
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
f75b20dbdfbb Use standard legalese in XMPP console.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39808
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
f75b20dbdfbb Use standard legalese in XMPP console.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39808
diff changeset
7 * source distribution.
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 *
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 * (at your option) any later version.
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 *
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 * GNU General Public License for more details.
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18 *
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21 */
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
23 #include <glib/gi18n-lib.h>
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
24
40502
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
25 #include <gdk/gdkkeysyms.h>
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
26 #include <gtk/gtk.h>
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40222
diff changeset
27 #include <purple.h>
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
28 #include <pidgin.h>
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
29
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
30 #include "xmppconsole.h"
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
31
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
32 #define PLUGIN_ID "gtk-xmpp"
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
33 #define PLUGIN_DOMAIN (g_quark_from_static_string(PLUGIN_ID))
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
34
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
35 struct _PidginXmppConsole {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
36 GtkWindow parent;
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
37
41864
6f490dec468f Move PidginAccountChooser to GtkDropDown
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41854
diff changeset
38 PidginAccountChooser *account_chooser;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
39 PurpleConnection *gc;
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
40 GtkTextBuffer *buffer;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
41 struct {
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
42 GtkTextTag *info;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
43 GtkTextTag *incoming;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
44 GtkTextTag *outgoing;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
45 GtkTextTag *bracket;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
46 GtkTextTag *tag;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
47 GtkTextTag *attr;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
48 GtkTextTag *value;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
49 GtkTextTag *xmlns;
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
50 } tags;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
51 GtkWidget *entry;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
52 GtkTextBuffer *entry_buffer;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
53 GtkWidget *sw;
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
54
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
55 struct {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
56 GtkMenuButton *button;
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
57 GtkEntry *to;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
58 GtkDropDown *type;
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
59 } iq;
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
60
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
61 struct {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
62 GtkMenuButton *button;
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
63 GtkEntry *to;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
64 GtkDropDown *type;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
65 GtkDropDown *show;
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
66 GtkEntry *status;
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
67 GtkEntry *priority;
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
68 } presence;
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
69
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
70 struct {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
71 GtkMenuButton *button;
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
72 GtkEntry *to;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
73 GtkDropDown *type;
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
74 GtkEntry *body;
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
75 GtkEntry *subject;
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
76 GtkEntry *thread;
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
77 } message;
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
78 };
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
79
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
80 G_DEFINE_DYNAMIC_TYPE(PidginXmppConsole, pidgin_xmpp_console, GTK_TYPE_WINDOW)
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
81
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
82 static PidginXmppConsole *console = NULL;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
83
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
84 /******************************************************************************
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
85 * Helpers
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
86 *****************************************************************************/
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
87 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
88 xmppconsole_append_xmlnode(PidginXmppConsole *console, PurpleXmlNode *node,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
89 gint indent_level, GtkTextIter *iter,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
90 GtkTextTag *tag)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
91 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
92 PurpleXmlNode *c;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
93 gboolean need_end = FALSE, pretty = TRUE;
39003
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
94 gint i;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
95
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
96 g_return_if_fail(node != NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
97
39003
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
98 for (i = 0; i < indent_level; i++) {
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
99 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\t", 1, tag, NULL);
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
100 }
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
101
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
102 gtk_text_buffer_insert_with_tags(console->buffer, iter, "<", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
103 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
104 gtk_text_buffer_insert_with_tags(console->buffer, iter, node->name, -1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
105 tag, console->tags.tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
106
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
107 if (node->xmlns) {
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
108 if ((!node->parent ||
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
109 !node->parent->xmlns ||
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 38258
diff changeset
110 !purple_strequal(node->xmlns, node->parent->xmlns)) &&
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 38258
diff changeset
111 !purple_strequal(node->xmlns, "jabber:client"))
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
112 {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
113 gtk_text_buffer_insert_with_tags(console->buffer, iter, " ", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
114 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
115 gtk_text_buffer_insert_with_tags(console->buffer, iter, "xmlns", 5,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
116 tag, console->tags.attr, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
117 gtk_text_buffer_insert_with_tags(console->buffer, iter, "='", 2,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
118 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
119 gtk_text_buffer_insert_with_tags(console->buffer, iter, node->xmlns, -1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
120 tag, console->tags.xmlns, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
121 gtk_text_buffer_insert_with_tags(console->buffer, iter, "'", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
122 tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
123 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
124 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
125 for (c = node->child; c; c = c->next)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
126 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
127 if (c->type == PURPLE_XMLNODE_TYPE_ATTRIB) {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
128 gtk_text_buffer_insert_with_tags(console->buffer, iter, " ", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
129 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
130 gtk_text_buffer_insert_with_tags(console->buffer, iter, c->name, -1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
131 tag, console->tags.attr, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
132 gtk_text_buffer_insert_with_tags(console->buffer, iter, "='", 2,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
133 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
134 gtk_text_buffer_insert_with_tags(console->buffer, iter, c->data, -1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
135 tag, console->tags.value, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
136 gtk_text_buffer_insert_with_tags(console->buffer, iter, "'", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
137 tag, NULL);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
138 } else if (c->type == PURPLE_XMLNODE_TYPE_TAG || c->type == PURPLE_XMLNODE_TYPE_DATA) {
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
139 if (c->type == PURPLE_XMLNODE_TYPE_DATA)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
140 pretty = FALSE;
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
141 need_end = TRUE;
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
142 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
143 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
144
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
145 if (need_end) {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
146 gtk_text_buffer_insert_with_tags(console->buffer, iter, ">", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
147 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
148 if (pretty) {
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
149 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\n", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
150 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
151 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
152
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
153 for (c = node->child; c; c = c->next)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
154 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
155 if (c->type == PURPLE_XMLNODE_TYPE_TAG) {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
156 xmppconsole_append_xmlnode(console, c, indent_level + 1, iter, tag);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
157 } else if (c->type == PURPLE_XMLNODE_TYPE_DATA && c->data_sz > 0) {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
158 gtk_text_buffer_insert_with_tags(console->buffer, iter, c->data, c->data_sz,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
159 tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
160 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
161 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
162
39003
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
163 if (pretty) {
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
164 for (i = 0; i < indent_level; i++) {
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
165 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\t", 1, tag, NULL);
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
166 }
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
167 }
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
168 gtk_text_buffer_insert_with_tags(console->buffer, iter, "<", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
169 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
170 gtk_text_buffer_insert_with_tags(console->buffer, iter, "/", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
171 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
172 gtk_text_buffer_insert_with_tags(console->buffer, iter, node->name, -1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
173 tag, console->tags.tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
174 gtk_text_buffer_insert_with_tags(console->buffer, iter, ">", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
175 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
176 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\n", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
177 tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
178 } else {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
179 gtk_text_buffer_insert_with_tags(console->buffer, iter, "/", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
180 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
181 gtk_text_buffer_insert_with_tags(console->buffer, iter, ">", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
182 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
183 gtk_text_buffer_insert_with_tags(console->buffer, iter, "\n", 1,
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
184 tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
185 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
186 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
187
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
188 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
189 purple_xmlnode_received_cb(PurpleConnection *gc, PurpleXmlNode **packet,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
190 G_GNUC_UNUSED gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
191 {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
192 GtkTextIter iter;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
193
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
194 if (console == NULL || console->gc != gc) {
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
195 return;
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
196 }
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
197
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
198 gtk_text_buffer_get_end_iter(console->buffer, &iter);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
199 xmppconsole_append_xmlnode(console, *packet, 0, &iter,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
200 console->tags.incoming);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
201 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
202
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
203 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
204 purple_xmlnode_sent_cb(PurpleConnection *gc, char **packet,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
205 G_GNUC_UNUSED gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
206 {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
207 GtkTextIter iter;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
208 PurpleXmlNode *node;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
209
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
210 if (console == NULL || console->gc != gc) {
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
211 return;
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
212 }
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
213 node = purple_xmlnode_from_str(*packet, -1);
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
214
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
215 if (!node)
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
216 return;
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
217
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
218 gtk_text_buffer_get_end_iter(console->buffer, &iter);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
219 xmppconsole_append_xmlnode(console, node, 0, &iter,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
220 console->tags.outgoing);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
221 purple_xmlnode_free(node);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
222 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
223
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
224 static gboolean
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
225 message_send_cb(G_GNUC_UNUSED GtkEventControllerKey *event, guint keyval,
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
226 G_GNUC_UNUSED guint keycode,
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
227 G_GNUC_UNUSED GdkModifierType state,
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
228 gpointer data)
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
229 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
230 PidginXmppConsole *console = data;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36543
diff changeset
231 PurpleProtocol *protocol = NULL;
30626
bec413ce77c7 Fix some "Dead nested assignment"s and then kill off some useless
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30010
diff changeset
232 PurpleConnection *gc;
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
233 gchar *text;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
234 GtkTextIter start, end;
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
235
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
236 if (keyval != GDK_KEY_KP_Enter && keyval != GDK_KEY_Return) {
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
237 return FALSE;
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
238 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
239
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
240 gc = console->gc;
17529
5fd44f61d007 Fix a crash when trying to use XMPP console with no XMPP accounts connected
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16749
diff changeset
241
5fd44f61d007 Fix a crash when trying to use XMPP console with no XMPP accounts connected
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16749
diff changeset
242 if (gc)
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
243 protocol = purple_connection_get_protocol(gc);
17529
5fd44f61d007 Fix a crash when trying to use XMPP console with no XMPP accounts connected
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16749
diff changeset
244
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
245 gtk_text_buffer_get_bounds(console->entry_buffer, &start, &end);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
246 text = gtk_text_buffer_get_text(console->entry_buffer, &start, &end, FALSE);
17529
5fd44f61d007 Fix a crash when trying to use XMPP console with no XMPP accounts connected
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16749
diff changeset
247
40708
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
248 if(PURPLE_IS_PROTOCOL_SERVER(protocol)) {
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
249 purple_protocol_server_send_raw(PURPLE_PROTOCOL_SERVER(protocol), gc,
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
250 text, strlen(text));
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
251 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
252
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
253 g_free(text);
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
254 gtk_text_buffer_set_text(console->entry_buffer, "", 0);
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
255
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
256 return TRUE;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
257 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
258
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
259 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
260 entry_changed_cb(GtkTextBuffer *buffer, gpointer data) {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
261 PidginXmppConsole *console = data;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
262 GtkTextIter start, end;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
263 char *xmlstr, *str;
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
264 GtkTextIter iter;
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
265 int wrapped_lines;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
266 int lines;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
267 GdkRectangle oneline;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
268 int height;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
269 int pad_top, pad_inside, pad_bottom;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
270 PurpleXmlNode *node;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
271
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
272 wrapped_lines = 1;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
273 gtk_text_buffer_get_start_iter(buffer, &iter);
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
274 gtk_text_view_get_iter_location(GTK_TEXT_VIEW(console->entry), &iter, &oneline);
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
275 while (gtk_text_view_forward_display_line(GTK_TEXT_VIEW(console->entry),
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
276 &iter)) {
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
277 wrapped_lines++;
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
278 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
279
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
280 lines = gtk_text_buffer_get_line_count(buffer);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
281
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
282 /* Show a maximum of 64 lines */
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
283 lines = MIN(lines, 6);
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
284 wrapped_lines = MIN(wrapped_lines, 6);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
285
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
286 pad_top = gtk_text_view_get_pixels_above_lines(GTK_TEXT_VIEW(console->entry));
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
287 pad_bottom = gtk_text_view_get_pixels_below_lines(GTK_TEXT_VIEW(console->entry));
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
288 pad_inside = gtk_text_view_get_pixels_inside_wrap(GTK_TEXT_VIEW(console->entry));
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
289
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
290 height = (oneline.height + pad_top + pad_bottom) * lines;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
291 height += (oneline.height + pad_inside) * (wrapped_lines - lines);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
292
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
293 gtk_widget_set_size_request(console->sw, -1, height + 6);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
294
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
295 gtk_text_buffer_get_bounds(buffer, &start, &end);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
296 str = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
297 if (!str) {
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
298 return;
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
299 }
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
300
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
301 xmlstr = g_strdup_printf("<xml>%s</xml>", str);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
302 node = purple_xmlnode_from_str(xmlstr, -1);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
303 if (node) {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
304 gtk_text_buffer_remove_tag_by_name(console->entry_buffer, "invalid",
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
305 &start, &end);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
306 } else {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
307 gtk_text_buffer_apply_tag_by_name(console->entry_buffer, "invalid",
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
308 &start, &end);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
309 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
310 g_free(str);
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
311 g_free(xmlstr);
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
312 if (node)
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
313 purple_xmlnode_free(node);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
314 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
315
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
316 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
317 load_text_and_set_caret(PidginXmppConsole *console, const gchar *pre_text,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
318 const gchar *post_text)
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
319 {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
320 GtkTextIter start, end;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
321 GtkTextIter where;
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
322 GtkTextMark *mark;
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
323
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
324 g_signal_handlers_block_by_func(console->entry_buffer, entry_changed_cb,
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
325 console);
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
326 gtk_text_buffer_begin_user_action(console->entry_buffer);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
327
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
328 gtk_text_buffer_get_bounds(console->entry_buffer, &start, &end);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
329 gtk_text_buffer_delete(console->entry_buffer, &start, &end);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
330 gtk_text_buffer_insert(console->entry_buffer, &end, pre_text, -1);
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
331
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
332 gtk_text_buffer_get_end_iter(console->entry_buffer, &where);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
333 mark = gtk_text_buffer_create_mark(console->entry_buffer, NULL, &where, TRUE);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
334
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
335 gtk_text_buffer_insert(console->entry_buffer, &where, post_text, -1);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
336
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
337 gtk_text_buffer_get_iter_at_mark(console->entry_buffer, &where, mark);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
338 gtk_text_buffer_place_cursor(console->entry_buffer, &where);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
339 gtk_text_buffer_delete_mark(console->entry_buffer, mark);
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
340
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
341 gtk_text_buffer_end_user_action(console->entry_buffer);
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
342 g_signal_handlers_unblock_by_func(console->entry_buffer, entry_changed_cb,
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
343 console);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
344
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
345 entry_changed_cb(console->entry_buffer, console);
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
346 }
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
347
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
348 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
349 iq_clicked_cb(G_GNUC_UNUSED GtkWidget *w, gpointer data)
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
350 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
351 PidginXmppConsole *console = data;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
352 GtkStringObject *obj = NULL;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
353 const gchar *to, *type;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
354 gchar *stanza;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
355
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
356 to = gtk_editable_get_text(GTK_EDITABLE(console->iq.to));
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
357 obj = gtk_drop_down_get_selected_item(console->iq.type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
358 type = gtk_string_object_get_string(obj);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
359
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
360 if(to != NULL && *to != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
361 stanza = g_strdup_printf("<iq to='%s' id='console%x' type='%s'>",
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
362 to, g_random_int(), type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
363 } else {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
364 stanza = g_strdup_printf("<iq id='console%x' type='%s'>",
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
365 g_random_int(), type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
366 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
367
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
368 load_text_and_set_caret(console, stanza, "</iq>");
33053
6ba80150e4c3 Fix the buttons in the XMPP Console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33011
diff changeset
369 gtk_widget_grab_focus(console->entry);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
370 g_free(stanza);
20289
5c844288fbec applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 20288
diff changeset
371
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
372 /* Reset everything. */
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
373 gtk_editable_set_text(GTK_EDITABLE(console->iq.to), "");
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
374 gtk_drop_down_set_selected(console->iq.type, 0);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
375 gtk_menu_button_popdown(console->iq.button);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
376 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
377
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
378 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
379 presence_clicked_cb(G_GNUC_UNUSED GtkWidget *w, gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
380 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
381 PidginXmppConsole *console = data;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
382 GtkStringObject *obj = NULL;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
383 const gchar *to, *status, *priority;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
384 const gchar *type, *show;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
385 GString *stanza = NULL;
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
386
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
387 to = gtk_editable_get_text(GTK_EDITABLE(console->presence.to));
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
388 obj = gtk_drop_down_get_selected_item(console->presence.type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
389 type = gtk_string_object_get_string(obj);
38999
b4b1c5868446 Fix leak when using XMPP console templates.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38358
diff changeset
390 if (purple_strequal(type, "default")) {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
391 type = "";
38999
b4b1c5868446 Fix leak when using XMPP console templates.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38358
diff changeset
392 }
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
393 obj = gtk_drop_down_get_selected_item(console->presence.show);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
394 show = gtk_string_object_get_string(obj);
38999
b4b1c5868446 Fix leak when using XMPP console templates.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38358
diff changeset
395 if (purple_strequal(show, "default")) {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
396 show = "";
38999
b4b1c5868446 Fix leak when using XMPP console templates.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38358
diff changeset
397 }
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
398 status = gtk_editable_get_text(GTK_EDITABLE(console->presence.status));
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
399 priority = gtk_editable_get_text(GTK_EDITABLE(console->presence.priority));
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
400 if (purple_strequal(priority, "0")) {
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
401 priority = "";
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
402 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
403
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
404 stanza = g_string_new("<presence");
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
405 if(*to != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
406 g_string_append_printf(stanza, " to='%s'", to);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
407 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
408 g_string_append_printf(stanza, " id='console%x'", g_random_int());
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
409 if(*type != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
410 g_string_append_printf(stanza, " type='%s'", type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
411 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
412 g_string_append_c(stanza, '>');
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
413
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
414 if(*show != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
415 g_string_append_printf(stanza, "<show>%s</show>", show);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
416 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
417
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
418 if(*status != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
419 g_string_append_printf(stanza, "<status>%s</status>", status);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
420 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
421
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
422 if(*priority != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
423 g_string_append_printf(stanza, "<priority>%s</priority>", priority);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
424 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
425
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
426 load_text_and_set_caret(console, stanza->str, "</presence>");
33053
6ba80150e4c3 Fix the buttons in the XMPP Console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33011
diff changeset
427 gtk_widget_grab_focus(console->entry);
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
428 g_string_free(stanza, TRUE);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
429
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
430 /* Reset everything. */
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
431 gtk_editable_set_text(GTK_EDITABLE(console->presence.to), "");
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
432 gtk_drop_down_set_selected(console->presence.type, 0);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
433 gtk_drop_down_set_selected(console->presence.show, 0);
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
434 gtk_editable_set_text(GTK_EDITABLE(console->presence.status), "");
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
435 gtk_editable_set_text(GTK_EDITABLE(console->presence.priority), "0");
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
436 gtk_menu_button_popdown(console->presence.button);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
437 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
438
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
439 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
440 message_clicked_cb(G_GNUC_UNUSED GtkWidget *w, gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
441 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
442 PidginXmppConsole *console = data;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
443 GtkStringObject *obj = NULL;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
444 const gchar *to, *body, *thread, *subject, *type;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
445 GString *stanza = NULL;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
446
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
447 to = gtk_editable_get_text(GTK_EDITABLE(console->message.to));
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
448 body = gtk_editable_get_text(GTK_EDITABLE(console->message.body));
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
449 thread = gtk_editable_get_text(GTK_EDITABLE(console->message.thread));
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
450 subject = gtk_editable_get_text(GTK_EDITABLE(console->message.subject));
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
451 obj = gtk_drop_down_get_selected_item(console->message.type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
452 type = gtk_string_object_get_string(obj);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
453
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
454 stanza = g_string_new("<message");
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
455 if(*to != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
456 g_string_append_printf(stanza, " to='%s'", to);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
457 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
458 g_string_append_printf(stanza, " id='console%x' type='%s'>",
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
459 g_random_int(), type);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
460
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
461 if(*body != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
462 g_string_append_printf(stanza, "<body>%s</body>", body);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
463 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
464
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
465 if(*subject != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
466 g_string_append_printf(stanza, "<subject>%s</subject>", subject);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
467 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
468
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
469 if(*thread != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
470 g_string_append_printf(stanza, "<thread>%s</thread>", thread);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
471 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
472
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
473 load_text_and_set_caret(console, stanza->str, "</message>");
33053
6ba80150e4c3 Fix the buttons in the XMPP Console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33011
diff changeset
474 gtk_widget_grab_focus(console->entry);
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
475 g_string_free(stanza, TRUE);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
476
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
477 /* Reset everything. */
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
478 gtk_editable_set_text(GTK_EDITABLE(console->message.to), "");
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
479 gtk_drop_down_set_selected(console->message.type, 0);
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
480 gtk_editable_set_text(GTK_EDITABLE(console->message.body), "");
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
481 gtk_editable_set_text(GTK_EDITABLE(console->message.subject), "0");
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
482 gtk_editable_set_text(GTK_EDITABLE(console->message.thread), "0");
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
483 gtk_menu_button_popdown(console->message.button);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
484 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
485
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
486 static void
41854
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
487 dropdown_changed_cb(GObject *obj, G_GNUC_UNUSED GParamSpec *pspec,
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
488 gpointer data)
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
489 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
490 PidginXmppConsole *console = data;
41854
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
491 PidginAccountChooser *chooser = PIDGIN_ACCOUNT_CHOOSER(obj);
41409
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
492 PurpleAccount *account = NULL;
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
493
41409
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
494 account = pidgin_account_chooser_get_selected(chooser);
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
495 if(PURPLE_IS_ACCOUNT(account)) {
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
496 console->gc = purple_account_get_connection(account);
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
497 gtk_text_buffer_set_text(console->buffer, "", 0);
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
498 } else {
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
499 GtkTextIter start, end;
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
500 console->gc = NULL;
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
501 gtk_text_buffer_set_text(console->buffer, _("Not connected to XMPP"), -1);
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
502 gtk_text_buffer_get_bounds(console->buffer, &start, &end);
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
503 gtk_text_buffer_apply_tag(console->buffer, console->tags.info, &start, &end);
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
504 }
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
505 }
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
506
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
507 /******************************************************************************
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
508 * GObject Implementation
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
509 *****************************************************************************/
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
510 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
511 pidgin_xmpp_console_class_finalize(G_GNUC_UNUSED PidginXmppConsoleClass *klass) {
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
512 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
513
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
514 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
515 pidgin_xmpp_console_class_init(PidginXmppConsoleClass *klass) {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
516 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
517
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
518 gtk_widget_class_set_template_from_resource(
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
519 widget_class,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
520 "/im/pidgin/Pidgin3/Plugin/XMPPConsole/console.ui"
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
521 );
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
522
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
523 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
524 account_chooser);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
525 gtk_widget_class_bind_template_callback(widget_class, dropdown_changed_cb);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
526
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
527 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
528 buffer);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
529 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
530 tags.info);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
531 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
532 tags.incoming);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
533 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
534 tags.outgoing);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
535 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
536 tags.bracket);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
537 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
538 tags.tag);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
539 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
540 tags.attr);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
541 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
542 tags.value);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
543 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
544 tags.xmlns);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
545
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
546 /* Popover for <iq/> button. */
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
547 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
548 iq.button);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
549 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
550 iq.to);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
551 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
552 iq.type);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
553 gtk_widget_class_bind_template_callback(widget_class, iq_clicked_cb);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
554
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
555 /* Popover for <presence/> button. */
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
556 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
557 presence.button);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
558 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
559 presence.to);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
560 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
561 presence.type);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
562 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
563 presence.show);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
564 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
565 presence.status);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
566 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
567 presence.priority);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
568 gtk_widget_class_bind_template_callback(widget_class, presence_clicked_cb);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
569
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
570 /* Popover for <message/> button. */
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
571 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
572 message.button);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
573 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
574 message.to);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
575 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
576 message.type);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
577 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
578 message.body);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
579 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
580 message.subject);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
581 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
582 message.thread);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
583 gtk_widget_class_bind_template_callback(widget_class, message_clicked_cb);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
584
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
585 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
586 entry);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
587 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
588 entry_buffer);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
589 gtk_widget_class_bind_template_callback(widget_class, message_send_cb);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
590
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
591 gtk_widget_class_bind_template_child(widget_class, PidginXmppConsole, sw);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
592 gtk_widget_class_bind_template_callback(widget_class, entry_changed_cb);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
593 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
594
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
595 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
596 pidgin_xmpp_console_init(PidginXmppConsole *console) {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
597 gtk_widget_init_template(GTK_WIDGET(console));
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
598
41854
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
599 dropdown_changed_cb(G_OBJECT(console->account_chooser), NULL, console);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
600 entry_changed_cb(console->entry_buffer, console);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
601 }
31321
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 30626
diff changeset
602
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
603 /******************************************************************************
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
604 * Plugin implementation
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
605 *****************************************************************************/
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
606 static void
41471
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
607 create_console(G_GNUC_UNUSED GSimpleAction *action,
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
608 G_GNUC_UNUSED GVariant *parameter, G_GNUC_UNUSED gpointer data)
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
609 {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
610 if (console == NULL) {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
611 console = g_object_new(PIDGIN_TYPE_XMPP_CONSOLE, NULL);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
612 g_object_add_weak_pointer(G_OBJECT(console), (gpointer)&console);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
613 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
614
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
615 gtk_window_present(GTK_WINDOW(console));
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
616 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
617
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40799
diff changeset
618 static GPluginPluginInfo *
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
619 xmpp_console_query(G_GNUC_UNUSED GError **error)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
620 {
41471
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
621 GActionEntry entries[] = {
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
622 {
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
623 .name = "console",
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
624 .activate = create_console,
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
625 }
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
626 };
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
627 GMenu *menu = NULL;
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
628 GSimpleActionGroup *group = NULL;
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
629 const gchar * const authors[] = {
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
630 "Sean Egan <seanegan@gmail.com>",
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
631 NULL
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
632 };
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
633
41471
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
634 group = g_simple_action_group_new();
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
635 g_action_map_add_action_entries(G_ACTION_MAP(group), entries,
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
636 G_N_ELEMENTS(entries), NULL);
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
637
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
638 menu = g_menu_new();
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
639 g_menu_append(menu, _("XMPP Console"), "console");
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
640
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
641 return pidgin_plugin_info_new(
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
642 "id", PLUGIN_ID,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
643 "name", N_("XMPP Console"),
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
644 "version", DISPLAY_VERSION,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
645 "category", N_("Protocol utility"),
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
646 "summary", N_("Send and receive raw XMPP stanzas."),
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
647 "description", N_("This plugin is useful for debugging XMPP servers "
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
648 "or clients."),
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
649 "authors", authors,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
650 "website", PURPLE_WEBSITE,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
651 "abi-version", PURPLE_ABI_VERSION,
41471
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
652 "action-group", group,
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
653 "action-menu", menu,
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
654 NULL
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
655 );
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
656 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
657
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
658 static gboolean
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40799
diff changeset
659 xmpp_console_load(GPluginPlugin *plugin, GError **error)
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
660 {
41408
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
661 PurpleProtocolManager *manager = NULL;
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
662 PurpleProtocol *xmpp = NULL;
37041
c1936deaa35b Merged gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 37005 35311
diff changeset
663
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
664 pidgin_xmpp_console_register_type(G_TYPE_MODULE(plugin));
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
665
41408
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
666 manager = purple_protocol_manager_get_default();
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
667 xmpp = purple_protocol_manager_find(manager, "prpl-jabber");
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
668 if (!PURPLE_IS_PROTOCOL(xmpp)) {
39921
a9c92a82f4c8 Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39810
diff changeset
669 g_set_error_literal(error, PLUGIN_DOMAIN, 0,
a9c92a82f4c8 Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39810
diff changeset
670 _("No XMPP protocol is loaded."));
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
671 return FALSE;
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
672 }
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
673
41408
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
674 purple_signal_connect(xmpp, "jabber-receiving-xmlnode", plugin,
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
675 G_CALLBACK(purple_xmlnode_received_cb), NULL);
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
676 purple_signal_connect(xmpp, "jabber-sending-text", plugin,
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
677 G_CALLBACK(purple_xmlnode_sent_cb), NULL);
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
678
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
679 return TRUE;
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
680 }
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
681
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
682 static gboolean
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
683 xmpp_console_unload(G_GNUC_UNUSED GPluginPlugin *plugin,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
684 G_GNUC_UNUSED gboolean shutdown,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
685 G_GNUC_UNUSED GError **error)
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
686 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
687 if (console) {
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
688 gtk_window_destroy(GTK_WINDOW(console));
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
689 }
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
690 return TRUE;
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
691 }
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
692
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40799
diff changeset
693 GPLUGIN_NATIVE_PLUGIN_DECLARE(xmpp_console)

mercurial