MenuEditor.st
changeset 228 ae3028e45467
parent 227 434211399a54
child 233 fa73f8d9dce6
equal deleted inserted replaced
227:434211399a54 228:ae3028e45467
  1607     |cls sel|
  1607     |cls sel|
  1608 
  1608 
  1609     specClass isAssociation ifTrue:[
  1609     specClass isAssociation ifTrue:[
  1610         cls := specClass key.
  1610         cls := specClass key.
  1611         sel := specClass value.
  1611         sel := specClass value.
  1612     ].
  1612 
  1613     specClass := nil.
  1613         specClass := nil.
       
  1614 
       
  1615         (sel isKindOf:Menu) ifTrue:[
       
  1616             self buildFrom:cls andSelector:nil.
       
  1617           ^ self painter buildFromMenu:sel.
       
  1618         ]
       
  1619         
       
  1620     ].
  1614     self buildFrom:cls andSelector:sel.
  1621     self buildFrom:cls andSelector:sel.
  1615 ! !
  1622 ! !
  1616 
  1623 
  1617 !MenuEditor methodsFor:'user interactions'!
  1624 !MenuEditor methodsFor:'user interactions'!
  1618 
  1625 
  1745     self buildFrom:nil andSelector:(self painter selectorName)
  1752     self buildFrom:nil andSelector:(self painter selectorName)
  1746 !
  1753 !
  1747 
  1754 
  1748 doPickAMenu
  1755 doPickAMenu
  1749 
  1756 
  1750     |view menu|
  1757     |view|
  1751 
  1758 
  1752     view := Screen current viewFromUser.
  1759     view := Screen current viewFromUser.
  1753 
  1760 
  1754     (view isNil or:[view == Screen current rootView]) ifTrue:[
  1761     (view isNil or:[view == Screen current rootView]) ifTrue:[
  1755         ^ self
  1762         ^ self
  1756     ].
  1763     ].
  1757     (view isKindOf:MenuPanel) ifTrue:[
  1764     view specClass == MenuPanelSpec ifTrue:[
  1758         ^ self painter buildFromMenu:(view asMenu)
  1765         ^ self painter buildFromMenu:(view asMenu)
  1759     ].
  1766     ].
  1760     (view isKindOf:PullDownMenu) ifTrue:[
  1767     ^ nil
  1761         ^ self painter buildFromMenu:(self doPickPopupMenu:view)
       
  1762     ].
       
  1763 !
       
  1764 
       
  1765 doPickPopupMenu:aMenu
       
  1766     "pick a popup menu
       
  1767     "
       
  1768     |menu label values item subM|
       
  1769 
       
  1770     menu   := Menu new.
       
  1771     values := aMenu selectors.
       
  1772 
       
  1773     aMenu labels keysAndValuesDo:[:anIndex :aLabel|
       
  1774         item := MenuItem labeled:(aLabel printString).
       
  1775         subM := aMenu subMenuAt:anIndex.
       
  1776 
       
  1777         subM notNil ifTrue:[
       
  1778             item submenu:(self doPickPopupMenu:subM)
       
  1779         ].
       
  1780         menu addItem:item value:(values at:anIndex).
       
  1781     ].
       
  1782   ^ menu
       
  1783 !
  1768 !
  1784 
  1769 
  1785 doStepDown
  1770 doStepDown
  1786     "move selected child after next child
  1771     "move selected child after next child
  1787     "
  1772     "