# HG changeset patch # User Luke Schierer # Date 1090975762 0 # Node ID 93211b7538d61e3113d88fc0cd61d3813dc548df # Parent 204f5d66a863707342535eccac2ac77ea64584eb [gaim-migrate @ 10452] " To write this cleanly I had to add a handle, init, and uninit functions to gtkaccount.c Also, made doc/gtkaccount-signals.dox as well as update plugins/ChangeLog.API Added plugins/gtk-signals-test.c since we're starting to get some more ui signals, and it's a great place to test new signals." --Gary Kramlich committer: Tailor Script diff -r 204f5d66a863 -r 93211b7538d6 doc/Makefile.am --- a/doc/Makefile.am Wed Jul 28 00:29:52 2004 +0000 +++ b/doc/Makefile.am Wed Jul 28 00:49:22 2004 +0000 @@ -10,6 +10,7 @@ blist-signals.dox \ connection-signals.dox \ conversation-signals.dox \ + gtkaccount-signals.dox \ gtkblist-signals.dox \ gtkconv-signals.dox \ gtkimhtml-signals.dox \ diff -r 204f5d66a863 -r 93211b7538d6 doc/gtkaccount-signals.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/gtkaccount-signals.dox Wed Jul 28 00:49:22 2004 +0000 @@ -0,0 +1,17 @@ +/** @page gtkaccount-signals GtkAccount Signals + + @signals + @signal account-modified + @endsignals + +
+ + @signaldef account-modified + @signalproto +void (*account-modified)(GaimAccount *account); + @endsignalproto + @signaldesc + Emitted when the settings for an account have been changed and saved. + @param account The account that has been modified. + @endsignaldef +*/ diff -r 204f5d66a863 -r 93211b7538d6 doc/gtkblist-signals.dox --- a/doc/gtkblist-signals.dox Wed Jul 28 00:29:52 2004 +0000 +++ b/doc/gtkblist-signals.dox Wed Jul 28 00:49:22 2004 +0000 @@ -2,7 +2,6 @@ @signals @signal gtkblist-created - @signal drawing-menu @signal drawing-tooltip @endsignals @@ -17,16 +16,6 @@ @param blist The buddy list. @endsignaldef - @signaldef drawing-menu - @signalproto -void (*drawing-menu)(GtkMenu *menu, GaimBuddy *buddy); - @endsignalproto - @signaldesc - Emitted when the user right clicks on a buddy or chat in the buddy list. - @param menu The menu that will be shown. - @param buddy The buddy or chat. - @endsignaldef - @signaldef drawing-tooltip @signalproto void (*drawing-tooltip)(GaimBlistNode *node, char **text); diff -r 204f5d66a863 -r 93211b7538d6 plugins/ChangeLog.API --- a/plugins/ChangeLog.API Wed Jul 28 00:29:52 2004 +0000 +++ b/plugins/ChangeLog.API Wed Jul 28 00:49:22 2004 +0000 @@ -27,6 +27,7 @@ * Added: chat-buddy-flags for when user's flags change gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT (required for the new chat-buddy-flags signal) + * Added: account-modified for when account settings have been changed. version 0.80 (07/15/2004): Gaim API: diff -r 204f5d66a863 -r 93211b7538d6 plugins/gtk-signals-test.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/gtk-signals-test.c Wed Jul 28 00:49:22 2004 +0000 @@ -0,0 +1,123 @@ +/* + * Signals test plugin. + * + * Copyright (C) 2003 Christian Hammond. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ +#define GTK_SIGNAL_TEST_PLUGIN_ID "gtk-signals-test" + +#include + +#include "internal.h" +#include "debug.h" + +#include "gtkaccount.h" +#include "gtkblist.h" +#include "gtkconv.h" +#include "gtkplugin.h" + +/************************************************************************** + * Account subsystem signal callbacks + **************************************************************************/ +static void +account_modified_cb(GaimAccount *account, void *data) { + gaim_debug_info("gtk-signal-test", "account modified cb\n"); +} + +/************************************************************************** + * Buddy List subsystem signal callbacks + **************************************************************************/ +static void +blist_created_cb(GaimBuddyList *blist, void *data) { + gaim_debug_info("gtk-signal-test", "buddy list created\n"); +} + +static void +blist_drawing_tooltip_cb(GaimBlistNode *node, char **text, void *data) { + gaim_debug_info("gtk-signal-test", "drawing tooltip cb\n"); +} + +/************************************************************************** + * Conversation subsystem signal callbacks + **************************************************************************/ +static void +conversation_drag_end_cb(GaimConvWindow *source, GaimConvWindow *destination) { + gaim_debug_info("gtk-signal-test", "conversation drag ended cb\n"); +} + +/************************************************************************** + * Plugin stuff + **************************************************************************/ +static gboolean +plugin_load(GaimPlugin *plugin) +{ + void *accounts_handle = gaim_gtk_account_get_handle(); + void *blist_handle = gaim_gtk_blist_get_handle(); + void *conv_handle = gaim_gtk_conversations_get_handle(); + + /* Accounts subsystem signals */ + gaim_signal_connect(accounts_handle, "account-modified", + plugin, GAIM_CALLBACK(account_modified_cb), NULL); + + /* Buddy List subsystem signals */ + gaim_signal_connect(blist_handle, "gtkblist-created", + plugin, GAIM_CALLBACK(blist_created_cb), NULL); + gaim_signal_connect(blist_handle, "drawing-tooltip", + plugin, GAIM_CALLBACK(blist_drawing_tooltip_cb), NULL); + + /* Conversations subsystem signals */ + gaim_signal_connect(conv_handle, "conversation-drag-ended", + plugin, GAIM_CALLBACK(conversation_drag_end_cb), NULL); + + return TRUE; +} + +static GaimPluginInfo info = +{ + GAIM_PLUGIN_API_VERSION, /**< api_version */ + GAIM_PLUGIN_STANDARD, /**< type */ + GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ + 0, /**< flags */ + NULL, /**< dependencies */ + GAIM_PRIORITY_DEFAULT, /**< priority */ + + GTK_SIGNAL_TEST_PLUGIN_ID, /**< id */ + N_("GTK Signals Test"), /**< name */ + VERSION, /**< version */ + /** summary */ + N_("Test to see that all ui signals are working properly."), + /** description */ + N_("Test to see that all ui signals are working properly."), + "Gary Kramlich ", /**< author */ + GAIM_WEBSITE, /**< homepage */ + + plugin_load, /**< load */ + NULL, /**< unload */ + NULL, /**< destroy */ + + NULL, /**< ui_info */ + NULL, /**< extra_info */ + NULL, + NULL +}; + +static void +init_plugin(GaimPlugin *plugin) +{ +} + +GAIM_INIT_PLUGIN(gtksignalstest, init_plugin, info) diff -r 204f5d66a863 -r 93211b7538d6 src/gtkaccount.c --- a/src/gtkaccount.c Wed Jul 28 00:29:52 2004 +0000 +++ b/src/gtkaccount.c Wed Jul 28 00:49:22 2004 +0000 @@ -1508,6 +1508,8 @@ account_win_destroy_cb(NULL, NULL, dialog); + gaim_signal_emit(gaim_gtk_account_get_handle(), "account-modified", ret); + return ret; } @@ -2512,3 +2514,23 @@ { return &ui_ops; } + +void * +gaim_gtk_account_get_handle() { + static int handle; + + return &handle; +} + +void +gaim_gtk_account_init(void) { + gaim_signal_register(gaim_gtk_account_get_handle(), "account-modified", + gaim_marshal_VOID__POINTER, NULL, 1, + gaim_value_new(GAIM_TYPE_SUBTYPE, + GAIM_SUBTYPE_ACCOUNT)); +} + +void +gaim_gtk_account_uninit(void) { + gaim_signals_unregister_by_instance(gaim_gtk_blist_get_handle()); +} diff -r 204f5d66a863 -r 93211b7538d6 src/gtkaccount.h --- a/src/gtkaccount.h Wed Jul 28 00:29:52 2004 +0000 +++ b/src/gtkaccount.h Wed Jul 28 00:49:22 2004 +0000 @@ -61,5 +61,21 @@ */ GaimAccountUiOps *gaim_gtk_accounts_get_ui_ops(void); +/** + * Returns the gtkaccounts handle + * + * @return The handle to the GTK+ account system + */ +void *gaim_gtk_account_get_handle(void); + +/** + * Initializes the GTK+ account system + */ +void gaim_gtk_account_init(void); + +/** + * Uninitializes the GTK+ account system + */ +void gaim_gtk_account_uninit(void); + #endif /* _GAIM_GTK_ACCOUNT_H_ */ - diff -r 204f5d66a863 -r 93211b7538d6 src/main.c --- a/src/main.c Wed Jul 28 00:29:52 2004 +0000 +++ b/src/main.c Wed Jul 28 00:49:22 2004 +0000 @@ -463,6 +463,7 @@ gaim_gtk_stock_init(); gaim_gtk_prefs_init(); + gaim_gtk_account_init(); gaim_gtk_blist_init(); gaim_gtk_conversations_init(); gaim_gtk_pounces_init();