Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Intermedio » Sobre manejos de menús en XChat  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 6 mensajes ] 
 
Nota 2011-11-24 13:02 @585

Perlero Nuevo
Registrado: 2011-11-19 15:24 @683
Mensajes: 9
Sobre manejos de menús en XChat
Hola a todos.

A ver si puedo explicarme bien: estoy cacharreando un plugin para el xchat, y necesito controlar los menús. Lo que me gustaría saber es cómo ver el estado de una ocpión en el menú, o sea, leerla con alguna función del xchat.

Veamos, tengo un menú creado de la siguiente forma:

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
/menu add test
/menu -t0 add test/opcion "cmd1" "cmd2"


Lo que quiero saber es, desde el plugin, cómo consultar el estado en -t, si es 0 o 1.

He mirado la función Xchat::get_prefs( $name ), que me retorna los datos del comando set, pero ahí no está lo que busco, y no sé ya por dónde seguir.

Salu2, LeoSevilla


Nota 2011-11-24 14:51 @660
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Sobre manejos de menús en XChat
Pues no lo sé... pero apostaría a que es viendo el valor de uno de los parámetros que se pasan a la función que gestiona los eventos del menú.

En este ejemplo, la función chanserver() recibe dos parámetros.

_________________
JF^D Perl programming


Nota 2011-11-24 19:24 @850

Perlero Nuevo
Registrado: 2011-11-19 15:24 @683
Mensajes: 9
Re: Sobre manejos de menús en XChat
Aunque estoy perdido, la página que me has mostrado me mostrará el camino, muchas gracias por la aportación, ya está en favoritos :)

Por cierto, por si alguien sabe la respuesta a mi consulta, he visto que la opción que me interesa obtener es la de radios, o sea, la que esté marcada en cada momento. Esta es la estructura que sería en el menú:

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
/MENU ADD "Lenguaje"
/MENU -r1,"opcion" ADD "Lenguaje/Perl" cmd1
/MENU -r0,"opcion" ADD "Lengueje/Pascal" cmd2
/MENU -r0,"opcion" ADD "Lenguaje/C++" cmd3


Sigo investigando...

Salu2


Nota 2011-11-25 13:43 @613

Perlero Nuevo
Registrado: 2011-11-19 15:24 @683
Mensajes: 9
Re: Sobre manejos de menús en XChat  RESUELTO
Ya he conseguido la solución, y es creando variables para esas opciones, y cambiarlas creando una función para los comandos :)

Salu2


Nota 2011-11-25 13:55 @622
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Sobre manejos de menús en XChat
Estaría bien ver un ejemplo...

_________________
JF^D Perl programming


Nota 2011-11-25 15:48 @700

Perlero Nuevo
Registrado: 2011-11-19 15:24 @683
Mensajes: 9
Re: Sobre manejos de menús en XChat
Hola, explorer, a ver, soy bastante chapucero, siento no ser muy claro en el código, espero que se entienda.

Una vez cargado el script, poner el comando /crear, así se creará el menú, ya se puede elegir una de las tres opciones y después ver que está almacenada en la variable $opcion.

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. use strict;
  2. use warnings;
  3.  
  4. Xchat::register( "Progracion" , "1.0" , "Herramienta" );
  5. Xchat::print( "Loading script..\n" );
  6.  
  7. Xchat::hook_command( "crear" , "load_menu");
  8. Xchat::hook_command( "cmda" , "cmd1" );
  9. Xchat::hook_command( "cmdb" , "cmd2" );
  10. Xchat::hook_command( "cmdc" , "cmd3" );
  11. Xchat::hook_command( "cmdres" , "msg" );
  12.  
  13. my $opcion= 1;
  14.  
  15. sub msg {
  16.   Xchat::print( "Tiene el valor: $opcion\n" );
  17.   return Xchat::EAT_XCHAT;
  18. }
  19.  
  20. sub cmd1{
  21.   $opcion=1;
  22.   Xchat::print( "Hemos Seleccionado opcion: $opcion\n" );
  23.   return Xchat::EAT_XCHAT;
  24. }
  25.  
  26. sub cmd2{
  27.   $opcion=2;
  28.   Xchat::print( "Hemos Seleccionado opcion: $opcion\n" );
  29.   return Xchat::EAT_XCHAT;
  30. }
  31.  
  32. sub cmd3{
  33.   $opcion=3;
  34.   Xchat::print( "Hemos Seleccionado opcion: $opcion\n" );
  35.   return Xchat::EAT_XCHAT;
  36. }
  37.  
  38. sub load_menu {
  39.   my $base_menu = <<BASE_MENU;
  40. MENU ADD "Leo"
  41. MENU -r1,"leo" ADD "Leo/English" "cmda"
  42. MENU -r0,"leo" ADD "Leo/Spanish" "cmdb"
  43. MENU -r0,"leo" ADD "Leo/German" "cmdc"
  44. MENU ADD "Leo/Ver valor" "cmdres"
  45. BASE_MENU
  46.   chomp (my @menu_array = split(/^/,$base_menu));
  47.   foreach my $menu_item (@menu_array) {
  48.     Xchat::command($menu_item);
  49.   }
  50.   return Xchat::EAT_XCHAT;
  51. }
  52.  
  53. Xchat::print( "\0033Cargad con exito la herramienta prg.!\003\n" );
  54.  


A mi me ha servido y funciona de maravilla :)

Salu2


Responder al tema  [ 6 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO