ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/bin/cv
(Generate patch)

Comparing CV/bin/cv (file contents):
Revision 1.32 by root, Sun Oct 31 21:01:40 2004 UTC vs.
Revision 1.41 by root, Mon Jun 27 19:42:53 2005 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2
3use Cwd ();
4use Encode ();
2 5
3use Gtk2 -init; 6use Gtk2 -init;
4use Gtk2::Gdk::Keysyms; 7use Gtk2::Gdk::Keysyms;
5 8
6use Gtk2::CV::ImageWindow; 9use Gtk2::CV::ImageWindow;
9use Gtk2::CV; 12use Gtk2::CV;
10 13
11Gtk2::Rc->parse (Gtk2::CV::find_rcfile "gtkrc"); 14Gtk2::Rc->parse (Gtk2::CV::find_rcfile "gtkrc");
12 15
13use File::Spec; 16use File::Spec;
17
18require Gtk2::CV::Plugin;
19require "$ENV{HOME}/.cvrc" if -r "$ENV{HOME}/.cvrc";
14 20
15my $mainwin; 21my $mainwin;
16my $viewer; 22my $viewer;
17my $schnauzer; 23my $schnauzer;
18my $info; 24my $info;
29 (File::Spec->splitpath ($_[1]))[2], 35 (File::Spec->splitpath ($_[1]))[2],
30 -s $_[1]; 36 -s $_[1];
31 $info->set_label ($label); 37 $info->set_label ($label);
32 $viewer->load_image ($_[1]); 38 $viewer->load_image ($_[1]);
33 }); 39 });
40 $s->signal_connect (chdir => sub {
41 my ($self, $dir) = @_;
42
43 my $path = Cwd::abs_path $dir;
44
45 $self->realize;
46 $self->window->property_change (
47 Gtk2::Gdk::Atom->intern ("_X_CWD", 0),
48 Gtk2::Gdk::Atom->intern ("UTF8_STRING", 0),
49 Gtk2::Gdk::CHARS, 'replace',
50 Encode::encode_utf8 $path,
51 );
52 });
53
54 Gtk2::CV::Plugin->call (new_schnauzer => $s);
34 55
35 $s; 56 $s;
36} 57}
37 58
38sub std_keys { 59sub std_keys {
69 } 90 }
70 91
71 $help->show_all; 92 $help->show_all;
72 } else { 93 } else {
73 #$mainwin->show_all; 94 #$mainwin->show_all;
74 $schnauzer->handle_key ($key, $state); 95 return $self->{schnauzer}->signal_emit (key_press_event => $_[1]);
75 } 96 }
76 97
77 1; 98 1;
78} 99}
79 100
90 ? $mainwin->hide 111 ? $mainwin->hide
91 : $mainwin->show_all; 112 : $mainwin->show_all;
92 1; 113 1;
93 }); 114 });
94 115
116 Gtk2::CV::Plugin->call (new_imagewindow => $viewer);
117
95 $schnauzer = new_schnauzer; 118 $schnauzer = new_schnauzer;
96 119
97 $mainwin = new Gtk2::Window; 120 $mainwin = new Gtk2::Window;
98 $mainwin->set_title ("CV"); 121 $mainwin->set_title ("CV");
99 $mainwin->add (my $vbox = new Gtk2::VBox); 122 $mainwin->add (my $vbox = new Gtk2::VBox);
102 $vbox->add ($schnauzer); 125 $vbox->add ($schnauzer);
103 $vbox->pack_end (my $frame = new Gtk2::Frame, 0, 0, 0); 126 $vbox->pack_end (my $frame = new Gtk2::Frame, 0, 0, 0);
104 $frame->add (my $hbox = new Gtk2::HBox 0, 0); 127 $frame->add (my $hbox = new Gtk2::HBox 0, 0);
105 $hbox->pack_start ((new Gtk2::Label "Info"), 0, 0, 0); 128 $hbox->pack_start ((new Gtk2::Label "Info"), 0, 0, 0);
106 $hbox->pack_start (($info = new Gtk2::Label), 1, 1, 0); 129 $hbox->pack_start (($info = new Gtk2::Label), 1, 1, 0);
130 $info->set (wrap => 1);
107 131
108 $schnauzer->set_geometry_hints; 132 $schnauzer->set_geometry_hints;
109} 133}
110 134
111if (@ARGV) { 135if (@ARGV) {
112 $_ = Glib::filename_to_unicode $_ for @ARGV; 136 $schnauzer->set_paths ([map Glib::filename_to_unicode $_, @ARGV]);
113 $schnauzer->set_paths (\@ARGV);
114 $schnauzer->show_all; 137 $schnauzer->show_all;
115 $schnauzer->handle_key ($Gtk2::Gdk::Keysyms{space}, []); 138 $schnauzer->handle_key ($Gtk2::Gdk::Keysyms{space}, []);
116} else { 139} else {
117 $schnauzer->set_dir (File::Spec->curdir); 140 $schnauzer->set_dir (File::Spec->curdir);
118 $mainwin->show_all; 141 $mainwin->show_all;
142 $viewer->show_all;
119} 143}
120 144
121$viewer->show_all; 145$viewer->show_all;
122 146
123main Gtk2; 147main Gtk2;
157 T rotate counterclockwise° 181 T rotate counterclockwise°
158 ctrl-v open a new visual schnauzer window for the current dir 182 ctrl-v open a new visual schnauzer window for the current dir
159 ctrl-s rescan visual schnauzer files for updates/deletes etc. 183 ctrl-s rescan visual schnauzer files for updates/deletes etc.
160 ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image. 184 ctrl-e run an editor ($CV_EDITOR or "gimp") on the current image.
161 185
186And when playing movies, these additional keys are active:
187
188 left rewind by 10 seconds
189 right forward by 10 seconds
190 down rewind by 60 seconds
191 up forward by 60 seconds
192 pg_up rewind by 600 seconds
193 pg_down forward by 600 seconds
194 o toggle on-screen display
195 p pause/unpause
196 escape stop playing
197 9 turn volume down
198 0 turn volume up
199
162The following keys are redirected to the default visual schnauzer window: 200The following keys are redirected to the default visual schnauzer window:
163 201
164 space next image 202 space next image
165 backspace last image 203 backspace last image
166 204
185 223
186=head1 ENVIRONMENT 224=head1 ENVIRONMENT
187 225
188=over 4 226=over 4
189 227
228=item CV_EDITOR
229
230The program that gets executed when the user presses C<CTRL-e> in the
231Schnauzer or image window. The default is C<gimp>.
232
190=item CV_PRINT_DESTINATION 233=item CV_PRINT_DESTINATION
191 234
192The default (perl-style) destination to use in the print dialog. 235The default (perl-style) destination to use in the print dialog.
236
237=item CV_TRASHCAN
238
239When set, must point to a directory where all files that are deleted are
240moved to. If unset, files that are deleted are really being deleted.
193 241
194=back 242=back
195 243
196=head1 SECURITY CONSIDERATIONS 244=head1 SECURITY CONSIDERATIONS
197 245

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines