Dialog´s

1.- ¿Qué son? ¿Para que sirven? Los dialog´s son las "interface" más sencillas que puedes hacer. Su utilidad es obvia, es una forma facil y rápida de proporcionar una interface de configuración para el script.

2.- Partes del dialog: El dialog se compone basicamente de dos partes, la 1º es el modal dialog, la 2º es la tabla.

3.- Creando el modal dialog: /dialog -m nombre_modal tabla Además puedes especificar algunos parametros "extras" como:

  • -a Hace que el dialog depende de un dialog madre (solo si existe), esto significa que si cerramos el dialog madre a partir del cual se abrio, este también se cerrara.
  • -x Cierra el dialog indicado
  • -d Abre el dialog como una ventana de escritorio (No como ventana de mIRC)
  • -t Indica que vas a especificar un título a tu dialog (dialog -mt Nombre tabla Texto-de-título)
  • -s Indica que vas a especificar una posición a tua dialog (dialog -mst Nombre tabla posicion texto-del-título)
  • -o El dialog estara encima de todas las ventanas
  • -n Efecto contrario que el -o
  • -v Activa el dialog
  • -ie Minimiza o restaura nuetsro dialog

4.- Creando la tabla: esto sera nuestro dialog en si, sera su "cuerpo"

  • Estructura básica:

    dialog nombre_tabla {
    title "Título del dialog aqui"
    [ icon fichero, ruta ]
    size x y w h
    button "Texto del botón",id, posicion, ok o cancel
    }

    • x e w hacen referencia al ancho, mientras que y e w hace referencia al alto. x e y hace referencia a la posición que ocupara el dialog dentro de la ventana de mIRC, mientras que w e h hace referencia al tamaño del dialog.
    • ok o cancel son los dos estilos posibles que puede tener este button (OJO solo puede existir un button ok y un button cancel). En ambos casos al pulsar el botón el dialog se cerrara, pero en el caso de cancel, darle a la x tiene el mismo efecto que darle al botón (Esto sera importante más adelante: eventos en los dialogs)
    • id Es el identificador específico de cada elemento del dialog, los id no pueden repetirse en caso contrario fallara la tabla y en consecuencia el dialog

Esta es la estructura básica de toda tabla de dialog´s, si falta alguno de sus componentes la tabla fallara (y en consecuencia el dialog). El "icon" es opcional, en caso de que se indique la posición indicada es la unica posible, es decir, entre el titulo y el tamaño del dialog, esto nos permite cambiar el icono de nuestro dialog

  • Añadiendo nuevos objetos: tipos de objetos objeto "text",id,posicion,estilo
    • button "texto del botón",id,posición Crea un botón con el texto indicado en la posicion indicada . Estilos: default, ok, cancel (default es lo mismo que no poner nada. Recuerda que los id deben de ser unicos)
    • text "texto",id,posición Crea una caja de texto con el texto indicado. Estilos: right, alineado a la derecha; y left: alineado a la izquierda.
    • edit "text",id,posición Crea una caja de texto editable. Estilos:
      • right: texto se alinea a la derecha
      • left: texto se alinea a la izquierda
      • multi: es un edit de multiples lineas
      • pass: los caractrees son sustituidos por * (util para introducir password)
      • read: el edit es solo lectura, no se podra editar
      • return
      • hsbar y vsbar: El edit consta de barra de desplazamiento lateral y vertical
      • autohs y autovs: El edit se desplazara de forma lateral o vertical cuando sea necesario
      • limit N: el edit esta limitado a N caracteres
    • check "text",id,posición Crea un check (casilla de verificacion) Estilos: left, push (botón que se mantiene pulsado cuando esta activo) y 3state.
    • radio "text",id,posición Estilos: left y push
    • box "texto",id, posición Crea un marco con el texto indicado como título
    • scroll "text",id, posición
    • list id,posición Crea una lista de objetos. Estilos: sort (los objetos se ordenan), vsbar y hsbar (crea una barra de desplazamiento lateral y vertical si es necesario), extsel y size
    • combo id, posición Crea un combo (cuadro de selección desplegable) Estilos: sort, edit,drop,size,vsbar y hsbar
    • icon id, posición,fichero,ruta Coloca un icono (.bmp, .jpg, .png) en el dialog. Estilos: noborder top left bottom right

5.- Ejemplo de un dialog:

      dialog Pruebas {
      title "Dialog de prueba"
      size -1 -1 250 350
      button "Salir",1,190 320 50 20 , ok
      box "Esto es una box",2,5 5 240 150
      edit "un edit",3, 10 30 80 20
      check "check1-Normal",4, 10 60 95 25
      check "check2-3state",5, 10 80 95 25, 3state
      check "check3-push",6, 10 105 95 25,push
      radio "esto es un radio",7, 110 30 100 20
      radio "esto es un radio",8, 110 50 100 20
      radio "esto es un radio",9, 110 70 100 20
      list 10,10 160 75 75
      text "<--- Una list",11,95 160 100 20
      }

6.- Dando vida a nuestros dialog´s: Eventos en dialog´s: On 1:dialog:nombre_tabla:tipo_evento:id: { comandos }

      A.- Tipos de eventos:

  • init Ocurre cuando se abre el dialog
  • edit ocurre cuando se edita texto
  • sclick ocurre cuando se hace click sobre un objeto del dialog
  • dclick salta con un doble click
  • menu salta cuando un objeto del menu es seleccionado
  • scroll salta cuando la posisción del scroll cambia

Además puedes especificar otros eventos "adicionales" relacionados con el raton:

  • mouse Cuando el raton se mueve
  • sclick cuando el raton hace click izquierdo
  • dclick docble clicks
  • rclick click derecho
  • drop cusando sueltas el botón (después de un click)

Asi mismo puedes usar el identificador $mouse para referirte a las coordenadas del ratón. Asi $mouse.x hace referencia a la coordenada x mientras que $mouse.y hace referencia a la coordenada y.

      B.- Identificadores de interes:

  • $dname Nos devuelve el nombre de la tabla en la cual salta el evento
  • $devent Nos devuelve el nombre del evento que salta
  • $did Nos devuelve el id del objeto sobre el cual se ejerce la acción

7.- Dando vida al dialog del ejemplo anterior:

on *:dialog:Pruebas:edit:*:{
if ($did == 3) { set %edit $did(3).text }
}
on *:dialog:Pruebas:sclick:*:{
if ($did == 7) { set %radio 7 }
if ($did == 8) { set %radio 8 }
if ($did == 9) { set %radio 9 }
}

8.- Modificando los valores de tu dialog: comando /did

Usando el comando /did podras activar check´s, radio´s, seleccionar opciones de una list... Estructura del comando: /did -parametros name is [n] [text] [filename]