PPresenter
view release on metacpan or search on metacpan
PPresenter/SlideView.pm view on Meta::CPAN
# Copyright (C) 2000-2002, Free Software Foundation FSF.
package PPresenter::SlideView;
use strict;
use PPresenter::Object;
use base 'PPresenter::Object';
sub new($$$)
{ my ($class, $show, $slide, $style_flags, $viewport) = @_;
# Collect the options from (sub-classes of) Slide.
my $view = bless
{ -name => "Slide $slide view $viewport"
, show => $show
, slide => $slide
, viewport => $viewport
, canvas => $viewport->canvas
, style_elements => $viewport->styleElems($slide, $style_flags)
, id => undef
}, $class;
$view->getOptions($class)->InitObject;
}
sub setOptions($) {$_[0]->{options} = $_[1]}
sub decoration() {shift->{decoration}}
sub fontset() {shift->{fontset} }
sub formatter() {shift->{formatter} }
sub template() {shift->{template} }
sub dynamic() {shift->{dynamic} }
sub viewport() {shift->{viewport} }
sub showsOnViewport($) {"$_[0]->{viewport}" eq "$_[1]"}
sub canvas() {shift->{viewport}->canvas}
sub device() {shift->{viewport}->device}
sub nextPhase() {shift->{program}->nextPhase}
sub inLastPhase() {shift->{program}->inLastPhase}
sub gotoPhase($) {shift->{program}->gotoPhase(@_)}
sub phase() {shift->{program}->phase}
sub image(@) {shift->{show}->image(@_)}
sub id() {shift->{id}}
sub exportedPhases()
{ my $view = shift;
$view->{dynamic}->exportedPhases($view->{program});
}
sub canvasDimensions() # often requested, hence answer is cached.
{ my $view = shift;
$view->{dims} = [ $view->{viewport}->canvasDimensions ]
unless exists $view->{dims};
@{$view->{dims}};
}
#
# Just passing on...
#
sub hasBackdrop()
{ my $view = shift;
$view->{decoration}->hasBackdrop($view->{viewport}->device);
}
sub color(@)
{ my $view = shift;
$view->{decoration}->color($view, @_);
}
sub findFontSize($@)
{ my $view = shift;
$view->{fontset}->findFontSize($view->{viewport}, @_);
}
sub font(@) {shift->{fontset}->font(@_)}
sub title() {shift->{template}->title}
sub nestImage($)
{ my ($view, $name) = @_;
my ($geom, $img) = $view->{decoration}->nestImageDef($name);
$view->{show}->image
( (ref $img ? $img : (-file => $img))
, (defined $geom
? (-sizeBase => $geom, -resize => 0)
: (-resize => 0)
)
);
}
#
#
#
sub makeBackground()
{ my $view = shift;
$view->{viewport}->setBackgroundId(
$view->{decoration}->makeBackground
( $view->{viewport}->backgroundId
( run in 2.174 seconds using v1.01-cache-2.11-cpan-4ab04211f4c )