widget-info — Access information for a particular widget
Attribute | Pos. | Req. | Default | Description |
---|---|---|---|---|
name | Yes | |||
attribute | Yes | |||
interpolate | 0 | interpolate output? | ||
hide | 0 | Hide the tag return value? |
Interchange 5.9.0:
Source: code/UI_Tag/widget_info.coretag
Lines: 65
UserTag widget-info Order name attribute UserTag widget-info Version $Revision: 1.1 $ UserTag widget-info Routine <<EOR my %wi_attr = ((map { (lc $_, $_) } qw( Widget Documentation Visibility Description Help Multiple Version )), qw( exists Widget )); sub { my ($name, $attr) = @_; if (length $name) { # Global or Local? my $repo = $Global::CodeDef->{Widget}; $repo = $Vend::Cfg->{CodeDef}{Widget} if $Vend::Cfg->{CodeDef}{Widget}{Widget}{$name}; return unless $repo->{Widget}{$name}; if (length $attr) { # return just one attribute for the given name. $attr = $wi_attr{lc $attr} or return; return $repo->{$attr}{$name}; } else { # return a hashref with all the available attributes for a given name. my %build = reverse %wi_attr; while (my $key = each %build) { if (exists $repo->{$key}{$name}) { $build{$key} = $repo->{$key}{$name}; } else { delete $build{$key}; } } return \%build; } } else { # return a hashref of hashrefs for all the widgets and their attributes. my %build = %{$Global::CodeDef->{Widget}{Widget}}; @build{keys %build} = ($Global::CodeDef->{Widget}) x scalar keys %build; @build{keys %{$Vend::Cfg->{CodeDef}{Widget}{Widget}}} = ($Vend::Cfg->{CodeDef}{Widget}) \ x scalar keys %{$Vend::Cfg->{CodeDef}{Widget}{Widget}}; foreach my $name (keys %build) { my $repo = $build{$name}; $build{$name} = {reverse %wi_attr}; while (my $key = each %{$build{$name}}) { if (exists $repo->{$key}{$name}) { $build{$name}{$key} = $repo->{$key}{$name}; } else { delete $build{$name}{$key}; } } } return \%build; } } EOR