my $extwidget = ManaTools::Shared::GUI::ExtWidget->new(name => ``Selection1'', eventHandler => $dialog, parentWidget => $widget, callback => { my $self = shift; my $yevent = shift; my $backenditem = $_; ... });
$extwidget->addSelectorItem(``Label 1'', $backenditem1, sub {
my ($self, $parent, $backendItem) = @_;
my $dialog = $self->parentDialog();
my $factory = $dialog->factory();
my $vbox = $factory->createVBox($parent);
my $button1 = $self->addWidget($backendItem->label() .'_button1', $factory->createPushButton('Button 1', $vbox), sub {
my $self = shift;
my $yevent = shift;
my $backendItem = shift;
my $selectorWidget = $self->eventHandler();
...
}, $backendItem);
my $button2 = $self->addWidget($backendItem->label() .'_button2', $factory->createPushButton('Button 2', $vbox), sub {...}, $backendItem);
...
});
$extwidget->addSelectorItem(``Label 2'', $backenditem2, sub { my ($self, $parent, $backendItem) = @_; my $factory = $self->parentDialog()->factory(); my $vbox = $factory->createVBox($parent); ... } );
$extwidget->addSelectorItem(``Label 3'', $backenditem3, sub { my ($self, $parent, $backendItem) = @_; my $factory = $self->parentDialog()->factory(); my $vbox = $factory->createVBox($parent); ... } );
$extwidget->addSelectorItem(``Label 4'', $backenditem4, sub { my ($self, $parent, $backendItem) = @_; my $factory = $self->parentDialog()->factory(); my $vbox = $factory->createVBox($parent); ... } );
$extwidget->finishedSelectorItems();
perldoc ManaTools::Shared::GUI::ExtWidget
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation.
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
hash ref containing name: a name for the widget to add event to the eventHandler eventHandler: the parent that does eventHandlerRole parentWidget: the parent widget callback: optional parameter to execute a callback when an item has changed
DESCRIPTION
new is inherited from Moose, to create a ExtWidget object
$self: this object $parentWidget: yui:YWidget as parent
OUTPUT
($selector, $parent): $selector is the YSelectionWidget; $parent is the replacepoint's parent
DESCRIPTION
builds the selection widget, needs to be overridden in subclasses
$self: this object
DESCRIPTION
finalizes the selection widget, needs to be overridden in subclasses
$self: this object
DESCRIPTION
builds the selection widget
$self: this object $yevent: yui::YEvent
OUTPUT
YItem: the selected item
DESCRIPTION
returns the items that is selected when an event fires
$self: this object $yevent: yui::YEvent
DESCRIPTION
handles the SelectorWidget events and executes callback if necessary
$self: this object $label: a label for the YItem $backendItem: a backendItem needed to identify and/or handle the event $buildWidget: a CodeRef to rebuild the widget when required
OUTPUT
the created ManaTools::Shared::GUI::ExtWidget::Item
DESCRIPTION
Creates an item and adds it to the ExtWidget. Internally, it creates a yui::YItem and adds it to the YItemCollection. If it's the first item, mark it as the lastitem.
$self: this object $yitem: the YItem to be found
DESCRIPTION
returns a ManaTools::Shared::GUI::ExtWidget::Item that has the YItem
$self: this object $item: the item to be built (child widgets from this SelectorWidget will be recreated inside the associated replacepoint)
DESCRIPTION
builds an item on the internal replace point
$self: this object
DESCRIPTION
clears the selectorWidget of items to prepare for re-adding new items, call finishedSelectorItems() afterwards
$self: this object
DESCRIPTION
finalizes the items on the ExtWidget