Gtk2-CV

 view release on metacpan or  search on metacpan

cv.glade  view on Meta::CPAN

                <property name="top_attach">5</property>
                <property name="bottom_attach">6</property>
                <property name="x_options">GTK_FILL</property>
                <property name="y_options"></property>
              </packing>
            </child>
            <child>
              <widget class="GtkHBox" id="hbox4">
                <property name="visible">True</property>
                <child>
                  <widget class="GtkOptionMenu" id="dest_type">
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="response_id">0</property>

                 <child>
                   <widget class="GtkMenu" id="menu2">

                     <child>
                       <widget class="GtkMenuItem" id="dest_perl">
                         <property name="visible">True</property>
                         <property name="label" translatable="yes">Perl</property>
                         <property name="use_underline">True</property>
                         <signal name="activate" handler="on_dest_activate" last_modification_time="Tue, 11 Nov 2003 23:23:42 GMT"/>
                       </widget>
                     </child>

                     <child>
                       <widget class="GtkMenuItem" id="dest_file">
                         <property name="visible">True</property>
                         <property name="label" translatable="yes">File</property>
                         <property name="use_underline">True</property>
                         <signal name="activate" handler="on_dest_activate" last_modification_time="Tue, 11 Nov 2003 23:23:42 GMT"/>
                       </widget>
                     </child>

                     <child>
                       <widget class="GtkMenuItem" id="dest_pipe">
                         <property name="visible">True</property>
                         <property name="label" translatable="yes">Pipe</property>
                         <property name="use_underline">True</property>
                         <signal name="activate" handler="on_dest_activate" last_modification_time="Tue, 11 Nov 2003 23:23:42 GMT"/>
                       </widget>
                     </child>
                   </widget>
                 </child>

                  </widget>

cv.glade  view on Meta::CPAN

              <packing>
                <property name="left_attach">1</property>
                <property name="right_attach">2</property>
                <property name="top_attach">3</property>
                <property name="bottom_attach">4</property>
                <property name="x_options"></property>
                <property name="y_options"></property>
              </packing>
            </child>
            <child>
              <widget class="GtkOptionMenu" id="papersize">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="response_id">0</property>
              </widget>
              <packing>
                <property name="left_attach">1</property>
                <property name="right_attach">2</property>
                <property name="x_options">GTK_FILL</property>
                <property name="y_options"></property>
              </packing>

eg/plugin-skeleton  view on Meta::CPAN

      } else {
         return 0;
      }

      1
   });

   $schnauzer->signal_connect (popup => sub {
      my ($self, $menu, $cursor, $event) = @_;

      $menu->append (my $item = new Gtk2::MenuItem "select me");
      $item->signal_connect (activate => sub { warn "activated menu\n" });
   });
}

1

lib/Gtk2/CV/Plugin/MetaCluster.pm  view on Meta::CPAN

}

sub new_schnauzer {
   my ($self, $schnauzer) = @_;

   my $metacluster;

   $schnauzer->signal_connect (popup => sub {
      my ($self, $menu, $cursor, $event) = @_;
      
      $menu->append (my $i_up = new Gtk2::MenuItem "Imagesize clustering...");
      $i_up->signal_connect (activate => sub {
         ($metacluster = Gtk2::CV::Plugin::MetaCluster->new)->start ($self, \&imgsize);
      });

      $menu->append (my $i_up = new Gtk2::MenuItem "Filetime clustering...");
      $i_up->signal_connect (activate => sub {
         ($metacluster = Gtk2::CV::Plugin::MetaCluster->new)->start ($self, \&mtime);
      });

      $menu->append (my $i_up = new Gtk2::MenuItem "Filesize clustering...");
      $i_up->signal_connect (activate => sub {
         ($metacluster = Gtk2::CV::Plugin::MetaCluster->new)->start ($self, \&size);
      });

      $menu->append (my $i_up = new Gtk2::MenuItem "Link count clustering...");
      $i_up->signal_connect (activate => sub {
         ($metacluster = Gtk2::CV::Plugin::MetaCluster->new)->start ($self, \&nlink);
      });

      if ($::CUSTOM_CLUSTERING) {
         $menu->append (my $i_up = new Gtk2::MenuItem "Custom clustering...");
         $i_up->signal_connect (activate => sub {
            ($metacluster = Gtk2::CV::Plugin::MetaCluster->new)->start ($self, \&custom);
         });
      }
   });

   $schnauzer->signal_connect (key_press_event => sub {
      my ($self, $event) = @_;
      my $key = $event->keyval;
      my $state = $event->state;

lib/Gtk2/CV/Plugin/NameCluster.pm  view on Meta::CPAN

}

sub new_schnauzer {
   my ($self, $schnauzer) = @_;

   my $namecluster;

   $schnauzer->signal_connect (popup => sub {
      my ($self, $menu, $cursor, $event) = @_;
      
      $menu->append (my $i_up = new Gtk2::MenuItem "Filename clustering...");
      $i_up->signal_connect (activate => sub {
         $namecluster = Gtk2::CV::Plugin::NameCluster->new;
         $namecluster->start ($self, 0);
      });

      $menu->append (my $i_up = new Gtk2::MenuItem "Subdir view...");
      $i_up->signal_connect (activate => sub {
         $namecluster = Gtk2::CV::Plugin::NameCluster->new;
         $namecluster->start ($self, 1);
      });
   });


   $schnauzer->signal_connect (key_press_event => sub {
      my ($self, $event) = @_;
      my $key = $event->keyval;

lib/Gtk2/CV/Plugin/PatRenamer.pm  view on Meta::CPAN


      1
   });

   $schnauzer->signal_connect (popup => sub {
      my ($self, $menu, $cursor, $event) = @_;

      2 <= scalar keys %{ $schnauzer->{sel} }
         or return;

      $menu->append (my $item = new Gtk2::MenuItem "Pattern Rename...");
      $item->signal_connect (activate => sub {
         new_renamer $schnauzer;
      });
   });
}

1

lib/Gtk2/CV/Plugin/RCluster.pm  view on Meta::CPAN

   $schnauzer->entry_changed;
   $schnauzer->invalidate_all;
}

sub new_schnauzer {
   my ($self, $schnauzer) = @_;

   $schnauzer->signal_connect (popup => sub {
      my ($self, $menu, $cursor, $event) = @_;
      
      $menu->append (my $i_up = new Gtk2::MenuItem "Image clustering (GNU-R)...");
      $i_up->signal_connect (activate => sub {
         histsort_selected $schnauzer;
      });
   });
}

=head1 AUTHORS

Robin Redeker, Marc Lehmann

lib/Gtk2/CV/PrintDialog.pm  view on Meta::CPAN


sub new {
   my $class = shift;
   my $self = bless { @_ }, $class;

   $self->{dialog} = my $d = new Gtk2::GladeXML Gtk2::CV::find_rcfile "cv.glade", "PrintDialog";
   #$d->signal_connect_all ...

   $d->get_widget ("destination")->set (text => $ENV{CV_PRINT_DESTINATION} || "| lpr");

   my $menu = new Gtk2::Menu;
   for (Gtk2::CV::PostScript->papersizes) {
      my ($code, $name, $w, $h) = @$_;
      $menu->append (my $item = new Gtk2::MenuItem $name);
      $item->set_name ($code);
   }
   $menu->show_all;
   $d->get_widget ("papersize")->set_menu ($menu);

   $d->get_widget ("papersize")->set_history (0);

   $d->get_widget ("PrintDialog")->signal_connect (close => sub {
      $_[0]->destroy;
   });

lib/Gtk2/CV/Schnauzer.pm  view on Meta::CPAN

use Gtk2;
use Gtk2::Pango;
use Gtk2::Gdk::Keysyms;

use Gtk2::CV;

use Glib::Object::Subclass
   Gtk2::VBox::,
   signals => {
      activate          => { flags => [qw/run-first/], return_type => undef, param_types => [Glib::Scalar::] },
      popup             => { flags => [qw/run-first/], return_type => undef, param_types => [Gtk2::Menu::, Glib::Scalar::, Gtk2::Gdk::Event::] },
      popup_selected    => { flags => [qw/run-first/], return_type => undef, param_types => [Gtk2::Menu::, Glib::Scalar::] },
      selection_changed => { flags => [qw/run-first/], return_type => undef, param_types => [Glib::Scalar::] },
      chpaths           => { flags => [qw/run-first/], return_type => undef, param_types => [] },
      chdir             => { flags => [qw/run-first/], return_type => undef, param_types => [Glib::Scalar::] },
   };

use List::Util qw(min max);

use File::Spec;
use File::Copy;
use File::Temp ();

lib/Gtk2/CV/Schnauzer.pm  view on Meta::CPAN


   $self->signal_emit (selection_changed => $self->{sel});
}

sub emit_popup {
   my ($self, $event, $cursor) = @_;

   my $idx   = $self->cursor_valid ? $self->{cursor} : $cursor;
   my $entry = $self->{entry}[$idx];

   my $menu = new Gtk2::Menu;

   if (exists $self->{dir}) {
      $menu->append (my $i_up = new Gtk2::MenuItem "Parent (^)");
      $i_up->signal_connect (activate => sub {
         $self->updir;
      });
   }

   my @sel = keys %{$self->{sel}};
   @sel = $cursor if !@sel && defined $cursor;

   if (@sel) {
      $menu->append (my $item = new Gtk2::MenuItem "Do");
      $item->set_submenu (my $sel = new Gtk2::Menu);

      $sel->append (my $item = new Gtk2::MenuItem @sel . " file(s)");
      $item->set_sensitive (0);

      $sel->append (my $item = new Gtk2::MenuItem "Generate Thumbnails (Ctrl-G)");
      $item->signal_connect (activate => sub { $self->generate_thumbnails (@sel) });

      $sel->append (my $item = new Gtk2::MenuItem "Update Thumbnails (Ctrl-U)");
      $item->signal_connect (activate => sub { $self->update_thumbnails (@sel) });

      $sel->append (my $item = new Gtk2::MenuItem "Remove Thumbnails");
      $item->signal_connect (activate => sub { $self->unlink_thumbnails (@sel) });

      $sel->append (my $item = new Gtk2::MenuItem "Delete");
      $item->set_submenu (my $del = new Gtk2::Menu);
      $del->append (my $item = new Gtk2::MenuItem "Physically (Ctrl-D)");
      $item->signal_connect (activate => sub { $self->unlink (0, @sel) });
      $del->append (my $item = new Gtk2::MenuItem "Physically & Recursive (Ctrl-Shift-D)");
      $item->signal_connect (activate => sub { $self->unlink (1, @sel) });

      $sel->append (my $item = new Gtk2::MenuItem "Rotate");
      $item->set_submenu (my $rotate = new Gtk2::Menu);
      $rotate->append (my $item = new Gtk2::MenuItem "90 clockwise");
      $item->signal_connect (activate => sub { $self->rotate (90, @sel) });
      $rotate->append (my $item = new Gtk2::MenuItem "90 counter-clockwise");
      $item->signal_connect (activate => sub { $self->rotate (270, @sel) });
      $rotate->append (my $item = new Gtk2::MenuItem "180");
      $item->signal_connect (activate => sub { $self->rotate (180, @sel) });
      $rotate->append (my $item = new Gtk2::MenuItem "automatic (exif orientation tag)");
      $item->signal_connect (activate => sub { $self->rotate ("auto", @sel) });
		
      $self->signal_emit (popup_selected => $menu, \@sel);
   }

   {
      $menu->append (my $item = new Gtk2::MenuItem "Select");
      $item->set_submenu (my $sel = new Gtk2::Menu);

      $sel->append (my $item = new Gtk2::MenuItem "By Adjacent Name");
      $item->set_submenu (my $by_pfx = new Gtk2::Menu);

      my $name = $entry->[E_FILE];
      my %cnt;

      $cnt{Gtk2::CV::common_prefix_length $name, $self->{entry}[$_][1]}++
         for (max 0, $idx - FAST_RANGE) .. min ($idx + FAST_RANGE, $#{$self->{entry}});

      my $sum = 0;
      for my $len (reverse 1 .. -2 + length $entry->[E_FILE]) {
         my $cnt = $cnt{$len}
            or next;
         $sum += $cnt;
         my $pfx = substr $entry->[E_FILE], 0, $len;
         my $label = "$pfx*\t($sum)";
         $label =~ s/_/__/g;
         $by_pfx->append (my $item = new Gtk2::MenuItem $label);
         $item->signal_connect (activate => sub {
            delete $self->{sel};

            for ((max 0, $idx - FAST_RANGE) .. min ($idx + FAST_RANGE, $#{$self->{entry}})) {
               next unless $len <= Gtk2::CV::common_prefix_length $name, $self->{entry}[$_][1];
               $self->{sel}{$_} = $self->{entry}[$_];
            }

            $self->invalidate_all;
         });
      }

      $sel->append (my $item = new Gtk2::MenuItem "By Adjacent Dir (Alt-A)");
      $item->signal_connect (activate => sub { $self->selection_adjacent_dir });

      $sel->append (my $item = new Gtk2::MenuItem "Unselect Thumbnailed (Ctrl -)");
      $item->signal_connect (activate => sub { $self->selection_remove_thumbnailed });

      $sel->append (my $item = new Gtk2::MenuItem "Keep only Thumbnailed (Ctrl +)");
      $item->signal_connect (activate => sub { $self->selection_keep_only_thumbnailed });
   }

   $self->signal_emit (popup => $menu, $cursor, $event);
   $_->show_all for $menu->get_children;
   $menu->popup (undef, undef, undef, undef, $event->button, $event->time);
}

sub emit_activate {
   my ($self, $cursor) = @_;



( run in 0.889 second using v1.01-cache-2.11-cpan-49f99fa48dc )