--- CV/bin/cv 2003/11/07 04:03:03 1.19 +++ CV/bin/cv 2003/11/07 14:01:45 1.20 @@ -10,23 +10,28 @@ Gtk2::Rc->parse (Gtk2::CV::find_rcfile "gtkrc"); +use File::Spec; + +my $mainwin; my $viewer; my $schnauzer; +my $info; sub new_schnauzer { - my $w = new Gtk2::Window; - $w->add (my $s = new Gtk2::CV::Schnauzer); + 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->signal_connect (activate => sub { + my $label = sprintf "%s (%d)", + (File::Spec->splitpath ($_[1]))[2], + -s $_[1]; + $info->set_label ($label); + $viewer->load_image ($_[1]); + }); $s; } -$schnauzer = new_schnauzer; - -my $mainwin = $schnauzer->get_toplevel; - sub std_keys { my $key = $_[1]->keyval; my $state = $_[1]->state; @@ -36,9 +41,10 @@ if ($key == $Gtk2::Gdk::Keysyms{q}) { main_quit Gtk2; } elsif ($ctrl && $key == $Gtk2::Gdk::Keysyms{v}) { - my $s = new_schnauzer; - $s->set_dir ("."); - $s->get_toplevel->show_all + my $w = new Gtk2::Window; + $w->add (my $s = new_schnauzer); + $s->set_dir (File::Spec->curdir); + $w->show_all } else { #$mainwin->show_all; $schnauzer->handle_key ($key, $state); @@ -47,24 +53,38 @@ 1; } -$viewer = new Gtk2::CV::ImageWindow; +{ + $viewer = new Gtk2::CV::ImageWindow; -$viewer->set_title ("CV"); + $viewer->set_title ("CV: Image"); -$viewer->signal_connect (key_press_event => \&std_keys); -$viewer->signal_connect (delete_event => sub { main_quit Gtk2 }); + $viewer->signal_connect (key_press_event => \&std_keys); + $viewer->signal_connect (delete_event => sub { main_quit Gtk2 }); -$viewer->signal_connect (button3_press_event => sub { - $mainwin->visible - ? $mainwin->hide - : $mainwin->show_all; -}); + $viewer->signal_connect (button3_press_event => sub { + $mainwin->visible + ? $mainwin->hide + : $mainwin->show_all; + }); + + $schnauzer = new_schnauzer; + + $mainwin = new Gtk2::Window; + $mainwin->set_title ("CV"); + $mainwin->add (my $vbox = new Gtk2::VBox); + + $vbox->add ($schnauzer); + $vbox->add (my $frame = new Gtk2::Frame); + $frame->add (my $hbox = new Gtk2::HBox 0, 0); + $hbox->pack_start ((new Gtk2::Label "Info"), 0, 0, 0); + $hbox->pack_start (($info = new Gtk2::Label), 1, 1, 0); +} if (@ARGV) { $schnauzer->set_paths (\@ARGV); $schnauzer->handle_key ($Gtk2::Gdk::Keysyms{space}, []); } else { - $schnauzer->set_dir ("."); + $schnauzer->set_dir (File::Spec->curdir); $mainwin->show_all; }