Project

General

Profile

Scripting Menus » History » Version 41

Per Amundsen, 05/03/2019 03:30 PM

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 41 Per Amundsen
Custom Menubar Items - The name of the associated @popup menu.
165 17 Per Amundsen
166
h2. Adding top menus
167
168 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.
169 17 Per Amundsen
170 19 Per Amundsen
Regular scripted menus can be used by referencing the @popup name, e.g "menu @mymenu { }"
171 25 Per Amundsen
172
h2. Mouse events
173
174
For [[/window|custom windows]] there are some special menu items which is triggered on various mouse events.
175
176 26 Per Amundsen
These menus must be at the start of the menu block.
177
178 25 Per Amundsen
Syntax is the same as regular menus, but the menu name must be of the following:
179
180 28 Per Amundsen
*Picture Windows*
181
182 25 Per Amundsen
mouse - Triggers when the mouse moves.
183
sclick - Triggers when the left mouse button is pressed down.
184
mclick - Triggers when the middle mouse button is pressed down. (AdiIRC only)
185
dclick - Triggers when the left mouse button is pressed down twice.
186 27 Per Amundsen
dmclick - Triggers when the middle mouse button is pressed down twice. (AdiIRC only)
187
drclick - Triggers when the right mouse button is pressed down twice. (AdiIRC only)
188 25 Per Amundsen
uclick - Triggers when any mouse button is released.
189
rclick - Triggers when the right mouse button is pressed down.
190
leave - Triggers when the mouse leaves the window.
191 1 Per Amundsen
drop - Triggers when the window receives a drag/drop event.
192 28 Per Amundsen
193
*Custom Windows text area*
194
195 29 Per Amundsen
rclick - Triggers when the right mouse button is pressed down.
196 28 Per Amundsen
dclick - Triggers when the left mouse button is pressed down twice.
197
dmclick - Triggers when the middle mouse button is pressed down twice. (AdiIRC only)
198
drclick - Triggers when the right mouse button is pressed down twice. (AdiIRC only)
199
200
*Custom Windows Nicklist*
201
202
lbclick - Triggers when the left mouse button is pressed down in the listbox.
203
rclick - Triggers when the right mouse button is pressed down.
204
dclick - Triggers when the left mouse button is pressed down twice.
205
dmclick - Triggers when the middle mouse button is pressed down twice. (AdiIRC only)
206
drclick - Triggers when the right mouse button is pressed down twice. (AdiIRC only)
207 26 Per Amundsen
208 30 Per Amundsen
rclick and drclick only triggers when there is no right click menu or the right click menu has no items.
209
210 26 Per Amundsen
*Example*
211
212
<pre>
213
; Create a custom window.
214
/window @test
215
216
; Add a mouse menu.
217
menu @test {
218
  slick:echo -ag Left mouse button was clicked.
219
  rlick:echo -ag Right mouse button was clicked.
220
  Menu:echo -ag Just a regular menu item.
221
}
222
</pre>
223 33 Per Amundsen
224
h2. Menu styles
225
226
You can style menus with check mark and disable them using the [[$style]] identifier.
227
228
*Checked*
229
230
!checked.png!
231
<pre>
232
menu * {
233
  Checked $style(1):noop
234
}
235
</pre>
236
237
*Disabled*
238
239
!disabled.png!
240
<pre>
241
menu * {
242
  Disabled $style(2):noop
243
}
244
</pre>
245
246 1 Per Amundsen
*Checked and disabled*
247 34 Per Amundsen
248
!checked_and_disabled.png!
249 33 Per Amundsen
<pre>
250
menu * {
251
  Checked and disabled $style(3):noop
252
}
253
</pre>
254
255
h2. Menu icons
256
257
In AdiIRC it's also possible to add a icon to any menu item using the [[$menuicon]] identifier.
258
259
!icon.png!
260
<pre>
261
menu * {
262
  Icon $menuicon($scriptdir\icon.ico):noop
263
}
264
</pre>
265 39 Per Amundsen
266
h2. Dynamic sub menus
267
268
To dynamically create sub menus, the [[$submenu]] identifier can be used.
269
270
*Example*
271
272
<pre>
273
menu * {
274
 Animal
275
 .$submenu($animal($1))
276
}
277
278
alias animal {
279
 if ($1 == begin) return -
280
 if ($1 == 1) return Dog:echo Dog
281
 if ($1 == 2) return Cat:echo Cat
282
 if ($1 == 3) return Bird:echo Bird
283
 if ($1 == end) return -
284
}
285
</pre>