--- a/MenuEditor.st Wed Aug 27 17:04:54 1997 +0200
+++ b/MenuEditor.st Tue Sep 02 14:21:17 1997 +0200
@@ -1319,6 +1319,14 @@
^ self class menuPainter
+!
+
+menuPullDown
+ "this window spec was automatically generated by the ST/X MenuEditor"
+
+ ^ self class menuPullDown
+
+
! !
!MenuEditor methodsFor:'actions'!
@@ -1435,9 +1443,14 @@
tabList
"automatically generated by UIPainter ..."
- ^ builder nilValueAspectFor:#tabList
-
- "Modified: 28.7.1997 / 13:11:17 / cg"
+ |holder|
+
+ (holder := builder bindingAt:#tabList) isNil ifTrue:[
+ builder aspectAt:#tabList put:(holder := #('Properties') asValue).
+ ].
+ ^ holder
+
+
!
tabModel
@@ -1511,140 +1524,6 @@
! !
-!MenuEditor methodsFor:'interface specs'!
-
-menuPullDown
- "this window spec was automatically generated by the ST/X MenuEditor"
-
- "do not manually edit this - the builder may not be able to
- handle the specification if its corrupted."
-
- "
- MenuEditor new openOnClass:MenuEditor andSelector:#menuPullDown
- (Menu new fromLiteralArrayEncoding:(MenuEditor menuPullDown)) startUp
- "
-
- <resource: #menu>
-
- ^
-
- #(#Menu
-
- #(
- #(#MenuItem
- #'label:' 'file'
- #'value:' #file
- #'submenu:'
- #(#Menu
-
- #(
- #(#MenuItem
- #'label:' 'new'
- #'value:' #doNew
- )
- #(#MenuItem
- #'label:' 'from class ...'
- #'value:' #doFromClass
- #'enabled:' #isStandAlone
- )
- #(#MenuItem
- #'label:' 'pick a menu'
- #'value:' #doPickAMenu
- #'enabled:' #isStandAlone
- )
- #(#MenuItem
- #'label:' '='
- )
- #(#MenuItem
- #'label:' 'quit'
- #'value:' #closeRequest
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #'label:' 'edit'
- #'submenu:'
- #(#Menu
-
- #(
- #(#MenuItem
- #'label:' 'cut'
- #'value:' #doCut
- )
- #(#MenuItem
- #'label:' '='
- )
- #(#MenuItem
- #'label:' 'create submenu static'
- #'value:' #doCreateMenu
- )
- #(#MenuItem
- #'label:' 'create summenu dynamic'
- #'value:' #doCreateLink
- )
- #(#MenuItem
- #'label:' '-'
- )
- #(#MenuItem
- #'label:' 'create item'
- #'value:' #doCreateItem
- )
- #(#MenuItem
- #'label:' 'create separator'
- #'value:' #doCreateSep
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #'label:' 'code'
- #'value:' #code
- #'submenu:'
- #(#Menu
-
- #(
- #(#MenuItem
- #'label:' 'class'
- #'value:' #doDefineClass
- #'enabled:' #isStandAlone
- )
- #(#MenuItem
- #'label:' '-'
- )
- #(#MenuItem
- #'label:' 'install menu spec.'
- #'value:' #doInstallSpec
- )
- #(#MenuItem
- #'label:' 'install help spec.'
- #'value:' #doInstallHelp
- #'enabled:' #isStandAlone
- )
- #(#MenuItem
- #'label:' '='
- )
- #(#MenuItem
- #'label:' 'browse application'
- #'value:' #doBrowseAppClass
- )
- ) nil
- nil
- )
- )
- #(#MenuItem
- #'label:' 'test'
- #'submenuChannel:' #submenuTest
- )
- ) nil
- nil
- )
-
- "Modified: 28.7.1997 / 18:12:10 / cg"
-! !
-
!MenuEditor methodsFor:'private'!
helpKey
@@ -1747,7 +1626,9 @@
tabSelection = aSelection ifTrue:[
^ self
].
-
+ (aSelection ~~ 0 and:[slices isNil]) ifTrue:[
+ ^ self
+ ].
(tabSelection := aSelection) == 0 ifTrue:[
slices isNil ifTrue:[
specCanvas client:nil.
@@ -1765,6 +1646,7 @@
specCanvas client:self spec:(self class perform:sel) builder:builder.
specCanvas raise.
]
+
! !
!MenuEditor methodsFor:'startup / release'!
@@ -2013,22 +1895,22 @@
doStepDown
"move selected child after next child
"
- self painter doStepOver:1
+ self painter selectedNodeChangeSequenceOrder:1
!
doStepIn
- self painter doStepIn
+ self painter selectedNodeBecomeChildOfNext
!
doStepOut
- self painter doStepOut
+ self painter selectedNodeBecomeSisterOfParent
!
doStepUp
"move selected child after next child
"
- self painter doStepOver:-1
+ self painter selectedNodeChangeSequenceOrder:-1
! !
!MenuEditor methodsFor:'values'!
@@ -2179,6 +2061,14 @@
shortcutKey := (aspects at:#shortcutKey) value.
accessCharaterPos := (aspects at:#accessCharaterPos) value.
argument := (aspects at:#argument) value.
+
+ argument isString ifTrue:[
+ argument size > 1 ifTrue:[
+ (argument at:1) == $# ifTrue:[
+ argument := (argument copyFrom:2) asSymbol
+ ]
+ ]
+ ].
submenuChannel := (aspects at:#submenuChannel) value.
retriever := (aspects at:#retriever) value.
icon := (aspects at:#icon) value.
@@ -2239,7 +2129,12 @@
(aspects at:#indication) value:indication.
(aspects at:#shortcutKey) value:shortcutKey.
(aspects at:#accessCharaterPos) value:accessCharaterPos.
- (aspects at:#argument) value:argument.
+
+ argument isSymbol ifTrue:[
+ (aspects at:#argument) value:'#', argument
+ ] ifFalse:[
+ (aspects at:#argument) value:argument.
+ ].
(aspects at:#submenuChannel) value:submenuChannel.
(aspects at:#retriever) value:retriever.
(aspects at:#icon) value:icon.
@@ -2334,10 +2229,6 @@
!MenuEditor::Painter methodsFor:'accessing'!
-root
- ^ listOfNodes first
-!
-
selectorName
^ (listOfNodes first contents label) asSymbol
! !
@@ -2356,7 +2247,11 @@
]
].
spec isNil ifFalse:[
- menu := Menu new fromLiteralArrayEncoding:spec.
+ (spec isMemberOf:Menu) ifFalse:[
+ menu := Menu new fromLiteralArrayEncoding:spec.
+ ] ifTrue:[
+ menu := spec.
+ ].
node := self nodeLabel:(aSelector asString).
self subMenu:menu parent:node.
] ifTrue:[
@@ -2575,10 +2470,7 @@
doCut
self doCopy.
- model removeSelection.
- self selection:nil.
-
-
+ self selectedNodesRemove.
!
doPaste
@@ -2586,79 +2478,6 @@
(CopyBuffer notNil and:[self selectedNode notNil]) ifTrue:[
self addElement:(CopyBuffer collect:[:el| el copy])
].
-!
-
-doStepIn
- |idx node cprt nprt|
-
- ( (node := self selectedNode) isNil
- or:[(cprt := node parent) isNil]
- ) ifTrue:[
- ^ self
- ].
-
- idx := cprt indexOfChild:node.
-
- idx == cprt children size ifTrue:[
- ^ self
- ].
- nprt := cprt childAt:(idx + 1).
-
- (nprt notNil and:[nprt hasChildren]) ifFalse:[
- ^ self
- ].
-
- model removeDependent:self.
- model removeSelection.
- selection := nil.
- model expand:nprt.
- model addDependent:self.
-
- model add:node beforeIndex:1 below:nprt.
- self selectNode:node.
-!
-
-doStepOut
- |node cprt nprt|
-
- ( (node := self selectedNode) isNil
- or:[(cprt := node parent) isNil
- or:[(nprt := cprt parent) isNil]]
- ) ifFalse:[
- model removeDependent:self.
- model removeSelection.
- selection := nil.
- model addDependent:self.
-
- model add:node afterIndex:(nprt indexOfChild:cprt) below:nprt.
- self selectNode:node.
- ]
-!
-
-doStepOver:anOffset
- "move child 'anOffset' forward or backward in list of children
- "
- |idx node size parent|
-
- ( (node := self selectedNode) notNil
- and:[(parent := node parent) notNil
- and:[(size := parent children size) > 1]]
- ) ifTrue:[
- idx := parent indexOfChild:node.
-
- model removeDependent:self.
- model removeSelection.
- selection := nil.
- model addDependent:self.
-
- (idx := idx + anOffset) < 1 ifTrue:[
- idx := size
- ] ifFalse:[
- idx > size ifTrue:[idx := 1]
- ].
- model add:node beforeIndex:idx below:parent.
- self selectNode:node.
- ]
! !
!MenuEditor::Painter methodsFor:'private'!
@@ -2666,19 +2485,7 @@
addElement:something
"add something after selection
"
- |node|
-
- (node := self selectedNode) notNil ifTrue:[
- node parent notNil ifTrue:[
- node isCollapsable ifTrue:[
- model add:something beforeIndex:1 below:node
- ] ifFalse:[
- model add:something after:node
- ]
- ] ifFalse:[
- model add:something beforeIndex:1 below:(self root)
- ]
- ]
+ self selectedNodeAdd:something
!
nodeLabel:aLabel