Mercurial > pidgin
diff plugins/perl/scripts/request.pl @ 11170:0e9e2b923d09
[gaim-migrate @ 13271]
Fixed some bugs and made some additions to the XSUBS. Added some of my test scripts which are incomplete, but mostly functional. GaimPluginPrefs and GaimGtkPluginPrefs--using evals to do the Gtk widgets with gtk2-perl--work. Plugin actions can now be added, but only one for now.
committer: Tailor Script <tailor@pidgin.im>
| author | John H. Kelm <johnkelm@gmail.com> |
|---|---|
| date | Fri, 29 Jul 2005 13:38:00 +0000 |
| parents | |
| children | 4d9686e7c234 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/perl/scripts/request.pl Fri Jul 29 13:38:00 2005 +0000 @@ -0,0 +1,109 @@ +$MODULE_NAME = "Request Functions Test"; + +use Gaim; + +# All the information Gaim gets about our nifty plugin +%PLUGIN_INFO = ( + perl_api_version => 2, + name => " Perl: $MODULE_NAME", + version => "0.1", + summary => "Test plugin for the Perl interpreter.", + description => "Implements a set of test proccedures to ensure all functions that work in the C API still work in the Perl plugin interface. As XSUBs are added, this *should* be updated to test the changes. Furthermore, this will function as the tutorial perl plugin.", + author => "John H. Kelm <johnhkelm\@gmail.com", + url => "http://sourceforge.net/users/johnhkelm/", + + load => "plugin_load", + unload => "plugin_unload", + plugin_action => "plugin_action_test", + plugin_action_label => "Plugin Action Test Label" +); + + + # These names must already exist + my $GROUP = "UIUC Buddies"; + my $USERNAME = "johnhkelm2"; + + # We will create these on load then destroy them on unload + my $TEST_GROUP = "perlTestGroup"; + my $TEST_NAME = "perlTestName"; + my $TEST_ALIAS = "perlTestAlias"; + my $PROTOCOL_ID = "prpl-oscar"; + + +sub plugin_init { + return %PLUGIN_INFO; +} + +sub ok_cb_test{ + $fields = shift; + print "ok_cb_test: BEGIN\n"; + print "ok_cb_test: Button Click\n"; + print "ok_cb_test: Field Type: " . $fields . "\n"; + $account = Gaim::Request::fields_get_account($fields, "acct_test"); + print "ok_cb_test: Username of selected account: " . Gaim::Account::get_username($account) . "\n"; + $int = Gaim::Request::fields_get_integer($fields, "int_test"); + print "ok_cb_test: Integer Value:" . $int . "\n"; + $choice = Gaim::Request::fields_get_choice($fields, "ch_test"); + print "ok_cb_test: Choice Value:" . $choice . "\n"; + print "ok_cb_test: END\n"; +} + +sub cancel_cb_test{ + print "cancel_cb_test: Button Click\n"; +} + +sub plugin_action_test { + $plugin = shift; + print "plugin_action_cb_test: BEGIN\n"; + plugin_request($plugin); + print "plugin_action_cb_test: END\n"; +} + +sub plugin_load { + my $plugin = shift; + ######### TEST CODE HERE ########## + + +} + +sub plugin_request { + $group = Gaim::Request::field_group_new("Group Name"); + $field = Gaim::Request::field_account_new("acct_test", "Account Text", undef); + Gaim::Request::field_account_set_show_all($field, 0); + Gaim::Request::field_group_add_field($group, $field); + + $field = Gaim::Request::field_int_new("int_test", "Integer Text", 33); + Gaim::Request::field_group_add_field($group, $field); + + # Test field choice + $field = Gaim::Request::field_choice_new("ch_test", "Choice Text", 1); + Gaim::Request::field_choice_add($field, "Choice 0"); + Gaim::Request::field_choice_add($field, "Choice 1"); + Gaim::Request::field_choice_add($field, "Choice 2"); + + Gaim::Request::field_group_add_field($group, $field); + + + $request = Gaim::Request::fields_new(); + Gaim::Request::fields_add_group($request, $group); + + Gaim::Request::fields( + $plugin, + "Request Title!", + "Primary Title", + "Secondary Title", + $request, + "Ok Text", "ok_cb_test", + "Cancel Text", "cancel_cb_test"); +} + +sub plugin_unload { + my $plugin = shift; + print "#" x 80 . "\n"; + ######### TEST CODE HERE ########## + + + + print "\n" . "#" x 80 . "\n"; +} +
