PPresenter

 view release on metacpan or  search on metacpan

PPresenter/Export.pm  view on Meta::CPAN

    map {$export->{vp}{$_} ? ("$_") : ()}
        keys %{$export->{vp}};
}

sub tkSlideSelector($)
{   my ($export, $parent) = @_;

    $parent->Optionmenu
    ( -options  => [ 'selected slides', 'current slide', 'all slides' ]
    , -command  => sub { $export->setSelectedSlide(shift) }
    );
}

sub setSelectedSlide($)
{   my ($export, $option) = @_;
    $export->{-exportSlide} = $option eq 'current slide'   ? 'CURRENT'
                            : $option eq 'selected slides' ? 'ACTIVE'
                            : $option eq 'all slides'      ? 'ALL'
      : die "Unknown export option `$option'.\n";
}

sub selectedSlides($)
{   my ($export, $show) = @_;

    my $slides = $export->{-exportSlide};
    return $show->current      if $slides eq 'CURRENT';
    return $show->activeSlides if $slides eq 'ACTIVE';
    return $show->slides       if $slides eq 'ALL';

    die "-exportSlide shall contain CURRENT, ACTIVE, or ALL, not $slides.\n";
}

sub createDirectory($$)
{   my ($export, $parent, $directory) = @_;
    return 1 if -d $directory || mkdir $directory, 0755;

    $parent->Dialog
    ( -title   => 'Export images'
    , -text    =>
      "Directory $directory does not exist, and it can not be created either."
    , -buttons => [ 'Bummer' ]
    , -bitmap  => 'error'
    )->Show('-global');

    return 0;
}

sub optionlist($$@)
{   my ($export, $parent, $flag) = splice @_, 0, 3;

    my $default = $export->{$flag};
    die "Cannot find default $default for flag $flag.\n"
        unless grep {$default eq $_} @_;

    $parent->Optionmenu
    ( -options => [ $default, grep {$_ ne $default} @_ ]
    , -variable => \$export->{$flag}
    );
}

sub popup($$)
{   my ($export, $show, $screen) = @_;
    $export->popup($show, $screen)
           ->Popup(-popover => 'cursor');
}

1;



( run in 0.682 second using v1.01-cache-2.11-cpan-364913b4093 )