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