plugins/gtk-signals-test.c

Sun, 01 Aug 2004 17:12:13 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Sun, 01 Aug 2004 17:12:13 +0000
changeset 9633
52d87acba1d1
parent 9609
509595c974af
child 9954
52a14a58a33e
permissions
-rw-r--r--

[gaim-migrate @ 10477]
[ gaim-Bugs-847795 ] HTML log files not closed properly on exit

The fix is twofold. First, make gaim_conversations_uninit, destroy conversation
windows. Second, reorder things in core_quit, to keep plugins loaded until the
end and to keep the gtk main loop from quitting until after everything else
is uninitialized.

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"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
27
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
28 #include "gtkaccount.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
29 #include "gtkblist.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
30 #include "gtkconv.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
31 #include "gtkplugin.h"
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
32
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 * Account subsystem signal callbacks
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
35 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
36 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
37 account_modified_cb(GaimAccount *account, void *data) {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
38 gaim_debug_info("gtk-signal-test", "account modified cb\n");
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
39 }
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 * Buddy List subsystem signal callbacks
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
43 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
44 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
45 blist_created_cb(GaimBuddyList *blist, void *data) {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
46 gaim_debug_info("gtk-signal-test", "buddy list created\n");
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
47 }
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 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
50 blist_drawing_tooltip_cb(GaimBlistNode *node, char **text, void *data) {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
51 gaim_debug_info("gtk-signal-test", "drawing tooltip cb\n");
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
52 }
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 * Conversation subsystem signal callbacks
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
56 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
57 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
58 conversation_drag_end_cb(GaimConvWindow *source, GaimConvWindow *destination) {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
59 gaim_debug_info("gtk-signal-test", "conversation drag ended cb\n");
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
60 }
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 * Plugin stuff
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
64 **************************************************************************/
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
65 static gboolean
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
66 plugin_load(GaimPlugin *plugin)
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
67 {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
68 void *accounts_handle = gaim_gtk_account_get_handle();
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
69 void *blist_handle = gaim_gtk_blist_get_handle();
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
70 void *conv_handle = gaim_gtk_conversations_get_handle();
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
71
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
72 /* Accounts subsystem signals */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
73 gaim_signal_connect(accounts_handle, "account-modified",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
74 plugin, GAIM_CALLBACK(account_modified_cb), NULL);
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
75
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
76 /* Buddy List subsystem signals */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
77 gaim_signal_connect(blist_handle, "gtkblist-created",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
78 plugin, GAIM_CALLBACK(blist_created_cb), NULL);
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
79 gaim_signal_connect(blist_handle, "drawing-tooltip",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
80 plugin, GAIM_CALLBACK(blist_drawing_tooltip_cb), NULL);
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
81
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
82 /* Conversations subsystem signals */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
83 gaim_signal_connect(conv_handle, "conversation-drag-ended",
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
84 plugin, GAIM_CALLBACK(conversation_drag_end_cb), NULL);
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
85
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
86 return TRUE;
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
87 }
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 static GaimPluginInfo info =
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
90 {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
91 GAIM_PLUGIN_API_VERSION, /**< api_version */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
92 GAIM_PLUGIN_STANDARD, /**< type */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
93 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
94 0, /**< flags */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
95 NULL, /**< dependencies */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
96 GAIM_PRIORITY_DEFAULT, /**< priority */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
97
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
98 GTK_SIGNAL_TEST_PLUGIN_ID, /**< id */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
99 N_("GTK Signals Test"), /**< name */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
100 VERSION, /**< version */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
101 /** summary */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
102 N_("Test to see that all ui signals are working properly."),
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
103 /** description */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
104 N_("Test to see that all ui signals are working properly."),
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
105 "Gary Kramlich <amc_grim@users.sf.net>", /**< author */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
106 GAIM_WEBSITE, /**< homepage */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
107
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
108 plugin_load, /**< load */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
109 NULL, /**< unload */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
110 NULL, /**< destroy */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
111
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
112 NULL, /**< ui_info */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
113 NULL, /**< extra_info */
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
114 NULL,
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
115 NULL
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
116 };
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
117
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
118 static void
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
119 init_plugin(GaimPlugin *plugin)
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
120 {
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
121 }
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
122
509595c974af [gaim-migrate @ 10452]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
123 GAIM_INIT_PLUGIN(gtksignalstest, init_plugin, info)

mercurial