pidgin/plugins/xmppconsole/xmppconsole.c

Tue, 01 Apr 2025 00:28:58 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Tue, 01 Apr 2025 00:28:58 -0500
changeset 43221
44fffd2f5564
parent 42573
9dc369a7d7da
permissions
-rw-r--r--

Convert PidginAccountsEnabledMenu to the list model

Again, not exactly what PIDGIN-18066 requested, but should be a reasonable version of it.

Testing Done:
Opened Pidgin with no accounts enabled, and the menu was empty. Enabled an account and it moved there, disable the account and it was removed.

Also, started Pidgin with an account enabled, and it appeared in the lower menu as expected.

Bugs closed: PIDGIN-18066

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

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