NAME Tie::Wx::Widget - get&set main value of a Wx widget with less syntax and more magic USAGE use Tie::Wx::Widget; tie $tiedwidget, Tie::Wx::Widget, $widget; $tiedwidget = 7; # instead of $widgetref->SetValue(7); say $tiedwidget; # instead of say $widgetref->GetValue; untie $tiedwidget; # now $tiedwidget is a normal scalar again (not required) CALLBACKS Often are the widget values coupled with each other. For instance in App::Spirograph is a slider, which max value is the value of another slider. Once you know this, why keep track of it and change the range by hand any given time? tie $tslider, Tie::Wx::Widget, $slider, sub { $[0]->SetValue($[1]); $subslider->SetRange(1, $[1]) }; The first parameter to the callback is always the Wx object reference, the assign-callback gets also a second with the assigned value. Own callbacks replace the the ones, generated by default. The complete parameter list is is: tie $tw, Tie::Wx::Widget, $widget, [&$do_when_assign, &$do_when_retrieve]; Yes, its also doable with events, but thats also more syntax than this. Plus, its a different event for many widgets, why remember this? Plus, a tied widget still gives you the freedom to change the value under the radar. See section INTERNALS for more. WARNINGS Your program will C, if you don't provide a proper Wx widget, that has a GetValue and SetValue method, or the callbacks are no coderef. Unless you init with: use Tie::Wx::Widget 'warn_mode'; or do later: Tie::Wx::Widget::warn_mode(); Then will be called C instead of C. But you can switch anytime back with: Tie::Wx::Widget::die_mode(); Wich has only effect for all variables tied afterwards. Because if the Wx ref is not good, there will be no tying anyway. INTERNALS # how to get a reference to the Tie::Wx::Widget object ? $tieobject = tie $tiedwidget, Tie::Wx::Widget, $widget; $tieobject = tied $tiedwidget; # now you even can: $tieobject->FETCH() # aka: $tieobject->{'widget'}->GetValue; # or do any other method on the wx object $tieobject->{'w'}->Show(0); # works too (hides the widget) $tieobject->STORE(7); # doesn't do anything $tieobject->DESTROY() INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc Tie::Wx::Widget You can also look for information at: RT, CPAN's request tracker (report bugs here) http://rt.cpan.org/NoAuth/Bugs.html?Dist=Tie-Wx-Widget AnnoCPAN, Annotated CPAN documentation http://annocpan.org/dist/Tie-Wx-Widget CPAN Ratings http://cpanratings.perl.org/d/Tie-Wx-Widget Search CPAN http://search.cpan.org/dist/Tie-Wx-Widget/ Source Repository: http://bitbucket.org/lichtkind/tie-wx-widget LICENSE AND COPYRIGHT Copyright (C) 2011 Herbert Breunung This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.