-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStructureDialogExample.ms
More file actions
79 lines (74 loc) · 1.74 KB
/
StructureDialogExample.ms
File metadata and controls
79 lines (74 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
global HelloWorld
(
struct HelloWorldStruct
(
private
pos = [800,200],
size = [200,20],
menuname = "Hello &World",
opened = off,
public
dialog =
(
rollout dialog "Hello World"
(
on dialog open do HelloWorld.open()
on dialog close do HelloWorld.close()
)
),
fn isOpen = (iskindof dialog RolloutClass and opened),
fn open =
(
opened = on
createdialog dialog pos:pos width:size.x height:size.y
updateToolbarButtons()
),
fn close =
(
opened = off
destroydialog dialog
updateToolbarButtons()
),
fn toggle = if isOpen() then close() else open(),
action =
(
macroScript Macro_HelloWorld
category:"HelloWorld"
tooltip:"Hello World"
buttonText:"Hi WORLD"
silentErrors:off
(
local d
fn enabled = isstruct (d = HelloWorld)
on isEnabled do enabled()
on isChecked do enabled() and d.isOpen()
on execute do if enabled() do d.toggle()
)
),
fn createMenu =
(
local menu = menuMan.getMainMenuBar()
local n = 0, m
for k=1 to menu.numitems() where (m = menu.getitem k).getTitle() == menuname do exit with menu.removeitem m
for k=1 to menu.numitems() while n == 0 where (m = menu.getitem k).getTitle() == "&Help" do n = k
if n != 0 do
(
m = menuMan.createMenu menuname
menu.additem (menuMan.createSubMenuItem menuname m) n
a = menuMan.createActionItem "Macro_HelloWorld" "HelloWorld"
a.setUseCustomTitle on
a.setTitle "Display"
m.addItem a 1
)
menuMan.updateMenuBar()
),
on create do
(
if isstruct HelloWorld do HelloWorld.close()
createMenu()
updateToolbarButtons()
)
)
HelloWorld = HelloWorldStruct()
ok
)