Advertisement
hackloper775

EnergiaPerl

Dec 3rd, 2012
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.75 KB | None | 0 0
  1. #!/usr/bin/env perl
  2. #===============================================================================
  3. #
  4. #         FILE: programa.pl
  5. #
  6. #        USAGE: perl programa.pl  
  7. #
  8. #  DESCRIPTION: Programa de demostración de algoritmo de energía real básico
  9. #
  10. # REQUIREMENTS: Gtk3
  11. #         BUGS: ---
  12. #        NOTES: ---
  13. #       AUTHOR:  ,
  14. # ORGANIZATION:
  15. #      VERSION: 1.0
  16. #      CREATED: 03/12/12 12:05:33
  17. #===============================================================================
  18.  
  19. use strict;
  20. use warnings;
  21. use utf8;
  22.  
  23. use Glib qw/TRUE FALSE/;
  24. use Gtk3 -init;
  25.  
  26.     # Parametros de la ventana
  27.  
  28.     my $titulo = "Parametros de luz";
  29.         my $ventana = Gtk3::Window->new('toplevel');
  30.         $ventana->set_default_size(400, 300);
  31.     $ventana->set_title($titulo);
  32.     $ventana->set_border_width(5);
  33.     $ventana->signal_connect (delete_event => sub { Gtk3->main_quit });
  34.  
  35. # Parametros de la fotografia del foco
  36.  
  37. my $foto = "apagado.jpg";
  38.  
  39. my $imagen = Gtk3::Image->new_from_file ("$foto",undef);
  40.  
  41. # Parametros swich
  42.  
  43. my $nombre_switch = Gtk3::Label->new("Swich");
  44.  
  45. my $switch = Gtk3::Switch->new;
  46. $switch->set_active( FALSE );
  47.  
  48. # Parametros apagador
  49.  
  50. my $nombre_apagador = Gtk3::Label->new("Apagador");
  51. my $apagador = Gtk3::Switch->new;
  52. $apagador->set_active( FALSE );
  53.  
  54. # Señales
  55.  
  56. $switch->signal_connect( 'notify::active' => \&switch );
  57. $apagador->signal_connect( 'notify::active' => \&apagador );
  58.  
  59. # Forma de la ventana
  60.  
  61. my $vertical_apagador = Gtk3::Box->new("vertical", 0);
  62.     $vertical_apagador->pack_start($nombre_apagador, FALSE, FALSE, 0);
  63.     $vertical_apagador->pack_start($apagador, FALSE, FALSE, 0);
  64.  
  65. my $vertical_swich = Gtk3::Box->new("vertical", 0);
  66.         $vertical_swich->pack_start($nombre_switch, FALSE, FALSE, 0);
  67.         $vertical_swich->pack_start($switch, FALSE, FALSE, 0);
  68.  
  69. my $luz = Gtk3::Box->new("horizontal", 0);
  70.     $luz->pack_start($vertical_swich, FALSE, FALSE, 70);
  71.     $luz->pack_start($vertical_apagador, FALSE, FALSE, 0);
  72.  
  73. my $vbox = Gtk3::Box->new("vertical", 0);
  74.     $vbox->pack_start($imagen, FALSE, FALSE, 0);
  75.     $vbox->pack_start($luz, FALSE, FALSE, 0);
  76.  
  77. # Mostramos todo
  78.  
  79. $ventana->add($vbox);
  80.  
  81. $ventana->show_all;
  82.  
  83. Gtk3->main;
  84.  
  85. ## FUNCIONES ^_^ ##
  86.  
  87. sub switch {
  88.  
  89. my ($widget, $data) = @_;
  90. if ( $widget->get_active == TRUE ) {
  91.  
  92. &apagador();
  93.  
  94. }
  95.  
  96. else{ &apagado(); }
  97.  
  98. return FALSE;
  99. }
  100.  
  101. sub apagador {
  102.  
  103. if ( $switch->get_active == TRUE ) {
  104. if ( $apagador->get_active == TRUE ) {
  105.  
  106. &encendido();
  107.  
  108. }
  109.  
  110. else{ &apagado(); }
  111.  
  112. return FALSE;
  113.  
  114. }
  115.  
  116. else { &apagado(); }
  117.  
  118. }
  119.  
  120. sub apagado {
  121.  
  122. $foto = "apagado.jpg";
  123.  
  124. $imagen->set_from_file("$foto");
  125.  
  126. }
  127.  
  128. sub encendido {
  129.  
  130. $foto = "encendido.png";
  131.  
  132. $imagen->set_from_file("$foto");
  133.  
  134. }
  135.  
  136. # Fin del programa :( #
  137.  
  138. # Quisa no :) #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement