pidgin/plugins/unity/unity.c

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

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 11 Apr 2023 00:17:15 -0500
changeset 42202
2273647d24b0
parent 42164
cd96db566218
child 42291
a86b7bcbb471
permissions
-rw-r--r--

Use gtk_widget_set_visible for everything

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

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

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

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

35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 /*
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
2 * Integration with Unity's messaging menu and launcher
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
3 * Copyright (C) 2013 Ankit Vani <a@nevitus.org>
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 *
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 * (at your option) any later version.
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9 *
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 * GNU General Public License for more details.
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 *
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 * along with this program; if not, write to the Free Software
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 */
40947
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
19 #include <glib.h>
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
20 #include <glib/gi18n-lib.h>
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
21
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40197
diff changeset
22 #include <purple.h>
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
23
40502
875489636847 pidgin.h phase3: create pidgin.h and force its usage
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
24 #include <pidgin.h>
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
25
40947
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
26 #include <talkatu.h>
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
27
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
28 #include <unity.h>
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
29 #include <messaging-menu.h>
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
30
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
31 #define UNITY_PLUGIN_ID "gtk-unity-integration"
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
32
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
33 static MessagingMenuApp *mmapp = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
34 static UnityLauncherEntry *launcher = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
35 static guint n_sources = 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
36 static gint launcher_count;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
37 static gint messaging_menu_text;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
38 static gboolean alert_chat_nick = TRUE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
39
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
40 enum {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
41 LAUNCHER_COUNT_DISABLE,
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
42 LAUNCHER_COUNT_MESSAGES,
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
43 LAUNCHER_COUNT_SOURCES,
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
44 };
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
45
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
46 enum {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
47 MESSAGING_MENU_COUNT,
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
48 MESSAGING_MENU_TIME,
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
49 };
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
50
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
51 static int attach_signals(PurpleConversation *conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
52 static void detach_signals(PurpleConversation *conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
53
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
54 static void
41840
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41696
diff changeset
55 update_launcher(void)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
56 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
57 guint count = 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
58 GList *convs = NULL;
35124
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
59 g_return_if_fail(launcher != NULL);
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
60 if (launcher_count == LAUNCHER_COUNT_DISABLE)
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
61 return;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
62
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
63 if (launcher_count == LAUNCHER_COUNT_MESSAGES) {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
64 PurpleConversationManager *manager = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
65
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
66 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
67 convs = purple_conversation_manager_get_all(manager);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
68
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
69 while(convs != NULL) {
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
70 PurpleConversation *conv = convs->data;
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
71 count += GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv),
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
72 "unity-message-count"));
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
73 convs = g_list_delete_link(convs, convs);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
74 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
75 } else {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
76 count = n_sources;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
77 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
78
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
79 if (launcher != NULL) {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
80 if (count > 0)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
81 unity_launcher_entry_set_count_visible(launcher, TRUE);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
82 else
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
83 unity_launcher_entry_set_count_visible(launcher, FALSE);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
84 unity_launcher_entry_set_count(launcher, count);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
85 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
86 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
87
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
88 static gchar *
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
89 conversation_id(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
90 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
91 PurpleAccount *account = purple_conversation_get_account(conv);
41962
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
92 PurpleContactInfo *info = PURPLE_CONTACT_INFO(account);
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
93 const char *type = "misc";
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
94
41962
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
95 if(PURPLE_IS_IM_CONVERSATION(conv)) {
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
96 type = "im";
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
97 } else if(PURPLE_IS_CHAT_CONVERSATION(conv)) {
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
98 type = "chat";
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
99 }
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
100
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
101 return g_strdup_printf("%s:%s:%s:%s",
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
102 type,
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
103 purple_conversation_get_name(conv),
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
104 purple_contact_info_get_username(info),
f802660eaef2 Update Pidgin to stop using deprecated account methods
Gary Kramlich <grim@reaperworld.com>
parents: 41840
diff changeset
105 purple_account_get_protocol_id(account));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
106 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
107
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
108 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
109 messaging_menu_add_conversation(PurpleConversation *conv, gint count)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
110 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
111 gchar *id;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
112 g_return_if_fail(count > 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
113 id = conversation_id(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
114
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
115 /* GBytesIcon may be useful for messaging menu source icons using buddy
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
116 icon data for IMs */
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
117 if (!messaging_menu_app_has_source(mmapp, id))
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
118 messaging_menu_app_append_source(mmapp, id, NULL,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
119 purple_conversation_get_title(conv));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
120
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
121 if (messaging_menu_text == MESSAGING_MENU_TIME)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
122 messaging_menu_app_set_source_time(mmapp, id, g_get_real_time());
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
123 else if (messaging_menu_text == MESSAGING_MENU_COUNT)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
124 messaging_menu_app_set_source_count(mmapp, id, count);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
125 messaging_menu_app_draw_attention(mmapp, id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
126
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
127 g_free(id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
128 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
129
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
130 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
131 messaging_menu_remove_conversation(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
132 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
133 gchar *id = conversation_id(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
134 if (messaging_menu_app_has_source(mmapp, id))
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
135 messaging_menu_app_remove_source(mmapp, id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
136 g_free(id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
137 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
138
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
139 static void
41840
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41696
diff changeset
140 refill_messaging_menu(void)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
141 {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
142 PurpleConversationManager *manager = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
143 GList *convs;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
144
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
145 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
146 convs = purple_conversation_manager_get_all(manager);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
147 while(convs != NULL) {
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
148 PurpleConversation *conv = convs->data;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
149 messaging_menu_add_conversation(conv,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
150 GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv),
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
151 "unity-message-count")));
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
152 convs = g_list_delete_link(convs, convs);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
153 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
154 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
155
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
156 static int
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
157 alert(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
158 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
159 gint count;
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
160 PidginConversation *gtkconv = NULL;
41696
35f8ce475b21 Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents: 41665
diff changeset
161 PidginDisplayWindow *displaywin = NULL;
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
162 GtkRoot *root = NULL;
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
163 GtkWidget *win = NULL;
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
164
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
165 if (conv == NULL || PIDGIN_CONVERSATION(conv) == NULL)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
166 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
167
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
168 gtkconv = PIDGIN_CONVERSATION(conv);
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
169 root = gtk_widget_get_root(gtkconv->tab_cont);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
170 win = GTK_WIDGET(root);
41696
35f8ce475b21 Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents: 41665
diff changeset
171 displaywin = PIDGIN_DISPLAY_WINDOW(win);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
172
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
173 if (!gtk_widget_has_focus(win) ||
41696
35f8ce475b21 Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents: 41665
diff changeset
174 !pidgin_display_window_conversation_is_selected(displaywin, conv))
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
175 {
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
176 count = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv),
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
177 "unity-message-count"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
178 if (!count++)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
179 ++n_sources;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
180
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
181 g_object_set_data(G_OBJECT(conv), "unity-message-count",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
182 GINT_TO_POINTER(count));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
183 messaging_menu_add_conversation(conv, count);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
184 update_launcher();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
185 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
186
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
187 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
188 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
189
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
190 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
191 unalert(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
192 {
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
193 if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "unity-message-count")) > 0)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
194 --n_sources;
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
195
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
196 g_object_set_data(G_OBJECT(conv), "unity-message-count",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
197 GINT_TO_POINTER(0));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
198 messaging_menu_remove_conversation(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
199 update_launcher();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
200 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
201
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
202 static int
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
203 unalert_cb(G_GNUC_UNUSED GtkWidget *widget, G_GNUC_UNUSED gpointer data,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
204 PurpleConversation *conv)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
205 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
206 unalert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
207 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
208 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
209
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
210 static gboolean
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
211 message_displayed_cb(PurpleConversation *conv, PurpleMessage *msg,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
212 G_GNUC_UNUSED gpointer data)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
213 {
36110
63663622e327 Switch write_conv and (displaying|displayed)-(im|chat)-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36103
diff changeset
214 PurpleMessageFlags flags = purple_message_get_flags(msg);
63663622e327 Switch write_conv and (displaying|displayed)-(im|chat)-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36103
diff changeset
215
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
216 if ((PURPLE_IS_CHAT_CONVERSATION(conv) && alert_chat_nick &&
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
217 !(flags & PURPLE_MESSAGE_NICK)))
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
218 return FALSE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
219
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
220 if ((flags & PURPLE_MESSAGE_RECV) && !(flags & PURPLE_MESSAGE_DELAYED))
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
221 alert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
222
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
223 return FALSE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
224 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
225
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
226 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
227 im_sent_im(PurpleAccount *account, PurpleMessage *msg,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
228 G_GNUC_UNUSED gpointer data)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
229 {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
230 PurpleConversation *im = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
231 PurpleConversationManager *manager = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
232
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
233 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
234
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
235 im = purple_conversation_manager_find_im(manager, account,
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
236 purple_message_get_recipient(msg));
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
237
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
238 unalert(im);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
239 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
240
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
241 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
242 chat_sent_im(PurpleAccount *account, G_GNUC_UNUSED PurpleMessage *msg, int id)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
243 {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
244 PurpleConversation *chat = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
245 PurpleConversationManager *manager = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
246
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
247 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
248
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
249 chat = purple_conversation_manager_find_chat_by_id(manager, account, id);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
250
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
251 unalert(chat);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
252 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
253
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
254 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
255 conv_created(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
256 {
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
257 g_object_set_data(G_OBJECT(conv), "unity-message-count",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
258 GINT_TO_POINTER(0));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
259 attach_signals(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
260 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
261
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
262 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
263 deleting_conv(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
264 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
265 detach_signals(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
266 unalert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
267 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
268
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
269 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
270 message_source_activated(G_GNUC_UNUSED MessagingMenuApp *app,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
271 const gchar *id,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
272 G_GNUC_UNUSED gpointer user_data)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
273 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
274 gchar **sections = g_strsplit(id, ":", 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
275 PurpleConversation *conv = NULL;
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
276 PurpleConversationManager *conversation_manager = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
277 PurpleAccount *account;
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
278 PurpleAccountManager *account_manager = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
279
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
280 char *type = sections[0];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
281 char *cname = sections[1];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
282 char *aname = sections[2];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
283 char *protocol = sections[3];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
284
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
285 conversation_manager = purple_conversation_manager_get_default();
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
286
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
287 account_manager = purple_account_manager_get_default();
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
288 account = purple_account_manager_find(account_manager, aname, protocol);
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
289
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
290 if (g_strcmp0(type, "im") == 0) {
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
291 conv = purple_conversation_manager_find_im(conversation_manager,
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
292 account, cname);
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
293 } else if (g_strcmp0(type, "chat") == 0) {
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
294 conv = purple_conversation_manager_find_chat(conversation_manager,
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
295 account, cname);
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
296 } else {
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
297 conv = purple_conversation_manager_find(conversation_manager,
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
298 account, cname);
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
299 }
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
300
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
301 if (conv) {
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
302 GtkRoot *root = NULL;
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
303 GtkWidget *win = NULL;
41696
35f8ce475b21 Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents: 41665
diff changeset
304 PidginDisplayWindow *displaywin = NULL;
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
305
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
306 root = gtk_widget_get_root(PIDGIN_CONVERSATION(conv)->tab_cont);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
307 win = GTK_WIDGET(root);
41696
35f8ce475b21 Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents: 41665
diff changeset
308 displaywin = PIDGIN_DISPLAY_WINDOW(win);
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
309
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
310 unalert(conv);
41184
05b5c210352b Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents: 41081
diff changeset
311
41696
35f8ce475b21 Rename PidginConversationWindow to PidginDisplayWindow as it holds more than conversations now
Gary Kramlich <grim@reaperworld.com>
parents: 41665
diff changeset
312 pidgin_display_window_select(displaywin, conv);
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
313
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
314 gtk_root_set_focus(root, PIDGIN_CONVERSATION(conv)->entry);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
315 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
316 g_strfreev (sections);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
317 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
318
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
319 static PurpleSavedStatus *
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
320 create_transient_status(PurpleStatusPrimitive primitive,
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
321 PurpleStatusType *status_type)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
322 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
323 PurpleSavedStatus *saved_status = purple_savedstatus_new(NULL, primitive);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
324
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
325 if(status_type != NULL) {
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
326 PurpleAccountManager *manager = NULL;
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
327 GList *active_accts = NULL;
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
328
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
329 manager = purple_account_manager_get_default();
41454
7cc69bde919d Update pidgin for the purple_account_manager_get_(in)active deprecations
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
330 active_accts = purple_account_manager_get_enabled(manager);
41209
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
331
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
332 while(active_accts != NULL) {
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
333 PurpleAccount *account = PURPLE_ACCOUNT(active_accts->data);
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
334
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
335 purple_savedstatus_set_substatus(saved_status, account,
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
336 status_type, NULL);
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
337
909561f42b1f port Pidgin to the new PurpleAccountManager api
Gary Kramlich <grim@reaperworld.com>
parents: 41184
diff changeset
338 active_accts = g_list_delete_link(active_accts, active_accts);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
339 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
340 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
341
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
342 return saved_status;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
343 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
344
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
345 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
346 status_changed_cb(PurpleSavedStatus *saved_status)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
347 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
348 MessagingMenuStatus status = MESSAGING_MENU_STATUS_AVAILABLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
349
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35317
diff changeset
350 switch (purple_savedstatus_get_primitive_type(saved_status)) {
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
351 case PURPLE_STATUS_AVAILABLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
352 case PURPLE_STATUS_UNSET:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
353 status = MESSAGING_MENU_STATUS_AVAILABLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
354 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
355
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
356 case PURPLE_STATUS_AWAY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
357 case PURPLE_STATUS_EXTENDED_AWAY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
358 status = MESSAGING_MENU_STATUS_AWAY;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
359 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
360
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
361 case PURPLE_STATUS_INVISIBLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
362 status = MESSAGING_MENU_STATUS_INVISIBLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
363 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
364
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
365 case PURPLE_STATUS_MOBILE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
366 case PURPLE_STATUS_OFFLINE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
367 status = MESSAGING_MENU_STATUS_OFFLINE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
368 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
369
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
370 case PURPLE_STATUS_UNAVAILABLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
371 status = MESSAGING_MENU_STATUS_BUSY;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
372 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
373
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
374 default:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
375 g_assert_not_reached();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
376 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
377 messaging_menu_app_set_status(mmapp, status);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
378 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
379
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
380 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
381 messaging_menu_status_changed(G_GNUC_UNUSED MessagingMenuApp *mmapp,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
382 MessagingMenuStatus mm_status,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
383 G_GNUC_UNUSED gpointer user_data)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
384 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
385 PurpleSavedStatus *saved_status;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
386 PurpleStatusPrimitive primitive = PURPLE_STATUS_UNSET;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
387
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
388 switch (mm_status) {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
389 case MESSAGING_MENU_STATUS_AVAILABLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
390 primitive = PURPLE_STATUS_AVAILABLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
391 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
392
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
393 case MESSAGING_MENU_STATUS_AWAY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
394 primitive = PURPLE_STATUS_AWAY;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
395 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
396
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
397 case MESSAGING_MENU_STATUS_BUSY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
398 primitive = PURPLE_STATUS_UNAVAILABLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
399 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
400
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
401 case MESSAGING_MENU_STATUS_INVISIBLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
402 primitive = PURPLE_STATUS_INVISIBLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
403 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
404
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
405 case MESSAGING_MENU_STATUS_OFFLINE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
406 primitive = PURPLE_STATUS_OFFLINE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
407 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
408
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
409 default:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
410 g_assert_not_reached();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
411 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
412
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
413 saved_status = purple_savedstatus_find_transient_by_type_and_message(primitive, NULL);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
414 if (saved_status == NULL)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
415 saved_status = create_transient_status(primitive, NULL);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
416 purple_savedstatus_activate(saved_status);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
417 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
418
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
419 static void
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
420 alert_config_cb(GtkWidget *widget, G_GNUC_UNUSED gpointer data)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
421 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
422 gboolean on = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
423 purple_prefs_set_bool("/plugins/gtk/unity/alert_chat_nick", on);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
424 alert_chat_nick = on;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
425 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
426
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
427 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
428 launcher_config_cb(GtkWidget *widget, gpointer data)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
429 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
430 gint option = GPOINTER_TO_INT(data);
35124
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
431 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
432 return;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
433
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
434 purple_prefs_set_int("/plugins/gtk/unity/launcher_count", option);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
435 launcher_count = option;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
436 if (option == LAUNCHER_COUNT_DISABLE)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
437 unity_launcher_entry_set_count_visible(launcher, FALSE);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
438 else
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
439 update_launcher();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
440 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
441
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
442 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
443 messaging_menu_config_cb(GtkWidget *widget, gpointer data)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
444 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
445 gint option = GPOINTER_TO_INT(data);
35124
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
446 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
447 return;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
448
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
449 purple_prefs_set_int("/plugins/gtk/unity/messaging_menu_text", option);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
450 messaging_menu_text = option;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
451 refill_messaging_menu();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
452 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
453
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
454 static int
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
455 attach_signals(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
456 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
457 PidginConversation *gtkconv = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
458 guint id;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
459
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
460 gtkconv = PIDGIN_CONVERSATION(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
461 if (!gtkconv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
462 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
463
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
464 id = g_signal_connect(G_OBJECT(gtkconv->entry), "focus-in-event",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
465 G_CALLBACK(unalert_cb), conv);
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
466 g_object_set_data(G_OBJECT(conv), "unity-entry-signal", GUINT_TO_POINTER(id));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
467
40947
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
468 id = g_signal_connect(G_OBJECT(gtkconv->history), "focus-in-event",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
469 G_CALLBACK(unalert_cb), conv);
40947
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
470 g_object_set_data(G_OBJECT(conv), "unity-history-signal", GUINT_TO_POINTER(id));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
471
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
472 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
473 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
474
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
475 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
476 detach_signals(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
477 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
478 PidginConversation *gtkconv = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
479 guint id;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
480 gtkconv = PIDGIN_CONVERSATION(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
481 if (!gtkconv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
482 return;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
483
40947
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
484 id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "unity-history-signal"));
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
485 g_signal_handler_disconnect(gtkconv->history, id);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
486
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
487 id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv), "unity-entry-signal"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
488 g_signal_handler_disconnect(gtkconv->entry, id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
489
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
490 g_object_set_data(G_OBJECT(conv), "unity-message-count",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
491 GINT_TO_POINTER(0));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
492 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
493
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
494 static GtkWidget *
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
495 get_config_frame(G_GNUC_UNUSED PurplePlugin *plugin)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
496 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
497 GtkWidget *ret = NULL, *frame = NULL;
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
498 GtkWidget *vbox = NULL, *toggle = NULL, *group = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
499
35534
8e72593def2c Fix gtk_[hv]box_new gtk3 deprecation warnings in unity plugin
Ankit Vani <a@nevitus.org>
parents: 35378
diff changeset
500 ret = gtk_box_new(GTK_ORIENTATION_VERTICAL, 18);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
501
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
502 /* Alerts */
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
503
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
504 frame = pidgin_make_frame(ret, _("Chatroom alerts"));
35534
8e72593def2c Fix gtk_[hv]box_new gtk3 deprecation warnings in unity plugin
Ankit Vani <a@nevitus.org>
parents: 35378
diff changeset
505 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
506 gtk_box_append(GTK_BOX(frame), vbox);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
507
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
508 toggle = gtk_check_button_new_with_mnemonic(_("Chatroom message alerts _only where someone says your username"));
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
509 gtk_box_append(GTK_BOX(vbox), toggle);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
510 gtk_check_button_set_active(GTK_CHECK_BUTTON(toggle),
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
511 purple_prefs_get_bool("/plugins/gtk/unity/alert_chat_nick"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
512 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
513 G_CALLBACK(alert_config_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
514
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
515 /* Launcher integration */
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
516
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
517 frame = pidgin_make_frame(ret, _("Launcher Icon"));
35534
8e72593def2c Fix gtk_[hv]box_new gtk3 deprecation warnings in unity plugin
Ankit Vani <a@nevitus.org>
parents: 35378
diff changeset
518 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
519 gtk_box_append(GTK_BOX(frame), vbox);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
520
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
521 toggle = gtk_check_button_new_with_mnemonic(_("_Disable launcher integration"));
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
522 group = toggle;
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
523 gtk_box_append(GTK_BOX(vbox), toggle);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
524 gtk_check_button_set_active(GTK_CHECK_BUTTON(toggle),
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
525 purple_prefs_get_int("/plugins/gtk/unity/launcher_count") == LAUNCHER_COUNT_DISABLE);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
526 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
527 G_CALLBACK(launcher_config_cb), GUINT_TO_POINTER(LAUNCHER_COUNT_DISABLE));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
528
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
529 toggle = gtk_check_button_new_with_mnemonic(
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
530 _("Show number of unread _messages on launcher icon"));
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
531 gtk_check_button_set_group(GTK_CHECK_BUTTON(toggle),
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
532 GTK_CHECK_BUTTON(group));
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
533 gtk_box_append(GTK_BOX(vbox), toggle);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
534 gtk_check_button_set_active(GTK_CHECK_BUTTON(toggle),
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
535 purple_prefs_get_int("/plugins/gtk/unity/launcher_count") == LAUNCHER_COUNT_MESSAGES);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
536 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
537 G_CALLBACK(launcher_config_cb), GUINT_TO_POINTER(LAUNCHER_COUNT_MESSAGES));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
538
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
539 toggle = gtk_check_button_new_with_mnemonic(
35317
3c9c77b80a6c Merge the release-2.x.y branch into default.
Mark Doliner <mark@kingant.net>
parents: 35136 35186
diff changeset
540 _("Show number of unread co_nversations on launcher icon"));
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
541 gtk_check_button_set_group(GTK_CHECK_BUTTON(toggle),
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
542 GTK_CHECK_BUTTON(group));
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
543 gtk_box_append(GTK_BOX(vbox), toggle);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
544 gtk_check_button_set_active(GTK_CHECK_BUTTON(toggle),
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
545 purple_prefs_get_int("/plugins/gtk/unity/launcher_count") == LAUNCHER_COUNT_SOURCES);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
546 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
547 G_CALLBACK(launcher_config_cb), GUINT_TO_POINTER(LAUNCHER_COUNT_SOURCES));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
548
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
549 /* Messaging menu integration */
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
550
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
551 frame = pidgin_make_frame(ret, _("Messaging Menu"));
35534
8e72593def2c Fix gtk_[hv]box_new gtk3 deprecation warnings in unity plugin
Ankit Vani <a@nevitus.org>
parents: 35378
diff changeset
552 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
553 gtk_box_append(GTK_BOX(frame), vbox);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
554
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
555 toggle = gtk_check_button_new_with_mnemonic(
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
556 _("Show number of _unread messages for conversations in messaging menu"));
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
557 group = toggle;
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
558 gtk_box_append(GTK_BOX(vbox), toggle);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
559 gtk_check_button_set_active(GTK_CHECK_BUTTON(toggle),
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
560 purple_prefs_get_int("/plugins/gtk/unity/messaging_menu_text") == MESSAGING_MENU_COUNT);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
561 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
562 G_CALLBACK(messaging_menu_config_cb), GUINT_TO_POINTER(MESSAGING_MENU_COUNT));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
563
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
564 toggle = gtk_check_button_new_with_mnemonic(
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
565 _("Show _elapsed time for unread conversations in messaging menu"));
41580
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
566 gtk_check_button_set_group(GTK_CHECK_BUTTON(toggle),
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
567 GTK_CHECK_BUTTON(group));
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
568 gtk_box_append(GTK_BOX(vbox), toggle);
787ca853b6c4 Port the unity plugin to gtk4
Gary Kramlich <grim@reaperworld.com>
parents: 41454
diff changeset
569 gtk_check_button_set_active(GTK_CHECK_BUTTON(toggle),
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
570 purple_prefs_get_int("/plugins/gtk/unity/messaging_menu_text") == MESSAGING_MENU_TIME);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
571 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
572 G_CALLBACK(messaging_menu_config_cb), GUINT_TO_POINTER(MESSAGING_MENU_TIME));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
573
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
574 return ret;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
575 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
576
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
577 static GPluginPluginInfo *
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
578 unity_query(G_GNUC_UNUSED GError **error)
36969
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
579 {
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
580 const gchar * const authors[] = {
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
581 "Ankit Vani <a@nevitus.org>",
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
582 NULL
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
583 };
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
584
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
585 return pidgin_plugin_info_new(
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
586 "id", UNITY_PLUGIN_ID,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
587 "name", N_("Unity Integration"),
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
588 "version", DISPLAY_VERSION,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
589 "category", N_("Notification"),
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
590 "summary", N_("Provides integration with Unity."),
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
591 "description", N_("Provides integration with Unity's "
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
592 "messaging menu and launcher."),
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
593 "authors", authors,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
594 "website", PURPLE_WEBSITE,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
595 "abi-version", PURPLE_ABI_VERSION,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
596 "gtk-config-frame-cb", get_config_frame,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
597 NULL
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
598 );
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
599 }
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
600
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
601 static gboolean
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
602 unity_load(GPluginPlugin *plugin, G_GNUC_UNUSED GError **error) {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
603 GList *convs = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
604 PurpleConversationManager *manager = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
605 PurpleSavedStatus *saved_status;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
606 void *conv_handle = purple_conversations_get_handle();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
607 void *gtk_conv_handle = pidgin_conversations_get_handle();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
608 void *savedstat_handle = purple_savedstatuses_get_handle();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
609
36969
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
610 purple_prefs_add_none("/plugins/gtk");
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
611 purple_prefs_add_none("/plugins/gtk/unity");
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
612 purple_prefs_add_int("/plugins/gtk/unity/launcher_count", LAUNCHER_COUNT_SOURCES);
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
613 purple_prefs_add_int("/plugins/gtk/unity/messaging_menu_text", MESSAGING_MENU_COUNT);
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
614 purple_prefs_add_bool("/plugins/gtk/unity/alert_chat_nick", TRUE);
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
615
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
616 alert_chat_nick = purple_prefs_get_bool("/plugins/gtk/unity/alert_chat_nick");
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
617
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
618 mmapp = messaging_menu_app_new("pidgin.desktop");
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
619 g_object_ref(mmapp);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
620 messaging_menu_app_register(mmapp);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
621 messaging_menu_text = purple_prefs_get_int("/plugins/gtk/unity/messaging_menu_text");
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
622
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
623 g_signal_connect(mmapp, "activate-source",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
624 G_CALLBACK(message_source_activated), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
625 g_signal_connect(mmapp, "status-changed",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
626 G_CALLBACK(messaging_menu_status_changed), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
627
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
628 saved_status = purple_savedstatus_get_current();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
629 status_changed_cb(saved_status);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
630
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
631 purple_signal_connect(savedstat_handle, "savedstatus-changed", plugin,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41209
diff changeset
632 G_CALLBACK(status_changed_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
633
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
634 launcher = unity_launcher_entry_get_for_desktop_id("pidgin.desktop");
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
635 g_object_ref(launcher);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
636 launcher_count = purple_prefs_get_int("/plugins/gtk/unity/launcher_count");
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
637
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
638 purple_signal_connect(gtk_conv_handle, "displayed-im-msg", plugin,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41209
diff changeset
639 G_CALLBACK(message_displayed_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
640 purple_signal_connect(gtk_conv_handle, "displayed-chat-msg", plugin,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41209
diff changeset
641 G_CALLBACK(message_displayed_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
642 purple_signal_connect(conv_handle, "sent-im-msg", plugin,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41209
diff changeset
643 G_CALLBACK(im_sent_im), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
644 purple_signal_connect(conv_handle, "sent-chat-msg", plugin,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41209
diff changeset
645 G_CALLBACK(chat_sent_im), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
646 purple_signal_connect(conv_handle, "conversation-created", plugin,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41209
diff changeset
647 G_CALLBACK(conv_created), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
648 purple_signal_connect(conv_handle, "deleting-conversation", plugin,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41209
diff changeset
649 G_CALLBACK(deleting_conv), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
650
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
651 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
652 convs = purple_conversation_manager_get_all(manager);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
653 while(convs != NULL) {
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
654 PurpleConversation *conv = PURPLE_CONVERSATION(convs->data);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
655 attach_signals(conv);
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
656 convs = g_list_delete_link(convs, convs);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
657 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
658
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
659 return TRUE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
660 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
661
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
662 static gboolean
42074
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
663 unity_unload(G_GNUC_UNUSED GPluginPlugin *plugin,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
664 G_GNUC_UNUSED gboolean shutdown,
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
665 G_GNUC_UNUSED GError **error)
58ae70ad7f21 Mark unused parameters as such for all of the pidgin plugins
Gary Kramlich <grim@reaperworld.com>
parents: 41962
diff changeset
666 {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
667 GList *convs = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
668 PurpleConversationManager *manager = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
669
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
670 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
671 convs = purple_conversation_manager_get_all(manager);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
672
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
673 while(convs != NULL) {
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
674 PurpleConversation *conv = PURPLE_CONVERSATION(convs->data);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
675 unalert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
676 detach_signals(conv);
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
677 convs = g_list_delete_link(convs, convs);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
678 }
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
679
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
680 unity_launcher_entry_set_count_visible(launcher, FALSE);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
681 messaging_menu_app_unregister(mmapp);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
682
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
683 g_object_unref(launcher);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
684 g_object_unref(mmapp);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
685 return TRUE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
686 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
687
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
688 GPLUGIN_NATIVE_PLUGIN_DECLARE(unity)

mercurial