• Publicidad

Sobre manejos de menús en XChat

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Sobre manejos de menús en XChat

Notapor LeoSevilla » 2011-11-24 13:02 @585

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:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
/menu add test
/menu -t0 add test/opcion "cmd1" "cmd2"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


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
LeoSevilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 24
Registrado: 2011-11-19 15:24 @683

Publicidad

Re: Sobre manejos de menús en XChat

Notapor explorer » 2011-11-24 14:51 @660

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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Sobre manejos de menús en XChat

Notapor LeoSevilla » 2011-11-24 19:24 @850

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ú:

Sintáxis: [ Descargar ] [ Ocultar ]
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
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Sigo investigando...

Salu2
LeoSevilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 24
Registrado: 2011-11-19 15:24 @683

Re: Sobre manejos de menús en XChat

Notapor LeoSevilla » 2011-11-25 13:43 @613

Ya he conseguido la solución, y es creando variables para esas opciones, y cambiarlas creando una función para los comandos :)

Salu2
LeoSevilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 24
Registrado: 2011-11-19 15:24 @683

Re: Sobre manejos de menús en XChat

Notapor explorer » 2011-11-25 13:55 @622

Estaría bien ver un ejemplo...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Sobre manejos de menús en XChat

Notapor LeoSevilla » 2011-11-25 15:48 @700

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.

Sintáxis: [ Descargar ] [ Ocultar ]
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.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


A mi me ha servido y funciona de maravilla :)

Salu2
LeoSevilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 24
Registrado: 2011-11-19 15:24 @683


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados