Project

General

Profile

Scripting Menus » History » Version 40

Per Amundsen, 12/31/2018 11:39 AM

1 14 Per Amundsen
{{>toc}}
2 1 Per Amundsen
3 14 Per Amundsen
h1. Scripting Menus
4
5 36 Per Amundsen
You can edit most AdiIRC menus in the Menu Editor located at Menubar -> Tools -> Edit Menus.
6 1 Per Amundsen
7
Status - Edit the status menus.
8
Channel - Edit the channel menus.
9
Query - Edit the query menus.
10
Nicklist - Edit the nicklist menus.
11
Menubar - Edit the menubar menus.
12 32 Per Amundsen
ChannelLink - Edit the channel link menus. (AdiIRC only)
13
Link - Edit the regular link menus. (AdiIRC only)
14 1 Per Amundsen
15 21 Per Amundsen
A menu syntax consists of <Menu text><colon><Menu command>.
16 1 Per Amundsen
17
For this reason, only one colon is allowed in a menu, neither the text nor the command can contain any other colons for the menu to work properly.
18
19 38 Per Amundsen
_[[$chr|$chr(58)]] can be used to add a colon in most cases._
20
21 1 Per Amundsen
*Example*
22
23
<pre>
24
; Add a new menu item with the text "Query", when clicked, execute "/query $1" where $1 means the first word given to this menu, usually a nick.
25
Query:/query $1
26
</pre>
27
28 37 Per Amundsen
Menu commands can also contain multiple lines, if so they must be enclosed with curly brackets.
29 22 Per Amundsen
30
*Example*
31
32
<pre>
33
; Add a new menu item with the text "Query", when clicked, execute both "/query $1" and "/whois $1".
34
Query:{
35
  /query $1
36
  /whois $1
37
}
38
</pre>
39
40 40 Per Amundsen
_See also [[$menu]], [[$menutype]], [[$menucontext]], [[$mouse]]._
41
42 14 Per Amundsen
h2. Menu prefix
43 9 Per Amundsen
44 23 Per Amundsen
The "menu" prefix can also be used in a custom script to add more items to a menu, the syntax is the same.
45 1 Per Amundsen
46
*Example*
47
48
<pre>
49
;Add a new menu item with the text "Whois", when clicked execute "/whois $1".
50
menu nicklist {
51
  Whois:/whois $1
52
}
53
</pre>
54 9 Per Amundsen
55 14 Per Amundsen
h2. Target multiple menus
56 1 Per Amundsen
57 11 Per Amundsen
Multiple menus can be targeted with the same menu item by separating them with comma.
58 8 Per Amundsen
59
*Example*
60
61
<pre>
62
;Add a new menu item for nicklist and channels with the text "Hello World", when clicked execute "/echo -ag Hello World".
63
menu nicklist,channel {
64 24 Per Amundsen
  Hello World:/echo -ag Hello World
65 8 Per Amundsen
}
66
</pre>
67
68 35 Per Amundsen
[[Scripting_Wildcards|Wildcards]] can also be used.
69 20 Per Amundsen
70
*Example*
71
72
<pre>
73
; Add a new menu item for all menus with the text "Hello World", when clicked execute "/echo -ag Hello World".
74
menu * {
75 24 Per Amundsen
  Hello World:/echo -ag Hello World
76 20 Per Amundsen
}
77
78
; Add a new menu item for all custom window menus with the text "Hello World", when clicked execute "/echo -ag Hello World".
79
menu @* {
80 24 Per Amundsen
  Hello World:/echo -ag Hello World
81 20 Per Amundsen
}
82
</pre>
83
84 14 Per Amundsen
h2. Menu hierarchy
85 1 Per Amundsen
86
The menu hierarchy is determined by punctuation marks.
87
88 10 Per Amundsen
This works in both the Menu Editor and in a custom script using the Menu prefix.
89 1 Per Amundsen
90
*Example*
91
92
<pre>
93
menu nicklist {
94
  ;Create a upper menu item called "Tools", notice you don't need a colon for the upper menu.
95
  Tools
96
97 13 Per Amundsen
  ;Use a punctuation mark to put a sub menu item inside "Tools"
98 1 Per Amundsen
  .Whois:/whois $1
99
100 13 Per Amundsen
  ;Use a punctuation mark to put another sub menu item inside "Tools"
101 1 Per Amundsen
  .Who:/who $1
102
103
  ;Create another upper menu item called "Operate"
104
  Operate
105
106 13 Per Amundsen
  ;Use a punctuation mark to put a sub menu item inside "Operate"
107 1 Per Amundsen
  .Kill:kill $1
108
109
  ;Create a sub menu item called "Operate More" inside "Operate"
110
  .Operate More
111 13 Per Amundsen
112 1 Per Amundsen
  ;Use two punctuation marks to put a sub menu item inside "Operate More"
113
  ..Kill again:kill $1
114
}
115
</pre>
116 2 Per Amundsen
117 14 Per Amundsen
h2. Separator
118 6 Per Amundsen
119 7 Per Amundsen
Hyphen (-) can be used to add a menu separator.
120 6 Per Amundsen
121
*Example*
122
123
<pre>
124
menu nicklist {
125
  ;Create a upper menu item called "Tools"
126
  Tools
127
128
  ;Add a separator
129
  -
130
131
  ;Create another upper menu item called "More Tools"
132
  More Tools
133
}
134
</pre>
135
136 31 Per Amundsen
h2. Merging menu items
137
138
It's possible to merge menu items with other menu items using the same text.
139
140
*Example*
141
142
<pre>
143
; Both "Apple" and "Banana" will be shown in the "Fruit" menu.
144
menu * {
145
  Fruit
146
  .Banana
147
}
148
149
menu * {
150
  Fruit
151
  .Apple
152
}
153
</pre>
154 6 Per Amundsen
155 16 Per Amundsen
h2. $1- lines inside menus
156 2 Per Amundsen
157
$1- will be filled with different words depending on the menu type.
158
159
Status - The currently connected [[$network]] name.
160
Channel - The current [[$chan]] name.
161
Query - The [[$nick]] associated with the query window.
162
Nicklist - A list of selected nicks in the nicklist.
163 4 Per Amundsen
Menubar - Your nick ([[$me]]) on currently connected server.
164 17 Per Amundsen
165
h2. Adding top menus
166
167 18 Per Amundsen
As of AdiIRC 1.9.7 new top menus can be inserted in the Menubar after the "Help" item using the [[/menubar]] command.
168 17 Per Amundsen
169 19 Per Amundsen
Regular scripted menus can be used by referencing the @popup name, e.g "menu @mymenu { }"
170 25 Per Amundsen
171
h2. Mouse events
172
173
For [[/window|custom windows]] there are some special menu items which is triggered on various mouse events.
174
175 26 Per Amundsen
These menus must be at the start of the menu block.
176
177 25 Per Amundsen
Syntax is the same as regular menus, but the menu name must be of the following:
178
179 28 Per Amundsen
*Picture Windows*
180
181 25 Per Amundsen
mouse - Triggers when the mouse moves.
182
sclick - Triggers when the left mouse button is pressed down.
183
mclick - Triggers when the middle mouse button is pressed down. (AdiIRC only)
184
dclick - Triggers when the left mouse button is pressed down twice.
185 27 Per Amundsen
dmclick - Triggers when the middle mouse button is pressed down twice. (AdiIRC only)
186
drclick - Triggers when the right mouse button is pressed down twice. (AdiIRC only)
187 25 Per Amundsen
uclick - Triggers when any mouse button is released.
188
rclick - Triggers when the right mouse button is pressed down.
189
leave - Triggers when the mouse leaves the window.
190 1 Per Amundsen
drop - Triggers when the window receives a drag/drop event.
191 28 Per Amundsen
192
*Custom Windows text area*
193
194 29 Per Amundsen
rclick - Triggers when the right mouse button is pressed down.
195 28 Per Amundsen
dclick - Triggers when the left mouse button is pressed down twice.
196
dmclick - Triggers when the middle mouse button is pressed down twice. (AdiIRC only)
197
drclick - Triggers when the right mouse button is pressed down twice. (AdiIRC only)
198
199
*Custom Windows Nicklist*
200
201
lbclick - Triggers when the left mouse button is pressed down in the listbox.
202
rclick - Triggers when the right mouse button is pressed down.
203
dclick - Triggers when the left mouse button is pressed down twice.
204
dmclick - Triggers when the middle mouse button is pressed down twice. (AdiIRC only)
205
drclick - Triggers when the right mouse button is pressed down twice. (AdiIRC only)
206 26 Per Amundsen
207 30 Per Amundsen
rclick and drclick only triggers when there is no right click menu or the right click menu has no items.
208
209 26 Per Amundsen
*Example*
210
211
<pre>
212
; Create a custom window.
213
/window @test
214
215
; Add a mouse menu.
216
menu @test {
217
  slick:echo -ag Left mouse button was clicked.
218
  rlick:echo -ag Right mouse button was clicked.
219
  Menu:echo -ag Just a regular menu item.
220
}
221
</pre>
222 33 Per Amundsen
223
h2. Menu styles
224
225
You can style menus with check mark and disable them using the [[$style]] identifier.
226
227
*Checked*
228
229
!checked.png!
230
<pre>
231
menu * {
232
  Checked $style(1):noop
233
}
234
</pre>
235
236
*Disabled*
237
238
!disabled.png!
239
<pre>
240
menu * {
241
  Disabled $style(2):noop
242
}
243
</pre>
244
245 1 Per Amundsen
*Checked and disabled*
246 34 Per Amundsen
247
!checked_and_disabled.png!
248 33 Per Amundsen
<pre>
249
menu * {
250
  Checked and disabled $style(3):noop
251
}
252
</pre>
253
254
h2. Menu icons
255
256
In AdiIRC it's also possible to add a icon to any menu item using the [[$menuicon]] identifier.
257
258
!icon.png!
259
<pre>
260
menu * {
261
  Icon $menuicon($scriptdir\icon.ico):noop
262
}
263
</pre>
264 39 Per Amundsen
265
h2. Dynamic sub menus
266
267
To dynamically create sub menus, the [[$submenu]] identifier can be used.
268
269
*Example*
270
271
<pre>
272
menu * {
273
 Animal
274
 .$submenu($animal($1))
275
}
276
277
alias animal {
278
 if ($1 == begin) return -
279
 if ($1 == 1) return Dog:echo Dog
280
 if ($1 == 2) return Cat:echo Cat
281
 if ($1 == 3) return Bird:echo Bird
282
 if ($1 == end) return -
283
}
284
</pre>