plugins/gtk-signals-test.c

Thu, 01 Dec 2005 20:09:27 +0000

author
Etan Reisner <deryni@pidgin.im>
date
Thu, 01 Dec 2005 20:09:27 +0000
changeset 12285
5a0f4619b0c5
parent 11848
1ac2dab0cddd
child 12604
893fbf89317c
permissions
-rw-r--r--

[gaim-migrate @ 14589]
Ok, so I'm changing the semantics of gaim_account_notify_added, having it
check for the existance of a buddy was breaking some jabber scenarios. So
buddy checks should now be done in the prpls. I also added a
gaim_account_request_add. _notify_added only notifies the user of the add,
request_add notifies the user AND asks them if they want to add the buddy to
their buddy list.

I only updated jabber for these changes because it's the only protocol I
really know at all well. So everyone PLEASE make sure that the other protocols
get updated for this. That is make sure that when you expect to prompt the
user to add the buddy you use _request_add instead of just using _notify_added
and expecting the core to determine if it needs to prompt the user.

Oh, there are also some other jabber changes which should hopefully fix some
issues that people were seeing, like buddies not signing off when you
unsubscribed with them, etc. Let me know if anyone notices any jabber oddities
after this.

9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
1 /*
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
2 * Signals test plugin.
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
3 *
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2003 Christian Hammond.
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
5 *
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
7 * modify it under the terms of the GNU General Public License as
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
8 * published by the Free Software Foundation; either version 2 of the
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
9 * License, or (at your option) any later version.
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
10 *
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful, but
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
14 * General Public License for more details.
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
15 *
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
19 * 02111-1307, USA.
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
20 */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
21 #define GTK_SIGNAL_TEST_PLUGIN_ID "gtk-signals-test"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
22
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
23 #include <gtk/gtk.h>
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
24
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
25 #include "internal.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
26 #include "debug.h"
9954
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9609
diff changeset
27 #include "version.h"
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
28
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
29 #include "gtkaccount.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
30 #include "gtkblist.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
31 #include "gtkconv.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
32 #include "gtkplugin.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
33
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
34 /**************************************************************************
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
35 * Account subsystem signal callbacks
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
36 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
37 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
38 account_modified_cb(GaimAccount *account, void *data) {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
39 gaim_debug_info("gtk-signal-test", "account modified cb\n");
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
40 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
41
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
42 /**************************************************************************
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
43 * Buddy List subsystem signal callbacks
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
44 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
45 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
46 blist_created_cb(GaimBuddyList *blist, void *data) {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
47 gaim_debug_info("gtk-signal-test", "buddy list created\n");
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
48 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
49
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
50 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
51 blist_drawing_tooltip_cb(GaimBlistNode *node, char **text, void *data) {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
52 gaim_debug_info("gtk-signal-test", "drawing tooltip cb\n");
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
53 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
54
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
55 /**************************************************************************
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
56 * Conversation subsystem signal callbacks
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
57 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
58 static void
11848
1ac2dab0cddd [gaim-migrate @ 14139]
Peter Lawler <pidgin@bleeter.id.au>
parents: 11447
diff changeset
59 conversation_dragging_cb(GaimGtkWindow *source, GaimGtkWindow *destination) {
11447
23594a754163 [gaim-migrate @ 13686]
Daniel Atallah <datallah@pidgin.im>
parents: 11256
diff changeset
60 gaim_debug_info("gtk-signal-test", "conversation dragging cb\n");
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
61 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
62
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
63 /**************************************************************************
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
64 * Plugin stuff
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
65 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
66 static gboolean
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
67 plugin_load(GaimPlugin *plugin)
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
68 {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
69 void *accounts_handle = gaim_gtk_account_get_handle();
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
70 void *blist_handle = gaim_gtk_blist_get_handle();
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
71 void *conv_handle = gaim_gtk_conversations_get_handle();
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
72
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
73 /* Accounts subsystem signals */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
74 gaim_signal_connect(accounts_handle, "account-modified",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
75 plugin, GAIM_CALLBACK(account_modified_cb), NULL);
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
76
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
77 /* Buddy List subsystem signals */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
78 gaim_signal_connect(blist_handle, "gtkblist-created",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
79 plugin, GAIM_CALLBACK(blist_created_cb), NULL);
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
80 gaim_signal_connect(blist_handle, "drawing-tooltip",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
81 plugin, GAIM_CALLBACK(blist_drawing_tooltip_cb), NULL);
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
82
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
83 /* Conversations subsystem signals */
11447
23594a754163 [gaim-migrate @ 13686]
Daniel Atallah <datallah@pidgin.im>
parents: 11256
diff changeset
84 gaim_signal_connect(conv_handle, "conversation-dragging",
23594a754163 [gaim-migrate @ 13686]
Daniel Atallah <datallah@pidgin.im>
parents: 11256
diff changeset
85 plugin, GAIM_CALLBACK(conversation_dragging_cb), NULL);
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
86
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
87 return TRUE;
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
88 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
89
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 9954
diff changeset
90 static gboolean
11256
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11033
diff changeset
91 plugin_unload(GaimPlugin *plugin) {
fe82a0c5e5ec [gaim-migrate @ 13430]
Gary Kramlich <grim@reaperworld.com>
parents: 11033
diff changeset
92 return TRUE;
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 9954
diff changeset
93 }
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 9954
diff changeset
94
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
95 static GaimPluginInfo info =
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
96 {
9954
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9609
diff changeset
97 GAIM_PLUGIN_MAGIC,
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9609
diff changeset
98 GAIM_MAJOR_VERSION,
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9609
diff changeset
99 GAIM_MINOR_VERSION,
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
100 GAIM_PLUGIN_STANDARD, /**< type */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
101 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
102 0, /**< flags */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
103 NULL, /**< dependencies */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
104 GAIM_PRIORITY_DEFAULT, /**< priority */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
105
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
106 GTK_SIGNAL_TEST_PLUGIN_ID, /**< id */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
107 N_("GTK Signals Test"), /**< name */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
108 VERSION, /**< version */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
109 /** summary */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
110 N_("Test to see that all ui signals are working properly."),
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
111 /** description */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
112 N_("Test to see that all ui signals are working properly."),
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
113 "Gary Kramlich <amc_grim@users.sf.net>", /**< author */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
114 GAIM_WEBSITE, /**< homepage */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
115
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
116 plugin_load, /**< load */
11033
dc68e074f10d [gaim-migrate @ 12919]
Etan Reisner <deryni@pidgin.im>
parents: 9954
diff changeset
117 plugin_unload, /**< unload */
9609
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
118 NULL, /**< destroy */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
119
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
120 NULL, /**< ui_info */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
121 NULL, /**< extra_info */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
122 NULL,
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
123 NULL
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
124 };
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
125
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
126 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
127 init_plugin(GaimPlugin *plugin)
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
128 {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
129 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
130
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
131 GAIM_INIT_PLUGIN(gtksignalstest, init_plugin, info)

mercurial