--- CV/bin/cv 2003/11/02 12:55:41 1.1 +++ CV/bin/cv 2003/11/03 00:04:22 1.2 @@ -1,70 +1,15 @@ #!/opt/bin/perl -use Gtk2; +use Gtk2 -init; use Gtk2::Gdk::Keysyms; use Gtk2::CV::ImageWindow; +use Gtk2::CV::Schnauzer; $VERSION = 0.1; my $viewer; -package schnauzer; - -use Glib::Object::Subclass Gtk2::Frame; - -sub INIT_INSTANCE { - my ($self) = @_; - - $self->add ( - $self->{list} = new Gtk2::SimpleList "Name" => "text" - ); - - $self->{list}->signal_connect (cursor_changed => sub { - my $row = scalar +($_[0]->get_selection->get_selected_rows)[0]->get_indices; - $viewer->load_image ($self->{files}[$row]); - }); -} - -sub set_files { - my ($self, $files) = @_; - - $self->{files} = $files; - - @{$self->{list}{data}} = (); - - my ($dir, $file); - - for (@$files) { - if (/^(.*)\/([^\/]*)$/s) { - ($dir, $file) = ($1, $2); - } else { - ($dir, $file) = (".", $_); - } - - if (0) { - if ($file eq "." or $file eq "..") { - } elsif (-f "$dir/.xvpics/$file") { - print new_from_file Gtk2::Gdk::Pixbuf "$dir/.xvpics/$file"; - } else { - } - } - - push @{$self->{list}{data}}, [$file]; - } -} - -sub set_dir { - my ($self, $dir) = @_; - - my @files; - - opendir my $fh, $dir - or die "$dir: $!"; - - $self->set_files ([map "$dir/$_", readdir $fh]); -} - package cluster; use Glib::Object::Subclass Gtk2::Window; @@ -88,9 +33,7 @@ "Name" => "text", ); - $self->{schnauzer} = new schnauzer; - $box->add (my $sw = new Gtk2::ScrolledWindow); - $sw->add_with_viewport ($self->{schnauzer} = new schnauzer); + $box->add ($self->{schnauzer} = new Gtk2::CV::Schnauzer); $self->{list}->get_column(0)->set_sort_column_id(0); $self->{list}->get_column(1)->set_sort_column_id(1); @@ -152,7 +95,18 @@ package main; -init Gtk2; +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->set_dir ("/root/pix"); + $w->show_all; + + $w; +} $viewer = new Gtk2::CV::ImageWindow; @@ -160,15 +114,10 @@ my $cluster = new cluster; -0 and do { - my $w = new Gtk2::Window; - $w->add (my $s = new schnauzer); - $s->set_dir ("/root/pix"); - $w->show_all; -}; +new_schnauzer; -$cluster->analyse ("/fs/samsung/store-anime-done"); -$cluster->show_all; +#$cluster->analyse ("/fs/samsung/store-anime-done"); +#$cluster->show_all; #$viewer->set (path => "/fs/samsung/store-anime-done/yuumi_kazuaki_-_love_to_hajieki_to_sayonara_to_-_150.jpg"); #$viewer->set (path => "/root/pix/kvvz.jpg");