pidgin/plugins/unity.c

Fri, 30 Jul 2021 03:31:35 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 30 Jul 2021 03:31:35 -0500
changeset 41002
717c8a3f95a3
parent 40947
4169f8090a0e
child 41081
0c1c063d71f6
permissions
-rw-r--r--

Update the unity plugin for the PurpleConversationManager API

Testing Done:
Compiled and tested it under Unity. Didn't notice much as configuration is broken and Unity did not like the graphics of my vm and kept not repainting the screen.

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

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
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
55 update_launcher()
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);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
92
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
93 return g_strconcat((PURPLE_IS_IM_CONVERSATION(conv) ? "im" :
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
94 PURPLE_IS_CHAT_CONVERSATION(conv) ? "chat" : "misc"), ":",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
95 purple_conversation_get_name(conv), ":",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
96 purple_account_get_username(account), ":",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
97 purple_account_get_protocol_id(account), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
98 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
99
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
100 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
101 messaging_menu_add_conversation(PurpleConversation *conv, gint count)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
102 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
103 gchar *id;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
104 g_return_if_fail(count > 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
105 id = conversation_id(conv);
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 /* 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
108 icon data for IMs */
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
109 if (!messaging_menu_app_has_source(mmapp, id))
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
110 messaging_menu_app_append_source(mmapp, id, NULL,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
111 purple_conversation_get_title(conv));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
112
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
113 if (messaging_menu_text == MESSAGING_MENU_TIME)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
114 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
115 else if (messaging_menu_text == MESSAGING_MENU_COUNT)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
116 messaging_menu_app_set_source_count(mmapp, id, count);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
117 messaging_menu_app_draw_attention(mmapp, id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
118
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
119 g_free(id);
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
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
122 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
123 messaging_menu_remove_conversation(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
124 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
125 gchar *id = conversation_id(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
126 if (messaging_menu_app_has_source(mmapp, id))
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
127 messaging_menu_app_remove_source(mmapp, id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
128 g_free(id);
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
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
131 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
132 refill_messaging_menu()
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
133 {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
134 PurpleConversationManager *manager = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
135 GList *convs;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
136
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
137 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
138 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
139 while(convs != NULL) {
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
140 PurpleConversation *conv = convs->data;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
141 messaging_menu_add_conversation(conv,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
142 GPOINTER_TO_INT(g_object_get_data(G_OBJECT(conv),
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
143 "unity-message-count")));
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
144 convs = g_list_delete_link(convs, convs);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
145 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
146 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
147
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
148 static int
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
149 alert(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
150 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
151 gint count;
35610
24b06c5e7760 Renamed PidginWindow to PidginConvWindow so that introspection associates it with pidgin_conv_window_* API
Ankit Vani <a@nevitus.org>
parents: 35534
diff changeset
152 PidginConvWindow *purplewin = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
153 if (conv == NULL || PIDGIN_CONVERSATION(conv) == NULL)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
154 return 0;
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 purplewin = PIDGIN_CONVERSATION(conv)->win;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
157
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
158 if (!pidgin_conv_window_has_focus(purplewin) ||
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
159 !pidgin_conv_window_is_active_conversation(conv))
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
160 {
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
161 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
162 "unity-message-count"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
163 if (!count++)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
164 ++n_sources;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
165
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
166 g_object_set_data(G_OBJECT(conv), "unity-message-count",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
167 GINT_TO_POINTER(count));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
168 messaging_menu_add_conversation(conv, count);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
169 update_launcher();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
170 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
171
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
172 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
173 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
174
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
175 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
176 unalert(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
177 {
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
178 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
179 --n_sources;
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
180
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(0));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
183 messaging_menu_remove_conversation(conv);
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 static int
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
188 unalert_cb(GtkWidget *widget, gpointer data, PurpleConversation *conv)
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 unalert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
191 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
192 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
193
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
194 static gboolean
36110
63663622e327 Switch write_conv and (displaying|displayed)-(im|chat)-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36103
diff changeset
195 message_displayed_cb(PurpleConversation *conv, PurpleMessage *msg, gpointer _unused)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
196 {
36110
63663622e327 Switch write_conv and (displaying|displayed)-(im|chat)-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36103
diff changeset
197 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
198
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
199 if ((PURPLE_IS_CHAT_CONVERSATION(conv) && alert_chat_nick &&
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
200 !(flags & PURPLE_MESSAGE_NICK)))
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
201 return FALSE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
202
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
203 if ((flags & PURPLE_MESSAGE_RECV) && !(flags & PURPLE_MESSAGE_DELAYED))
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
204 alert(conv);
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 return FALSE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
207 }
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 static void
36081
6764e037a308 Switch sent-im-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35610
diff changeset
210 im_sent_im(PurpleAccount *account, PurpleMessage *msg, gpointer _unused)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
211 {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
212 PurpleConversation *im = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
213 PurpleConversationManager *manager = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
214
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
215 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
216
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
217 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
218 purple_message_get_recipient(msg));
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
219
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
220 unalert(im);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
221 }
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 static void
36082
247d94c903c3 Switch sent-chat-msg to PurpleMessage
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 36081
diff changeset
224 chat_sent_im(PurpleAccount *account, PurpleMessage *msg, int id)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
225 {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
226 PurpleConversation *chat = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
227 PurpleConversationManager *manager = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
228
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
229 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
230
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
231 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
232
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
233 unalert(chat);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
234 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
235
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
236 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
237 conv_created(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
238 {
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
239 g_object_set_data(G_OBJECT(conv), "unity-message-count",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
240 GINT_TO_POINTER(0));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
241 attach_signals(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
242 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
243
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
244 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
245 deleting_conv(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
246 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
247 detach_signals(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
248 unalert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
249 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
250
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
251 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
252 message_source_activated(MessagingMenuApp *app, const gchar *id,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
253 gpointer user_data)
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
254 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
255 gchar **sections = g_strsplit(id, ":", 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
256 PurpleConversation *conv = NULL;
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
257 PurpleConversationManager *manager = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
258 PurpleAccount *account;
35610
24b06c5e7760 Renamed PidginWindow to PidginConvWindow so that introspection associates it with pidgin_conv_window_* API
Ankit Vani <a@nevitus.org>
parents: 35534
diff changeset
259 PidginConvWindow *purplewin = NULL;
35122
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 char *type = sections[0];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
262 char *cname = sections[1];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
263 char *aname = sections[2];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
264 char *protocol = sections[3];
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
265
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
266 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
267
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
268 account = purple_accounts_find(aname, protocol);
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
269
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
270 if (g_strcmp0(type, "im") == 0) {
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
271 conv = purple_conversation_manager_find_im(manager, account, cname);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
272 } else if (g_strcmp0(type, "chat") == 0) {
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
273 conv = purple_conversation_manager_find_chat(manager, account, cname);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
274 } else {
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
275 conv = purple_conversation_manager_find(manager, account, cname);
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
276 }
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
277
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
278 if (conv) {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
279 unalert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
280 purplewin = PIDGIN_CONVERSATION(conv)->win;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
281 pidgin_conv_window_switch_gtkconv(purplewin, PIDGIN_CONVERSATION(conv));
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
282 gdk_window_focus(gtk_widget_get_window(purplewin->window), time(NULL));
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
283 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
284 g_strfreev (sections);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
285 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
286
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
287 static PurpleSavedStatus *
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
288 create_transient_status(PurpleStatusPrimitive primitive, PurpleStatusType *status_type)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
289 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
290 PurpleSavedStatus *saved_status = purple_savedstatus_new(NULL, primitive);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
291
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
292 if(status_type != NULL) {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
293 GList *tmp, *active_accts = purple_accounts_get_all_active();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
294 for (tmp = active_accts; tmp != NULL; tmp = tmp->next) {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
295 purple_savedstatus_set_substatus(saved_status,
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
296 (PurpleAccount*) tmp->data, status_type, NULL);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
297 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
298 g_list_free(active_accts);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
299 }
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 return saved_status;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
302 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
303
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
304 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
305 status_changed_cb(PurpleSavedStatus *saved_status)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
306 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
307 MessagingMenuStatus status = MESSAGING_MENU_STATUS_AVAILABLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
308
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
309 switch (purple_savedstatus_get_primitive_type(saved_status)) {
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
310 case PURPLE_STATUS_AVAILABLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
311 case PURPLE_STATUS_MOOD:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
312 case PURPLE_STATUS_TUNE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
313 case PURPLE_STATUS_UNSET:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
314 status = MESSAGING_MENU_STATUS_AVAILABLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
315 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
316
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
317 case PURPLE_STATUS_AWAY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
318 case PURPLE_STATUS_EXTENDED_AWAY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
319 status = MESSAGING_MENU_STATUS_AWAY;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
320 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
321
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
322 case PURPLE_STATUS_INVISIBLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
323 status = MESSAGING_MENU_STATUS_INVISIBLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
324 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
325
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
326 case PURPLE_STATUS_MOBILE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
327 case PURPLE_STATUS_OFFLINE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
328 status = MESSAGING_MENU_STATUS_OFFLINE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
329 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
330
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
331 case PURPLE_STATUS_UNAVAILABLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
332 status = MESSAGING_MENU_STATUS_BUSY;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
333 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
334
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
335 default:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
336 g_assert_not_reached();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
337 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
338 messaging_menu_app_set_status(mmapp, status);
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 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
342 messaging_menu_status_changed(MessagingMenuApp *mmapp,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
343 MessagingMenuStatus mm_status, gpointer user_data)
35122
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 PurpleSavedStatus *saved_status;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
346 PurpleStatusPrimitive primitive = PURPLE_STATUS_UNSET;
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 switch (mm_status) {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
349 case MESSAGING_MENU_STATUS_AVAILABLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
350 primitive = PURPLE_STATUS_AVAILABLE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
351 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
352
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
353 case MESSAGING_MENU_STATUS_AWAY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
354 primitive = PURPLE_STATUS_AWAY;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
355 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
356
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
357 case MESSAGING_MENU_STATUS_BUSY:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
358 primitive = PURPLE_STATUS_UNAVAILABLE;
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 MESSAGING_MENU_STATUS_INVISIBLE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
362 primitive = PURPLE_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 MESSAGING_MENU_STATUS_OFFLINE:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
366 primitive = PURPLE_STATUS_OFFLINE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
367 break;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
368
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
369 default:
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
370 g_assert_not_reached();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
371 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
372
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
373 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
374 if (saved_status == NULL)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
375 saved_status = create_transient_status(primitive, NULL);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
376 purple_savedstatus_activate(saved_status);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
377 }
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 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
380 alert_config_cb(GtkWidget *widget, gpointer data)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
381 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
382 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
383 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
384 alert_chat_nick = on;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
385 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
386
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
387 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
388 launcher_config_cb(GtkWidget *widget, gpointer data)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
389 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
390 gint option = GPOINTER_TO_INT(data);
35124
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
391 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
392 return;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
393
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
394 purple_prefs_set_int("/plugins/gtk/unity/launcher_count", option);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
395 launcher_count = option;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
396 if (option == LAUNCHER_COUNT_DISABLE)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
397 unity_launcher_entry_set_count_visible(launcher, FALSE);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
398 else
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
399 update_launcher();
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
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
402 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
403 messaging_menu_config_cb(GtkWidget *widget, gpointer data)
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 gint option = GPOINTER_TO_INT(data);
35124
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
406 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
7ea89f3b3b58 Silence some warnings
Ankit Vani <a@nevitus.org>
parents: 35122
diff changeset
407 return;
35122
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 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
410 messaging_menu_text = option;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
411 refill_messaging_menu();
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
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
414 static int
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
415 attach_signals(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
416 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
417 PidginConversation *gtkconv = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
418 guint id;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
419
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
420 gtkconv = PIDGIN_CONVERSATION(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
421 if (!gtkconv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
422 return 0;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
423
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
424 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
425 G_CALLBACK(unalert_cb), conv);
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
426 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
427
40947
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
428 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
429 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
430 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
431
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
432 return 0;
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
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
435 static void
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
436 detach_signals(PurpleConversation *conv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
437 {
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
438 PidginConversation *gtkconv = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
439 guint id;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
440 gtkconv = PIDGIN_CONVERSATION(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
441 if (!gtkconv)
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
442 return;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
443
40947
4169f8090a0e Make the unity plugin compile again and add stuff to ci ubuntu builds
Gary Kramlich <grim@reaperworld.com>
parents: 40894
diff changeset
444 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
445 g_signal_handler_disconnect(gtkconv->history, id);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
446
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
447 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
448 g_signal_handler_disconnect(gtkconv->entry, id);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
449
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
450 g_object_set_data(G_OBJECT(conv), "unity-message-count",
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
451 GINT_TO_POINTER(0));
35122
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 GtkWidget *
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
455 get_config_frame(PurplePlugin *plugin)
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 GtkWidget *ret = NULL, *frame = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
458 GtkWidget *vbox = NULL, *toggle = NULL;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
459
35534
8e72593def2c Fix gtk_[hv]box_new gtk3 deprecation warnings in unity plugin
Ankit Vani <a@nevitus.org>
parents: 35378
diff changeset
460 ret = gtk_box_new(GTK_ORIENTATION_VERTICAL, 18);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
461 gtk_container_set_border_width(GTK_CONTAINER (ret), 12);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
462
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
463 /* Alerts */
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
464
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
465 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
466 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
467 gtk_container_add(GTK_CONTAINER(frame), vbox);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
468
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
469 toggle = gtk_check_button_new_with_mnemonic(_("Chatroom message alerts _only where someone says your username"));
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
470 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
471 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
472 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
473 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
474 G_CALLBACK(alert_config_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
475
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
476 /* Launcher integration */
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 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
479 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
480 gtk_container_add(GTK_CONTAINER(frame), vbox);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
481
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
482 toggle = gtk_radio_button_new_with_mnemonic(NULL, _("_Disable launcher integration"));
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
483 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
484 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
485 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
486 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
487 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
488
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
489 toggle = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(toggle),
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
490 _("Show number of unread _messages on launcher icon"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
491 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
492 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
493 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
494 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
495 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
496
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
497 toggle = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(toggle),
35317
3c9c77b80a6c Merge the release-2.x.y branch into default.
Mark Doliner <mark@kingant.net>
parents: 35136 35186
diff changeset
498 _("Show number of unread co_nversations on launcher icon"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
499 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
500 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
501 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
502 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
503 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
504
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
505 /* Messaging menu integration */
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
506
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
507 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
508 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
509 gtk_container_add(GTK_CONTAINER(frame), vbox);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
510
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
511 toggle = gtk_radio_button_new_with_mnemonic(NULL,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
512 _("Show number of _unread messages for conversations in messaging menu"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
513 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
514 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
515 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
516 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
517 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
518
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
519 toggle = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(toggle),
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
520 _("Show _elapsed time for unread conversations in messaging menu"));
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
521 gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
522 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
523 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
524 g_signal_connect(G_OBJECT(toggle), "toggled",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
525 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
526
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
527 gtk_widget_show_all(ret);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
528 return ret;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
529 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
530
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
531 static GPluginPluginInfo *
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
532 unity_query(GError **error)
36969
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
533 {
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
534 const gchar * const authors[] = {
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
535 "Ankit Vani <a@nevitus.org>",
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
536 NULL
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
537 };
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
538
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
539 return pidgin_plugin_info_new(
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
540 "id", UNITY_PLUGIN_ID,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
541 "name", N_("Unity Integration"),
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
542 "version", DISPLAY_VERSION,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
543 "category", N_("Notification"),
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
544 "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
545 "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
546 "messaging menu and launcher."),
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
547 "authors", authors,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
548 "website", PURPLE_WEBSITE,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
549 "abi-version", PURPLE_ABI_VERSION,
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
550 "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
551 NULL
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
552 );
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
553 }
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
554
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
555 static gboolean
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
556 unity_load(GPluginPlugin *plugin, GError **error) {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
557 GList *convs = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
558 PurpleConversationManager *manager = NULL;
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
559 PurpleSavedStatus *saved_status;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
560 void *conv_handle = purple_conversations_get_handle();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
561 void *gtk_conv_handle = pidgin_conversations_get_handle();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
562 void *savedstat_handle = purple_savedstatuses_get_handle();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
563
36969
c78437610c6d Refactored unity plugin to use the new plugin API
Ankit Vani <a@nevitus.org>
parents: 35125
diff changeset
564 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
565 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
566 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
567 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
568 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
569
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
570 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
571
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
572 mmapp = messaging_menu_app_new("pidgin.desktop");
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
573 g_object_ref(mmapp);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
574 messaging_menu_app_register(mmapp);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
575 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
576
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
577 g_signal_connect(mmapp, "activate-source",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
578 G_CALLBACK(message_source_activated), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
579 g_signal_connect(mmapp, "status-changed",
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
580 G_CALLBACK(messaging_menu_status_changed), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
581
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
582 saved_status = purple_savedstatus_get_current();
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
583 status_changed_cb(saved_status);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
584
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
585 purple_signal_connect(savedstat_handle, "savedstatus-changed", plugin,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
586 PURPLE_CALLBACK(status_changed_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
587
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
588 launcher = unity_launcher_entry_get_for_desktop_id("pidgin.desktop");
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
589 g_object_ref(launcher);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
590 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
591
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
592 purple_signal_connect(gtk_conv_handle, "displayed-im-msg", plugin,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
593 PURPLE_CALLBACK(message_displayed_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
594 purple_signal_connect(gtk_conv_handle, "displayed-chat-msg", plugin,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
595 PURPLE_CALLBACK(message_displayed_cb), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
596 purple_signal_connect(conv_handle, "sent-im-msg", plugin,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
597 PURPLE_CALLBACK(im_sent_im), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
598 purple_signal_connect(conv_handle, "sent-chat-msg", plugin,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
599 PURPLE_CALLBACK(chat_sent_im), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
600 purple_signal_connect(conv_handle, "conversation-created", plugin,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
601 PURPLE_CALLBACK(conv_created), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
602 purple_signal_connect(conv_handle, "deleting-conversation", plugin,
35123
3d1148d9cb71 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
603 PURPLE_CALLBACK(deleting_conv), NULL);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
604
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
605 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
606 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
607 while(convs != NULL) {
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
608 PurpleConversation *conv = PURPLE_CONVERSATION(convs->data);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
609 attach_signals(conv);
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
610 convs = g_list_delete_link(convs, convs);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
611 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
612
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
613 return TRUE;
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
614 }
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
615
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
616 static gboolean
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
617 unity_unload(GPluginPlugin *plugin, GError **error) {
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
618 GList *convs = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
619 PurpleConversationManager *manager = NULL;
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
620
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
621 manager = purple_conversation_manager_get_default();
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
622 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
623
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
624 while(convs != NULL) {
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
625 PurpleConversation *conv = PURPLE_CONVERSATION(convs->data);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
626 unalert(conv);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
627 detach_signals(conv);
41002
717c8a3f95a3 Update the unity plugin for the PurpleConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40947
diff changeset
628 convs = g_list_delete_link(convs, convs);
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
629 }
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
630
35122
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
631 unity_launcher_entry_set_count_visible(launcher, FALSE);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
632 messaging_menu_app_unregister(mmapp);
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 g_object_unref(launcher);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
635 g_object_unref(mmapp);
30af0986aa62 Added the Unity integration plugin
Ankit Vani <a@nevitus.org>
parents:
diff changeset
636 return TRUE;
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
40894
80d9d7a73a60 Convert the Pidgin plugins to use GPLUGIN_NATIVE_PLUGIN_DECLARE
Gary Kramlich <grim@reaperworld.com>
parents: 40502
diff changeset
639 GPLUGIN_NATIVE_PLUGIN_DECLARE(unity)

mercurial