Tue, 13 May 2025 00:44:44 -0500
Add a preference for toggling whether or not to show formatting
There is no user interface for this right now, but you can manually tweak the
setting in pidgin3.ini. This required turning off use-markup on the content
label because mixing attributes with that caused the label to never remove
attributes.
This means that we broke links which were being handled because
use-markup was true. To fix this, we're going to need to create a new widget
that can handle all of the link logic off of attributes intead.
Testing Done:
Joined an IRC channel and sent a message with formatting from Pidgin 2. Then toggled the setting via the file and verified that formatting was toggled correctly.
Also called in the turtles.
Bugs closed: PIDGIN-18081
Reviewed at https://reviews.imfreedom.org/r/3970/
|
43093
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION) |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | # error "only <pidgin.h> may be included directly" |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #endif |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #ifndef PIDGIN_MESSAGE_H |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | #define PIDGIN_MESSAGE_H |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | #include <glib.h> |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | #include <gtk/gtk.h> |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | #include <purple.h> |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | #include "pidginversion.h" |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | G_BEGIN_DECLS |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | /** |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | * PidginMessage: |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | * A widget for displaying a [class@Purple.Message]. |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | * Since: 3.0 |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | */ |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | #define PIDGIN_TYPE_MESSAGE (pidgin_message_get_type()) |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | PIDGIN_AVAILABLE_IN_3_0 |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | G_DECLARE_FINAL_TYPE(PidginMessage, pidgin_message, PIDGIN, MESSAGE, GtkBox) |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | /** |
|
43248
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
54 | * pidgin_message_get_message: |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
55 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
56 | * Gets the [class@Purple.Message] that is being displayed. |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
57 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
58 | * Returns: (transfer none) (nullable): The message. |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
59 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
60 | * Since: 3.0 |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
61 | */ |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
62 | PIDGIN_AVAILABLE_IN_3_0 |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
63 | PurpleMessage *pidgin_message_get_message(PidginMessage *message); |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
64 | |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
65 | /** |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
66 | * pidgin_message_get_show_formatting: |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
67 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
68 | * Gets whether or not formatting is being shown for this message. |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
69 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
70 | * Returns: true if formatting is being shown. |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
71 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
72 | * Since: 3.0 |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
73 | */ |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
74 | PIDGIN_AVAILABLE_IN_3_0 |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
75 | gboolean pidgin_message_get_show_formatting(PidginMessage *message); |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
76 | |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
77 | /** |
|
43093
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
78 | * pidgin_message_new: |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
79 | * @message: (nullable): the message to display |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
80 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 | * Creates a new widget that will display @message. |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
82 | * |
|
43177
595a5f31003a
Annotate Pidgin constructors that return base types
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
43093
diff
changeset
|
83 | * Returns: (transfer full) (type PidginMessage): The new instance. |
|
43093
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | * Since: 3.0 |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 | */ |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | PIDGIN_AVAILABLE_IN_3_0 |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
88 | GtkWidget *pidgin_message_new(PurpleMessage *message); |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 | /** |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
91 | * pidgin_message_set_message: |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
92 | * @purple_message: (nullable): the new message to display |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
93 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
94 | * Sets the message to be displayed to @message. |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
95 | * |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 | * Since: 3.0 |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 | */ |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | PIDGIN_AVAILABLE_IN_3_0 |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 | void pidgin_message_set_message(PidginMessage *pidgin_message, PurpleMessage *purple_message); |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 | |
|
43248
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
101 | /** |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
102 | * pidgin_message_set_show_formatting: |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
103 | * @show_formatting: the new value |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
104 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
105 | * Sets whether or not formatting should be shown for the message. |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
106 | * |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
107 | * Since: 3.0 |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
108 | */ |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
109 | PIDGIN_AVAILABLE_IN_3_0 |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
110 | void pidgin_message_set_show_formatting(PidginMessage *message, gboolean show_formatting); |
|
55ff17a82093
Add a preference for toggling whether or not to show formatting
Gary Kramlich <grim@reaperworld.com>
parents:
43177
diff
changeset
|
111 | |
|
43093
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 | G_END_DECLS |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
113 | |
|
27f816a512af
Add a PidginMessage widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 | #endif /* PIDGIN_MESSAGE_H */ |