App-Widget
view release on metacpan or search on metacpan
lib/App/Widget/AppFrame.pm view on Meta::CPAN
$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}) {
# return $screen; # no need to generate a frame
#}
#$screentitle_widget = $context->widget("$name-screentitle",
# -label => $screentitle_value,
# -bgcolor => "#888888",
#);
#$screentitle_bgcolor = $screentitle_widget->get("bgcolor");
#$screentitle = $screentitle_widget->html();
$screentitle_bgcolor = "#888888";
$screentitle = "<font face=verdana,geneva,arial,sans-serif size=+1 color=#ffffff>$screentitle_value</font>";
# <tr>
# <td colspan="2" valign="top" height="1%">
# $menu
# </td>
# </tr>
# <tr>
# <td colspan="2" valign="top" height="1%">
# $toolbar
# </td>
# </tr>
( run in 2.125 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )