App-Widget
view release on metacpan or search on metacpan
lib/App/Widget/AppFrame.pm view on Meta::CPAN
=cut
######################################################################
# INITIALIZATION
######################################################################
# no special initialization
######################################################################
# EVENTS
######################################################################
sub handle_event {
my ($self, $wname, $event, @args) = @_;
my ($context, $name, $node);
my ($selector_widget, $screen_wname, $screen_widget, $screen_settings);
my ($screen_msg, $target);
$name = $self->{name};
$context = $self->{context};
if ($wname eq "$name-selector" && $event eq "select") {
$selector_widget = $context->widget("$name-selector");
$screen_wname = $selector_widget->get_selected("wname");
$screen_widget = $context->widget($screen_wname);
$screen_settings = $selector_widget->get_selected("set");
if ($screen_settings) {
foreach (keys %$screen_settings) {
$screen_widget->set($_, $screen_settings->{$_});
}
}
else {
$screen_msg = $selector_widget->get_selected("send");
if ($screen_msg && ref($screen_msg) eq "ARRAY" && $#$screen_msg >= 1) {
my ($target_widget, $target_wname, $method, @args);
($target_wname, $method, @args) = @$screen_msg;
$target_widget = $context->widget($target_wname);
$target_widget->$method(@args);
}
}
#my $frame = $selector_widget->get_selected("frame");
#if (defined $frame) {
# my ($key);
# foreach $key (keys %$frame) {
# $self->set($key,$frame->{$key});
# }
#}
#my $target = $selector_widget->get_selected("target");
#if ($target) {
# $main::target = $target;
#}
#$self->{noframe} = $selector_widget->get_selected("noframe");
return 1;
}
else {
return $self->SUPER::handle_event($wname, $event, @args);
}
}
######################################################################
# OUTPUT METHODS
######################################################################
sub html {
my $self = shift;
my ($context, $name, $html);
$name = $self->{name};
$context = $self->{context};
my ($menu, $toolbar, $screentitle, $screentoolbar);
my ($selector_widget, $selector);
my ($screen_wname, $screen, $screen_widget, $screen_bgcolor);
my ($screentitle_widget, $screentitle_bgcolor, $screentitle_value);
if (1) { # view as table
$menu = $context->widget("$name-menu",
class => "App::Widget::Menu",
)->html();
$toolbar = $context->widget("$name-toolbar",
class => "App::Widget::Toolbar",
)->html();
$screentoolbar = $context->widget("$name-screentoolbar",
class => "App::Widget::Toolbar",
)->html();
$selector_widget = $context->widget("$name-selector",
class => "App::Widget::IconPaneSelector",
);
$selector = $selector_widget->html();
$screen_wname = $selector_widget->get_selected("wname");
if ($screen_wname) {
$screen_widget = $context->widget($screen_wname);
$screentitle_value = $selector_widget->get_selected("value");
$screentitle_value = $screen_widget->label() if (!$screentitle_value);
if ($screen_widget->can("html")) {
$screen = $screen_widget->html();
}
else {
$screen = "[$screen_wname: not yet defined]";
}
$screen_bgcolor = $screen_widget->get("bgcolor");
$screen_bgcolor = "#ffffff" if (!defined $screen_bgcolor);
}
else {
$screentitle_value = " ";
$screen = " ";
$screen_bgcolor = "#cccccc";
}
#if ($self->{noframe}) {
( run in 0.546 second using v1.01-cache-2.11-cpan-98e64b0badf )