Advertisement
hackloper775

PerlBrowser Gtk3 2

Nov 5th, 2012
131
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.56 KB | None | 1 0
  1. #!/usr/bin/env perl
  2.  
  3. # Instalar Gtk3 y Gtk3::WebKit por CPAN,para funcionar correctamente
  4. # Programa de prueba para Tiempo de Tux <http://www.itimetux.com>
  5. # Por Demianx864
  6. # Eres libre de estudiar modificar y añadir nuevas cosas a el programa,que te diviertas :D
  7. # Simple PerlBrowser 2.0
  8. # Gracias al modulo WebKit <http://webkitgtk.org/>
  9.  
  10. use strict;
  11. use feature ':5.14';
  12. use Glib qw/TRUE FALSE/;
  13. use Gtk3 -init;
  14.  
  15.         use Gtk3::WebKit;  
  16.  
  17.     # Parámetros de la ventana
  18.  
  19.         my $ventana = Gtk3::Window->new('toplevel');
  20.         $ventana->set_default_size(800, 600);
  21.         $ventana->set_title("Simple PerlBrowser 2");
  22.     $ventana->set_border_width(5);
  23.     $ventana->signal_connect (delete_event => sub { Gtk3->main_quit });
  24.    
  25.     # Entrada
  26.  
  27.     my $entry = Gtk3::Entry->new;  
  28.     $entry->signal_connect( "activate" => \&entrada, undef );
  29.  
  30.     # Botones
  31.  
  32.     my $brg = Gtk3::Button->new("Salir");
  33.     my $go = Gtk3::Button->new("Ir");
  34.     my $batras = Gtk3::ToolButton->new_from_stock('gtk-go-back');
  35.         my $belante = Gtk3::ToolButton->new_from_stock('gtk-go-forward');
  36.  
  37.     $brg->signal_connect ("clicked" => \&salir );
  38.     $batras->signal_connect( "clicked" => \&atras );
  39.     $belante->signal_connect ( "clicked" => \&adelante );
  40.     $go->signal_connect ( "clicked" => \&entrada, undef );
  41.    
  42.     # Webkit
  43.  
  44.         my $uri = shift @ARGV || 'http://www.google.com/';
  45.     my $ver = Gtk3::WebKit::WebView->new();
  46.    
  47.     # Cargamos url 
  48.    
  49.         $ver->load_uri( $uri );
  50.  
  51.     # Añadimos url a scrolls
  52.  
  53.         my $scrolls = Gtk3::ScrolledWindow->new();
  54.         $scrolls->set_policy ('automatic', 'automatic');    
  55.     $scrolls->add($ver);
  56.  
  57.     # Unimos todo
  58.    
  59.     # hbox
  60.  
  61.     my $hbox = Gtk3::Box->new("horizontal", 0);
  62.     $hbox->pack_start($brg, FALSE, FALSE, 0);
  63.     $hbox->pack_start($entry, TRUE,TRUE , 0);
  64.     $hbox->pack_start($go, TRUE,TRUE , 0);
  65.     $hbox->pack_start($batras, FALSE, FALSE, 0);
  66.     $hbox->pack_start($belante, FALSE, FALSE, 0);
  67.  
  68.     # vbox
  69.  
  70.     my $vbox = Gtk3::Box->new("vertical", 0);
  71.     $vbox->pack_start($scrolls,TRUE, TRUE, 0);
  72.     $vbox->pack_start($hbox, FALSE, FALSE, 0);
  73.  
  74.     $ventana->add($vbox);
  75.    
  76.     # Lo mostramos
  77.  
  78.     $ventana->show_all();
  79.        
  80.         Gtk3->main();  
  81.  
  82. #Funciones
  83.  
  84. sub salir {
  85. say "Hasta luego";
  86. Gtk3->main_quit;
  87. return FALSE;
  88. }
  89.  
  90. sub adelante{ $ver->go_forward }
  91.  
  92. sub atras{ $ver->go_back }
  93.  
  94. sub entrada{
  95.  
  96. my $uri = $entry->get_text;
  97.  
  98. my $sbr = substr($uri,0,7);
  99.  
  100.     # Checamos si tiene http y si no es asi cambiamos el valor
  101.  
  102.     if ($sbr eq "http://") {    
  103.  
  104.         $uri = $uri;
  105.     }
  106.     else{
  107.  
  108.         $uri = "http://$uri";
  109.     }  
  110.    $ver->load_uri($uri);
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement