--- CV/bin/cv 2003/11/05 01:29:47 1.11 +++ CV/bin/cv 2003/11/05 01:30:33 1.12 @@ -1,5 +1,62 @@ #!/opt/bin/perl +use Gtk2 -init; +use Gtk2::Gdk::Keysyms; + +use Gtk2::CV::ImageWindow; +use Gtk2::CV::Schnauzer; + +my $viewer; +my $schnauzer; + +sub new_schnauzer { + my $w = new Gtk2::Window; + $w->add (my $s = new Gtk2::CV::Schnauzer); + + $s->signal_connect (activate => sub { $viewer->load_image ($_[1]) }); + $s->signal_connect_after (key_press_event => \&std_keys); + + $s->set_dir ("."); + $w->show_all; + + $s; +} + +sub std_keys { + my $key = $_[1]->keyval; + my $state = $_[1]->state; + + my $ctrl = grep $_ eq "control-mask", @$state; + + if ($key == $Gtk2::Gdk::Keysyms{q}) { + main_quit Gtk2; + } elsif ($ctrl && $key == $Gtk2::Gdk::Keysyms{v}) { + new_schnauzer; + } else { + $schnauzer->handle_key ($key, $state); + } + + 1; +} + +$viewer = new Gtk2::CV::ImageWindow; +$viewer->signal_connect (key_press_event => \&std_keys); +$viewer->signal_connect (delete_event => sub { main_quit Gtk2 }); + +$schnauzer = new_schnauzer; + +if (@ARGV) { + $viewer->load_image ($ARGV[0]); + + if (@ARGV > 1) { + $schnauzer->set_paths (\@ARGV); + } +} + +$viewer->show_all; + +main Gtk2; + =head1 NAME cv - a fast gtk+ image viewer modeled after xv @@ -61,6 +118,8 @@ lots of ui issues save(?) preferences + ctrl-u in schnauzer + shift-cursor in schnauzer =head1 AUTHOR @@ -68,61 +127,3 @@ =cut -use Gtk2 -init; -use Gtk2::Gdk::Keysyms; - -use Gtk2::CV::ImageWindow; -use Gtk2::CV::Schnauzer; - -my $viewer; -my $schnauzer; - -sub new_schnauzer { - my $w = new Gtk2::Window; - $w->add (my $s = new Gtk2::CV::Schnauzer); - - $s->signal_connect (activate => sub { $viewer->load_image ($_[1]) }); - $s->signal_connect_after (key_press_event => \&std_keys); - - $s->set_dir ("."); - $w->show_all; - - $s; -} - -sub std_keys { - my $key = $_[1]->keyval; - my $state = $_[1]->state; - - my $ctrl = grep $_ eq "control-mask", @$state; - - if ($key == $Gtk2::Gdk::Keysyms{q}) { - main_quit Gtk2; - } elsif ($ctrl && $key == $Gtk2::Gdk::Keysyms{v}) { - new_schnauzer; - } else { - $schnauzer->handle_key ($key, $state); - } - - 1; -} - -$viewer = new Gtk2::CV::ImageWindow; -$viewer->signal_connect (key_press_event => \&std_keys); -$viewer->signal_connect (delete_event => sub { main_quit Gtk2 }); - -$schnauzer = new_schnauzer; - -if (@ARGV) { - $viewer->load_image ($ARGV[0]); - - if (@ARGV > 1) { - $schnauzer->set_paths (\@ARGV); - } -} - -$viewer->show_all; - -main Gtk2; - -