author | tz |
Wed, 28 Jan 1998 18:32:02 +0100 | |
changeset 507 | 1586e7da66bc |
parent 499 | da5c2e271d1a |
child 508 | 968c6aa88ef0 |
permissions | -rw-r--r-- |
199 | 1 |
" |
2 |
COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger |
|
3 |
All Rights Reserved |
|
4 |
||
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
12 |
||
13 |
||
14 |
||
398 | 15 |
ToolApplicationModel subclass:#MenuEditor |
356 | 16 |
instanceVariableNames:'isModified specClass specCanvas helpCanvas tabSelection aspects |
17 |
slices didInstall' |
|
220 | 18 |
classVariableNames:'' |
19 |
poolDictionaries:'' |
|
20 |
category:'Interface-UIPainter' |
|
199 | 21 |
! |
22 |
||
23 |
Object subclass:#Item |
|
220 | 24 |
instanceVariableNames:'activeHelpKey enabled label value nameKey indication shortcutKey |
407 | 25 |
accessCharacterPos retriever icon iconAndLabel submenuChannel |
398 | 26 |
argument translateLabel isButton' |
220 | 27 |
classVariableNames:'' |
28 |
poolDictionaries:'' |
|
29 |
privateIn:MenuEditor |
|
199 | 30 |
! |
31 |
||
407 | 32 |
SelectionInTreeView subclass:#TreeView |
275 | 33 |
instanceVariableNames:'images' |
34 |
classVariableNames:'CopyBuffer Images' |
|
220 | 35 |
poolDictionaries:'' |
36 |
privateIn:MenuEditor |
|
199 | 37 |
! |
38 |
||
39 |
!MenuEditor class methodsFor:'documentation'! |
|
40 |
||
41 |
copyright |
|
42 |
" |
|
43 |
COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger |
|
44 |
All Rights Reserved |
|
45 |
||
46 |
This software is furnished under a license and may be used |
|
47 |
only in accordance with the terms of that license and with the |
|
48 |
inclusion of the above copyright notice. This software may not |
|
49 |
be provided or otherwise made available to, or used by, any |
|
50 |
other person. No title to or ownership of the software is |
|
51 |
hereby transferred. |
|
52 |
" |
|
53 |
||
54 |
||
55 |
! |
|
56 |
||
57 |
documentation |
|
58 |
" |
|
59 |
create and modify or inspect popup and pullDown menus of the |
|
60 |
new style( derives from Menu). |
|
61 |
||
62 |
[start with:] |
|
63 |
MenuEditor open |
|
64 |
MenuEditor new openOnClass:MenuEditor andSelector:#menuPullDown |
|
65 |
||
66 |
[see also:] |
|
67 |
UIPainter |
|
68 |
UIHelpTool |
|
69 |
UISpecificationTool |
|
70 |
SelectionInTreeView |
|
71 |
||
72 |
[author:] |
|
398 | 73 |
Claus Atzkern, Thomas Zwick |
199 | 74 |
" |
75 |
||
76 |
! ! |
|
77 |
||
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
78 |
!MenuEditor class methodsFor:'initialization'! |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
79 |
|
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
80 |
initialize |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
81 |
|
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
82 |
super initialize. |
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
83 |
|
407 | 84 |
TreeView initialize |
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
85 |
! ! |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
86 |
|
318 | 87 |
!MenuEditor class methodsFor:'code generation'! |
88 |
||
89 |
generateCodeFor:aClass menuSelector:aSelector |
|
90 |
||
91 |
|code category| |
|
92 |
||
93 |
category := self sourceCategory. |
|
94 |
||
95 |
code := Character excla asString |
|
96 |
, aClass name , ' methodsFor:' , category storeString |
|
97 |
, Character excla asString , '\\' |
|
98 |
||
99 |
, aSelector , '\' |
|
100 |
, ' "this window spec was automatically generated by the UI Builder"\\' |
|
101 |
, ' ^ self class ', aSelector, '\\' |
|
102 |
, '\' |
|
103 |
, Character excla asString |
|
104 |
, ' ' |
|
105 |
, Character excla asString |
|
106 |
, '\\'. |
|
107 |
^ code |
|
108 |
||
109 |
" |
|
110 |
self generateCodeFor:MenuEditor menuSelector:#menu |
|
111 |
" |
|
112 |
! |
|
113 |
||
114 |
sourceCategory |
|
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
115 |
"returns the category where to install the menu |
318 | 116 |
" |
117 |
^ 'accessing menu' |
|
118 |
! ! |
|
119 |
||
371 | 120 |
!MenuEditor class methodsFor:'help specs'! |
121 |
||
122 |
helpSpec |
|
123 |
"return a dictionary filled with helpKey -> helptext associations. |
|
124 |
These are used by the activeHelp tool." |
|
125 |
||
126 |
" |
|
127 |
UIHelpTool openOnClass:MenuEditor |
|
128 |
" |
|
129 |
||
130 |
^ super helpSpec addPairsFrom:#( |
|
131 |
||
455 | 132 |
#aboutSTX |
133 |
'Open an InfoBox about running ST/X.' |
|
134 |
||
135 |
#aboutThisAppliaction |
|
136 |
'Open an InfoBox about release and author.' |
|
137 |
||
371 | 138 |
#accessCharaterPos |
455 | 139 |
'The index of the access character position into the textual label (optional).' |
371 | 140 |
|
141 |
#argument |
|
455 | 142 |
'An argument passed to the value method, if the value selector is a one- or two-arg selector (i.e. ends with '':''). The argument is passed as a string.' |
371 | 143 |
|
144 |
#enbled |
|
455 | 145 |
'This enabled field specifies the name of the aspect (-method or binding) in your application, which returns a value holder holding a boolean, a block which evaluates to either true or false, a selector which returns either true or false or simply true or false. The value, true or false, specifies whether the respective field can be selected, a value of true, or not, a value of false.' |
146 |
||
147 |
#fileExit |
|
148 |
'Exit current application.' |
|
149 |
||
150 |
#helpClassDocumentation |
|
151 |
'Open a HTML-browser with a class documentation for the current application.' |
|
152 |
||
153 |
#helpProgrammersGuide |
|
154 |
'Open a HTML-browser with a programmers guide.' |
|
155 |
||
156 |
#helpShowHelp |
|
157 |
'Toggle on/off displaying help texts.' |
|
158 |
||
159 |
#helpTutorial |
|
160 |
'Open a HTML-browser with tutorial for beginners.' |
|
371 | 161 |
|
162 |
#icon |
|
398 | 163 |
'Selector which returns an image to be displayed.' |
371 | 164 |
|
165 |
#iconAndLabel |
|
398 | 166 |
'Boolean flag to specify that both image and textual label shall be shown.' |
371 | 167 |
|
168 |
#indication |
|
455 | 169 |
'This indication field specifies the name of the aspect (-method or binding) in your application, a value holder holding a boolean, a block which evaluates to either true or false, a selector which returns either true or false or simply true or false. The value, true or false, specifies whether the shown indicator is switched on or off.' |
371 | 170 |
|
171 |
#label |
|
455 | 172 |
'The label of the item. If the ''retriever/selector'' is set, and returns an image, the image is used as the displayed label. Dependent on the state of the ''Image & Label'' flag, both the image and the label are shown.' |
371 | 173 |
|
174 |
#menuSelector |
|
455 | 175 |
'The name of the selector under which the generated menu should be installed and is accessable.' |
371 | 176 |
|
177 |
#nameKey |
|
398 | 178 |
'An unique identifier of the item (optional)' |
371 | 179 |
|
180 |
#retriever |
|
455 | 181 |
'The name of the class, which implements the image selector. This selector is specified by ''selector''. If no class is given, the current application should implement the specified image selector.' |
371 | 182 |
|
183 |
#seperatorList |
|
398 | 184 |
'The list of valid separators' |
371 | 185 |
|
186 |
#shortcutKey |
|
398 | 187 |
'The key to be pressed, to select the menu item from the keyboard (accelerator key).' |
371 | 188 |
|
189 |
#submenuChannel |
|
455 | 190 |
'A value holder, which provides the submenu (Menu) to be opened if the item is selected. Useful if the items submenu is to be changed dynamically.' |
371 | 191 |
|
192 |
#value |
|
455 | 193 |
'An action which can be either a block or a selector. Depending on the number of arguments to the action, the action will be called with the respective arguments. There can either zero, one or two arguments. The first argument to the action is the argument derived from the argument field and the second argument the selected item.' |
371 | 194 |
|
195 |
) |
|
196 |
! ! |
|
197 |
||
199 | 198 |
!MenuEditor class methodsFor:'interface specs'! |
199 |
||
200 |
classDefineSpec |
|
201 |
"this window spec was automatically generated by the ST/X UIPainter" |
|
202 |
||
203 |
"do not manually edit this - the painter/builder may not be able to |
|
204 |
handle the specification if its corrupted." |
|
205 |
||
206 |
" |
|
207 |
UIPainter new openOnClass:MenuEditor andSelector:#classDefineSpec |
|
208 |
MenuEditor new openInterface:#classDefineSpec |
|
209 |
" |
|
210 |
||
211 |
<resource: #canvas> |
|
212 |
||
213 |
^ |
|
214 |
||
215 |
#(#FullSpec |
|
216 |
#'window:' |
|
217 |
#(#WindowSpec |
|
398 | 218 |
#'name:' 'MenuEditor' |
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
219 |
#'layout:' #(#LayoutFrame 262 0 426 0 508 0 519 0) |
398 | 220 |
#'label:' 'MenuEditor' |
221 |
#'min:' #(#Point 10 10) |
|
222 |
#'max:' #(#Point 1152 900) |
|
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
223 |
#'bounds:' #(#Rectangle 262 426 509 520) |
398 | 224 |
#'usePreferredExtent:' false |
199 | 225 |
) |
226 |
#'component:' |
|
227 |
#(#SpecCollection |
|
228 |
#'collection:' |
|
229 |
#( |
|
230 |
#(#LabelSpec |
|
231 |
#'name:' 'boxLabel' |
|
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
232 |
#'layout:' #(#LayoutFrame 2 0.0 4 0 -2 1.0 24 0) |
398 | 233 |
#'label:' 'Class for menu spec:' |
199 | 234 |
#'adjust:' #left |
235 |
#'resizeForLabel:' true |
|
236 |
) |
|
237 |
#(#InputFieldSpec |
|
238 |
#'name:' 'classNameField' |
|
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
239 |
#'layout:' #(#LayoutFrame 2 0.0 27 0 -2 1.0 49 0) |
199 | 240 |
#'tabable:' true |
241 |
#'model:' #classNameChannel |
|
407 | 242 |
#'acceptOnReturn:' false |
243 |
#'acceptOnTab:' false |
|
199 | 244 |
) |
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
245 |
#(#UISubSpecification |
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
246 |
#'name:' 'SubSpecification' |
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
247 |
#'layout:' #(#LayoutFrame 0 0 -29 1 0 1 -5 1) |
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
248 |
#'majorKey:' #ToolApplicationModel |
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
249 |
#'minorKey:' #windowSpecForCommitWithoutChannels |
199 | 250 |
) |
251 |
) |
|
252 |
) |
|
253 |
) |
|
254 |
! |
|
255 |
||
398 | 256 |
menu |
220 | 257 |
"this window spec was automatically generated by the ST/X MenuEditor" |
258 |
||
259 |
"do not manually edit this - the builder may not be able to |
|
260 |
handle the specification if its corrupted." |
|
261 |
||
262 |
" |
|
398 | 263 |
MenuEditor new openOnClass:MenuEditor andSelector:#menu |
264 |
(Menu new fromLiteralArrayEncoding:(MenuEditor menu)) startUp |
|
220 | 265 |
" |
266 |
||
267 |
<resource: #menu> |
|
268 |
||
269 |
^ |
|
270 |
||
271 |
#(#Menu |
|
272 |
||
273 |
#( |
|
274 |
#(#MenuItem |
|
398 | 275 |
#'label:' 'About' |
276 |
#'accessCharacterPosition:' 1 |
|
277 |
#'labelImage:' #(#ResourceRetriever nil #icon) |
|
278 |
#'submenuChannel:' #menuAbout |
|
220 | 279 |
) |
280 |
#(#MenuItem |
|
398 | 281 |
#'label:' 'File' |
282 |
#'translateLabel:' true |
|
283 |
#'value:' #file |
|
284 |
#'submenu:' |
|
285 |
#(#Menu |
|
286 |
||
287 |
#( |
|
288 |
#(#MenuItem |
|
289 |
#'label:' 'New' |
|
290 |
#'value:' #doNew |
|
291 |
) |
|
292 |
#(#MenuItem |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
293 |
#'label:' '-' |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
294 |
) |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
295 |
#(#MenuItem |
499 | 296 |
#'label:' 'Load...' |
398 | 297 |
#'translateLabel:' true |
298 |
#'value:' #doFromClass |
|
299 |
#'enabled:' #isStandAlone |
|
300 |
) |
|
301 |
#(#MenuItem |
|
302 |
#'label:' '-' |
|
303 |
) |
|
304 |
#(#MenuItem |
|
305 |
#'label:' 'Save' |
|
306 |
#'value:' #doInstallSpec |
|
307 |
) |
|
308 |
#(#MenuItem |
|
309 |
#'label:' '-' |
|
310 |
) |
|
311 |
#(#MenuItem |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
312 |
#'label:' 'Pick A Menu' |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
313 |
#'value:' #doPickAMenu |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
314 |
#'enabled:' #isStandAlone |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
315 |
) |
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
316 |
#(#MenuItem |
499 | 317 |
#'label:' 'Define Menu Class...' |
398 | 318 |
#'value:' #doDefineClass |
319 |
#'enabled:' #isStandAlone |
|
320 |
) |
|
321 |
#(#MenuItem |
|
499 | 322 |
#'label:' 'Browse Menu Class' |
398 | 323 |
#'value:' #doBrowseAppClass |
324 |
) |
|
325 |
#(#MenuItem |
|
326 |
#'label:' '-' |
|
327 |
) |
|
328 |
#(#MenuItem |
|
329 |
#'label:' 'Exit' |
|
330 |
#'translateLabel:' true |
|
331 |
#'value:' #closeRequest |
|
332 |
) |
|
333 |
) nil |
|
334 |
nil |
|
220 | 335 |
) |
336 |
) |
|
337 |
#(#MenuItem |
|
398 | 338 |
#'label:' 'Edit' |
407 | 339 |
#'submenuChannel:' #menuEdit |
220 | 340 |
) |
341 |
#(#MenuItem |
|
398 | 342 |
#'label:' 'Test' |
343 |
#'submenuChannel:' #submenuTest |
|
220 | 344 |
) |
345 |
#(#MenuItem |
|
398 | 346 |
#'label:' 'History' |
347 |
#'submenuChannel:' #menuHistory |
|
220 | 348 |
) |
349 |
#(#MenuItem |
|
398 | 350 |
#'label:' 'Help' |
351 |
#'submenuChannel:' #menuHelp |
|
220 | 352 |
) |
353 |
) nil |
|
354 |
nil |
|
355 |
) |
|
356 |
! |
|
357 |
||
218 | 358 |
menuDefaultLink |
359 |
"this window spec was automatically generated by the ST/X MenuEditor" |
|
360 |
||
361 |
"do not manually edit this - the builder may not be able to |
|
362 |
handle the specification if its corrupted." |
|
363 |
||
364 |
" |
|
365 |
MenuEditor new openOnClass:MenuEditor andSelector:#menuDefaultLink |
|
366 |
(Menu new fromLiteralArrayEncoding:(MenuEditor menuDefaultLink)) startUp |
|
367 |
" |
|
368 |
||
369 |
<resource: #menu> |
|
370 |
||
371 |
^ |
|
372 |
||
373 |
#(#Menu |
|
374 |
||
375 |
#( |
|
376 |
#(#MenuItem |
|
377 |
#'label:' '!! derives from application !!' |
|
378 |
) |
|
379 |
) nil |
|
380 |
nil |
|
381 |
) |
|
382 |
! |
|
383 |
||
407 | 384 |
menuEdit |
220 | 385 |
"this window spec was automatically generated by the ST/X MenuEditor" |
386 |
||
387 |
"do not manually edit this - the builder may not be able to |
|
388 |
handle the specification if its corrupted." |
|
389 |
||
390 |
" |
|
407 | 391 |
MenuEditor new openOnClass:MenuEditor andSelector:#menuEdit |
392 |
(Menu new fromLiteralArrayEncoding:(MenuEditor menuEdit)) startUp |
|
220 | 393 |
" |
394 |
||
395 |
<resource: #menu> |
|
396 |
||
397 |
^ |
|
398 |
||
399 |
#(#Menu |
|
400 |
||
401 |
#( |
|
402 |
#(#MenuItem |
|
398 | 403 |
#'label:' 'Cut' |
404 |
#'value:' #doCut |
|
405 |
#'enabled:' #hasValidSelection |
|
406 |
#'shortcutKeyCharacter:' #Cut |
|
407 |
) |
|
408 |
#(#MenuItem |
|
409 |
#'label:' 'Copy' |
|
220 | 410 |
#'value:' #doCopy |
411 |
#'enabled:' #hasValidSelection |
|
356 | 412 |
#'shortcutKeyCharacter:' #Copy |
220 | 413 |
) |
414 |
#(#MenuItem |
|
398 | 415 |
#'label:' 'Paste' |
220 | 416 |
#'value:' #doPaste |
417 |
#'enabled:' #hasAnySingleSelection |
|
356 | 418 |
#'shortcutKeyCharacter:' #Paste |
220 | 419 |
) |
420 |
#(#MenuItem |
|
407 | 421 |
#'label:' '-' |
398 | 422 |
) |
423 |
#(#MenuItem |
|
424 |
#'label:' 'Create Item' |
|
425 |
#'value:' #doCreateItem |
|
407 | 426 |
#'labelImage:' #(#ResourceRetriever #MenuEditor #menuItemImage 'Create Item') |
398 | 427 |
) |
428 |
#(#MenuItem |
|
429 |
#'label:' 'Create Separator' |
|
430 |
#'value:' #doCreateSep |
|
407 | 431 |
#'labelImage:' #(#ResourceRetriever #MenuEditor #menuSeparatorImage 'Create Separator') |
398 | 432 |
) |
433 |
#(#MenuItem |
|
220 | 434 |
#'label:' '-' |
435 |
) |
|
436 |
#(#MenuItem |
|
407 | 437 |
#'label:' 'Create Submenu' |
398 | 438 |
#'value:' #doCreateMenu |
407 | 439 |
#'labelImage:' #(#ResourceRetriever #MenuEditor #submenuImage 'Create Submenu') |
398 | 440 |
) |
441 |
#(#MenuItem |
|
407 | 442 |
#'label:' 'Create Submenu Link' |
398 | 443 |
#'value:' #doCreateLink |
407 | 444 |
#'labelImage:' #(#ResourceRetriever #MenuEditor #linkSubmenuImage 'Create Submenu Link') |
220 | 445 |
) |
446 |
) nil |
|
447 |
nil |
|
448 |
) |
|
449 |
! |
|
450 |
||
398 | 451 |
menuToolbar |
199 | 452 |
"this window spec was automatically generated by the ST/X MenuEditor" |
453 |
||
454 |
"do not manually edit this - the builder may not be able to |
|
455 |
handle the specification if its corrupted." |
|
456 |
||
457 |
" |
|
398 | 458 |
MenuEditor new openOnClass:MenuEditor andSelector:#menuToolbar |
459 |
(Menu new fromLiteralArrayEncoding:(MenuEditor menuToolbar)) startUp |
|
199 | 460 |
" |
461 |
||
462 |
<resource: #menu> |
|
463 |
||
464 |
^ |
|
465 |
||
466 |
#(#Menu |
|
467 |
||
468 |
#( |
|
469 |
#(#MenuItem |
|
398 | 470 |
#'label:' 'New' |
471 |
#'isButton:' true |
|
472 |
#'value:' #doNew |
|
473 |
#'labelImage:' #(#ResourceRetriever nil #newIcon) |
|
474 |
) |
|
475 |
#(#MenuItem |
|
476 |
#'label:' 'Load' |
|
477 |
#'isButton:' true |
|
478 |
#'value:' #doFromClass |
|
479 |
#'labelImage:' #(#ResourceRetriever nil #loadIcon) |
|
480 |
) |
|
481 |
#(#MenuItem |
|
482 |
#'label:' 'Save' |
|
483 |
#'isButton:' true |
|
484 |
#'value:' #doInstallSpec |
|
485 |
#'labelImage:' #(#ResourceRetriever nil #saveIcon) |
|
486 |
) |
|
487 |
#(#MenuItem |
|
488 |
#'label:' '-' |
|
489 |
) |
|
490 |
#(#MenuItem |
|
491 |
#'label:' 'createItem' |
|
492 |
#'isButton:' true |
|
493 |
#'value:' #doCreateItem |
|
494 |
#'enabled:' #hasAnySingleSelection |
|
407 | 495 |
#'labelImage:' #(#ResourceRetriever nil #menuItemImage) |
398 | 496 |
) |
497 |
#(#MenuItem |
|
498 |
#'label:' 'createSeparator' |
|
499 |
#'isButton:' true |
|
500 |
#'value:' #doCreateSep |
|
501 |
#'enabled:' #hasAnySingleSelection |
|
407 | 502 |
#'labelImage:' #(#ResourceRetriever nil #menuSeparatorImage) |
398 | 503 |
) |
504 |
#(#MenuItem |
|
505 |
#'label:' '-' |
|
199 | 506 |
) |
507 |
#(#MenuItem |
|
398 | 508 |
#'label:' 'createMenu' |
509 |
#'isButton:' true |
|
510 |
#'value:' #doCreateMenu |
|
511 |
#'enabled:' #hasAnySingleSelection |
|
407 | 512 |
#'labelImage:' #(#ResourceRetriever nil #submenuImage) |
398 | 513 |
) |
514 |
#(#MenuItem |
|
515 |
#'label:' 'createLink' |
|
516 |
#'isButton:' true |
|
517 |
#'value:' #doCreateLink |
|
518 |
#'enabled:' #hasAnySingleSelection |
|
407 | 519 |
#'labelImage:' #(#ResourceRetriever nil #linkSubmenuImage) |
398 | 520 |
) |
521 |
#(#MenuItem |
|
522 |
#'label:' '-' |
|
243 | 523 |
) |
524 |
#(#MenuItem |
|
398 | 525 |
#'label:' 'stepUp' |
526 |
#'isButton:' true |
|
527 |
#'value:' #doStepUp |
|
528 |
#'enabled:' #enabledStepOver |
|
529 |
#'labelImage:' #(#ResourceRetriever nil #upIcon) |
|
199 | 530 |
) |
531 |
#(#MenuItem |
|
398 | 532 |
#'label:' 'stepDown' |
533 |
#'isButton:' true |
|
534 |
#'value:' #doStepDown |
|
535 |
#'enabled:' #enabledStepOver |
|
536 |
#'labelImage:' #(#ResourceRetriever nil #downIcon) |
|
537 |
) |
|
538 |
#(#MenuItem |
|
539 |
#'label:' 'stepIn' |
|
540 |
#'isButton:' true |
|
541 |
#'value:' #doStepIn |
|
542 |
#'enabled:' #enabledStepIn |
|
543 |
#'labelImage:' #(#ResourceRetriever nil #downRightIcon) |
|
544 |
) |
|
545 |
#(#MenuItem |
|
546 |
#'label:' 'stepOut' |
|
547 |
#'isButton:' true |
|
548 |
#'value:' #doStepOut |
|
549 |
#'enabled:' #enabledStepOut |
|
550 |
#'labelImage:' #(#ResourceRetriever nil #leftDownIcon) |
|
218 | 551 |
) |
199 | 552 |
) nil |
553 |
nil |
|
554 |
) |
|
555 |
! |
|
556 |
||
557 |
windowSpec |
|
558 |
"this window spec was automatically generated by the ST/X UIPainter" |
|
559 |
||
560 |
"do not manually edit this - the painter/builder may not be able to |
|
561 |
handle the specification if its corrupted." |
|
562 |
||
563 |
" |
|
564 |
UIPainter new openOnClass:MenuEditor andSelector:#windowSpec |
|
565 |
MenuEditor new openInterface:#windowSpec |
|
566 |
" |
|
567 |
"MenuEditor open" |
|
568 |
||
569 |
<resource: #canvas> |
|
570 |
||
571 |
^ |
|
572 |
||
573 |
#(#FullSpec |
|
574 |
#'window:' |
|
575 |
#(#WindowSpec |
|
398 | 576 |
#'name:' 'Menu Builder' |
485 | 577 |
#'layout:' #(#LayoutFrame 221 0 394 0 800 0 777 0) |
199 | 578 |
#'label:' 'Menu Builder' |
398 | 579 |
#'min:' #(#Point 10 10) |
580 |
#'max:' #(#Point 1152 900) |
|
485 | 581 |
#'bounds:' #(#Rectangle 221 394 801 778) |
398 | 582 |
#'menu:' #menu |
583 |
#'usePreferredExtent:' false |
|
199 | 584 |
) |
585 |
#'component:' |
|
586 |
#(#SpecCollection |
|
587 |
#'collection:' |
|
588 |
#( |
|
398 | 589 |
#(#MenuPanelSpec |
590 |
#'name:' 'menuToolbarView' |
|
414
116cf2acebe3
before loading of a new menu do fire correct sequence of save requests
tz
parents:
412
diff
changeset
|
591 |
#'layout:' #(#LayoutFrame 0 0.0 0 0 0 1.0 32 0) |
398 | 592 |
#'menu:' #menuToolbar |
593 |
#'showSeparatingLines:' true |
|
199 | 594 |
) |
398 | 595 |
#(#VariableHorizontalPanelSpec |
596 |
#'name:' 'variableHorizontalPanel1' |
|
414
116cf2acebe3
before loading of a new menu do fire correct sequence of save requests
tz
parents:
412
diff
changeset
|
597 |
#'layout:' #(#LayoutFrame 0 0.0 34 0.0 0 1.0 -22 1.0) |
199 | 598 |
#'component:' |
599 |
#(#SpecCollection |
|
600 |
#'collection:' |
|
601 |
#( |
|
398 | 602 |
#(#ArbitraryComponentSpec |
603 |
#'name:' 'painterView' |
|
407 | 604 |
#'menu:' #menuEdit |
398 | 605 |
#'hasHorizontalScrollBar:' true |
606 |
#'hasVerticalScrollBar:' true |
|
407 | 607 |
#'component:' #treeView |
398 | 608 |
#'hasBorder:' false |
199 | 609 |
) |
398 | 610 |
#(#ViewSpec |
611 |
#'name:' 'view1' |
|
612 |
#'component:' |
|
613 |
#(#SpecCollection |
|
614 |
#'collection:' |
|
615 |
#( |
|
616 |
#(#NoteBookViewSpec |
|
617 |
#'name:' 'specificationView' |
|
469 | 618 |
#'layout:' #(#LayoutFrame 1 0.0 0 0.0 1 1.0 -26 1.0) |
398 | 619 |
#'tabable:' true |
620 |
#'model:' #tabModel |
|
621 |
#'menu:' #tabList |
|
622 |
#'useIndex:' true |
|
623 |
#'canvas:' #noteBookView |
|
624 |
) |
|
422 | 625 |
#(#UISubSpecification |
626 |
#'name:' 'SubSpecification' |
|
627 |
#'layout:' #(#LayoutFrame 2 0.0 -26 1 -2 1.0 -2 1.0) |
|
628 |
#'majorKey:' #ToolApplicationModel |
|
629 |
#'minorKey:' #windowSpecForCommit |
|
398 | 630 |
) |
631 |
) |
|
632 |
) |
|
633 |
#'level:' -1 |
|
199 | 634 |
) |
635 |
) |
|
636 |
) |
|
469 | 637 |
#'level:' 1 |
398 | 638 |
#'handles:' #(#Any 0.384483 1.0) |
199 | 639 |
) |
485 | 640 |
#(#UISubSpecification |
641 |
#'name:' 'infoBarSubSpec' |
|
642 |
#'layout:' #(#LayoutFrame 0 0.0 -22 1 0 1.0 0 1.0) |
|
643 |
#'majorKey:' #ToolApplicationModel |
|
644 |
#'minorKey:' #windowSpecForInfoBar |
|
220 | 645 |
) |
199 | 646 |
) |
647 |
) |
|
648 |
) |
|
649 |
! ! |
|
650 |
||
407 | 651 |
!MenuEditor class methodsFor:'resources'! |
652 |
||
653 |
linkSubmenuImage |
|
489 | 654 |
"Generated by the Image Editor" |
655 |
" |
|
656 |
ImageEditor openOnClass:self andSelector:#linkSubmenuImage |
|
657 |
" |
|
407 | 658 |
|
659 |
<resource: #image> |
|
489 | 660 |
|
661 |
^Icon |
|
662 |
constantNamed:#'MenuEditor linkSubmenuImage' |
|
663 |
ifAbsentPut:[(Depth4Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@ADQDQDQDQDQDQH@D"H"H"H"H"H"K0@RH"H"H"H"H"H/@A????????????<@D@@@@@@@@@@@C0@PL3L0DQDQDQD_@A@3L3LBH"H"H"<@DCL3L3@"H"H"K0@PL3L3L0??????@A@@@@L3L@@@@@<@DQDQDCL3@PLAG0@RH"H"@3L0@3@/@AH"H"H L3L3L0<@G?????<CL3L3L@@P@@@@@@@3L3LO@ADQDQDQDP@CLA<@D"H"H"H"H LBK0@RH"H"H"H"@BH/@B????????????<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b'); colorMap:((OrderedCollection new add:(Color black); add:(Color white); add:(Color grey:66.9978); add:(Color red:100.0 green:0.0 blue:0.0); add:(Color red:0.0 green:100.0 blue:0.0); add:(Color red:0.0 green:0.0 blue:100.0); add:(Color red:0.0 green:100.0 blue:100.0); add:(Color red:100.0 green:100.0 blue:0.0); add:(Color red:100.0 green:0.0 blue:100.0); add:(Color red:49.9962 green:0.0 blue:0.0); add:(Color red:0.0 green:49.9962 blue:0.0); add:(Color red:0.0 green:0.0 blue:49.9962); add:(Color red:0.0 green:49.9962 blue:49.9962); add:(Color red:49.9962 green:49.9962 blue:0.0); add:(Color red:49.9962 green:0.0 blue:49.9962); add:(Color grey:49.9962); yourself)); mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'); yourself); yourself]! |
|
407 | 664 |
|
665 |
menuItemImage |
|
489 | 666 |
"Generated by the Image Editor" |
667 |
" |
|
668 |
ImageEditor openOnClass:self andSelector:#menuItemImage |
|
669 |
" |
|
407 | 670 |
|
671 |
<resource: #image> |
|
489 | 672 |
|
673 |
^Icon |
|
674 |
constantNamed:#'MenuEditor menuItemImage' |
|
675 |
ifAbsentPut:[(Depth2Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'UUUUUUUQUUUUUUUPUUUUUUU_UUUUUUUPUUUUUUUP@@@@@@@@EUUUUUVAF*****+HF:?+::;@F:.+*?;@F:.+::;@F:.+*:;@F:.+::;@F*****+DK??????A@@@@@@@@UUUUUUUPUUUUUUUXUUUUUUUPUUUUUUUPUUUUUUUPUUUUUUUX'); colorMap:(((Array new:4) at:1 put:((Color black)); at:2 put:((Color white)); at:3 put:((Color grey:66.9978)); at:4 put:((Color grey:49.9962)); yourself)); mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@???<???<???<???<???<???<???<???<???<???<???<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'); yourself); yourself]! |
|
407 | 676 |
|
677 |
menuSeparatorImage |
|
489 | 678 |
"Generated by the Image Editor" |
679 |
" |
|
680 |
ImageEditor openOnClass:self andSelector:#menuSeparatorImage |
|
681 |
" |
|
407 | 682 |
|
683 |
<resource: #image> |
|
489 | 684 |
|
685 |
^Icon |
|
686 |
constantNamed:#'MenuEditor menuSeparatorImage' |
|
687 |
ifAbsentPut:[(Depth2Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'UUUUUUURUUUUUUUPUUUUUUUPUUUUUUUPUUUUUUUP@@@@@@@@EUUUUUV@F*****+DF*****+CF?????+@F0@@@@[@F%UUUU[HF*****+@F*****+@K??????N@@@@@@@HUUUUUUUPUUUUUUUPUUUUUUUWUUUUUUUXUUUUUUUPUUUUUUUP'); colorMap:(((Array new:4) at:1 put:((Color black)); at:2 put:((Color white)); at:3 put:((Color grey:66.9978)); at:4 put:((Color grey:49.9962)); yourself)); mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@???<???<???<???<???<???<???<???<???<???<???<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'); yourself); yourself]! |
|
407 | 688 |
|
689 |
submenuImage |
|
489 | 690 |
"Generated by the Image Editor" |
691 |
" |
|
692 |
ImageEditor openOnClass:self andSelector:#submenuImage |
|
693 |
" |
|
407 | 694 |
|
695 |
<resource: #image> |
|
489 | 696 |
|
697 |
^Icon |
|
698 |
constantNamed:#'MenuEditor submenuImage' |
|
699 |
ifAbsentPut:[(Depth2Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(2 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@EUUUUUV@F*****+@F*****+@G??????GD@@@@@C@EUUUUUWLF*****+@F*****+@G??????HD@@@@@C@EUUUUUW@F*****+@F*****+OG??????@D@@@@@C@EUUUUUW@F*****+@F*****+@K??????@@@@@@@@@@@@@@@@@'); colorMap:(((Array new:4) at:1 put:((Color black)); at:2 put:((Color white)); at:3 put:((Color grey:66.9978)); at:4 put:((Color grey:49.9962)); yourself)); mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<???<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'); yourself); yourself]! ! |
|
407 | 700 |
|
199 | 701 |
!MenuEditor class methodsFor:'slices'! |
702 |
||
703 |
slicesItem |
|
704 |
^#( |
|
705 |
(Basics basicsItemSpec) |
|
706 |
(Details detailsEditSpec) |
|
398 | 707 |
(Image imageEditSpec) |
199 | 708 |
) |
709 |
||
710 |
! |
|
711 |
||
218 | 712 |
slicesLink |
713 |
^#( |
|
714 |
(Basics basicsLinkSpec) |
|
715 |
(Details detailsEditSpec) |
|
398 | 716 |
(Image imageEditSpec) |
218 | 717 |
) |
718 |
||
719 |
! |
|
720 |
||
199 | 721 |
slicesMenu |
722 |
^#( |
|
723 |
(Basics basicsMenuSpec) |
|
724 |
(Details detailsEditSpec) |
|
398 | 725 |
(Image imageEditSpec) |
199 | 726 |
) |
727 |
||
728 |
! |
|
729 |
||
730 |
slicesRootMenu |
|
731 |
^#( |
|
732 |
(Basics basicsRootSpec) |
|
733 |
) |
|
734 |
||
735 |
! |
|
736 |
||
218 | 737 |
slicesSeparatorMenu |
199 | 738 |
^#( |
218 | 739 |
(Basics basicsSeparatorSpec) |
199 | 740 |
) |
741 |
||
742 |
! ! |
|
743 |
||
744 |
!MenuEditor class methodsFor:'specs'! |
|
745 |
||
746 |
basicsItemSpec |
|
747 |
"this window spec was automatically generated by the ST/X UIPainter" |
|
748 |
||
749 |
"do not manually edit this - the painter/builder may not be able to |
|
750 |
handle the specification if its corrupted." |
|
751 |
||
752 |
" |
|
753 |
UIPainter new openOnClass:MenuEditor andSelector:#basicsItemSpec |
|
754 |
MenuEditor new openInterface:#basicsItemSpec |
|
755 |
" |
|
756 |
||
757 |
<resource: #canvas> |
|
758 |
||
759 |
^ |
|
760 |
||
761 |
#(#FullSpec |
|
762 |
#'window:' |
|
763 |
#(#WindowSpec |
|
290 | 764 |
#'name:' 'unnamed canvas' |
469 | 765 |
#'layout:' #(#LayoutFrame 170 0 315 0 436 0 633 0) |
199 | 766 |
#'label:' 'unnamed canvas' |
290 | 767 |
#'min:' #(#Point 10 10) |
768 |
#'max:' #(#Point 1160 870) |
|
469 | 769 |
#'bounds:' #(#Rectangle 170 315 437 634) |
371 | 770 |
#'usePreferredExtent:' false |
199 | 771 |
) |
772 |
#'component:' |
|
773 |
#(#SpecCollection |
|
774 |
#'collection:' |
|
775 |
#( |
|
776 |
#(#LabelSpec |
|
777 |
#'name:' 'nameKeyLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
778 |
#'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5) |
199 | 779 |
#'label:' 'NameKey:' |
263 | 780 |
#'adjust:' #right |
199 | 781 |
#'resizeForLabel:' true |
782 |
) |
|
783 |
#(#InputFieldSpec |
|
371 | 784 |
#'name:' 'nameKeyField' |
411 | 785 |
#'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) |
371 | 786 |
#'activeHelpKey:' #nameKey |
199 | 787 |
#'tabable:' true |
788 |
#'model:' #nameKey |
|
789 |
#'type:' #symbolOrNil |
|
407 | 790 |
#'acceptOnReturn:' false |
791 |
#'acceptOnTab:' false |
|
199 | 792 |
) |
793 |
#(#LabelSpec |
|
794 |
#'name:' 'labelLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
795 |
#'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5) |
398 | 796 |
#'label:' 'Label:' |
263 | 797 |
#'adjust:' #right |
199 | 798 |
#'resizeForLabel:' true |
799 |
) |
|
800 |
#(#InputFieldSpec |
|
371 | 801 |
#'name:' 'labelField' |
411 | 802 |
#'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) |
371 | 803 |
#'activeHelpKey:' #label |
199 | 804 |
#'tabable:' true |
805 |
#'model:' #label |
|
407 | 806 |
#'acceptOnReturn:' false |
807 |
#'acceptOnTab:' false |
|
199 | 808 |
) |
809 |
#(#LabelSpec |
|
810 |
#'name:' 'valueLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
811 |
#'layout:' #(#AlignmentOrigin 107 0 90 0 1 0.5) |
199 | 812 |
#'label:' 'Value:' |
263 | 813 |
#'adjust:' #right |
199 | 814 |
#'resizeForLabel:' true |
815 |
) |
|
816 |
#(#InputFieldSpec |
|
371 | 817 |
#'name:' 'valueField' |
411 | 818 |
#'layout:' #(#LayoutFrame 110 0 79 0 -5 1.0 101 0) |
371 | 819 |
#'activeHelpKey:' #value |
199 | 820 |
#'tabable:' true |
821 |
#'model:' #value |
|
822 |
#'type:' #symbolOrNil |
|
407 | 823 |
#'acceptOnReturn:' false |
824 |
#'acceptOnTab:' false |
|
199 | 825 |
) |
826 |
#(#LabelSpec |
|
290 | 827 |
#'name:' 'argumentLabel' |
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
828 |
#'layout:' #(#AlignmentOrigin 107 0 115 0 1 0.5) |
290 | 829 |
#'label:' 'Argument:' |
830 |
#'adjust:' #right |
|
831 |
#'resizeForLabel:' true |
|
832 |
) |
|
833 |
#(#InputFieldSpec |
|
371 | 834 |
#'name:' 'argumentField' |
411 | 835 |
#'layout:' #(#LayoutFrame 110 0 104 0 -5 1.0 126 0) |
371 | 836 |
#'activeHelpKey:' #argument |
290 | 837 |
#'tabable:' true |
838 |
#'model:' #argument |
|
839 |
#'type:' #string |
|
407 | 840 |
#'acceptOnReturn:' false |
841 |
#'acceptOnTab:' false |
|
290 | 842 |
) |
371 | 843 |
#(#LabelSpec |
844 |
#'name:' 'indicationLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
845 |
#'layout:' #(#AlignmentOrigin 107 0 155 0 1 0.5) |
371 | 846 |
#'label:' 'Indication:' |
847 |
#'adjust:' #right |
|
848 |
#'resizeForLabel:' true |
|
849 |
) |
|
850 |
#(#InputFieldSpec |
|
851 |
#'name:' 'indicationField' |
|
411 | 852 |
#'layout:' #(#LayoutFrame 110 0 144 0 -5 1.0 166 0) |
371 | 853 |
#'activeHelpKey:' #indication |
854 |
#'tabable:' true |
|
855 |
#'model:' #indication |
|
856 |
#'type:' #symbolOrNil |
|
407 | 857 |
#'acceptOnReturn:' false |
858 |
#'acceptOnTab:' false |
|
371 | 859 |
) |
398 | 860 |
#(#CheckBoxSpec |
861 |
#'name:' 'translateLabelCheckBox' |
|
862 |
#'layout:' #(#Point 20 192) |
|
863 |
#'activeHelpKey:' #translateLabel |
|
469 | 864 |
#'tabable:' true |
398 | 865 |
#'model:' #translateLabel |
866 |
#'label:' 'Translate Label' |
|
867 |
) |
|
868 |
#(#CheckBoxSpec |
|
869 |
#'name:' 'isButtonCheckBox' |
|
870 |
#'layout:' #(#Point 20 221) |
|
871 |
#'activeHelpKey:' #translateLabel |
|
469 | 872 |
#'tabable:' true |
398 | 873 |
#'model:' #isButton |
874 |
#'label:' 'Is Button' |
|
875 |
) |
|
199 | 876 |
) |
877 |
) |
|
878 |
) |
|
879 |
! |
|
880 |
||
218 | 881 |
basicsLinkSpec |
882 |
"this window spec was automatically generated by the ST/X UIPainter" |
|
883 |
||
884 |
"do not manually edit this - the painter/builder may not be able to |
|
885 |
handle the specification if its corrupted." |
|
886 |
||
887 |
" |
|
888 |
UIPainter new openOnClass:MenuEditor andSelector:#basicsLinkSpec |
|
889 |
MenuEditor new openInterface:#basicsLinkSpec |
|
890 |
" |
|
891 |
||
892 |
<resource: #canvas> |
|
893 |
||
894 |
^ |
|
895 |
||
896 |
#(#FullSpec |
|
897 |
#'window:' |
|
898 |
#(#WindowSpec |
|
371 | 899 |
#'name:' 'unnamed canvas' |
469 | 900 |
#'layout:' #(#LayoutFrame 374 0 432 0 640 0 750 0) |
218 | 901 |
#'label:' 'unnamed canvas' |
371 | 902 |
#'min:' #(#Point 10 10) |
903 |
#'max:' #(#Point 1280 1024) |
|
469 | 904 |
#'bounds:' #(#Rectangle 374 432 641 751) |
371 | 905 |
#'usePreferredExtent:' false |
218 | 906 |
) |
907 |
#'component:' |
|
908 |
#(#SpecCollection |
|
909 |
#'collection:' |
|
910 |
#( |
|
911 |
#(#LabelSpec |
|
912 |
#'name:' 'nameKeyLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
913 |
#'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5) |
371 | 914 |
#'activeHelpKey:' #nameKey |
218 | 915 |
#'label:' 'NameKey:' |
263 | 916 |
#'adjust:' #right |
218 | 917 |
#'resizeForLabel:' true |
918 |
) |
|
919 |
#(#InputFieldSpec |
|
371 | 920 |
#'name:' 'nameKeyField' |
411 | 921 |
#'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) |
371 | 922 |
#'activeHelpKey:' #nameKey |
218 | 923 |
#'tabable:' true |
924 |
#'model:' #nameKey |
|
925 |
#'type:' #symbolOrNil |
|
407 | 926 |
#'acceptOnReturn:' false |
927 |
#'acceptOnTab:' false |
|
218 | 928 |
) |
929 |
#(#LabelSpec |
|
930 |
#'name:' 'labelLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
931 |
#'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5) |
398 | 932 |
#'label:' 'Label:' |
218 | 933 |
#'resizeForLabel:' true |
934 |
) |
|
935 |
#(#InputFieldSpec |
|
371 | 936 |
#'name:' 'labelField' |
411 | 937 |
#'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) |
371 | 938 |
#'activeHelpKey:' #label |
218 | 939 |
#'tabable:' true |
940 |
#'model:' #label |
|
407 | 941 |
#'acceptOnReturn:' false |
942 |
#'acceptOnTab:' false |
|
218 | 943 |
) |
469 | 944 |
#(#LabelSpec |
945 |
#'name:' 'menuLabel' |
|
946 |
#'layout:' #(#AlignmentOrigin 107 0 76 0 1 0.5) |
|
947 |
#'label:' 'Menu:' |
|
948 |
#'resizeForLabel:' true |
|
949 |
) |
|
218 | 950 |
#(#InputFieldSpec |
371 | 951 |
#'name:' 'menuField' |
411 | 952 |
#'layout:' #(#LayoutFrame 110 0 65 0 -5 1.0 87 0) |
371 | 953 |
#'activeHelpKey:' #submenuChannel |
218 | 954 |
#'tabable:' true |
955 |
#'model:' #submenuChannel |
|
956 |
#'type:' #symbolOrNil |
|
407 | 957 |
#'acceptOnReturn:' false |
958 |
#'acceptOnTab:' false |
|
218 | 959 |
) |
960 |
#(#LabelSpec |
|
469 | 961 |
#'name:' 'ArgumentLabel' |
962 |
#'layout:' #(#AlignmentOrigin 107 0 100 0 1 0.5) |
|
963 |
#'label:' 'Argument:' |
|
218 | 964 |
#'resizeForLabel:' true |
965 |
) |
|
411 | 966 |
#(#InputFieldSpec |
967 |
#'name:' 'argumentField' |
|
968 |
#'layout:' #(#LayoutFrame 110 0 90 0 -5 1.0 112 0) |
|
969 |
#'activeHelpKey:' #submenuChannel |
|
970 |
#'tabable:' true |
|
971 |
#'model:' #submenuArgument |
|
972 |
#'type:' #symbolOrNil |
|
973 |
#'acceptOnReturn:' false |
|
974 |
#'acceptOnTab:' false |
|
975 |
) |
|
469 | 976 |
#(#CheckBoxSpec |
977 |
#'name:' 'translateLabelCheckBox' |
|
978 |
#'layout:' #(#Point 20 128) |
|
979 |
#'activeHelpKey:' #translateLabel |
|
980 |
#'tabable:' true |
|
981 |
#'model:' #translateLabel |
|
982 |
#'label:' 'Translate Label' |
|
411 | 983 |
) |
218 | 984 |
) |
985 |
) |
|
986 |
) |
|
987 |
! |
|
988 |
||
199 | 989 |
basicsMenuSpec |
990 |
"this window spec was automatically generated by the ST/X UIPainter" |
|
991 |
||
992 |
"do not manually edit this - the painter/builder may not be able to |
|
993 |
handle the specification if its corrupted." |
|
994 |
||
995 |
" |
|
996 |
UIPainter new openOnClass:MenuEditor andSelector:#basicsMenuSpec |
|
997 |
MenuEditor new openInterface:#basicsMenuSpec |
|
998 |
" |
|
999 |
||
1000 |
<resource: #canvas> |
|
1001 |
||
1002 |
^ |
|
1003 |
||
1004 |
#(#FullSpec |
|
1005 |
#'window:' |
|
1006 |
#(#WindowSpec |
|
371 | 1007 |
#'name:' 'unnamed canvas' |
469 | 1008 |
#'layout:' #(#LayoutFrame 456 0 430 0 722 0 748 0) |
199 | 1009 |
#'label:' 'unnamed canvas' |
371 | 1010 |
#'min:' #(#Point 10 10) |
1011 |
#'max:' #(#Point 1280 1024) |
|
469 | 1012 |
#'bounds:' #(#Rectangle 456 430 723 749) |
371 | 1013 |
#'usePreferredExtent:' false |
199 | 1014 |
) |
1015 |
#'component:' |
|
1016 |
#(#SpecCollection |
|
1017 |
#'collection:' |
|
1018 |
#( |
|
1019 |
#(#LabelSpec |
|
1020 |
#'name:' 'nameKeyLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1021 |
#'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5) |
199 | 1022 |
#'label:' 'NameKey:' |
263 | 1023 |
#'adjust:' #right |
199 | 1024 |
#'resizeForLabel:' true |
1025 |
) |
|
1026 |
#(#InputFieldSpec |
|
371 | 1027 |
#'name:' 'nameKeyField' |
411 | 1028 |
#'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) |
371 | 1029 |
#'activeHelpKey:' #nameKey |
199 | 1030 |
#'tabable:' true |
1031 |
#'model:' #nameKey |
|
1032 |
#'type:' #symbolOrNil |
|
407 | 1033 |
#'acceptOnReturn:' false |
1034 |
#'acceptOnTab:' false |
|
199 | 1035 |
) |
1036 |
#(#LabelSpec |
|
1037 |
#'name:' 'labelLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1038 |
#'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5) |
398 | 1039 |
#'label:' 'Label:' |
263 | 1040 |
#'adjust:' #right |
199 | 1041 |
#'resizeForLabel:' true |
1042 |
) |
|
1043 |
#(#InputFieldSpec |
|
371 | 1044 |
#'name:' 'labelField' |
411 | 1045 |
#'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) |
371 | 1046 |
#'activeHelpKey:' #label |
199 | 1047 |
#'tabable:' true |
1048 |
#'model:' #label |
|
407 | 1049 |
#'acceptOnReturn:' false |
1050 |
#'acceptOnTab:' false |
|
199 | 1051 |
) |
398 | 1052 |
#(#CheckBoxSpec |
1053 |
#'name:' 'translateLabelCheckBox' |
|
1054 |
#'layout:' #(#Point 20 100) |
|
1055 |
#'activeHelpKey:' #translateLabel |
|
469 | 1056 |
#'tabable:' true |
398 | 1057 |
#'model:' #translateLabel |
1058 |
#'label:' 'Translate Label' |
|
1059 |
) |
|
199 | 1060 |
) |
1061 |
) |
|
1062 |
) |
|
1063 |
! |
|
1064 |
||
1065 |
basicsRootSpec |
|
1066 |
"this window spec was automatically generated by the ST/X UIPainter" |
|
1067 |
||
1068 |
"do not manually edit this - the painter/builder may not be able to |
|
1069 |
handle the specification if its corrupted." |
|
1070 |
||
1071 |
" |
|
1072 |
UIPainter new openOnClass:MenuEditor andSelector:#basicsRootSpec |
|
1073 |
MenuEditor new openInterface:#basicsRootSpec |
|
1074 |
" |
|
1075 |
||
1076 |
<resource: #canvas> |
|
1077 |
||
1078 |
^ |
|
1079 |
||
1080 |
#(#FullSpec |
|
1081 |
#'window:' |
|
1082 |
#(#WindowSpec |
|
371 | 1083 |
#'name:' 'unnamed canvas' |
411 | 1084 |
#'layout:' #(#LayoutFrame 230 0 231 0 496 0 549 0) |
199 | 1085 |
#'label:' 'unnamed canvas' |
371 | 1086 |
#'min:' #(#Point 10 10) |
1087 |
#'max:' #(#Point 1280 1024) |
|
411 | 1088 |
#'bounds:' #(#Rectangle 230 231 497 550) |
371 | 1089 |
#'usePreferredExtent:' false |
199 | 1090 |
) |
1091 |
#'component:' |
|
1092 |
#(#SpecCollection |
|
1093 |
#'collection:' |
|
1094 |
#( |
|
1095 |
#(#LabelSpec |
|
1096 |
#'name:' 'selectorLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1097 |
#'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5) |
199 | 1098 |
#'label:' 'Selector:' |
263 | 1099 |
#'adjust:' #right |
199 | 1100 |
#'resizeForLabel:' true |
1101 |
) |
|
1102 |
#(#InputFieldSpec |
|
371 | 1103 |
#'name:' 'selectorField' |
411 | 1104 |
#'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) |
371 | 1105 |
#'activeHelpKey:' #menuSelector |
199 | 1106 |
#'tabable:' true |
1107 |
#'model:' #label |
|
407 | 1108 |
#'acceptOnReturn:' false |
1109 |
#'acceptOnTab:' false |
|
199 | 1110 |
) |
1111 |
) |
|
1112 |
) |
|
1113 |
) |
|
1114 |
! |
|
1115 |
||
218 | 1116 |
basicsSeparatorSpec |
199 | 1117 |
"this window spec was automatically generated by the ST/X UIPainter" |
1118 |
||
1119 |
"do not manually edit this - the painter/builder may not be able to |
|
1120 |
handle the specification if its corrupted." |
|
1121 |
||
1122 |
" |
|
218 | 1123 |
UIPainter new openOnClass:MenuEditor andSelector:#basicsSeparatorSpec |
1124 |
MenuEditor new openInterface:#basicsSeparatorSpec |
|
199 | 1125 |
" |
1126 |
||
1127 |
<resource: #canvas> |
|
1128 |
||
1129 |
^ |
|
1130 |
||
1131 |
#(#FullSpec |
|
1132 |
#'window:' |
|
1133 |
#(#WindowSpec |
|
290 | 1134 |
#'name:' 'unnamed canvas' |
469 | 1135 |
#'layout:' #(#LayoutFrame 359 0 319 0 625 0 637 0) |
199 | 1136 |
#'label:' 'unnamed canvas' |
290 | 1137 |
#'min:' #(#Point 10 10) |
1138 |
#'max:' #(#Point 1160 870) |
|
469 | 1139 |
#'bounds:' #(#Rectangle 359 319 626 638) |
371 | 1140 |
#'usePreferredExtent:' false |
199 | 1141 |
) |
1142 |
#'component:' |
|
1143 |
#(#SpecCollection |
|
1144 |
#'collection:' |
|
1145 |
#( |
|
218 | 1146 |
#(#LabelSpec |
1147 |
#'name:' 'separatorLabel' |
|
398 | 1148 |
#'layout:' #(#AlignmentOrigin 127 0 26 0 1 0.5) |
218 | 1149 |
#'label:' 'Separator Type:' |
263 | 1150 |
#'adjust:' #right |
218 | 1151 |
#'resizeForLabel:' true |
1152 |
) |
|
1153 |
#(#ComboListSpec |
|
290 | 1154 |
#'name:' 'seperatorList' |
411 | 1155 |
#'layout:' #(#LayoutFrame 132 0 15 0 -5 1.0 37 0) |
371 | 1156 |
#'activeHelpKey:' #seperatorList |
469 | 1157 |
#'tabable:' true |
218 | 1158 |
#'model:' #seperatorSelection |
290 | 1159 |
#'useIndex:' true |
199 | 1160 |
) |
1161 |
) |
|
1162 |
) |
|
1163 |
) |
|
1164 |
! |
|
1165 |
||
1166 |
detailsEditSpec |
|
1167 |
"this window spec was automatically generated by the ST/X UIPainter" |
|
1168 |
||
1169 |
"do not manually edit this - the painter/builder may not be able to |
|
1170 |
handle the specification if its corrupted." |
|
1171 |
||
1172 |
" |
|
1173 |
UIPainter new openOnClass:MenuEditor andSelector:#detailsEditSpec |
|
1174 |
MenuEditor new openInterface:#detailsEditSpec |
|
1175 |
" |
|
1176 |
||
1177 |
<resource: #canvas> |
|
1178 |
||
1179 |
^ |
|
1180 |
||
1181 |
#(#FullSpec |
|
1182 |
#'window:' |
|
1183 |
#(#WindowSpec |
|
371 | 1184 |
#'name:' 'unnamed canvas' |
411 | 1185 |
#'layout:' #(#LayoutFrame 237 0 249 0 495 0 536 0) |
199 | 1186 |
#'label:' 'unnamed canvas' |
371 | 1187 |
#'min:' #(#Point 10 10) |
1188 |
#'max:' #(#Point 1280 1024) |
|
411 | 1189 |
#'bounds:' #(#Rectangle 237 249 496 537) |
371 | 1190 |
#'usePreferredExtent:' false |
199 | 1191 |
) |
1192 |
#'component:' |
|
1193 |
#(#SpecCollection |
|
1194 |
#'collection:' |
|
1195 |
#( |
|
1196 |
#(#LabelSpec |
|
371 | 1197 |
#'name:' 'shortcutKeyLabel' |
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1198 |
#'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5) |
371 | 1199 |
#'label:' 'Accelerator:' |
1200 |
#'adjust:' #right |
|
1201 |
#'resizeForLabel:' true |
|
1202 |
) |
|
1203 |
#(#InputFieldSpec |
|
1204 |
#'name:' 'shortcutKeyField' |
|
411 | 1205 |
#'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) |
371 | 1206 |
#'activeHelpKey:' #shortcutKey |
1207 |
#'tabable:' true |
|
1208 |
#'model:' #shortcutKey |
|
1209 |
#'type:' #symbolOrNil |
|
407 | 1210 |
#'acceptOnReturn:' false |
1211 |
#'acceptOnTab:' false |
|
371 | 1212 |
) |
1213 |
#(#LabelSpec |
|
199 | 1214 |
#'name:' 'enabledLabel' |
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1215 |
#'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5) |
199 | 1216 |
#'label:' 'Enabled:' |
263 | 1217 |
#'adjust:' #right |
199 | 1218 |
#'resizeForLabel:' true |
1219 |
) |
|
1220 |
#(#InputFieldSpec |
|
371 | 1221 |
#'name:' 'enabledField' |
411 | 1222 |
#'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) |
371 | 1223 |
#'activeHelpKey:' #enbled |
199 | 1224 |
#'tabable:' true |
1225 |
#'model:' #enabled |
|
1226 |
#'type:' #symbolOrNil |
|
407 | 1227 |
#'acceptOnReturn:' false |
1228 |
#'acceptOnTab:' false |
|
199 | 1229 |
) |
1230 |
#(#LabelSpec |
|
371 | 1231 |
#'name:' 'accessCharLabel' |
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1232 |
#'layout:' #(#AlignmentOrigin 217 0 90 0 1 0.5) |
199 | 1233 |
#'label:' 'Access Character Position:' |
263 | 1234 |
#'adjust:' #right |
199 | 1235 |
#'resizeForLabel:' true |
1236 |
) |
|
1237 |
#(#InputFieldSpec |
|
371 | 1238 |
#'name:' 'accessCharField' |
411 | 1239 |
#'layout:' #(#LayoutFrame 220 0 79 0 -5 1.0 101 0) |
371 | 1240 |
#'activeHelpKey:' #accessCharaterPos |
199 | 1241 |
#'tabable:' true |
407 | 1242 |
#'model:' #accessCharacterPos |
199 | 1243 |
#'type:' #numberOrNil |
407 | 1244 |
#'acceptOnReturn:' false |
1245 |
#'acceptOnTab:' false |
|
199 | 1246 |
) |
1247 |
) |
|
1248 |
) |
|
1249 |
) |
|
1250 |
! |
|
1251 |
||
398 | 1252 |
imageEditSpec |
199 | 1253 |
"this window spec was automatically generated by the ST/X UIPainter" |
1254 |
||
1255 |
"do not manually edit this - the painter/builder may not be able to |
|
1256 |
handle the specification if its corrupted." |
|
1257 |
||
1258 |
" |
|
398 | 1259 |
UIPainter new openOnClass:MenuEditor andSelector:#imageEditSpec |
1260 |
MenuEditor new openInterface:#imageEditSpec |
|
199 | 1261 |
" |
1262 |
||
1263 |
<resource: #canvas> |
|
1264 |
||
1265 |
^ |
|
1266 |
||
1267 |
#(#FullSpec |
|
1268 |
#'window:' |
|
1269 |
#(#WindowSpec |
|
371 | 1270 |
#'name:' 'unnamed canvas' |
469 | 1271 |
#'layout:' #(#LayoutFrame 104 0 316 0 348 0 457 0) |
199 | 1272 |
#'label:' 'unnamed canvas' |
371 | 1273 |
#'min:' #(#Point 10 10) |
1274 |
#'max:' #(#Point 1280 1024) |
|
469 | 1275 |
#'bounds:' #(#Rectangle 104 316 349 458) |
371 | 1276 |
#'usePreferredExtent:' false |
199 | 1277 |
) |
1278 |
#'component:' |
|
1279 |
#(#SpecCollection |
|
1280 |
#'collection:' |
|
1281 |
#( |
|
1282 |
#(#LabelSpec |
|
1283 |
#'name:' 'retrieverLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1284 |
#'layout:' #(#AlignmentOrigin 107 0 26 0 1 0.5) |
199 | 1285 |
#'label:' 'Retriever:' |
263 | 1286 |
#'adjust:' #right |
199 | 1287 |
#'resizeForLabel:' true |
1288 |
) |
|
1289 |
#(#InputFieldSpec |
|
371 | 1290 |
#'name:' 'retrieverField' |
411 | 1291 |
#'layout:' #(#LayoutFrame 110 0 15 0 -5 1.0 37 0) |
371 | 1292 |
#'activeHelpKey:' #retriever |
199 | 1293 |
#'tabable:' true |
1294 |
#'model:' #retriever |
|
1295 |
#'type:' #symbolOrNil |
|
407 | 1296 |
#'acceptOnReturn:' false |
1297 |
#'acceptOnTab:' false |
|
199 | 1298 |
) |
1299 |
#(#LabelSpec |
|
1300 |
#'name:' 'iconLabel' |
|
406
a519e0d547f6
widgets rearranged for different fonts + comfortable menu load support
tz
parents:
398
diff
changeset
|
1301 |
#'layout:' #(#AlignmentOrigin 107 0 51 0 1 0.5) |
398 | 1302 |
#'label:' 'Selector:' |
263 | 1303 |
#'adjust:' #right |
199 | 1304 |
#'resizeForLabel:' true |
1305 |
) |
|
1306 |
#(#InputFieldSpec |
|
371 | 1307 |
#'name:' 'iconField' |
411 | 1308 |
#'layout:' #(#LayoutFrame 110 0 40 0 -5 1.0 62 0) |
371 | 1309 |
#'activeHelpKey:' #icon |
199 | 1310 |
#'tabable:' true |
1311 |
#'model:' #icon |
|
1312 |
#'type:' #symbolOrNil |
|
407 | 1313 |
#'acceptOnReturn:' false |
1314 |
#'acceptOnTab:' false |
|
199 | 1315 |
) |
469 | 1316 |
#(#ActionButtonSpec |
1317 |
#'name:' 'imageEditorButton' |
|
1318 |
#'layout:' #(#LayoutFrame 110 0 66 0 -5 1 90 0) |
|
1319 |
#'label:' 'Image Editor' |
|
1320 |
#'tabable:' true |
|
1321 |
#'model:' #doEditImage |
|
1322 |
) |
|
199 | 1323 |
#(#CheckBoxSpec |
1324 |
#'name:' 'iconAndLabel' |
|
398 | 1325 |
#'layout:' #(#LayoutOrigin 20 0 104 0) |
371 | 1326 |
#'activeHelpKey:' #iconAndLabel |
199 | 1327 |
#'tabable:' true |
1328 |
#'model:' #iconAndLabel |
|
398 | 1329 |
#'label:' 'Image & Label' |
199 | 1330 |
) |
1331 |
) |
|
1332 |
) |
|
1333 |
) |
|
1334 |
! ! |
|
1335 |
||
209 | 1336 |
!MenuEditor class methodsFor:'startup'! |
1337 |
||
213 | 1338 |
openModalOnClass:aClass andSelector:aSelector |
1339 |
^ self new openModalOnClass:aClass andSelector:aSelector |
|
1340 |
||
1341 |
||
1342 |
! |
|
1343 |
||
209 | 1344 |
openOnClass:aClass andSelector:aSelector |
1345 |
^ self new openOnClass:aClass andSelector:aSelector |
|
1346 |
||
1347 |
||
1348 |
! ! |
|
1349 |
||
199 | 1350 |
!MenuEditor methodsFor:'accessing'! |
1351 |
||
398 | 1352 |
isModified: aBoolean |
407 | 1353 |
"sets menu tree modifications; invoked by the painter." |
398 | 1354 |
|
1355 |
isModified := aBoolean |
|
1356 |
! |
|
1357 |
||
199 | 1358 |
specClass |
407 | 1359 |
|
1360 |
^specClass |
|
199 | 1361 |
! |
1362 |
||
1363 |
specClass:aClass |
|
407 | 1364 |
|
199 | 1365 |
aClass isBehavior ifTrue:[specClass := aClass name] |
407 | 1366 |
ifFalse:[specClass := aClass] |
218 | 1367 |
! |
1368 |
||
1369 |
submenuTest |
|
407 | 1370 |
"returns submenu assigned to item test" |
1371 |
||
218 | 1372 |
|menu| |
1373 |
||
407 | 1374 |
(menu := self treeView asMenu) allItemsDo: |
1375 |
[:anItem| |
|
218 | 1376 |
anItem value:nil. |
1377 |
anItem enabled:true. |
|
1378 |
]. |
|
407 | 1379 |
^menu |
287 | 1380 |
! |
1381 |
||
1382 |
useHelpDictionary:aDictionary |
|
407 | 1383 |
|
287 | 1384 |
self noteBookView. |
407 | 1385 |
self helpTool dictionary:aDictionary |
199 | 1386 |
! ! |
1387 |
||
455 | 1388 |
!MenuEditor methodsFor:'active help'! |
1389 |
||
1390 |
defaultInfoLabel |
|
1391 |
||
507 | 1392 |
specClass isNil ifTrue: [^'No menu class defined']. |
1393 |
^specClass printString, ' >> ', self treeView selectorName |
|
492 | 1394 |
|
455 | 1395 |
! ! |
1396 |
||
199 | 1397 |
!MenuEditor methodsFor:'aspects'! |
1398 |
||
1399 |
aspectFor:aKey |
|
407 | 1400 |
"returns aspect for a key or nil" |
1401 |
||
1402 |
^aspects at: aKey ifAbsent: [super aspectFor:aKey] |
|
199 | 1403 |
|
1404 |
||
1405 |
! |
|
1406 |
||
218 | 1407 |
enabledStepIn |
407 | 1408 |
"returns whether user can put selected item in next submenu" |
1409 |
||
1410 |
^builder booleanValueAspectFor: #enabledStepIn |
|
218 | 1411 |
! |
1412 |
||
1413 |
enabledStepOut |
|
407 | 1414 |
"returns whether user can put selected item out of current parent submenu" |
1415 |
||
1416 |
^builder booleanValueAspectFor: #enabledStepOut |
|
1417 |
||
218 | 1418 |
! |
1419 |
||
1420 |
enabledStepOver |
|
407 | 1421 |
"returns whether user can shift selected item up or down" |
1422 |
||
1423 |
^builder booleanValueAspectFor:#enabledStepOver |
|
218 | 1424 |
! |
1425 |
||
220 | 1426 |
hasAnySingleSelection |
407 | 1427 |
|
1428 |
^builder booleanValueAspectFor: #hasAnySingleSelection |
|
220 | 1429 |
! |
1430 |
||
1431 |
hasValidSelection |
|
407 | 1432 |
|
1433 |
^builder booleanValueAspectFor: #hasValidSelection |
|
220 | 1434 |
! |
1435 |
||
1436 |
hasValidSingleSelection |
|
407 | 1437 |
|
1438 |
^builder booleanValueAspectFor: #hasValidSingleSelection |
|
220 | 1439 |
! |
1440 |
||
287 | 1441 |
noteBookView |
199 | 1442 |
|
287 | 1443 |
|noteBook helpTool| |
1444 |
||
1445 |
(noteBook := builder bindingAt:#noteBookView) isNil ifTrue:[ |
|
1446 |
noteBook := View new. |
|
1447 |
helpTool := UIHelpTool new. |
|
1448 |
||
1449 |
helpTool masterApplication:self. |
|
1450 |
helpCanvas := SubCanvas origin:0.0@0.0 corner:1.0@1.0 in:noteBook. |
|
1451 |
specCanvas := SubCanvas origin:0.0@0.0 corner:1.0@1.0 in:noteBook. |
|
1452 |
||
1453 |
helpCanvas client:helpTool. |
|
432
d35dccaa804c
commit buttons replaced by subSpec in ToolApplicationModel
tz
parents:
422
diff
changeset
|
1454 |
helpTool masterApplication:self. |
422 | 1455 |
helpTool modifiedHolder: self valueOfEnablingCommitButtons. |
287 | 1456 |
|
1457 |
builder aspectAt:#noteBookView put:noteBook. |
|
199 | 1458 |
]. |
287 | 1459 |
^ noteBook |
199 | 1460 |
! |
1461 |
||
1462 |
tabList |
|
1463 |
||
298 | 1464 |
|holder| |
1465 |
(holder := builder bindingAt:#tabList) isNil ifTrue:[ |
|
1466 |
builder aspectAt:#tabList put:(holder := #('Properties') asValue). |
|
1467 |
]. |
|
1468 |
^ holder |
|
1469 |
||
1470 |
||
199 | 1471 |
! |
1472 |
||
1473 |
tabModel |
|
1474 |
||
1475 |
|holder| |
|
1476 |
(holder := builder bindingAt:#tabModel) isNil ifTrue:[ |
|
1477 |
holder := AspectAdaptor new subject:self; forAspect:#tabSelection. |
|
1478 |
builder aspectAt:#tabModel put:holder. |
|
1479 |
]. |
|
1480 |
^ holder |
|
1481 |
||
407 | 1482 |
! |
1483 |
||
1484 |
treeView |
|
1485 |
"returns the tree view representing hierarchically all the menu items" |
|
1486 |
||
1487 |
|treeView| |
|
1488 |
(treeView := builder bindingAt:#treeView) isNil ifTrue:[ |
|
1489 |
treeView := TreeView new. |
|
1490 |
treeView action:[:dummy|self menuChanged]. |
|
1491 |
builder aspectAt: #treeView put: treeView |
|
1492 |
]. |
|