                    .-----.-----.-----.--.  .--.-----.-----.-----.-----.-----.
                    |     |  - _|  ,--|  |__|  |  ,--|  - _|     |  .__|  - _|
                    |__|__|_____|_____|_____|__|_____|_____|__|__|_____|_____|
                      ..:: N e G L i g E n C e   O r g a n i s a t i o n ::.
                                   [] written by: Vanguard []             
                                    http://vanguard.bubix.net/


Index:

1. Introduction
2. What do i need to start?
 2.1. dialog table
 2.2. needed/basic commands & identifiers
 2.3. $dialog() identifier
3. Pixel or DBU?
 3.1. what's the difference?
3.1.1 $dbuw and $dbuh identifiers
 3.2. how to use
4. Making a dialog
 4.1. using tabs
 4.2. using menus
5. items and events
 5.1. item syntax
 5.2. events syntax
6. Examples
7. About...



1. Introduction

    mIRC allows you to create custom Dialogs which can be used to request input from a
    user, or to perform many other useful tasks.
    There are two types of dialog; a modeless dialog, created with the /dialog command,
    and a modal dialog, created with the $dialog() identifier. Both are described below.
    When you use a dialog and you insert buttons, editboxes, list, comboboxes etc... 
    you'll see that eachone of the "items" you put in your dialog as something that 
    identifies it, we call to that the item "ID", i'll explain it better later...


2. What do i need to start?

    Well, first of all you need, at least, mIRC 5.8 or higher :P then you need to know
    how an /alias work, how an identifier work, all the basic mirc commands and of course
    all the dialog items (combobox, editbox, radio, icon, list... is... however, i'm going
    to talk about this in the 2.1 step).
    [*NOTE*]: if you don't know any of the dialog items *don't worry* you will know when 
    you see them! :P


2.1. dialog table 

    this is the most *IMPORTANT* part of the dialogs stuff! All the available items
    are "pasted" into the dialog table... all in all... the "surface" of your dialog
    is what we call a dialog table!

    You can use the dialog prefix to create a dialog table called name in a script
    using this format:

    dialog table_name {

    title		"text"
    size		x y w h
    option		type (dbu, pixels)

    text		"text", id, x y w h, style (right, center)
    edit		"text", id, x y w h, style (right, center, multi, pass, read, return, hsbar, vsbar,
			autohs, autovs, limit N)

    button		"text", id, x y w h, style (default, ok, cancel)
    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

    list		id, x y w h, style (sort, extsel, size, vsbar, hsbar)

    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)

    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]

    }

    These are the items/objects you can put into your dialog! Let's see a basic 
    example:

    dialog example {

    title "this is an example"
    size -1 -1 100 100
    option dbu

    box "example",1,5 3 90 92
    button "close",2,35 45 30 10, ok

    }

    This dialog will become something like this:

     _____________________________
    | this is an example        |X|
    ||
    | .--example----------------. |
    | |                         | |
    | |                         | |
    | |                         | |
    | |                         | |
    | |                         | |
    | |       ___________       | |
    | |      |   close   |      | |
    | |              | |
    | |                         | |
    | |                         | |
    | |                         | |
    | |                         | |
    | |_________________________| |
    |_____________________________|


    (this is a ASCII example... please copy the code i gave to your mIRC and then 
    type: /dialog -m example example)

    As you can see we use in this dialog a "box" and a "button" with the "ok" style!

    NOTE: all the dialog you make MUST have an button with the OK style! 
    NEVER FORGET THIS!!!

    To see more "complex" examples please jump to section nr. 6.


2.2. needed/basic commands & identifiers

    These are (some) of the commands you need to know to create a dialog:

    Command.: /dialog
    About...: The /dialog command allows you to create a modeless dialog with the -m 
		  switch. This type of dialog doesn't halt or return a value to the 
		  calling script, and the dialog can be displayed indefinitely and used 
		  for many purposes.
    Syntax..: /dialog -mdtsonkcvie name [table] [x y w h] [text]

    as you can see the /dialog has a "ton" of switchs, let's see what eachone
    does:

    -m			create a modeless dialog using 'table'
			/dialog -m name table

    -a			Used with -m, uses currently active window as the parent

    -x			Closes a dialog without triggering any events

    -d			open dialog on the desktop, used with -m

    -t			set dialog title
			/dialog -t name text

    -s			set dialog size/pos 
			dialog -s name x y w h

    -r			centers dialog
    -bp			interprets size as dbu or pixels

    -o			set dialog ontop of all windows
    -n			unset ontop setting

    -k			click ok button
    -c			click cancel button

    -v			makes the dialog the active window

    -ie			minimize/restore the dialog if created on the desktop


    E.g:

    1. well, let's see... if we type: 

    /dialog -v dialog_name

    it makes the dialog_name the active window...


    2. now we'll try something diferent, type:

    /dialog -t dialog_name this is an example :P

    it will write at dialog_name titlebar "this is an example"


    As you can see the /dialog switchs have a simple use mode.
    We'll use and review this command later...


    Command.: /did
    About...: The /did command allows you to modify the values of controls in a dialog,
		  eg. changing the text in an edit control, or setting focus to a button, 
		  or deleting lines in a listbox.
    Syntax..: /did -ftebvhnmcukradiogj name id [n] [text | filename]

    let's see what eachone of the switchs do:

    -f			set focus on id
    -t			set id as default button

    -e			enable id
    -b			disable id

    -v			make id visible
    -h			hide id

    -n			enables editbox
    -m			disables editbox

    -c			check checkbox/radiobutton list/combo line
    -u			uncheck checkbox/radiobutton list/combo line
    -k			works with -cu, keeps other selections in a listbox

    -r			clear all text in id
    -a			add line of text to end
    -d			delete Nth line
    -i			insert text at Nth line
    -o			overwrite Nth line with text

    -g			set a new icon/bmp to an icon control
    			/did -g name id [n] filename

    -z			resets the width of horizontal scrollbar in listbox

    -j			resets the edited setting in an editbox


    Where name identifies the dialog and id is the id number of the control
    you want to modify.
    If you want to modify several controls at the same time, you can specify
    multiple id numbers separated by commas, eg:

    /did -b name 2,12,14,16,... 

    You can select a range of text in an editbox using:

    /did -c name id [n] [start [end]]. 

    This selects line N in editbox, and
    sets selection to specified range of characters.
    You can mark a 3state checkbox as indeterminate by specifying both -cu
    switches.
    You can access the edit control in a combobox by using 0 as the N value.


    Identifier: $did
    About.....: You can get the settings and values of controls in a dialog by using 
		    the $did() dialog id identifier with the following formats and 
		    properties as appropriate to the control to which you are referring.
    Syntax....:$did(name,id)

    $did(name,id,N)
    well, this is, as can see, an identifier which means that it returns
    specific values (eg. $me would return the current nickname). Whenever
    mIRC finds an identifier in a command or script, it replaces it with
    the current value of that identifier. Many identifers also perform 
    functions on data that you supply and then return a result. 
    In this case it will return:
    (If used in the on dialog event [step: 5.2], name is optional.)
    the following values:

    text		returns line or Nth line
			$did(id)is same as $did(id).text
    len			returns length of line or length of Nth line
    lines		returns number of lines
    sel			returns Line Number of Nth selected line
			if N is 0, returns number of selected lines
    seltext		returns selected text in an editbox or first selected item in a listbox
    selstart		returns select start character in editbox line
    selend		returns select end character in editbox line
    edited		returns $true if text in editbox was changed
    state		returns 0 = off, 1 = on, and 2 = indeterminate
    next		returns id of next control in tab key order
    prev		returns id of previous control in tab key order
    visible		returns $true if the control is visible, otherwise $false
    enabled		returns $true if the control is enabled, otherwise $false

    You can access the edit control in a combobox by using 0 as the N value.

    E.g:

    1. we have a button, id=1 and its text is: "exit this crap"
    using the $did identifier to get the id=9 value we type:
    $did(9).text it returns: "exit this crap"


    2. in a dialog we have an editbox: id=15 and its text is:
    "vanguard!*@*", using the $did identifier to get the editbox
    value we type:

    $did(15).text it returns: "vanguard!*@*"


    Identifier: $didwm
    About.....: Returns the number of the line that matches wildtext, with the search
		    starting at line N. N is optional.
    Syntax....: $didwm(name,id,wildtext,N)

    hum... this seems a like but complex but it's not. let's see:
    if we have in the "ex_didwm" dialog an combobox (id=4) with these options*:

     __________________
    ||v|
    ||
    | example1       | 
    | example2       |
    | example3       |
    | example4       |
    |________________|
     

    note: this is a combo box (with a the drop style) :PP


    *and you want to select the "example3" using $didwm identifier you do:


    /did -c ex_didwm 4 $didwm(ex_didwm,4,example3)
          |    |     |                     |
 	  |    |     |                     |_ text you want to be selected
  	  |    |     |  
          |    |     |_ combo box id
          |    |
          |    |_ dialog name
          |
  	  |_ switch (checks the id)

    as you can see the $didwm identifier is easier to use.


2.3. $dialog() identifier

    Well... i believe that this is one of the most important dialog identifiers!

    One of the $dialog identifier functions is, when you have in the dialog table an 
    item with result style!
    In other words... you can use a dialog to return a value specified by the user
    instead of use the $$?="" crap!

    let's see an example:

    dialog example2 {
    title "password?"
    size -1 -1 100 50
    option dbu

    button "OK",1,35 30 30 10,ok
    box "",2,2 0 96 48
    edit "",3,10 10 80 10,result

    }

    well... this is the dialog table... but this isn't enough! we need something to
    make this dialog show up (YES! we can't use the /dialog command!)
    so we need an alias! let's see...

    alias password echo -s you just type: $dialog(example2,example2)

    after you put this alias in the remote scripts and you type: /password the
    example2 dialog will popup up and what you type in the editbox will be printed, 
    when you press the OK button, in the status window!

    I guess you understand it... don't ya? hope so... :PP

    You can also use the $dialog(name/N) identifier to list any open dialogs, where N
    returns the Nth open dialog. If N is zero, the total number of open dialogs is 
    returned.

    $dialog() 	also supports these properties:

    x,y,w,h		returns the size and position of the dialog
    cw,ch		returns width and height of client area of dialog
    title		returns the title of the dialog
    modal		returns $true if the dialog is modal, otherwise $false
    table		returns the dialog table that the dialog is using
    ok			returns the id of the Ok button if you specified one
    cancel		returns the id of the Cancel button if you specified one
    result		returns the id of the Result button if you specified one
    focus		returns id of control that currently has focus
    tab			returns id of tab that is currently displayed
    active		returns $true if dialog is the active window, otherwise $false

    let's see an example:

    * example2 dialog is the active window,

    type: //echo active: $dialog(example2).active

    if the example2 dialog is the active window then the 
    $dialog(example2).active will return $true


    * example2 dialog titlebar is:

    type: //echo titlebar: $dialog(example2).title

    it will return "password?"


    * example2 dialog ok button id,

    type: //echo width: $dialog(example2).ok

    it will return "1" (the ok button id!)


    * how much dialog are currently opened? 

    let's imagine that you have 2 opened dialogs 
    (dialog names: example and example2)

    when you type:

    //echo dialogs: $dialog(0)

    it will return: "2" (nr of opened dialogs)

    now... we have 2 dialogs right? so... the dialog nr. 1 is...

    //echo 1st dialog: $dialog(1)


    it will return the name of the first opened dialog, i mean, if the
    "example" was opened before "example2" then the $dialog(1) will
    return "example" otherwise it will return "example2"...

    got it? :P i hope so...

    using this identifier with an alias we can also avoid the 
    "* /dialog: 'dialog_name' name in use" error, example:

    alias example2 {

    if ($dialog(example2)) dialog -v example2 
    else dialog -m example2 example2

    }

    this will open the example2 dialog if the $dialog(example2) return $null, and will
    make it the active window if $dialog(example2) is different than $null.

    it's very easy work with this identifier...


3. Pixel or DBU?

    Since mIRC 5.71 release (i believe...), Khaled adds a new option to the dialog table,
    i'm talking about the "dbu" parameter.


3.1. what's the difference?

    The dbu option makes mIRC use dialog base units when creating the dialog, this 
    ensures that the dialog will look the same for all users under any size display, 
    etc. Pixels is the default however to maintain compatibility with previous scripts.


3.1.1 $dbuw and $dbuh identifiers

    The identifiers $dbuw and $dbuh return the dbu per pixel width and height
    values for the current display. This may or may not be an integer value.


3.2. how to use

    To use this option you just need to add the following line to your dialog table:

    option dbu

    you can see it in all the examples i gave in the steps 2.1 and 2.3.

    i *highly* recommend the usage of the dbu option! =)


4. Making a dialog

    Let's make a dialog with tabs and menus...


4.1. using tabs

    The first tab definition specifies the size of the tab control, and any following
    tab definitions add tabs to it. You can associate controls with a specific tab by
    using the tab style followed by the id value for a tab, as shown in the example
    below.

    let's see it working,

    dialog example3 {
    title "dialog with tabs"
    size -1 -1 100 100
    option dbu
    tab "T",1,5 5 90 90
    tab "A",2
    tab "B",3
    button "DIALOG",4,35 45 30 10, ok, tab 1
    button "WITH",5,35 45 30 10, ok, tab 2
    button "TABS",6,35 45 30 10, ok, tab 3
    }


    here we have a dialog with 3 tabs, T (id: 1), A (id: 2) and B (id: 3)
    each one of them has a button,

    let's see,

     _____________________________________
    | tabs | id | button_id | button_text |
    |||||
    |  T   | 1  |     4     |   dialog    |
    |  A   | 2  |     5     |    with     |
    |  B   | 3  |     6     |    tabs     |
    |      |    |           |             |
     

    so, we can have different items into different tabs, wich seems we have different
    "dialog tables" in eachone of the tabs...


4.2. using menus

    You can add menus and submenus to custom dialogs using the menu and item prefixes:

    dialog name {

    menu "text", <menuid> [, menuid]
    item "text", <id> [, menuid]
    item break, <id> [, menuid]

    }

    If you don't specify a menuid for an item, it will use the last menuid that was
    created/used in a previous menu/item.

    example:

    dialog example4 {

    title "dialog with menus"
    size -1 -1 100 100
    option dbu

    menu "&File",1
    menu "&new",11,1
    item "load",111,11
    item "script",112,11
    item "&open",12,1
    item break,13,1
    item "&save",14,1
    item "save &as",15,1
    item "break",16,1
    item "&exit",17,1,ok
    menu "&Edit",2
    item "&undo",22,2
    item "&redo",23,2
    item break,24,2
    item "cut",25,2
    item "copy",26,2
    item "past",27,2
    item break,28,2
    item "find text",29,2

    }

    well, as you can see, the usage of menus in a dialog is not difficult.
    while using menus you can add, delete and insert new items and menus...

    let's try adding a new item into the menu 2 (EDIT)

    /did -a example4 2 221 goto line
		     |  |     |	
		     |  |	|__ item text
		     |  |
		     |  |__ new id
		     |
		     |__ menu id (2 = Edit, as you see in example 4 dialog)

    so... this will add a new item to the EDIT menu, right? yeah!


    now we to add a new item before the "find text" item (id: 29), let's see what 
    we need to do,

    /did -i example4 29 222 goto line
	             |   |     |
		     |   |     |__ item text
		     |   |
		     |   |__ new id
		     |
		     |__ item id you want to insert before


    easy isn't it? i think so! :P


5. items and events

    As you could see at the "dialog table" (step: 2.1) some items have a different syntax,
    i mean, some of them have a different usage and events to trigger with it...


5.1. item syntax

    Basically the items syntax is constituted by an id it's coordenates and a text
    parameter *BUT* only a few works like this... let's see.

    For text, edit, button, check, radio and box items the syntax is:

    item "text here",id, x y w h, style

    eg.:

    text "this is an example",30,10 10 43 7


    For list and combo the syntax is:

    item id,x y w h, style

    eg.:

    list 31,10 20 80 50


    For link and tab the syntax is:

    item "text here",id,x y w h

    eg.:

    link "http://vanguard.bubix.net",32,10 70 123 13


    For icon the syntax is:

    icon id,x y w h, filename, index, style

    eg.:

    icon 33,75 70 16 16, $mircexe, 0


    see the 2.1 step to see the styles you can use with eachone of the items...


5.2. events syntax

    If know how to use the ON TEXT, ON JOIN or all the other events you will see that
    they are used just like the dialog events (only a few parameters are diffent)


    If a user changes the state of controls in the dialog, eg. clicks on a button,
    types text in an edit box, etc., this triggers the on dialog script event 
    which allows you to monitor input from the user:

    on 1:dialog:name:event:id: {
    echo $dname $devent $did
    }

    Where name identifies the dialog, id is the id number of the control 
    triggering the event, and event can be:

    init		just before a dialog is displayed, controls can be initialized in this event. id is zero.

    edit		text in editbox or combo box changed

    sclick		single click in list/combo box, or check/uncheck of radio/check buttons, or click of a
			button

    dclick		double click in list/combo box

    menu		a menu item was selected


    let's an example:

    using the example4 dialog:


    on 1:dialog:example4:menu:111: {

    echo you've just clicked on $did item!

    }

    this will trigger when you click on the item 111 ("load")...

    now think... if we use the "on 1:dialog:example4:menu:item_id:" to each one of
    the menu items... geeeezz we'll get "tons" of code lines with the "on blah blah"

    sooooooo... at the step 2.2 i told you about the $did identifier right? (yeah...)

    let's use it!

    on 1:dialog:example4:menu:*: {
    if ($did == 111) { echo you've just clicked on $did item! }
    }

    what have we done...
    well... we just replace the id with an * and add the following line:
    if ($did == 111) { echo you've just clicked on $did item! }

    *very* easy... 

    let's do it again but with diferent events...

    on 1:dialog:example4:init:*: {
    dialog -t example4 titlebar changed!
    }

    we just change the titlebar text...


6. examples

    more examples using everything i talk in this documment...


    dialog example5 {
    title "example5"
    size -1 -1 200 105
    option dbu

    box "nickserv",1,5 5 190 40
    button "OK",2,165 90 30 10, ok
    text "nickname:",3, 10 18 24 7
    edit "",4,37 17 40 10, autohs
    text "password:",5,10 28 24 7
    edit "",6,37 27 40 10,autohs pass
    button "add",7,80 17 20 10
    button "delete",8,80 28 20 10
    list 9,105 10 87 33, size vsbar autovs
    box "chanserv",10,5 48 190 40
    text "channel:",11, 10 61 24 7
    edit "",12,37 60 40 10, autohs
    text "password:",13,10 71 24 7
    edit "",14,37 70 40 10,autohs pass
    button "add",15,80 60 20 10
    button "delete",16,80 71 20 10
    list 17,105 53 87 33, size vsbar autovs
    link "http://vanguard.bubix.net",18,5 93 123 13
    }

    on 1:dialog:example5:sclick:*:{
    if ($did == 7) { if ($did(4).text != $null) && ($did(6).text != $null) && ($did(4).text !isin %nicks) { set %nicks %nicks $did(4).text | set % $+ [ $did(4).text ] $did(6).text | did -a example5 9 $did(4).text } }
    if ($did == 9) && ($did(9).seltext != $null) { did -ra example5 4 $did(9).seltext | did -ra example5 6 [ % $+ [ $did(9).seltext ] ] }
    if ($did == 15) { if ($did(12).text != $null) && ($did(14).text != $null) && ($did(4).text !isin %nicks) { set %chans %chans $did(12).text | set % $+ [ $did(12).text ] $did(14).text | did -a example5 17 $did(12).text } }
    if ($did == 17) && ($did(17).seltext != $null) { did -ra example5 12 $did(17).seltext | did -ra example5 14 [ % $+ [ $did(17).seltext ] ] }
    if ($did == 18) { run http://vanguard.bubix.net }
    }
    on 1:dialog:example5:init:*:{
    if (%nicks != $null) {
    var %toks = $numtok(%nicks,32)
    var %i = 1
    while (%i <= %toks) {
    var %temp.nick = $gettok(%nicks,%i,32)
    if (%temp.nick != $null) { did -a example5 9 %temp.nick }
    inc %i
    }
    }
    if (%chans != $null) {
    var %toks = $numtok(%chans,32)
    var %i = 1
    while (%i <= %toks) {
    var %temp.chan = $gettok(%chans,%i,32)
    if (%temp.chan != $null) { did -a example5 17 %temp.chan }
    inc %i
    }
    }
    }
    
    dialog example6 {
    title "example6"
    size -1 -1 100 100
    option dbu
    tab "general",1,5 5 90 80
    tab "advanced",2
    button "OK",3,65 87 30 10, ok
    box "",4, 10 20 80 60
    check "netsplit detector",5,15 28 48 7,tab 1
    check "use nick list colors",6,15 38 53 7,tab 1
    check "use nick completion",7,15 48 57 7,tab 1
    check "use seen system",8,15 58 49 7,tab 1
    check "auto identify nick",9,15 68 49 7,tab 1
    check "ctcp cloaking",10,15 28 42 7,tab 2
    check "show names on join",11,15 38 56 7,tab 2
    check "use lag meter",12,15 48 41 7,tab 2
    check "filter messages",13,15 58 44 7,tab 2
    check "flash on notice",14,15 68 44 7,tab 2
    }

    dialog example7 {
    title "example7"
    size -1 -1 150 100
    option dbu

    button "OK",1,115 85 30 10, ok
    box "",2,2 0 146 98
    box "list...",3,5 5 55 90
    list 4,10 15 44 76,size
    box "selection...",5,65 5 80 35
    combo 6,70 15 70 70,drop
    button "select",7,110 27 30 10
    box "text selection...",8,65 43 80 35
    edit "",9,70 53 70 10,autohs
    button "select",10,110 65 30 10
    edit "",11,65 85 46 10, read
    }
    on 1:dialog:example7:init:*:{
    var %i = 1
    while (%i <= 30) {
    if (%i == 1) { did -ac example7 4 example $+ %i | did -ac example7 6 example $+ %i }
    else { did -a example7 4 example $+ %i | did -a example7 6 example $+ %i }
    inc %i
    }
    did -ra example7 9 example1 | did -ra example7 11 ready... | did -b example7 7,10 
    }
    on 1:dialog:example7:sclick:*:{
    if ($did(6).text == $did(4).seltext) { did -b example7 7 }
    if ($did(6).text != $did(4).seltext) { did -e example7 7 }
    if ($did(9).text == $did(4).seltext) { did -b example7 10 }
    if ($did(9).text != $did(4).seltext) { did -e example7 10 }
    if ($did == 4) && ($did(4).seltext != $null) { did -c example7 6 $didwm(example7,6,$did(4).seltext) | did -ra example7 9 $did(4).seltext }
    if ($did == 7) && ($did(6).text != $null) { /did -c example7 4 $didwm(example7,4,$did(6).text) | did -b example7 7,10 | did -ra example7 11 selected! | did -ra example7 9 $did(6).text }
    if ($did == 10) && ($did(9).text != $null) && ($did(9).text isin $didtok(4)) { /did -c example7 4 $didwm(example7,4,$did(9).text) | did -b example7 7,10 | did -ra example7 11 selected! | did -c example7 6 $didwm(example7,6,$did(9).text) }
    .timer 1 1 reset
    }
    on 1:dialog:example7:edit:9:if ($did(9).text == $did(4).seltext) || ($did(9).text == $null) || ($did(9).text !isin $didtok(4)) || ($left($did(9).text,7) != example) { did -b example7 10 } | else { did -e example7 10 }
    alias reset if ($dialog(example7)) { did -ra example7 11 ready... }

    dialog example8 {
    title "example8"
    size -1 -1 100 100
    option dbu

    button "OK",1,35 78 30 10, ok
    menu "&File",2
    menu "&new",221,2
    item "&html",2221,221
    item "&rich",2222,221
    item break,2223,221
    item "&text",2224,221
    item "&open",222,2
    item break,223,2
    item "&save",224,2
    item "save &as",225,2
    item break,226,2
    item "save && &exit",227,2
    item "close",228,2
    menu "&Edit",3
    item "&undo",331,3
    item break,332,3
    item "&cut",333,3
    item "c&opy",334,3
    item "&paste",335,3
    item break,336,3
    item "&find text",337,3
    item "&goto line",338,3
    menu "&View",4
    item "&normal",441,4
    item "&large",442,4
    item "&medium",443,4
    item "&smaller",444,4
    item "break",445,4
    item "default",446,4
    menu "&Help",5
    item "help 	F1",551,5
    item "contents 	F10",552,5
    item break,553,5
    item "&about",553,5
    edit "",6,5 5 90 70, multi return vsbar autovs hsbar autohs
    }

    on *:dialog:example8:menu:*:{
    if ($did == 227) || ($did == 228) { dialog -x example8 }
    if ($did >= 441) && ($did <= 446) { did -u example8 441,442,443,444,446 | did -c example8 $did }
    }


7. About...

    Well... i made this to help all of you who don't know how to work with mIRC dialogs,
    i hope that this helps you to learn everything about it...

    Some of the text was taken from the mIRC help file (mirc.hlp).

    I put some ASCII pictures to help you to "preview" the dialog "layout"... however i
    recommend to copy the code to your mIRC Editor and then execute the dialog.
    I'm going to make an HTML version of this document to put some images, a better 
    interface and to correct some english errors! :P

    About the examples... well... they're are just a way to show you the "power" of the
    dialogs...feel free to use it!

    About this documment... :\ i try to make this documment with a simple language and
    a simple method to help you understanding how the mIRC dialogs work...

    Please respect the copyrights and feel free to distribute this! 
    Any questions, critics, ideas, complements or bugs please send them to my email!

    Sorry... for my bad english... it really sucks... =)

    Thanks...

    Vanguard @ 19/04/2001 13:21


    _________________________
    http://vanguard.bubix.net
    vanguard@bubix.net

EOF, /exit