MenuEditor.st
changeset 249 bfa28b62528c
parent 246 81fe65b7bea7
child 255 989494227ffc
equal deleted inserted replaced
248:1ee61b7bb36a 249:bfa28b62528c
  1584 ! !
  1584 ! !
  1585 
  1585 
  1586 !MenuEditor methodsFor:'startup / release'!
  1586 !MenuEditor methodsFor:'startup / release'!
  1587 
  1587 
  1588 buildFrom:aClass andSelector:aSelector
  1588 buildFrom:aClass andSelector:aSelector
  1589     |oldClass newClass helpTool|
  1589     |oldClass newClass|
  1590 
  1590 
  1591     oldClass := self specClass.
  1591     oldClass := self specClass.
  1592     self specClass:aClass.
  1592     self specClass:aClass.
  1593     newClass := self specClass.
  1593     newClass := self specClass.
  1594 
  1594 
  1950     ].
  1950     ].
  1951   ^ item.
  1951   ^ item.
  1952 !
  1952 !
  1953 
  1953 
  1954 buildFromAspects:aspects
  1954 buildFromAspects:aspects
  1955     |name slice|
  1955     |name|
  1956 
  1956 
  1957     self isSeparator ifFalse:[
  1957     self isSeparator ifFalse:[
  1958         name  := label.
  1958         name  := label.
  1959         label := (aspects at:#label) value.
  1959         label := (aspects at:#label) value.
  1960 
  1960 
  2013         ]
  2013         ]
  2014     ]
  2014     ]
  2015 !
  2015 !
  2016 
  2016 
  2017 toAspects:aspects
  2017 toAspects:aspects
  2018     |type idx slice|
  2018     |type|
  2019 
  2019 
  2020     (type := self separatorType) notNil ifTrue:[
  2020     (type := self separatorType) notNil ifTrue:[
  2021         type := self class separatorSlices findFirst:[:el| el first == type ].
  2021         type := self class separatorSlices findFirst:[:el| el first == type ].
  2022         (aspects at:#seperatorSelection) selectionIndex:type.
  2022         (aspects at:#seperatorSelection) selectionIndex:type.
  2023     ] ifFalse:[
  2023     ] ifFalse:[
  2198 
  2198 
  2199 !
  2199 !
  2200 
  2200 
  2201 buildFromMenu:aMenu
  2201 buildFromMenu:aMenu
  2202 
  2202 
  2203     |spec cls node|
  2203     |node|
  2204 
  2204 
  2205     node := self nodeLabel:'menu'.
  2205     node := self nodeLabel:'menu'.
  2206     self subMenu:aMenu parent:node.
  2206     self subMenu:aMenu parent:node.
  2207 
  2207 
  2208     node hasChildren ifFalse:[
  2208     node hasChildren ifFalse:[
  2213 
  2213 
  2214 !
  2214 !
  2215 
  2215 
  2216 menuItem:anItem
  2216 menuItem:anItem
  2217 
  2217 
  2218     |level node submenu grp ctr sep|
  2218     |node|
  2219 
  2219 
  2220     node := self nodeLabel:(anItem label).
  2220     node := self nodeLabel:(anItem label).
  2221     node contents buildFromMenuItem:anItem.
  2221     node contents buildFromMenuItem:anItem.
  2222     node name:(node contents label).
  2222     node name:(node contents label).
  2223     self subMenu:(anItem submenu) parent:node.
  2223     self subMenu:(anItem submenu) parent:node.
  2288     ] ifFalse:[
  2288     ] ifFalse:[
  2289         type == #blank ifFalse:[
  2289         type == #blank ifFalse:[
  2290             self displayLineFromX:x y:yCenter toX:(x + 80) y:yCenter.
  2290             self displayLineFromX:x y:yCenter toX:(x + 80) y:yCenter.
  2291 
  2291 
  2292             type == #double ifTrue:[
  2292             type == #double ifTrue:[
  2293                 self displayLineFromX:x y:(yCenter + 2) toX:(x + 80) y:(yCenter + 2).
  2293 		y := yCenter + 2.
       
  2294                 self displayLineFromX:x y:y toX:(x + 80) y:y.
  2294             ]    
  2295             ]    
  2295         ]
  2296         ]
  2296     ]
  2297     ]
  2297 !
  2298 !
  2298 
  2299 
  2479 !MenuEditor::Painter methodsFor:'private'!
  2480 !MenuEditor::Painter methodsFor:'private'!
  2480 
  2481 
  2481 addElement:something
  2482 addElement:something
  2482     "add something after selection
  2483     "add something after selection
  2483     "
  2484     "
  2484     |node parent index|
  2485     |node|
  2485 
  2486 
  2486     (node := self selectedNode) notNil ifTrue:[
  2487     (node := self selectedNode) notNil ifTrue:[
  2487         node parent notNil ifTrue:[
  2488         node parent notNil ifTrue:[
  2488             node isCollapsable ifTrue:[
  2489             node isCollapsable ifTrue:[
  2489                 model add:something beforeIndex:1 below:node
  2490                 model add:something beforeIndex:1 below:node