Gtk2-Ex-FormFactory
view release on metacpan or search on metacpan
lib/Gtk2/Ex/FormFactory/ToggleButton.pm view on Meta::CPAN
$self->set_true_label($true_label);
$self->set_false_label($false_label);
$self->set_stock($stock);
$self->set_image($image);
$self->set_clicked_hook($clicked_hook);
return $self;
}
sub object_to_widget {
my $self = shift;
$self->get_gtk_widget->set_active($self->get_object_value);
$self->update_button_label;
1;
}
sub widget_to_object {
my $self = shift;
$self->set_object_value ($self->get_gtk_widget->get_active ? 1 : 0);
1;
}
sub backup_widget_value {
my $self = shift;
$self->set_backup_widget_value ($self->get_gtk_widget->get_active ? 1 : 0);
1;
}
sub restore_widget_value {
my $self = shift;
$self->get_gtk_widget->set_active($self->get_backup_widget_value);
1;
}
sub get_widget_check_value {
$_[0]->get_gtk_widget->get_active;
}
sub connect_changed_signal {
my $self = shift;
$self->get_gtk_widget->signal_connect_after (
toggled => sub {
$self->update_button_label;
$self->widget_value_changed;
},
);
1;
}
sub update_button_label {
my $self = shift;
return if $self->get_true_label eq $self->get_false_label;
my $gtk_widget;
if ( $self->get_stock ) {
my $gtk_align = ($self->get_gtk_parent_widget->get_children)[0];
my $gtk_hbox = ($gtk_align->get_children)[0];
$gtk_widget = ($gtk_hbox->get_children)[1];
}
else {
$gtk_widget = $self->get_gtk_widget;
}
my $value = $self->get_gtk_widget->get_active;
if ( $value ) {
$gtk_widget->set_label($self->get_true_label);
} else {
$gtk_widget->set_label($self->get_false_label);
}
1;
}
1;
__END__
=head1 NAME
Gtk2::Ex::FormFactory::ToggleButton - A ToggleButton in a FormFactory framework
=head1 SYNOPSIS
Gtk2::Ex::FormFactory::ToggleButton->new (
true_label => Label of the activated button,
false_label => Label of the deactivated button,
stock => Name of stock image for this button,
clicked_hook => Coderef to called on clicking,
image => Filename of image to put on button,
...
Gtk2::Ex::FormFactory::Widget attributes
);
=head1 DESCRIPTION
This class implements a ToggleButton in a Gtk2::Ex::FormFactory framework.
The state of the ToggleButton is controlled by the associated application
object attribute, which should has a boolean value.
=head1 OBJECT HIERARCHY
Gtk2::Ex::FormFactory::Intro
Gtk2::Ex::FormFactory::Widget
+--- Gtk2::Ex::FormFactory::ToggleButton
Gtk2::Ex::FormFactory::Layout
Gtk2::Ex::FormFactory::Rules
( run in 1.263 second using v1.01-cache-2.11-cpan-39bf76dae61 )