App-Widget
view release on metacpan or search on metacpan
lib/App/Widget/TabbedAppFrame.pm view on Meta::CPAN
######################################################################
# no special initialization
######################################################################
# EVENTS
######################################################################
sub handle_event {
&App::sub_entry if ($App::trace);
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");
$self->{context}->dbgprint("TabbedAppFrame->handle_event($wname, $event, @args): $screen_settings [",
join(",",%$screen_settings), "]")
if ($App::DEBUG && $self->{context}->dbg(1));
if ($screen_settings) {
foreach (keys %$screen_settings) {
$screen_widget->set($_, $screen_settings->{$_});
}
return 1;
}
$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);
}
&App::sub_exit() if ($App::trace);
}
######################################################################
# OUTPUT METHODS
######################################################################
sub html {
&App::sub_entry if ($App::trace);
my $self = shift;
my ($context, $name, $html);
$name = $self->{name};
$context = $self->{context};
my ($menu, $toolbar, $screentitle, $screentoolbar);
my ($top);
my ($selector_widget, $selector, $selector_bgcolor);
my ($screen_wname, $screen, $screen_widget, $screen_bgcolor);
my ($screentitle_widget, $screentitle_bgcolor, $screentitle_value);
if (1) { # view as table
$top = $context->widget("$name-top",
class => "App::Widget::Template",
)->html();
$top = "" if ($top =~ /not found/i);
#$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::TabbedSelector",
);
$selector_bgcolor = "";
if ($self->{selector_bgcolor}) {
$selector_bgcolor = " bgcolor=\"$self->{selector_bgcolor}\"";
}
$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);
$screen = $screen_widget->html();
$screen_bgcolor = $screen_widget->get("bgcolor");
$screen_bgcolor = "#ffffff" if (!defined $screen_bgcolor);
}
( run in 0.646 second using v1.01-cache-2.11-cpan-98e64b0badf )