Mercurial > pidgin
changeset 14416:eeca8be382a5
[gaim-migrate @ 17124]
This is a Gaim::Gtk perl module for use by gaim plugins to get access to the
gtkgaim interface functions. It isn't complete because anything dealing with
Gtk widgets themselves doesn't work yet (I need to figure out the best way to
do that). To use this a perl plugin just needs to include 'use Gaim::Gtk;'
either on top of 'use Gaim;' or instead of it.
I'm not done with this yet.
At the moment you have to 'use Gaim;' or 'use Gaim::Gtk;' which loads all the
parts, I'm planning to let you actually say 'use Gaim::Gtk::Debug;' to just
get the gtkdebug.h functions. Though 'use Gaim' would work the same way as
always.
committer: Tailor Script <tailor@pidgin.im>
line wrap: on
line diff
--- a/configure.ac Sat Sep 02 04:40:27 2006 +0000 +++ b/configure.ac Sat Sep 02 05:31:10 2006 +0000 @@ -1822,11 +1822,13 @@ gtk/plugins/Makefile gtk/plugins/cap/Makefile gtk/plugins/docklet/Makefile + gtk/plugins/gestures/Makefile gtk/plugins/gevolution/Makefile - gtk/plugins/gestures/Makefile gtk/plugins/musicmessaging/Makefile + gtk/plugins/perl/Makefile + gtk/plugins/perl/common/Makefile.PL + gtk/plugins/ticker/Makefile gtk/sounds/Makefile - gtk/plugins/ticker/Makefile libgaim/plugins/Makefile libgaim/plugins/mono/Makefile libgaim/plugins/mono/api/Makefile
--- a/gtk/plugins/Makefile.am Sat Sep 02 04:40:27 2006 +0000 +++ b/gtk/plugins/Makefile.am Sat Sep 02 05:31:10 2006 +0000 @@ -1,4 +1,4 @@ -DIST_SUBDIRS = cap docklet gevolution gestures musicmessaging ticker +DIST_SUBDIRS = cap docklet gestures gevolution musicmessaging perl ticker if BUILD_GEVOLUTION GEVOLUTION_DIR = gevolution @@ -12,12 +12,17 @@ CAP_DIR = cap endif +if USE_PERL +PERL_DIR = perl +endif + SUBDIRS = \ $(CAP_DIR) \ docklet \ + gestures \ $(GEVOLUTION_DIR) \ - gestures \ $(MUSICMESSAGING_DIR) \ + $(PERL_DIR) \ ticker plugindir = $(libdir)/gaim
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/Makefile.am Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,55 @@ +SUBDIRS = . common + +common_sources = \ + common/Gtk.pm \ + common/Gtk.xs \ + common/GtkAccount.xs \ + common/GtkBlist.xs \ + common/GtkConn.xs \ + common/GtkConv.xs \ + common/GtkConvWin.xs \ + common/GtkDebug.xs \ + common/GtkDialogs.xs \ + common/GtkFt.xs \ + common/GtkIMHtml.xs \ + common/GtkIMHtmlToolbar.xs \ + common/GtkLog.xs \ + common/GtkMenuTray.xs \ + common/GtkPlugin.xs \ + common/GtkPluginPref.xs \ + common/GtkPounce.xs \ + common/GtkPrefs.xs \ + common/GtkPrivacy.xs \ + common/GtkRoomlist.xs \ + common/GtkSavedStatuses.xs \ + common/GtkSession.xs \ + common/GtkSound.xs \ + common/GtkStatusBox.xs \ + common/GtkThemes.xs \ + common/GtkUtils.xs \ + common/gtkmodule.h \ + common/typemap + +EXTRA_DIST = \ + Makefile.mingw \ + common/Makefile.mingw \ + common/Makefile.Pl.in \ + $(common_sources) + +all-local: common/Makefile + +common/Makefile: common/Makefile.PL + @cd common && $(perlpath) Makefile.PL $(PERL_MM_PARAMS) + +common/Makefile.PL: common/Makefile.PL.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am_depfiles_maybe) + +AM_CPPFLAGS = \ + -DVERSION=\"$(VERSION)\" \ + -I$(top_srcdir) \ + -I$(top_srcdir)/libgaim \ + -I$(top_srcdir)/gtk \ + $(DEBUG_CFLAGS) \ + $(GTK_CFLAGS) \ + $(PLUGIN_CFLAGS) \ + $(PERL_CFLAGS)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/Gtk.pm Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,61 @@ +package Gaim::Gtk; + +use 5.008; +use strict; +use warnings; +use Carp; + +our $VERSION = '0.01'; + +use Gaim; + +require XSLoader; +XSLoader::load('Gaim::Gtk', $VERSION); + +1; +__END__ + +=head1 NAME + +Gaim::Gtk - Perl extension for the Gaim instant messenger. + +=head1 SYNOPSIS + + use Gaim::Gtk; + +=head1 ABSTRACT + + This module provides the interface for using perl scripts as plugins in + Gaim, with access to the Gaim Gtk interface functions. + +=head1 DESCRIPTION + +This module provides the interface for using perl scripts as plugins in Gaim, +with access to the Gaim Gtk interface functions. With this, developers can +write perl scripts that can be loaded in Gaim as plugins. The script can +interact with IMs, chats, accoutns, the buddy list, gaim signals, and more. + +The API for the perl interface is very similar to that of the Gaim C API, +which can be viewed at http://gaim.sourceforge.net/api/ or in the header files +in the Gaim source tree. + +=head1 FUNCTIONS + +=over + +=back + +=head1 SEE ALSO +Gaim C API documentation - http://gaim.sourceforge.net/api/ + +The Gaim perl module. + +Gaim website - http://gaim.sourceforge.net/ + +=head1 AUTHOR + +Etan Reisner, E<lt>deryni@gmail.comE<gt> + +=head1 COPYRIGHT AND LICENSE + +Copyright 2006 by Etan Reisner
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/Gtk.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,76 @@ +#include "gtkmodule.h" + +/* +#define GAIM_PERL_BOOT_PROTO(x) \ + void boot_Gaim__##x(pTHX_ CV *cv); + +#define GAIM_PERL_BOOT(x) \ + gaim_perl_callXS(boot_Gaim__##x, cv, mark) + +static void +gaim_perl_callXS(void (*subaddr)(pTHX_ CV *cv), CV *cv, SV **mark) +{ + dSP; + + PUSHMARK(mark); + (*subaddr)(aTHX_ cv); + + PUTBACK; +} +*/ + +/* Prototypes for the BOOT section below. */ +GAIM_PERL_BOOT_PROTO(Gtk__Account); +GAIM_PERL_BOOT_PROTO(Gtk__BuddyList); +GAIM_PERL_BOOT_PROTO(Gtk__Connection); +GAIM_PERL_BOOT_PROTO(Gtk__Conversation); +GAIM_PERL_BOOT_PROTO(Gtk__Conversation__Window); +GAIM_PERL_BOOT_PROTO(Gtk__Debug); +GAIM_PERL_BOOT_PROTO(Gtk__Dialogs); +GAIM_PERL_BOOT_PROTO(Gtk__IMHtml); +GAIM_PERL_BOOT_PROTO(Gtk__IMHtmlToolbar); +GAIM_PERL_BOOT_PROTO(Gtk__Log); +GAIM_PERL_BOOT_PROTO(Gtk__MenuTray); +GAIM_PERL_BOOT_PROTO(Gtk__Plugin); +GAIM_PERL_BOOT_PROTO(Gtk__PluginPref); +GAIM_PERL_BOOT_PROTO(Gtk__Pounce); +GAIM_PERL_BOOT_PROTO(Gtk__Prefs); +GAIM_PERL_BOOT_PROTO(Gtk__Privacy); +GAIM_PERL_BOOT_PROTO(Gtk__Roomlist); +GAIM_PERL_BOOT_PROTO(Gtk__Status); +GAIM_PERL_BOOT_PROTO(Gtk__Session); +GAIM_PERL_BOOT_PROTO(Gtk__Sound); +GAIM_PERL_BOOT_PROTO(Gtk__StatusBox); +GAIM_PERL_BOOT_PROTO(Gtk__Themes); +GAIM_PERL_BOOT_PROTO(Gtk__Utils); +GAIM_PERL_BOOT_PROTO(Gtk__Xfer); + +MODULE = Gaim::Gtk PACKAGE = Gaim::Gtk PREFIX = gaim_gtk_ +PROTOTYPES: ENABLE + +BOOT: + GAIM_PERL_BOOT(Gtk__Debug); +GAIM_PERL_BOOT(Gtk__Account); +GAIM_PERL_BOOT(Gtk__BuddyList); +GAIM_PERL_BOOT(Gtk__Connection); +GAIM_PERL_BOOT(Gtk__Conversation); +GAIM_PERL_BOOT(Gtk__Conversation__Window); +GAIM_PERL_BOOT(Gtk__Debug); +GAIM_PERL_BOOT(Gtk__Dialogs); +GAIM_PERL_BOOT(Gtk__IMHtml); +GAIM_PERL_BOOT(Gtk__IMHtmlToolbar); +GAIM_PERL_BOOT(Gtk__Log); +GAIM_PERL_BOOT(Gtk__MenuTray); +GAIM_PERL_BOOT(Gtk__Plugin); +GAIM_PERL_BOOT(Gtk__PluginPref); +GAIM_PERL_BOOT(Gtk__Pounce); +GAIM_PERL_BOOT(Gtk__Prefs); +GAIM_PERL_BOOT(Gtk__Privacy); +GAIM_PERL_BOOT(Gtk__Roomlist); +GAIM_PERL_BOOT(Gtk__Status); +GAIM_PERL_BOOT(Gtk__Session); +GAIM_PERL_BOOT(Gtk__Sound); +GAIM_PERL_BOOT(Gtk__StatusBox); +GAIM_PERL_BOOT(Gtk__Themes); +GAIM_PERL_BOOT(Gtk__Utils); +GAIM_PERL_BOOT(Gtk__Xfer);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkAccount.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,24 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Account PACKAGE = Gaim::Gtk::Account PREFIX = gaim_gtk_account_ +PROTOTYPES: ENABLE + +void * +gaim_gtk_account_get_handle() + +MODULE = Gaim::Gtk::Account PACKAGE = Gaim::Gtk::Account::Dialog PREFIX = gaim_gtk_account_dialog_ +PROTOTYPES: ENABLE + +void +gaim_gtk_account_dialog_show(type, account) + Gaim::Gtk::Account::Dialog::Type type + Gaim::Account account + +MODULE = Gaim::Gtk::Account PACKAGE = Gaim::Gtk::Account::Window PREFIX = gaim_gtk_accounts_window_ +PROTOTYPES: ENABLE + +void +gaim_gtk_accounts_window_show() + +void +gaim_gtk_accounts_window_hide()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkBlist.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,120 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. + +void +gaim_gtk_blist_make_buddy_menu(menu, buddy, sub) + Gtk::Widget menu + Gaim::Buddy buddy + gboolean sub +*/ + +/* This can't work at the moment since I don't have a typemap for Gdk::Pixbuf. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. + +GdkPixbuf +gaim_gtk_blist_get_status_icon(node, size) + Gaim::BuddyList::Node node + Gaim::Status::IconSize size +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. + +void +gaim_gtk_append_blist_node_proto_menu(menu, gc, node) + Gtk::Widget menu + Gaim::Connection gc + Gaim::BuddyList::Node node + +void +gaim_gtk_append_blist_node_extended_menu(menu, node) + Gtk::Widget menu + Gaim::Connection gc + Gaim::BuddyList::Node node +*/ + +MODULE = Gaim::Gtk::BuddyList PACKAGE = Gaim::Gtk::BuddyList PREFIX = gaim_gtk_blist_ +PROTOTYPES: ENABLE + +void * +gaim_gtk_blist_get_handle() + +Gaim::Gtk::BuddyList +gaim_gtk_blist_get_default_gtk_blist() + +void +gaim_gtk_blist_refresh(list) + Gaim::BuddyList list + +void +gaim_gtk_blist_update_toolbar() + +void +gaim_gtk_blist_update_columns() + +void +gaim_gtk_blist_update_refresh_timeout() + +gboolean +gaim_gtk_blist_node_is_contact_expanded(node) + Gaim::BuddyList::Node node + +void +gaim_gtk_blist_toggle_visibility() + +void +gaim_gtk_blist_visibility_manager_add() + +void +gaim_gtk_blist_visibility_manager_remove() + +void +gaim_gtk_blist_get_sort_methods() +PREINIT: + GList *l; +PPCODE: + for (l = gaim_gtk_blist_get_sort_methods(); l != NULL; l = l->next) { + XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Gtk::BuddyList::SortMethod"))); + } + +void +gaim_gtk_blist_sort_method_reg(id, name, func) + const char * id + const char * name + Gaim::Gtk::BuddyList::SortFunction func + +void +gaim_gtk_blist_sort_method_unreg(id) + const char * id + +void +gaim_gtk_blist_sort_method_set(id) + const char * id + +void +gaim_gtk_blist_setup_sort_methods() + +void +gaim_gtk_blist_update_accounts_menu() + +void +gaim_gtk_blist_update_plugin_actions() + +void +gaim_gtk_blist_update_sort_methods() + +gboolean +gaim_gtk_blist_joinchat_is_showable() + +void +gaim_gtk_blist_joinchat_show() + +void +gaim_gtk_blist_update_account_error_state(account, message) + Gaim::Account account + const char * message
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkConn.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,7 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Connection PACKAGE = Gaim::Gtk::Connection PREFIX = gaim_gtk_connection_ +PROTOTYPES: ENABLE + +void * +gaim_gtk_connection_get_handle()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkConv.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,87 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +guint +gaim_gtk_conversations_fill_menu(menu, convs) + Gtk::Widget menu + SV *convs +PREINIT: + GList *t_GL; + int i, t_len; +PPCODE: + t_GL = NULL; + t_len = av_len((AV *)SvRV(convs)); + + for (i = 0; i < t_len; i++) { + STRLEN t_sl; + t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(convs), i, 0), t_sl)); + } + gaim_gtk_conversations_fill_menu(menu, t_GL); +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +GdkPixbuf +gaim_gtkconv_get_tab_icon(conv, small_icon) + Gaim::Conversation conv + gboolean small_icon +*/ + +/* This can't work at the moment since I don't have a typemap for gboolean *. +int +gaim_gtkconv_get_tab_at_xy(win, x, y, to_right) + Gaim::Gtk::Conversation::Window win + int x + int y + gboolean * to_right +*/ + +MODULE = Gaim::Gtk::Conversation PACKAGE = Gaim::Gtk::Conversation PREFIX = gaim_gtkconv_ +PROTOTYPES: ENABLE + +void +gaim_gtkconv_update_buddy_icon(conv) + Gaim::Conversation conv + +void +gaim_gtkconv_switch_active_conversation(conv) + Gaim::Conversation conv + +void +gaim_gtkconv_update_tabs() + +void +gaim_gtkconv_update_buttons_by_protocol(conv) + Gaim::Conversation conv + +void +gaim_gtkconv_present_conversation(conv) + Gaim::Conversation conv + +Gaim::Gtk::Conversation::Window +gaim_gtkconv_get_window(conv) + Gaim::Gtk::Conversation conv + +void +gaim_gtkconv_new(conv) + Gaim::Conversation conv + +gboolean +gaim_gtkconv_is_hidden(gtkconv) + Gaim::Gtk::Conversation gtkconv + +MODULE = Gaim::Gtk::Conversation PACKAGE = Gaim::Gtk::Conversations PREFIX = gaim_gtk_conversations_ +PROTOTYPES: ENABLE + +void +gaim_gtk_conversations_find_unseen_list(type, min_state, hidden_only, max_count) + Gaim::ConversationType type + Gaim::UnseenState min_state + gboolean hidden_only + guint max_count + +void * +gaim_gtk_conversations_get_handle()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkConvWin.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,139 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Conversation::Window PACKAGE = Gaim::Gtk::Conversation::Window PREFIX = gaim_gtk_conv_window_ +PROTOTYPES: ENABLE + +Gaim::Gtk::Conversation::Window +gaim_gtk_conv_window_new() + +void +gaim_gtk_conv_window_destroy(win) + Gaim::Gtk::Conversation::Window win + +void +gaim_gtk_conv_window_show(win) + Gaim::Gtk::Conversation::Window win + +void +gaim_gtk_conv_window_hide(win) + Gaim::Gtk::Conversation::Window win + +void +gaim_gtk_conv_window_raise(win) + Gaim::Gtk::Conversation::Window win + +void +gaim_gtk_conv_window_switch_gtkconv(win, gtkconv) + Gaim::Gtk::Conversation::Window win + Gaim::Gtk::Conversation gtkconv + +void +gaim_gtk_conv_window_add_gtkconv(win, gtkconv) + Gaim::Gtk::Conversation::Window win + Gaim::Gtk::Conversation gtkconv + +void +gaim_gtk_conv_window_remove_gtkconv(win, gtkconv) + Gaim::Gtk::Conversation::Window win + Gaim::Gtk::Conversation gtkconv + +Gaim::Gtk::Conversation +gaim_gtk_conv_window_get_gtkconv_at_index(win, index) + Gaim::Gtk::Conversation::Window win + int index + +Gaim::Gtk::Conversation +gaim_gtk_conv_window_get_active_gtkconv(win) + Gaim::Gtk::Conversation::Window win + +Gaim::Conversation +gaim_gtk_conv_window_get_active_conversation(win) + Gaim::Gtk::Conversation::Window win + +gboolean +gaim_gtk_conv_window_is_active_conversation(conv) + Gaim::Conversation conv + +gboolean +gaim_gtk_conv_window_has_focus(win) + Gaim::Gtk::Conversation::Window win + +Gaim::Gtk::Conversation::Window +gaim_gtk_conv_window_get_at_xy(x, y) + int x + int y + +void +gaim_gtk_conv_window_get_gtkconvs(win) + Gaim::Gtk::Conversation::Window win +PREINIT: + GList *l; +PPCODE: + for (l = gaim_gtk_conv_window_get_gtkconvs(win); l != NULL; l = l->next) { + XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Gtk::Conversation"))); + } + +guint +gaim_gtk_conv_window_get_gtkconv_count(win) + Gaim::Gtk::Conversation::Window win + +Gaim::Gtk::Conversation::Window +gaim_gtk_conv_window_first_with_type(type) + Gaim::ConversationType type + +Gaim::Gtk::Conversation::Window +gaim_gtk_conv_window_last_with_type(type) + Gaim::ConversationType type + +MODULE = Gaim::Gtk::Conversation::Window PACKAGE = Gaim::Gtk::Conversation::Placement PREFIX = gaim_gtkconv_placement_ +PROTOTYPES: ENABLE + +void +gaim_gtkconv_placement_get_options() +PREINIT: + GList *l; +PPCODE: + for (l = gaim_gtkconv_placement_get_options(); l != NULL; l = l->next) { + XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Gtk::Conversation::Window"))); + } + +void +gaim_gtkconv_placement_add_fnc(id, name, fnc) + const char * id + const char * name + Gaim::Conversation::PlacementFunc fnc + +void +gaim_gtkconv_placement_remove_fnc(id) + const char * id + +const char * +gaim_gtkconv_placement_get_name(id) + const char * id + +Gaim::Conversation::PlacementFunc +gaim_gtkconv_placement_get_fnc(id) + const char * id + +void +gaim_gtkconv_placement_set_current_func(func) + Gaim::Conversation::PlacementFunc func + +Gaim::Conversation::PlacementFunc +gaim_gtkconv_placement_get_current_func() + +void +gaim_gtkconv_placement_place(gtkconv) + Gaim::Gtk::Conversation gtkconv + +MODULE = Gaim::Gtk::Conversation::Window PACKAGE = Gaim::Gtk::Conversation::Windows PREFIX = gaim_gtk_conv_windows_ +PROTOTYPES: ENABLE + +void +gaim_gtk_conv_windows_get_list() +PREINIT: + GList *l; +PPCODE: + for (l = gaim_gtk_conv_windows_get_list(); l != NULL; l = l->next) { + XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Gtk::Conversation::Window"))); + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkDebug.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,16 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Debug PACKAGE = Gaim::Gtk::Debug PREFIX = gaim_gtk_debug_ +PROTOTYPES: ENABLE + +void * +gaim_gtk_debug_get_handle() + +MODULE = Gaim::Gtk::Debug PACKAGE = Gaim::Gtk::Debug::Window PREFIX = gaim_gtk_debug_window_ +PROTOTYPES: ENABLE + +void +gaim_gtk_debug_window_show() + +void +gaim_gtk_debug_window_hide()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkDialogs.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,52 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Dialogs PACKAGE = Gaim::Gtk::Dialogs PREFIX = gaim_gtkdialogs_ +PROTOTYPES: ENABLE + +void +gaim_gtkdialogs_destroy_all() + +void +gaim_gtkdialogs_about() + +void +gaim_gtkdialogs_im() + +void +gaim_gtkdialogs_im_with_user(account, username) + Gaim::Account account + const char * username + +void +gaim_gtkdialogs_info() + +void +gaim_gtkdialogs_log() + +void +gaim_gtkdialogs_alias_contact(contact) + Gaim::BuddyList::Contact contact + +void +gaim_gtkdialogs_alias_buddy(buddy) + Gaim::BuddyList::Buddy buddy + +void +gaim_gtkdialogs_alias_chat(chat) + Gaim::BuddyList::Chat chat + +void +gaim_gtkdialogs_remove_buddy(buddy) + Gaim::BuddyList::Buddy buddy + +void +gaim_gtkdialogs_remove_group(group) + Gaim::BuddyList::Group group + +void +gaim_gtkdialogs_remove_chat(chat) + Gaim::BuddyList::Chat chat + +void +gaim_gtkdialogs_remove_contact(contact) + Gaim::BuddyList::Contact contact
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkFt.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,49 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Xfer PACKAGE = Gaim::Gtk::Xfer PREFIX = gaim_gtk_xfer_ +PROTOTYPES: ENABLE + +void +gaim_set_gtkxfer_dialog(dialog) + Gaim::Gtk::Xfer::Dialog dialog + +Gaim::Gtk::Xfer::Dialog +gaim_get_gtkxfer_dialog() + +MODULE = Gaim::Gtk::Xfer PACKAGE = Gaim::Gtk::Xfer::Dialog PREFIX = gaim_gtkxfer_dialog_ +PROTOTYPES: ENABLE + +Gaim::Gtk::Xfer::Dialog +gaim_gtkxfer_dialog_new() + +void +gaim_gtkxfer_dialog_destroy(dialog) + Gaim::Gtk::Xfer::Dialog dialog + +void +gaim_gtkxfer_dialog_show(dialog = NULL) + Gaim::Gtk::Xfer::Dialog dialog + +void +gaim_gtkxfer_dialog_hide(dialog) + Gaim::Gtk::Xfer::Dialog dialog + +void +gaim_gtkxfer_dialog_add_xfer(dialog, xfer) + Gaim::Gtk::Xfer::Dialog dialog + Gaim::Xfer xfer + +void +gaim_gtkxfer_dialog_remove_xfer(dialog, xfer) + Gaim::Gtk::Xfer::Dialog dialog + Gaim::Xfer xfer + +void +gaim_gtkxfer_dialog_cancel_xfer(dialog, xfer) + Gaim::Gtk::Xfer::Dialog dialog + Gaim::Xfer xfer + +void +gaim_gtkxfer_dialog_update_xfer(dialog, xfer) + Gaim::Gtk::Xfer::Dialog dialog + Gaim::Xfer xfer
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkIMHtml.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,353 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +Gtk::Widget +gtk_imhtml_new(a, b) +*/ + +/* This can't work at the moment since I don't have a typemap for + * Gtk::TextIter. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gtk_imhtml_insert_html_at_iter(imhtml, text, options, iter) + Gaim::Gtk::IMHtml imhtml + const gchar * text + Gaim::Gtk::IMHtml::Options options + Gtk::TextIter iter +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gtk_imhtml_delete(imhtml, start, end) + Gaim::Gtk::IMHtml imhtml + Gtk::TextIter start + Gtk::TextIter end +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gtk_imhtml_insert_link(imhtml, mark, url, text) + Gaim::Gtk::IMHtml imhtml + Gtk::TextMark mark + const char * url + const char * text +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gtk_imhtml_insert_smiley_at_iter(imhtml, sml, smiley, iter) + Gaim::Gtk::IMHtml imhtml + const char * sml + char * smiley + Gtk::TextIter iter + +void +gtk_imhtml_insert_image_at_iter(imhtml, id, iter) + Gaim::Gtk::IMHtml imhtml + int id + Gtk::TextIter iter +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +char * +gtk_imhtml_get_markup_range(imhtml, start, end) + Gaim::Gtk::IMHtml imhtml + Gtk::TextIter start + Gtk::TextIter end +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +char * +gtk_imhtml_get_text(imhtml, start, end) + Gaim::Gtk::IMHtml imhtml + Gtk::TextIter start + Gtk::TextIter end +*/ + +/* This can't work at the moment since I don't have a typemap for Gdk::Pixbuf. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +Gaim::Gtk::IMHtml::Scalable +gtk_imhtml_image_new(img, filename, id) + Gdk::Pixbuf img + const gchar * filename + int id +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gtk_imhtml_image_add_to(scale, imhtml, iter) + Gaim::Gtk::IMHtml::Scalable scale + Gaim::Gtk::IMHtml imhtml + Gtk::TextIter iter +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gtk_imhtml_hr_add_to(scale, imhtml, iter) + Gaim::Gtk::IMHtml::Scalable scale + Gaim::Gtk::IMHtml imhtml + Gtk::TextIter iter +*/ + +/* This can't work at the moment since I don't have a typemap for gboolean *. +void +gtk_imhtml_get_current_format(imhtml, bold, italic, underline) + Gaim::Gtk::IMHtml imhtml + gboolean * bold + gboolean * italic + gboolean * underline +*/ + +MODULE = Gaim::Gtk::IMHtml PACKAGE = Gaim::Gtk::IMHtml PREFIX = gtk_imhtml_ +PROTOTYPES: ENABLE + +Gaim::Gtk::IMHtml::Smiley +gtk_imhtml_smiley_get(imhtml, sml, text) + Gaim::Gtk::IMHtml imhtml + const gchar * sml + const gchar * text + +void +gtk_imhtml_associate_smiley(imhtml, sml, smiley) + Gaim::Gtk::IMHtml imhtml + const gchar * sml + Gaim::Gtk::IMHtml::Smiley smiley + +void +gtk_imhtml_remove_smileys(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_set_funcs(imhtml, f) + Gaim::Gtk::IMHtml imhtml + Gaim::Gtk::IMHtml::Funcs f + +void +gtk_imhtml_show_comments(imhtml, show) + Gaim::Gtk::IMHtml imhtml + gboolean show + +const char * +gtk_imhtml_get_protocol_name(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_set_protocol_name(imhtml, protocol_name) + Gaim::Gtk::IMHtml imhtml + const gchar * protocol_name + +void +gtk_imhtml_append_text(imhtml, text, options) + Gaim::Gtk::IMHtml imhtml + const gchar * text + Gaim::Gtk::IMHtml::Options options + +void +gtk_imhtml_append_text_with_images(imhtml, text, options, unused = NULL) + Gaim::Gtk::IMHtml imhtml + const gchar * text + Gaim::Gtk::IMHtml::Options options + SV *unused +PREINIT: + GSList *t_GL; + int i, t_len; +PPCODE: + t_GL = NULL; + t_len = av_len((AV *)SvRV(unused)); + + for (i = 0; i < t_len; i++) { + STRLEN t_sl; + t_GL = g_slist_append(t_GL, SvPV(*av_fetch((AV *)SvRV(unused), i, 0), t_sl)); + } + gtk_imhtml_append_text_with_images(imhtml, text, options, t_GL); + +void +gtk_imhtml_scroll_to_end(imhtml, smooth) + Gaim::Gtk::IMHtml imhtml + gboolean smooth + +void +gtk_imhtml_clear(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_page_up(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_page_down(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_set_editable(imhtml, editable) + Gaim::Gtk::IMHtml imhtml + gboolean editable + +void +gtk_imhtml_set_whole_buffer_formatting_only(imhtml, wbo) + Gaim::Gtk::IMHtml imhtml + gboolean wbo + +void +gtk_imhtml_set_format_functions(imhtml, buttons) + Gaim::Gtk::IMHtml imhtml + Gaim::Gtk::IMHtml::Buttons buttons + +Gaim::Gtk::IMHtml::Buttons +gtk_imhtml_get_format_functions(imhtml) + Gaim::Gtk::IMHtml imhtml + +char * +gtk_imhtml_get_current_fontface(imhtml) + Gaim::Gtk::IMHtml imhtml + +char * +gtk_imhtml_get_current_forecolor(imhtml) + Gaim::Gtk::IMHtml imhtml + +char * +gtk_imhtml_get_current_backcolor(imhtml) + Gaim::Gtk::IMHtml imhtml + +char * +gtk_imhtml_get_current_background(imhtml) + Gaim::Gtk::IMHtml imhtml + +gint +gtk_imhtml_get_current_fontsize(imhtml) + Gaim::Gtk::IMHtml imhtml + +gboolean +gtk_imhtml_get_editable(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_clear_formatting(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_toggle_bold(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_toggle_italic(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_toggle_underline(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_toggle_strike(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_toggle_forecolor(imhtml, color) + Gaim::Gtk::IMHtml imhtml + const char * color + +void +gtk_imhtml_toggle_backcolor(imhtml, color) + Gaim::Gtk::IMHtml imhtml + const char * color + +void +gtk_imhtml_toggle_background(imhtml, color) + Gaim::Gtk::IMHtml imhtml + const char * color + +void +gtk_imhtml_toggle_fontface(imhtml, face) + Gaim::Gtk::IMHtml imhtml + const char * face + +void +gtk_imhtml_toggle_link(imhtml, url) + Gaim::Gtk::IMHtml imhtml + const char * url + +void +gtk_imhtml_insert_smiley(imhtml, sml, smiley) + Gaim::Gtk::IMHtml imhtml + const char * sml + char * smiley + +void +gtk_imhtml_font_set_size(imhtml, size) + Gaim::Gtk::IMHtml imhtml + gint size + +void +gtk_imhtml_font_shrink(imhtml) + Gaim::Gtk::IMHtml imhtml + +void +gtk_imhtml_font_grow(imhtml) + Gaim::Gtk::IMHtml imhtml + +char * +gtk_imhtml_get_markup(imhtml) + Gaim::Gtk::IMHtml imhtml + +char ** +gtk_imhtml_get_markup_lines(imhtml) + Gaim::Gtk::IMHtml imhtml + +MODULE = Gaim::Gtk::IMHtml PACKAGE = Gaim::Gtk::IMHtml::Scalable PREFIX = gtk_imhtml_image_ +PROTOTYPES: ENABLE + +void +gtk_imhtml_image_free(scale) + Gaim::Gtk::IMHtml::Scalable scale + +void +gtk_imhtml_image_scale(scale, width, height) + Gaim::Gtk::IMHtml::Scalable scale + int width + int height + +MODULE = Gaim::Gtk::IMHtml PACKAGE = Gaim::Gtk::IMHtml::Hr PREFIX = gtk_imhtml_hr_ +PROTOTYPES: ENABLE + +Gaim::Gtk::IMHtml::Scalable +gtk_imhtml_hr_new() + +void +gtk_imhtml_hr_free(scale) + Gaim::Gtk::IMHtml::Scalable scale + +void +gtk_imhtml_hr_scale(scale, width, height) + Gaim::Gtk::IMHtml::Scalable scale + int width + int height + +MODULE = Gaim::Gtk::IMHtml PACKAGE = Gaim::Gtk::IMHtml::Search PREFIX = gtk_imhtml_search_ +PROTOTYPES: ENABLE + +gboolean +gtk_imhtml_search_find(imhtml, text) + Gaim::Gtk::IMHtml imhtml + const gchar * text + +void +gtk_imhtml_search_clear(imhtml) + Gaim::Gtk::IMHtml imhtml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkIMHtmlToolbar.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,22 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. + +Gtk::Widget +gtk_imhtmltoolbar_new() + +void +gtk_imhtmltoolbar_attach(toolbar, imhtml) + Gaim::Gtk::IMHtmlToolbar toolbar + Gtk::Widget imhtml +*/ + +MODULE = Gaim::Gtk::IMHtmlToolbar PACKAGE = Gaim::Gtk::IMHtmlToolbar PREFIX = gtk_imhtmltoolbar_ +PROTOTYPES: ENABLE + +void +gtk_imhtmltoolbar_associate_smileys(toolbar, proto_id) + Gaim::Gtk::IMHtmlToolbar toolbar + const char * proto_id
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkLog.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,23 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Log PACKAGE = Gaim::Gtk::Log PREFIX = gaim_gtk_log_ +PROTOTYPES: ENABLE + +void * +gaim_gtk_log_get_handle() + +void +gaim_gtk_log_show(type, screenname, account) + Gaim::LogType type + const char * screenname + Gaim::Account account + +void +gaim_gtk_log_show_contact(contact) + Gaim::BuddyList::Contact contact + +MODULE = Gaim::Gtk::Log PACKAGE = Gaim::Gtk::SysLog PREFIX = gaim_gtk_syslog_ +PROTOTYPES: ENABLE + +void +gaim_gtk_syslog_show()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkMenuTray.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,33 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +Gtk::Widget +gaim_gtk_menu_tray_new() + +Gtk::Widget +gaim_gtk_menu_tray_get_box(menu_tray) + Gaim::Gtk::MenuTray menu_tray + +void +gaim_gtk_menu_tray_append(menu_tray, widget, tooltip) + Gaim::Gtk::MenuTray menu_tray + Gtk::Widget widget + const char * tooltip + +void +gaim_gtk_menu_tray_prepend(menu_tray, widget, tooltip) + Gaim::Gtk::MenuTray menu_tray + Gtk::Widget widget + const char * tooltip + +void +gaim_gtk_menu_tray_set_tooltip(menu_tray, widget, tooltip) + Gaim::Gtk::MenuTray menu_tray + Gtk::Widget widget + const char * tooltip +*/ + +MODULE = Gaim::Gtk::MenuTray PACKAGE = Gaim::Gtk::MenuTray PREFIX = gaim_gtk_menu_tray +PROTOTYPES: ENABLE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkPlugin.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,24 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +Gtk::Widget +gaim_gtk_plugin_get_config_frame(plugin) + Gaim::Plugin plugin +*/ + +MODULE = Gaim::Gtk::Plugin PACKAGE = Gaim::Gtk::Plugin PREFIX = gaim_gtk_plugin_ +PROTOTYPES: ENABLE + +MODULE = Gaim::Gtk::Plugin PACKAGE = Gaim::Gtk::Plugins PREFIX = gaim_gtk_plugins_ +PROTOTYPES: ENABLE + +void +gaim_gtk_plugins_save() + +MODULE = Gaim::Gtk::Plugin PACKAGE = Gaim::Gtk::Plugin::Dialog PREFIX = gaim_gtk_plugin_dialog_ +PROTOTYPES: ENABLE + +void +gaim_gtk_plugin_dialog_show()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkPluginPref.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,69 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +Gtk::Widget +gaim_gtk_plugin_pref_create_frame(frame) + Gaim::PluginPref::Frame frame + +Gtk::Widget +gaim_gtk_prefs_checkbox(title, key, page) + const char * title + const char * key + Gtk::Widget page + +Gtk::Widget +gaim_gtk_prefs_labeled_spin_button(page, title, key, min, max, sg) + Gtk::Widget page + const gchar * title + const char * key + int min + int max + Gtk::Size::Group sg + +Gtk::Widget +gaim_gtk_prefs_labeled_entry(page, title, key, sg) + Gtk::Widget page + const gchar * title + const char * key + Gtk::Size::Group sg +*/ + +/* TODO I don't know how to handle this in XS +Gtk::Widget +gaim_gtk_prefs_dropdown(page, title, type, key, ...) + Gtk::Widget page + const gchar * title + Gaim::Pref::Type type + const char * key + +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +Gtk::Widget +gaim_gtk_prefs_dropdown_from_list(page, title, type, key, menuitems) + Gtk::Widget page + const gchar * title + Gaim::Pref::Type type + const char * key + SV *menuitems +PREINIT: + GList *t_GL; + int i, t_len; +CODE: + t_GL = NULL; + t_len = av_len((AV *)SvRV(menuitems)); + + for ( i = 0; i < t_len; i++) { + STRLEN t_sl; + t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(menuitems), i, 0), t_sl)); + RETVAL = gaim_gtk_prefs_dropdown_from_list(page, title, type, key, t_GL); +OUTPUT: + RETVAL +*/ + +MODULE = Gaim::Gtk::PluginPref PACKAGE = Gaim::Gtk::PluginPref PREFIX = gaim_gtk_plugin_pref_ +PROTOTYPES: ENABLE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkPounce.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,25 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Pounce PACKAGE = Gaim::Gtk::Pounce PREFIX = gaim_gtk_pounce_ +PROTOTYPES: ENABLE + +void +gaim_gtk_pounce_editor_show(account, name, cur_pounce) + Gaim::Account account + const char * name + Gaim::Pounce cur_pounce + +MODULE = Gaim::Gtk::Pounce PACKAGE = Gaim::Gtk::Pounces PREFIX = gaim_gtk_pounces_ +PROTOTYPES: ENABLE + +void * +gaim_gtk_pounces_get_handle() + +MODULE = Gaim::Gtk::Pounce PACKAGE = Gaim::Gtk::Pounces::Manager PREFIX = gaim_gtk_pounces_manager_ +PROTOTYPES: ENABLE + +void +gaim_gtk_pounces_manager_show() + +void +gaim_gtk_pounces_manager_hide()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkPrefs.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,8 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Prefs PACKAGE = Gaim::Gtk::Prefs PREFIX = gaim_gtk_prefs_ +PROTOTYPES: ENABLE + +void +gaim_gtk_prefs_show() +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkPrivacy.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,23 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Privacy PACKAGE = Gaim::Gtk::Privacy PREFIX = gaim_gtk_ +PROTOTYPES: ENABLE + +void +gaim_gtk_request_add_permit(account, name) + Gaim::Account account + const char * name + +void +gaim_gtk_request_add_block(account, name) + Gaim::Account account + const char * name + +MODULE = Gaim::Gtk::Privacy PACKAGE = Gaim::Gtk::Privacy::Dialog PREFIX = gaim_gtk_privacy_dialog_ +PROTOTYPES: ENABLE + +void +gaim_gtk_privacy_dialog_show() + +void +gaim_gtk_privacy_dialog_hide()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkRoomlist.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,24 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Roomlist PACKAGE = Gaim::Gtk::Roomlist PREFIX = gaim_gtk_roomlist_ +PROTOTYPES: ENABLE + +gboolean +gaim_gtk_roomlist_is_showable() + +MODULE = Gaim::Gtk::Roomlist PACKAGE = Gaim::Gtk::Roomlist::Dialog PREFIX = gaim_gtk_roomlist_dialog_ +PROTOTYPES: ENABLE + +void +gaim_gtk_roomlist_dialog_show(class) + C_ARGS: /* void */ + +Gaim::Gtk::Roomlist::Dialog +gaim_gtk_roomlist_dialog_new(class) + C_ARGS: /* void */ + +Gaim::Gtk::Roomlist::Dialog +gaim_gtk_roomlist_dialog_new_with_account(class, account) + Gaim::Account account + C_ARGS: + account
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkSavedStatuses.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,35 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. + * This also has a GCallback issue that I have no idea how to deal with, + * though the core-perl typemap has a mapping for them. +Gtk::Widget +gaim_gtk_status_menu(status, callback) + Gaim::SavedStatus status + GCallback callback +*/ + +MODULE = Gaim::Gtk::Status PACKAGE = Gaim::Gtk::Status PREFIX = gaim_gtk_status_ +PROTOTYPES: ENABLE + +void * +gaim_gtk_status_get_handle() + +MODULE = Gaim::Gtk::Status PACKAGE = Gaim::Gtk::Status::Editor PREFIX = gaim_gtk_status_editor_ +PROTOTYPES: ENABLE + +void +gaim_gtk_status_editor_show(edit, status) + gboolean edit + Gaim::SavedStatus status + +MODULE = Gaim::Gtk::Status PACKAGE = Gaim::Gtk::Status::Window PREFIX = gaim_gtk_status_window_ +PROTOTYPES: ENABLE + +void +gaim_gtk_status_window_show() + +void +gaim_gtk_status_window_hide()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkSession.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,13 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Session PACKAGE = Gaim::Gtk::Session PREFIX = gaim_gtk_session_ +PROTOTYPES: ENABLE + +void +gaim_gtk_session_init(argv0, previous_id, config_dir) + gchar * argv0 + gchar * previous_id + gchar * config_dir + +void +gaim_gtk_session_end()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkSound.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,15 @@ +#include "gtkmodule.h" + +MODULE = Gaim::Gtk::Sound PACKAGE = Gaim::Gtk::Sound PREFIX = gaim_gtk_sound_ +PROTOTYPES: ENABLE + +const char * +gaim_gtk_sound_get_event_option(event) + Gaim::SoundEventID event + +char * +gaim_gtk_sound_get_event_label(event) + Gaim::SoundEventID event + +void * +gaim_gtk_sound_get_handle()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkStatusBox.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,50 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +Gtk::Widget +gtk_gaim_status_box_new() + +Gtk::Widget +gtk_gaim_status_box_new_with_account(account) + Gaim::Account account + +void +gtk_gaim_status_box_add(status_box, type, pixbuf, text, sec_text, data) + Gaim::Gtk::StatusBox status_box + Gaim::Gtk::StatusBox::ItemType type + GdkPixbuf pixbuf + const char * text + const char * sec_text + gpointer data +*/ + +MODULE = Gaim::Gtk::StatusBox PACKAGE = Gaim::Gtk::StatusBox PREFIX = gtk_gaim_status_box +PROTOTYPES: ENABLE + +void +gtk_gaim_status_box_add_separator(status_box) + Gaim::Gtk::StatusBox status_box + +void +gtk_gaim_status_box_set_connecting(status_box, connecting) + Gaim::Gtk::StatusBox status_box + gboolean connecting + +void +gtk_gaim_status_box_pulse_connecting(status_box) + Gaim::Gtk::StatusBox status_box + +void +gtk_gaim_status_box_set_buddy_icon(status_box, filename) + Gaim::Gtk::StatusBox status_box + const char * filename + +const char * +gtk_gaim_status_box_get_buddy_icon(status_box) + Gaim::Gtk::StatusBox status_box + +char * +gtk_gaim_status_box_get_message(status_box) + Gaim::Gtk::StatusBox status_box
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkThemes.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,36 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gaim_gtkthemes_smiley_themeize(widget) + Gtk::Widget * widget +*/ + +MODULE = Gaim::Gtk::Themes PACKAGE = Gaim::Gtk::Themes PREFIX = gaim_gtkthemes_ +PROTOTYPES: ENABLE + +void +gaim_gtkthemes_init() + +gboolean +gaim_gtkthemes_smileys_disabled() + +void +gaim_gtkthemes_smiley_theme_probe() + +void +gaim_gtkthemes_load_smiley_theme(file, load) + const char * file + gboolean load + +void +gaim_gtkthemes_get_proto_smileys(id) + const char * id +PREINIT: + GSList *l; +PPCODE: + for (l = gaim_gtkthemes_get_proto_smileys(id); l != NULL; l = l->next) { + XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gtk::IMHtml::Smiley"))); + }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/GtkUtils.xs Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,208 @@ +#include "gtkmodule.h" + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gaim_setup_imhtml(imhtml) + Gtk::Widget imhtml + +Gtk::Widget +gaim_gtk_create_imhtml(editable, imhtml_ret, toolbar_ret, sw_ret) + gboolean editable + GtkWidget ** imhtml_ret + GtkWidget ** toolbar_ret + GtkWidget ** sw_ret + +void +gaim_gtk_toggle_sensitive(widget, to_toggle) + Gtk::Widget widget + Gtk::Widget to_toggle + +void +gaim_gtk_set_sensitive_if_input(entry, dialog) + Gtk::Widget entry + Gtk::Widget dialog + +void +gaim_gtk_toggle_sensitive_array(w, data) + Gtk::Widget w + GPtrArray data + +void +gaim_gtk_toggle_showhide(widget, to_toggle) + Gtk::Widget widget + Gtk::Widget to_toggle + +void +gaim_separator(menu) + Gtk::Widget menu + +Gtk::Widget +gaim_new_item(menu, str) + Gtk::Widget menu + const char * str + +Gtk::Widget +gaim_new_check_item(menu, str, sf, data, checked) + Gtk::Widget menu + const char * str + GtkSignalFunc sf + gpointer data + gboolean checked + +Gtk::Widget +gaim_new_item_from_stock(menu, str, icon, sf, data, accel_key, accel_mods, mod) + Gtk::Widget menu + const char * str + const char * icon + GtkSignalFunc sf + gpointer data + guint accel_key + guint accel_mods + char * mod + +Gtk::Widget +gaim_pixbuf_button_from_stock(text, icon, style) + const char * text + const char * icon + Gaim::ButtonOrientation style + +Gtk::Widget +gaim_gtk_make_frame(parent, title) + Gtk::Widget parent + const char * title + +Gtk::Widget +gaim_gtk_protocol_option_menu_new(id, cb, user_data) + const char * id + GCallback cb + gpointer user_data + +Gtk::Widget +gaim_gtk_account_option_menu_new(default_account, show_all, cb, filter_func, user_data) + Gaim::Account account + gboolean show_all + GCallback cb + Gaim::Account::FilterFunc filter_func + gpointer user_data + +Gaim::Account +gaim_gtk_account_option_menu_get_selected(optmenu) + Gtk::Widget optmenu + +void +gaim_gtk_account_option_menu_set_selected(optmenu, account) + Gtk::Widget optmenu + Gaim::Account account + +void +gaim_gtk_setup_screenname_autocomplete(entry, optmenu, all) + Gtk::Widget entry + Gtk::Widget optmenu + gboolean all + +gboolean +gaim_gtk_check_if_dir(path, filesel) + const char * path + Gtk::FileSelection filesel + +void +gaim_gtk_setup_gtkspell(textview) + Gtk::TextView textview + +void +gaim_gtk_save_accels_cb(accel_group, arg1, arg2, arg3, data) + Gtk::AccelGroup accel_group + guint arg1 + Gdk::ModifierType arg2 + GClosure arg3 + gpointer data +*/ + +/* TODO This needs GaimAccount ** +gboolean +gaim_gtk_parse_x_im_contact(msg, all_accounts, ret_account, ret_protocol, ret_username, ret_alias) + const char * msg + gboolean all_accounts + Gaim::Account ret_account + char ** ret_protocol + char ** ret_username + char ** ret_alias +*/ + +/* This can't work at the moment since I don't have a typemap for Gtk::Widget. + * I thought about using the one from libgtk2-perl but wasn't sure how to go + * about doing that. +void +gaim_set_accessible_lable(w, l) + Gtk::Widget w + Gtk::Widget l + +void +gaim_gtk_treeview_popup_menu_position_func(menu, x, y, push_in, user_data) + Gtk::Menu menu + gint x + gint y + gboolean push_in + gpointer user_data + +void +gaim_dnd_file_manage(sd, account, who) + Gtk::SelectionData sd + Gaim::Account account + const char * who + +void +gaim_gtk_buddy_icon_get_scale_size(buf, spec, width, height) + Gdk::Pixbuf buf + Gaim::Buddy::Icon::Spec spec + int width + int height + +Gdk::Pixbuf +gaim_gtk_create_prpl_icon(account, scale_factor) + const Gaim::Account account + double scale_factor + +Gdk::Pixbuf +gaim_gtk_create_prpl_icon_with_status(account, status_type, scale_factor) + const Gaim::Account account + Gaim::StatusType status_type + double scale_factor + +Gdk::Pixbuf +gaim_gtk_create_gaim_icon_with_status(primitive, scale_factor) + Gaim::StatusPrimitive primitive + double scale_factor + +void +gaim_gtk_append_menu_action(menu, act, gobject) + Gtk::Widget menu + Gaim::Menu::Action act + gpointer gobject + +void +gaim_gtk_set_cursor(widget, cursor_type) + Gtk::Widget widget + Gdk::CursorType cursor_type + +void +gaim_gtk_clear_cursor(widget) + Gtk::Widget widget +*/ + +MODULE = Gaim::Gtk::Utils PACKAGE = Gaim::Gtk::Utils PREFIX = gaim_gtk_utils_ +PROTOTYPES: ENABLE + +gboolean +gaim_gtk_save_accels(data) + gpointer data + +void +gaim_gtk_load_accels() + +char * +gaim_gtk_convert_buddy_icon(plugin, path) + Gaim::Plugin plugin + const char * path
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/MANIFEST Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,28 @@ +Gtk.pm +Gtk.xs +GtkAccount.xs +GtkBlist.xs +GtkConn.xs +GtkConv.xs +GtkConvWin.xs +GtkDebug.xs +GtkDialogs.xs +GtkFt.xs +GtkIMHtml.xs +GtkIMHtmlToolbar.xs +GtkLog.xs +GtkMenuTray.xs +GtkPlugin.xs +GtkPluginPref.xs +GtkPounce.xs +GtkPrefs.xs +GtkPrivacy.xs +GtkRoomlist.xs +GtkSavedStatuses.xs +GtkSession.xs +GtkSound.xs +GtkStatusBox.xs +GtkThemes.xs +GtkUtils.xs +MANIFEST +typemap
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/Makefile.PL.in Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,20 @@ +use 5.006; +use ExtUtils::MakeMaker; + +WriteMakefile( + 'NAME' => 'Gaim::Gtk', + 'VERSION_FROM' => '@srcdir@/Gtk.pm', # finds $VERSION + ($] >= 5.005 ? ## Add these new keywords supported since 5.005 + ('ABSTRACT_FROM' => '@srcdir@/Gtk.pm', # finds $ABSTRACT + 'AUTHOR' => 'Etan Reisner <deryni@gmail.com>') : ()), + 'DEFINE' => '@DEBUG_CFLAGS@', + 'INC' => '-I. -I@srcdir@ -I@top_srcdir@ -I@top_srcdir@/libgaim -I@top_srcdir@/gtk @GTK_CFLAGS@', +# 'PREREQ_PM' => { 'Gaim' => '@VERSION@'}, + # Do this because the MakeMaker Makefile is dumb, and on clean it moves + # Makefile to the default setting for MAKEFILE_OLD which is Makefile.old + # but this breaks running make clean more than once in a row. + 'MAKEFILE_OLD' => "Makefile", + 'OBJECT' => '$(O_FILES)', + 'TYPEMAPS' => ["@top_srcdir@/libgaim/plugins/perl/common/typemap"], +# 'OPTIMIZE' => '-g', # For debugging. +);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/gtkmodule.h Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,79 @@ +typedef struct group *Gaim__Gtk__Group; + +#define group perl_group + +#include <glib.h> +#include <gtk/gtk.h> +#ifdef _WIN32 +#undef pipe +#endif +#include <EXTERN.h> +#include <perl.h> +#include <XSUB.h> + +#undef group + +#include <plugins/perl/common/module.h> + +#include "gtkaccount.h" +#include "gtkblist.h" +#include "gtkconn.h" +#include "gtkconv.h" +#include "gtkconvwin.h" +#include "gtkdebug.h" +#include "gtkdialogs.h" +#include "gtkft.h" +#include "gtkimhtml.h" +#include "gtkimhtmltoolbar.h" +#include "gtklog.h" +#include "gtkmenutray.h" +#include "gtkplugin.h" +#include "gtkpluginpref.h" +#include "gtkpounce.h" +#include "gtkprefs.h" +#include "gtkprivacy.h" +#include "gtkroomlist.h" +#include "gtksavedstatuses.h" +#include "gtksession.h" +#include "gtksound.h" +#include "gtkstatusbox.h" +#include "gtkthemes.h" +#include "gtkutils.h" + +/* gtkaccount.h */ +typedef GaimGtkAccountDialogType Gaim__Gtk__Account__Dialog__Type; + +/* gtkblist.h */ +typedef GaimGtkBuddyList * Gaim__Gtk__BuddyList; +typedef gaim_gtk_blist_sort_function Gaim__Gtk__BuddyList__SortFunction; + +/* gtkconv.h */ +typedef GaimGtkConversation * Gaim__Gtk__Conversation; +typedef GaimUnseenState Gaim__UnseenState; + +/* gtkconvwin.h */ +typedef GaimGtkWindow * Gaim__Gtk__Conversation__Window; +typedef GaimConvPlacementFunc Gaim__Conversation__PlacementFunc; + +/* gtkft.h */ +typedef GaimGtkXferDialog * Gaim__Gtk__Xfer__Dialog; + +/* gtkimhtml.h */ +typedef GtkIMHtml * Gaim__Gtk__IMHtml; +typedef GtkIMHtmlButtons Gaim__Gtk__IMHtml__Buttons; +typedef GtkIMHtmlFuncs * Gaim__Gtk__IMHtml__Funcs; +typedef GtkIMHtmlScalable * Gaim__Gtk__IMHtml__Scalable; +typedef GtkIMHtmlSmiley * Gaim__Gtk__IMHtml__Smiley; +typedef GtkIMHtmlOptions Gaim__Gtk__IMHtml__Options; + +/* gtkimhtmltoolbar.h */ +typedef GtkIMHtmlToolbar * Gaim__Gtk__IMHtmlToolbar; + +/* gtkmenutray.h */ +typedef GaimGtkMenuTray * Gaim__Gtk__MenuTray; + +/* gtkroomlist.h */ +typedef GaimGtkRoomlistDialog * Gaim__Gtk__Roomlist__Dialog; + +/* gtkstatusbox.h */ +typedef GtkGaimStatusBox * Gaim__Gtk__StatusBox;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gtk/plugins/perl/common/typemap Sat Sep 02 05:31:10 2006 +0000 @@ -0,0 +1,21 @@ +TYPEMAP +Gaim::Conversation::PlacementFunc T_GaimObj +Gaim::UnseenState T_IV +Gaim::ButtonOrientation T_IV + +Gaim::Gtk::Account::Dialog::Type T_IV +Gaim::Gtk::BuddyList T_GaimObj +Gaim::Gtk::BuddyList::SortFunction T_GaimObj +Gaim::Gtk::Conversation T_GaimObj +Gaim::Gtk::Conversation::Window T_GaimObj +Gaim::Gtk::Xfer::Dialog T_GaimObj +Gaim::Gtk::IMHtml T_GaimObj +Gaim::Gtk::IMHtml::Buttons T_IV +Gaim::Gtk::IMHtml::Funcs T_GaimObj +Gaim::Gtk::IMHtml::Scalable T_GaimObj +Gaim::Gtk::IMHtml::Smiley T_GaimObj +Gaim::Gtk::IMHtml::Options T_IV +Gaim::Gtk::IMHtmlToolbar T_GaimObj +Gaim::Gtk::MenuTray T_GaimObj +Gaim::Gtk::Roomlist::Dialog T_GaimObj +Gaim::Gtk::StatusBox T_GaimObj