pidgin/plugins/xmppconsole/xmppconsole.c

Tue, 06 Aug 2024 02:07:35 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 06 Aug 2024 02:07:35 -0500
changeset 42837
1f1614e5468b
parent 42573
9dc369a7d7da
permissions
-rw-r--r--

Remove the pidgin_text_buffer_api

The purposed for this code is being replaced by the markup api which we haven't
implemented yet, but nothing was using this, so we can remove it.

Testing Done:
Ran the turtles.

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

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
42573
9dc369a7d7da Make sure all of the final types in pidgin plugins are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42453
diff changeset
80 G_DEFINE_DYNAMIC_TYPE_EXTENDED(PidginXmppConsole, pidgin_xmpp_console,
9dc369a7d7da Make sure all of the final types in pidgin plugins are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42453
diff changeset
81 GTK_TYPE_WINDOW, G_TYPE_FLAG_FINAL, {})
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
82
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
83 static PidginXmppConsole *console = NULL;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
84
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
85 /******************************************************************************
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
86 * Helpers
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
87 *****************************************************************************/
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
88 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
89 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
90 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
91 GtkTextTag *tag)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
92 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
93 PurpleXmlNode *c;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
94 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
95 gint i;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
96
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
97 g_return_if_fail(node != NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
98
39003
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
99 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
100 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
101 }
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
102
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
103 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
104 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
105 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
106 tag, console->tags.tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
107
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
108 if (node->xmlns) {
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
109 if ((!node->parent ||
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
110 !node->parent->xmlns ||
38259
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 38258
diff changeset
111 !purple_strequal(node->xmlns, node->parent->xmlns)) &&
c593fc9f5438 Replace strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 38258
diff changeset
112 !purple_strequal(node->xmlns, "jabber:client"))
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
113 {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
114 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
115 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
116 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
117 tag, console->tags.attr, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
118 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
119 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
120 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
121 tag, console->tags.xmlns, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
122 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
123 tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
124 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
125 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
126 for (c = node->child; c; c = c->next)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
127 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
128 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
129 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
130 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
131 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
132 tag, console->tags.attr, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
133 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
134 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
135 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
136 tag, console->tags.value, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
137 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
138 tag, NULL);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
139 } 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
140 if (c->type == PURPLE_XMLNODE_TYPE_DATA)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
141 pretty = FALSE;
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
142 need_end = TRUE;
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 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
145
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
146 if (need_end) {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
147 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
148 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
149 if (pretty) {
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
150 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
151 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
152 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
153
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
154 for (c = node->child; c; c = c->next)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
155 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
156 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
157 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
158 } 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
159 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
160 tag, NULL);
15412
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 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
163
39003
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
164 if (pretty) {
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
165 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
166 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
167 }
37b2e13b2cfa Restore XML indenting in XMPP console.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39002
diff changeset
168 }
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
169 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
170 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
171 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
172 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
173 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
174 tag, console->tags.tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
175 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
176 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
177 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
178 tag, NULL);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
179 } else {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
180 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
181 tag, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
182 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
183 tag, console->tags.bracket, NULL);
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
184 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
185 tag, NULL);
15412
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
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
189 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
190 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
191 G_GNUC_UNUSED gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
192 {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
193 GtkTextIter iter;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
194
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
195 if (console == NULL || console->gc != gc) {
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
196 return;
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
197 }
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
198
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
199 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
200 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
201 console->tags.incoming);
15412
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
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
204 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
205 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
206 G_GNUC_UNUSED gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
207 {
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
208 GtkTextIter iter;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
209 PurpleXmlNode *node;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
210
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
211 if (console == NULL || console->gc != gc) {
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
212 return;
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
213 }
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
214 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
215
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
216 if (!node)
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
217 return;
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
218
39001
d4f73745a8ab Convert XMPP console display to GtkTextView.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 39000
diff changeset
219 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
220 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
221 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
222 purple_xmlnode_free(node);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
223 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
224
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
225 static gboolean
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
226 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
227 G_GNUC_UNUSED guint keycode,
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
228 G_GNUC_UNUSED GdkModifierType state,
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
229 gpointer data)
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
230 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
231 PidginXmppConsole *console = data;
36544
1bf8b6ef5aea Renamed PurplePluginProtocolInfo to PurpleProtocol
Ankit Vani <a@nevitus.org>
parents: 36543
diff changeset
232 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
233 PurpleConnection *gc;
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
234 gchar *text;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
235 GtkTextIter start, end;
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
236
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
237 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
238 return FALSE;
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
239 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
240
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
241 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
242
5fd44f61d007 Fix a crash when trying to use XMPP console with no XMPP accounts connected
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16749
diff changeset
243 if (gc)
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
244 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
245
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
246 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
247 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
248
40708
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
249 if(PURPLE_IS_PROTOCOL_SERVER(protocol)) {
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
250 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
251 text, strlen(text));
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
252 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
253
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
254 g_free(text);
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
255 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
256
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
257 return TRUE;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
258 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
259
33011
861a290f5464 Convert the XMPP Console entry to WebKit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32998
diff changeset
260 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
261 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
262 PidginXmppConsole *console = data;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
263 GtkTextIter start, end;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
264 char *xmlstr, *str;
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
265 GtkTextIter iter;
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
266 int wrapped_lines;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
267 int lines;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
268 GdkRectangle oneline;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
269 int height;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
270 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
271 PurpleXmlNode *node;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
272
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
273 wrapped_lines = 1;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
274 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
275 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
276 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
277 &iter)) {
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
278 wrapped_lines++;
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
279 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
280
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
281 lines = gtk_text_buffer_get_line_count(buffer);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
282
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
283 /* 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
284 lines = MIN(lines, 6);
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
285 wrapped_lines = MIN(wrapped_lines, 6);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
286
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
287 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
288 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
289 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
290
27264
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_top + pad_bottom) * lines;
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
292 height += (oneline.height + pad_inside) * (wrapped_lines - lines);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
293
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
294 gtk_widget_set_size_request(console->sw, -1, height + 6);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
295
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
296 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
297 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
298 if (!str) {
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
299 return;
39808
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
300 }
a029cf99bfe2 Re-enable entry resizing in XMPP console plugin.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39807
diff changeset
301
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
302 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
303 node = purple_xmlnode_from_str(xmlstr, -1);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
304 if (node) {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
305 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
306 &start, &end);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
307 } else {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
308 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
309 &start, &end);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
310 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
311 g_free(str);
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
312 g_free(xmlstr);
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
313 if (node)
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34276
diff changeset
314 purple_xmlnode_free(node);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
315 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
316
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
317 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
318 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
319 const gchar *post_text)
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
320 {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
321 GtkTextIter start, end;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
322 GtkTextIter where;
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
323 GtkTextMark *mark;
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
324
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
325 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
326 console);
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
327 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
328
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
329 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
330 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
331 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
332
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
333 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
334 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
335
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
336 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
337
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
338 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
339 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
340 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
341
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
342 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
343 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
344 console);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
345
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
346 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
347 }
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
348
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
349 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
350 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
351 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
352 PidginXmppConsole *console = data;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
353 GtkStringObject *obj = NULL;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
354 const gchar *to, *type;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
355 gchar *stanza;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
356
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
357 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
358 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
359 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
360
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
361 if(to != NULL && *to != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
362 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
363 to, g_random_int(), type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
364 } else {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
365 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
366 g_random_int(), type);
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
367 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
368
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
369 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
370 gtk_widget_grab_focus(console->entry);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
371 g_free(stanza);
20289
5c844288fbec applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 20288
diff changeset
372
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
373 /* 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
374 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
375 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
376 gtk_menu_button_popdown(console->iq.button);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
377 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
378
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
379 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
380 presence_clicked_cb(G_GNUC_UNUSED GtkWidget *w, gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
381 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
382 PidginXmppConsole *console = data;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
383 GtkStringObject *obj = NULL;
39000
1a77494777cb Use GtkTextView for XMPP console entry.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38999
diff changeset
384 const gchar *to, *status, *priority;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
385 const gchar *type, *show;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
386 GString *stanza = NULL;
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
387
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
388 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
389 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
390 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
391 if (purple_strequal(type, "default")) {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
392 type = "";
38999
b4b1c5868446 Fix leak when using XMPP console templates.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38358
diff changeset
393 }
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
394 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
395 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
396 if (purple_strequal(show, "default")) {
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
397 show = "";
38999
b4b1c5868446 Fix leak when using XMPP console templates.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 38358
diff changeset
398 }
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
399 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
400 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
401 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
402 priority = "";
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
403 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
404
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
405 stanza = g_string_new("<presence");
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
406 if(*to != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
407 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
408 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
409 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
410 if(*type != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
411 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
412 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
413 g_string_append_c(stanza, '>');
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
414
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
415 if(*show != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
416 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
417 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
418
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
419 if(*status != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
420 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
421 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
422
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
423 if(*priority != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
424 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
425 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
426
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
427 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
428 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
429 g_string_free(stanza, TRUE);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
430
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
431 /* 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
432 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
433 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
434 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
435 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
436 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
437 gtk_menu_button_popdown(console->presence.button);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
438 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
439
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
440 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
441 message_clicked_cb(G_GNUC_UNUSED GtkWidget *w, gpointer data)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
442 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
443 PidginXmppConsole *console = data;
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
444 GtkStringObject *obj = NULL;
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
445 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
446 GString *stanza = NULL;
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
447
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41471
diff changeset
448 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
449 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
450 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
451 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
452 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
453 type = gtk_string_object_get_string(obj);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
454
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
455 stanza = g_string_new("<message");
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
456 if(*to != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
457 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
458 }
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
459 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
460 g_random_int(), type);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
461
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
462 if(*body != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
463 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
464 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
465
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
466 if(*subject != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
467 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
468 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
469
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
470 if(*thread != '\0') {
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
471 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
472 }
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
473
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
474 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
475 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
476 g_string_free(stanza, TRUE);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
477
39807
3af264d5b0f6 Convert XMPP console dialogs to popovers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39805
diff changeset
478 /* 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
479 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
480 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
481 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
482 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
483 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
484 gtk_menu_button_popdown(console->message.button);
15412
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
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
487 static void
41854
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
488 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
489 gpointer data)
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
490 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
491 PidginXmppConsole *console = data;
41854
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
492 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
493 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
494
41409
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
495 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
496 if(PURPLE_IS_ACCOUNT(account)) {
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
497 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
498 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
499 } else {
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
500 GtkTextIter start, end;
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
501 console->gc = NULL;
f18c86c63885 Use PidginAccountChooser in XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41408
diff changeset
502 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
503 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
504 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
505 }
41407
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 /******************************************************************************
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
509 * GObject Implementation
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
510 *****************************************************************************/
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
511 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
512 pidgin_xmpp_console_class_finalize(G_GNUC_UNUSED PidginXmppConsoleClass *klass) {
15412
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
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
515 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
516 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
517 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
518
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
519 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
520 widget_class,
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
521 "/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
522 );
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
523
41652
fd32ea10d1cb Modernize XMPP console a bit
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41555
diff changeset
524 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
525 account_chooser);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
526 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
527
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
528 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
529 buffer);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
530 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
531 tags.info);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
532 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
533 tags.incoming);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
534 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
535 tags.outgoing);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
536 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
537 tags.bracket);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
538 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
539 tags.tag);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
540 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
541 tags.attr);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
542 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
543 tags.value);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
544 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
545 tags.xmlns);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
546
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
547 /* 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
548 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
549 iq.button);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
550 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
551 iq.to);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
552 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
553 iq.type);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
554 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
555
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
556 /* 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
557 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
558 presence.button);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
559 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
560 presence.to);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
561 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
562 presence.type);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
563 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
564 presence.show);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
565 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
566 presence.status);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
567 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
568 presence.priority);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
569 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
570
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
571 /* 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
572 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
573 message.button);
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
574 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
575 message.to);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
576 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
577 message.type);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
578 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
579 message.body);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
580 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
581 message.subject);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
582 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
583 message.thread);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
584 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
585
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
586 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
587 entry);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
588 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
589 entry_buffer);
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
590 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
591
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_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
593 gtk_widget_class_bind_template_callback(widget_class, entry_changed_cb);
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
594 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
595
27264
ff58193d8ead Nothing to see here, just some whitespace changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25625
diff changeset
596 static void
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
597 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
598 gtk_widget_init_template(GTK_WIDGET(console));
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
599
41854
c1d7e7445b0f Avoid GtkComboBox-isms with PidginAccountChooser
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41652
diff changeset
600 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
601 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
602 }
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
603
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
604 /******************************************************************************
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
605 * Plugin implementation
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
606 *****************************************************************************/
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
607 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
608 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
609 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
610 {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
611 if (console == NULL) {
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
612 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
613 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
614 }
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
615
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
616 gtk_window_present(GTK_WINDOW(console));
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
617 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
618
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40799
diff changeset
619 static GPluginPluginInfo *
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
620 xmpp_console_query(G_GNUC_UNUSED GError **error)
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
621 {
41471
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
622 GActionEntry entries[] = {
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
623 {
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
624 .name = "console",
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
625 .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
626 }
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
627 };
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
628 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
629 GSimpleActionGroup *group = NULL;
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
630 const gchar * const authors[] = {
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
631 "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
632 NULL
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
633 };
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
634
41471
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
635 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
636 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
637 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
638
00f6072095a3 Convert the XMPP Console plugin to the new GAction/GMenu based actions
Gary Kramlich <grim@reaperworld.com>
parents: 41410
diff changeset
639 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
640 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
641
42453
1c13bc243b7d Remove PidginPluginInfo
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42202
diff changeset
642 return purple_plugin_info_new(
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
643 "id", PLUGIN_ID,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
644 "name", N_("XMPP Console"),
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
645 "version", DISPLAY_VERSION,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
646 "category", N_("Protocol utility"),
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
647 "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
648 "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
649 "or clients."),
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
650 "authors", authors,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
651 "website", PURPLE_WEBSITE,
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
652 "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
653 "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
654 "action-menu", menu,
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
655 NULL
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
656 );
15412
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
657 }
def58941bcb9 [gaim-migrate @ 18143]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
658
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
659 static gboolean
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40799
diff changeset
660 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
661 {
41408
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
662 PurpleProtocolManager *manager = NULL;
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
663 PurpleProtocol *xmpp = NULL;
37041
c1936deaa35b Merged gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 37005 35311
diff changeset
664
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
665 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
666
41408
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
667 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
668 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
669 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
670 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
671 _("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
672 return FALSE;
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
673 }
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
674
41408
5323c0b51ddc Remove prpl-gtalk from XMPP console
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41407
diff changeset
675 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
676 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
677 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
678 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
679
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
680 return TRUE;
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
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
683 static gboolean
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41864
diff changeset
684 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
685 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
686 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
687 {
41407
94f55a462e8e Convert XMPP Console into a real templated type
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41406
diff changeset
688 if (console) {
41555
6ef22b85cb10 Update XMPP console to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
689 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
690 }
36758
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
691 return TRUE;
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
692 }
deee438dc431 Refactored more pidgin plugins to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
693
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40799
diff changeset
694 GPLUGIN_NATIVE_PLUGIN_DECLARE(xmpp_console)

mercurial