Applications-BackupAndRestore

 view release on metacpan or  search on metacpan

lib/Gtk2/Ex/FileLocator/PathnameField.pm  view on Meta::CPAN

   return
     if $event->keyval == $Gtk2::Gdk::Keysyms{KP_Enter}
        and file_open( $this->get_filename );

   return
     if $event->keyval == $Gtk2::Gdk::Keysyms{Return}
        and file_open( $this->get_filename );

   $this->signal_emit( 'scroll_offset_changed', $entry->get("scroll-offset") );

   return if $this->get_filename eq $entry->get_text;

   $this->{cursorPosition} = $this->get('entry')->get_position;
   #$this->set_filename( $entry->get_text );

   my $uri = sprintf "file://%s", $entry->get_text;
	$this->set_uri( -e $entry->get_text ? $uri : "" );

   #Gtk2->main_iteration while Gtk2->events_pending;
   #$this->signal_emit( 'scroll_offset_changed', $entry->get("scroll-offset") );

   return;
}

sub _auto_complete {
   my $this = shift;
   printf "auto_complete %s\n", $this->get('entry')->get_text;

   my $string = $this->get('entry')->get_text;
   my $match  = string_shell_complete($string);

   if ( $string ne $match ) {
      $this->get('entry')->set_text($match);
      $this->get('entry')->set_position( length $match );

      my $uri = sprintf "file://%s", $this->get('entry')->get_text;
		
	   $this->{cursorPosition} = -1;

		$this->set_uri($uri);
      $this->signal_emit( 'file_activated', $uri );


      return TRUE;
   }

   return;
}

sub change_text {
   my ($this) = @_;

   printf "PF set_text %s\n", $this->get_filename;

   my $filename = string_shell_unescape($this->get_filename);
   $filename .= "/" if -d $filename;

   $filename =~ s|/+|/|sgo;

   $filename = Unicode::MapUTF8::from_utf8(
      { -string => $filename, -charset => 'ISO-8859-1' } );
   $this->{filename} = $filename;
   $this->get('entry')->set_text($filename);
   $this->get('entry')->set_position( $this->{cursorPosition} );

#   Gtk2->main_iteration while Gtk2->events_pending;
#   $this->signal_emit( 'scroll_offset_changed',
#      $this->get('entry')->get("scroll-offset") );
}

#sub on_move_cursor {
#   my ($this) = @_;
#   $this->{cursorPosition} = $this->get_position;
#   Gtk2->main_iteration while Gtk2->events_pending;
#   $this->signal_emit( 'scroll_offset_changed', $this->get("scroll-offset") );
#   return;
#}

#sub on_event {
#   my ( $this, $event ) = @_;
#   return unless $event->type eq 'motion-notify' or $event->type eq 'expose';
#
#   #printf "on_event %s %s\n", $event->type, $this->get("scroll-offset");
#   $this->{cursorPosition} = $this->get('entry')->get_position;
#   $this->signal_emit( 'scroll_offset_changed',
#      $this->get('entry')->get("scroll-offset") );
#   0;
#}

1;
__END__
sub on_key_release_event {
	my ($this) = @_;
	$this->set_text( $this->get_text );
	$this->signal_emit( 'file_activated', $this->get('entry')->get_text );
	0;
}

sub on_drag_data_received {
	my ( $this, $context, $x, $y, $data, $flags, $time ) = @_;
	my $type = $data->type->name;

	my $url = $data->data;
	$url = $this->get_text unless $url =~ s|^file://||sgo;
	$url =~ s/[\r\n]+.*//sgo if $type eq "text/uri-list";

	$url = $this->unescape($url);

	$this->set_text($url);
	$this->signal_emit( 'file_activated', $this->get_text );
	0;
}
sub auto_complete {
	my $this = shift;
	printf "auto_complete %s\n", $this->get_text;

	my $original = $this->get_text;

	my $string = $this->get_text;
	my $substr = substr $string, 0, $this->get('cursor-position');



( run in 0.655 second using v1.01-cache-2.11-cpan-39bf76dae61 )