diff -r 914a2f26aa72 -r de8d8782486c MenuEditor.st --- a/MenuEditor.st Mon Feb 02 23:28:17 1998 +0100 +++ b/MenuEditor.st Mon Feb 02 23:48:47 1998 +0100 @@ -1199,28 +1199,28 @@ #'value:' #doStepUp #'activeHelpKey:' #editMoveUp #'enabled:' #enabledStepOver - #'labelImage:' #(#ResourceRetriever #MenuEditor #upIcon 'Move Up') + #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #upIcon 'Move Up') ) #(#MenuItem #'label:' 'Move Down' #'value:' #doStepDown #'activeHelpKey:' #editMoveDown #'enabled:' #enabledStepOver - #'labelImage:' #(#ResourceRetriever #MenuEditor #downIcon 'Move Down') + #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #downIcon 'Move Down') ) #(#MenuItem #'label:' 'Move In' #'value:' #doStepIn #'activeHelpKey:' #editMoveIn #'enabled:' #enabledStepIn - #'labelImage:' #(#ResourceRetriever #MenuEditor #downRightIcon 'Move In') + #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #downRightIcon 'Move In') ) #(#MenuItem #'label:' 'Move Out' #'value:' #doStepOut #'activeHelpKey:' #editMoveOut #'enabled:' #enabledStepOut - #'labelImage:' #(#ResourceRetriever #MenuEditor #leftDownIcon 'Move Out') + #'labelImage:' #(#ResourceRetriever #ToolApplicationModel #leftDownIcon 'Move Out') ) ) nil nil @@ -2522,7 +2522,7 @@ ]. node hasChildren ifFalse:[ - node add:(self nodeLabel:'undefined') + node add:(self nodeLabel:'Item 1') ]. node expand. model root:node. @@ -2537,7 +2537,7 @@ self subMenu:aMenu parent:node. node hasChildren ifFalse:[ - node add:(self nodeLabel:'undefined') + node add:(self nodeLabel:'Item') ]. node expand. model root:node. @@ -2708,15 +2708,14 @@ doCreateItem - self addElement:(self nodeLabel:'undefined') - + self addElement: (self nodeLabel:'Item') ! doCreateLink |node item| - node := self nodeLabel:'undefined'. + node := self nodeLabel:'Submenu Link'. item := node contents. item submenuChannel:#menuDefaultLink. self addElement:node. @@ -2728,8 +2727,8 @@ doCreateMenu |node| - node := self nodeLabel:'undefined'. - node add:(self nodeLabel:'undefined'). + node := self nodeLabel:'Submenu'. + node add:(self nodeLabel:'Item 1'). self addElement:node ! @@ -2740,8 +2739,11 @@ doCut + |selectedNodes| self doCopy. + selectedNodes := self selection asSortedCollection. self selectedNodesRemove. + self selection: selectedNodes first - 1. self setModified. @@ -2756,10 +2758,22 @@ !MenuEditor::TreeView methodsFor:'private'! -addElement:something +addElement: aNode "add something after selection" - self selectedNodeAdd:something. + (aNode isCollection not and: [aNode name = 'Item']) + ifTrue: + [ + |label| + label := aNode name, ' ', + (self selectedNode parent notNil ifTrue: + [(((self selectedNode children size = 0 ifTrue: [self selectedNode parent children] ifFalse: [self selectedNode children]) select: [:node| + |lab| lab := node contents label. ((node children size = 0) & node contents submenuChannel isNil & (lab ~= '-') & (lab ~= '=') & (lab ~= ''))]) size + 1) printString] ifFalse: ['1']). + aNode name: label. + aNode contents label: label. + ]. + self selectedNodeAdd: aNode. + aNode isCollection ifFalse: [self selectNode: aNode] ifTrue: [self selection: (aNode collect: [:node| self indexOfNode: node])]. self setModified. ! @@ -2768,6 +2782,27 @@ ^TreeItem name:aLabel contents: (MenuEditor::Item new label:aLabel) ! +selectedNodeAdd:something + + |node| + + something notNil ifTrue:[ + (node := self selectedNode) notNil ifTrue:[ + node parent notNil ifTrue:[ + node isCollapsable ifTrue:[ + model add:something afterIndex:node children size below:node + ] ifFalse:[ + model add:something after:node + ] + ] ifFalse:[ + model add:something afterIndex:node children size below:(self root) + ] + ] + ] + + +! + setModified self topView application isModified: true.