Documentazione mIRC

Dialogs

Dialogs

Indice

I Dialogs rendono possibile creare finestre di dialogo personalizzate all’interno di mIRC. Il comando /dialog è il modo principale per aprire nuovi dialog, mentre i Dialog components sono gli oggetti contenuti nel dialog, come pulsanti, label e così via.

Cosa sono i dialogs

I dialogs sono semplicemente interfacce grafiche che presentano opzioni sullo schermo dell’utente in forma visuale. Per esempio, un browser web viene mostrato attraverso una propria interfaccia grafica. Gli utenti Windows possono aver usato applicazioni come Notepad o Microsoft Word: tutte queste applicazioni usano dialog, o forme di interfaccia grafica, per presentare le loro funzioni in modo più intuitivo.

I dialogs in mIRC

I dialogs di mIRC vengono creati dagli utenti tramite script personalizzati. Attraverso queste interazioni, i dialog si appoggiano all’event listener ON DIALOG. Tramite questo evento, tutti gli aspetti dei dialog personalizzati, così come i loro controlli, possono essere monitorati, tracciati e modificati.

Scopo

Lo scopo di questa pagina è familiarizzare in generale gli utenti con il termine dialogs e con il ruolo che essi svolgono in mIRC. Poiché questi componenti sono orientati a scripter più avanzati, i principianti dovrebbero prima aver seguito i tutorial precedenti dalla pagina introduttiva di mIRC fino ad arrivare a Dialogs.

Due tipi di dialog

Esistono due tipi di dialog: modeless e modal.

I dialog modal bloccano l’esecuzione corrente dello script e non consentono di accedere ad altre finestre; di solito vengono usati per ottenere rapidamente un input dall’utente. mIRC possiede già dialog modal integrati, come la famiglia di $? e $input.

I dialog modeless possono rimanere aperti indefinitamente e non interrompono l’esecuzione dello script. Anche mIRC include dialog modeless, come la finestra delle opzioni di mIRC, accessibile con Alt + O.

Dialog modeless

Puoi creare un dialog modeless usando il comando /dialog con lo switch -m. Esistono anche altri switch che possono essere usati al momento della creazione e dopo la creazione del dialog per modificarne vari stati.

/dialog -m <name> <table>
  • <name> è il nome usato per riferirsi all’istanza del dialog, puoi eseguire più istanze dello stesso dialog contemporaneamente.
  • <table> è il nome della dialog table da usare.

Dialog modal

Puoi creare un dialog modal usando l’identifier $dialog con la seguente sintassi:

$dialog(name,table[,parent])
  • name - Il nome usato per riferirsi all’istanza del dialog.
  • table - Il nome della dialog table da usare.
  • parent - Opzionale; può essere il nome di una finestra oppure:
    • -1 - Desktop window
    • -2 - Finestra principale di mIRC
    • -3 - Finestra attiva corrente
    • -4 - Dialog attivo corrente, se nessun dialog è aperto
  • Il valore predefinito è -3.

Qualsiasi controllo può essere usato nel dialog con lo stile result; il valore restituito da $dialog sarà quello di quel controllo.

Nota: poiché i dialog modal bloccano l’esecuzione corrente dello script, non puoi chiamare $dialog in questo modo da un remote script event.

Creare una dialog table

I dialog personalizzati vengono creati definendo una dialog table. Il contenuto di quella tabella rappresenta l’aspetto del dialog, i controlli e gli altri elementi. Una table si definisce usando la keyword dialog.

dialog -l
<name> {
  title "text"
  icon filename, index
  size x y w h
  option type (dbu, pixels, notheme, disable)

  text "text", id, x y w h, style (right, center, nowrap)
  edit "text", id, x y w h, style (right, center, multi, pass, read, return, hsbar, vsbar, autohs, autovs, limit N, rich)
  button "text", id, x y w h, style (default, ok, cancel, flat, multi)
  check "text", id, x y w h, style (left, push, 3state)
  radio "text", id, x y w h, style (left, push)
  box "text", id, x y w h, style
  scroll "text", id, x y w h, style (top left bottom right horizontal range N N)
  list id, x y w h, style (sort, extsel, multsel, size, vsbar, hsbar, check, radio)
  combo id, x y w h, style (sort, edit, drop, size, vsbar, hsbar)
  icon id, x y w h, filename, index, style (noborder top left bottom right small large actual)
  link "text", id, x y w h
  tab "text", id, x y w h
  tab "text", id
  menu "text", menuid [, menuid]
  item "text", id [, menuid]
  item break, id [, menuid]
}

Lo switch -l rende la table locale, quindi solo quel file script può aprirla. <name> è il nome della table che verrà usata per creare un’istanza del dialog.

  • title - Opzionale; imposta il testo mostrato nella titlebar del dialog.
  • icon - Opzionale; imposta l’icona del dialog. Il parametro filename è il file da usare, mentre index può indicare la N-esima icona nel file.
  • size - Obbligatorio; imposta la dimensione del dialog. Puoi usare -1 per uno qualsiasi dei parametri x, y, w e h per specificare una posizione predefinita. Se x e y sono -1, il dialog dovrebbe essere centrato nella finestra.
  • option - Può impostare diverse opzioni del dialog; type è una lista di opzioni separate da spazio:
    • dbu - Garantisce che il dialog appaia allo stesso modo su display di dimensioni diverse usando dialog base units.
    • pixels - È l’opzione predefinita se non usi dbu; usa semplici valori in pixel.
    • notheme - Impedisce a mIRC di applicare il tema corrente di Windows al dialog.
    • disable - Può essere usata per attendere un po’ prima che i controlli nel dialog siano utilizzabili, evitando usi accidentali.
  • Gli altri elementi servono per creare i controlli; per i dettagli si rimanda alla pagina sui dialog components.

Puoi usare un nome di variabile come stile per qualunque controllo: la variabile globale verrà impostata con il valore di quel controllo quando il dialog viene chiuso.

edit "", 2, 10 10 100 20, autohs %myedit

$did e /did

Il comando /did può essere usato per cambiare i vari stati dei controlli, mentre $did può essere usato per recuperarne valori e stati.

Per i dettagli d’uso dei due strumenti per ciascun controllo, bisogna consultare la pagina dedicata ai dialog components.

Altri strumenti

/didtok, $didtok, $didwm e $didreg

/didtok <name> <id> <C> <text> aggiunge una lista tokenizzata di elementi a un controllo list/combo/edit. Per esempio, /didtok name 1 44 red,green,blue aggiunge gli elementi red, green e blue a quel controllo.

$didtok(name,id,C) restituisce una lista tokenizzata di elementi da un controllo combo/edit/list.

$didwm(name,id,wildcard,N) e $didreg(name,id,regex,N) restituiscono il numero della riga che corrisponde all’espressione, partendo opzionalmente dalla riga N, nel controllo.

/loadbuf, /savebuf e /filter

Puoi usare /filter da e verso un controllo combo/edit/list.

Puoi usare /loadbuf e /savebuf da e verso un controllo combo/edit/list.