diff -r 14db1276218c -r cec1f174397e MenuEditor.st --- 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 - " - - - - ^ - - #(#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