Gtk3-ImageView
view release on metacpan or search on metacpan
t/1_basics.t view on Meta::CPAN
use warnings;
use strict;
use Try::Tiny;
use File::Temp;
use Image::Magick;
use Test::Deep;
use Test::More tests => 38;
BEGIN {
use Glib qw/TRUE FALSE/;
use Gtk3 -init;
use_ok('Gtk3::ImageView');
}
#########################
my $view = Gtk3::ImageView->new;
isa_ok( $view, 'Gtk3::ImageView' );
isa_ok(
$view->get_tool,
'Gtk3::ImageView::Tool::Dragger',
'get_tool() defaults to dragger'
);
my $tmp = File::Temp->new( SUFFIX => '.png' );
my $image = Image::Magick->new();
my $x = $image->Read('rose:');
$x = $image->Write( filename => $tmp );
warn "$x" if "$x";
my $signal;
$signal = $view->signal_connect(
'offset-changed' => sub {
my ( $widget, $x, $y ) = @_;
$view->signal_handler_disconnect($signal);
SKIP: {
skip "I don't know how offset is supposed to work with HiDPI", 2
if $view->get('scale-factor') > 1;
is $x, 0, 'emitted offset-changed signal x';
is $y, 11, 'emitted offset-changed signal y';
}
}
);
$view->set_pixbuf( Gtk3::Gdk::Pixbuf->new_from_file($tmp), TRUE );
SKIP: {
skip "I don't know how offset is supposed to work with HiDPI", 1
if $view->get('scale-factor') > 1;
cmp_deeply(
$view->get_viewport,
{
x => 0,
y => num( -12, 0.001 ),
width => num( 70, 0.001 ),
height => num( 70, 0.001 ),
},
'get_viewport'
);
}
SKIP: {
skip 'not yet', 2;
isa_ok( $view->get_draw_rect, 'Gtk3::Gdk::Rectangle' );
ok( $view->get_check_colors, 'get_check_colors()' );
}
isa_ok( $view->get_pixbuf, 'Gtk3::Gdk::Pixbuf', 'get_pixbuf()' );
is_deeply( $view->get_pixbuf_size, { width => 70, height => 46 },
'get_pixbuf_size' );
is_deeply( $view->get_allocation, { x => -1, y => -1, width => 1, height => 1 },
'get_allocation' );
cmp_deeply( $view->get_zoom,
num( 0.01428 * $view->get('scale-factor'), 0.001 ), 'get_zoom()' );
$signal = $view->signal_connect(
'zoom-changed' => sub {
my ( $widget, $zoom ) = @_;
$view->signal_handler_disconnect($signal);
is $zoom, 1, 'emitted zoom-changed signal';
}
);
$view->set_zoom(1);
$signal = $view->signal_connect(
'selection-changed' => sub {
( run in 1.067 second using v1.01-cache-2.11-cpan-39bf76dae61 )