Tk-AppWindow

 view release on metacpan or  search on metacpan

lib/Tk/AppWindow/Ext/Help.pm  view on Meta::CPAN

	my @col1 = ( -column => 1, -sticky => 'w', @padding);

	if (my $file = $inf->{licensefile}) {
		&$addnb;
		my $lp = $nb->add('licence', -label => 'License');
		my $t = $lp->Scrolled('ROText', 
			-width => 8, 
			-height => 8, 
			-scrollbars => 'osoe'
		)->pack(-expand =>1, -fill => 'both', @padding);
		if (open(my $fh, '<', $file)) {
			while (my $line = <$fh>) {
				$t->insert('end', $line)
			}
			close $fh
		}
	} else {
		$ap = $db->Frame->pack(-expand => 1, -fill => 'both') unless defined $ap;
	}

	if (exists $inf->{components}) {
		&$addnb;
		my $lp = $nb->add('components', -label => 'Components');
		my $cl = $lp->Scrolled('HList',
			-width => 4,
			-height => 4,
			-columns => 2,
			-header => 1,
			-scrollbars => 'osoe',
		)->pack(-expand => 1, -fill => 'both', @padding);
		my $count = 0;
		for ('Module', 'Version') {
			my $header = $cl->Frame;
			$header->Label(-text => $_)->pack(-side => 'left');
			$cl->headerCreate($count,
				-headerbackground => $self->configGet('-background'),
				-itemtype => 'window', 
				-widget => $header
			);
			$count ++;
		}
		my $components = $inf->{components};
		my $row = 0;
		for (@$components) {
			my $module = $_;
			my $version = $self->moduleVersion($module);
			if (defined $version) {
				$cl->add($row, -data => "$module: $version\n");
				$cl->itemCreate($row, 0, -text => $module);
				$cl->itemCreate($row, 1, -text => $version);
				$row++
			}
		}
		$lp->Button(
			-text => 'Copy',
			-command => sub {
				my $text = '';
				for (0 .. $row - 1) {
					$text = $text . $cl->infoData($_);
				}
				$self->clipboardClear;
				$self->clipboardAppend($text);
			}
		)->pack;
	} else {
		$ap = $db->Frame->pack(-expand => 1, -fill => 'both') unless defined $ap;
	}

	my $lg = $self->configGet('-logo');
	if (defined $lg) {
		$ap->Label(-image => $self->Photo(-file => $lg))->pack;
	}
	my $gf = $ap->Frame->pack(-expand => 1, -fill => 'both');
	my $row = 0;
	my $ver = $inf->{version};
	if (defined $ver) {
		$gf->Label(-text => 'Version:')->grid(-row => $row, @col0);
		my $l = $gf->Label(-text => $ver)->grid(-row => $row, @col1);
		$row ++;
	}
	my $aut = $inf->{author};
	if (defined $aut) {
		$gf->Label(-text => 'Author:')->grid(-row => $row, @col0);
		$gf->Label(-text => $aut)->grid(-row => $row, @col1);
		$row ++;
	}
	my $mail = $inf->{email};
	if (defined $mail) {
		$gf->Label(-text => 'E-mail:')->grid(-row => $row, @col0);
		my $url = $gf->Label(
			-text => $mail,
		)->grid(-row => $row, @col1);
		$self->ConnectURL($url, "mailto:$mail"); 
		$row ++;
	}
	my $web = $inf->{http};
	if (defined $web) {
		$gf->Label(-text => 'Website:')->grid(-row => $row, @col0);
		my $url = $gf->Label(
			-text => $web,
		)->grid(-row => $row, @col1);
		$self->ConnectURL($url, $web); 
		$row ++;
	}
	my $lc = $inf->{license}; 
	if (defined $lc) {
		if (defined $lc) {
			$gf->Label(-text => 'License:')->grid(-row => $row, @col0);
			my $l = $gf->Label(-text => $lc)->grid(-row => $row, @col1);
			my $lcu = $inf->{licenselink};
			if (defined $lcu) {
				$self->ConnectURL($l, $lcu) if defined $lcu;
			}
		}
		$row ++;
	}
	$db->Show(-popover => $self->GetAppWindow);
	$db->destroy;
}

sub CmdHelp {
	my $self = shift;



( run in 2.849 seconds using v1.01-cache-2.11-cpan-84e82930d8c )