
Games::Pandemic::Tk::Action - action item for main pandemic window

version 1.092660

my $action = Games::Pandemic::Tk::Action->new(
window => $mw,
callback => $session->postback('event'),
);
$action->add_widget( $menu_entry );
$action->add_widget( $button );
$action->add_binding( '<Control-F>' );
$action->enable;
...
$action->disable;

Menu entries are often also available in toolbars or other widgets. And sometimes, we want to enable or disable a given action, and this means having to update everything this action is allowed.
This module helps managing actions in a GUI: just create a new object, associate some widgets and bindings with add_widget() and then de/activate the whole action at once with enable() or disable().
The window and callback attributes are mandatory when calling the constructor.

Associate $widget with $action. Enable or disable it depending on current action status.
De-associate $widget with C$<action>.
Associate $binding with $action. Enable or disable it depending on current action status. $binding is a regular binding, as defined by Tk::bind.
It is not possible to remove a binding from an action.
Activate all associated widgets.
De-activate all associated widgets.

Jerome Quelin

This software is Copyright (c) 2009 by Jerome Quelin.
This is free software, licensed under:
The GNU General Public License, Version 2, June 1991