Menu.st
changeset 972 09bc0765dbc1
parent 950 01920811b83b
child 977 e07277070839
equal deleted inserted replaced
971:a9d2fc9ebec9 972:09bc0765dbc1
   176 labels
   176 labels
   177     "return a collection of labels from my items"
   177     "return a collection of labels from my items"
   178 
   178 
   179     ^ items collect:[:anItem | anItem label]
   179     ^ items collect:[:anItem | anItem label]
   180 
   180 
   181     "Created: 25.2.1997 / 19:47:53 / cg"
   181     "Created: / 25.2.1997 / 19:47:53 / cg"
       
   182     "Modified: / 18.6.1998 / 23:58:55 / cg"
   182 !
   183 !
   183 
   184 
   184 lastItem
   185 lastItem
   185     "returns last item
   186     "returns last item
   186     "
   187     "
   592 
   593 
   593 allItemsDo:aOneArgBlock
   594 allItemsDo:aOneArgBlock
   594     "evaluate block on each item and submenu items
   595     "evaluate block on each item and submenu items
   595     "
   596     "
   596     self itemsDo:[:anItem|
   597     self itemsDo:[:anItem|
   597 	|sub|
   598         |sub|
   598 
   599 
   599 	aOneArgBlock value:anItem.
   600         aOneArgBlock value:anItem.
   600 	(sub := anItem submenu value) notNil ifTrue:[
   601         (sub := anItem submenu) notNil ifTrue:[
   601 	    sub allItemsDo:aOneArgBlock
   602             sub allItemsDo:aOneArgBlock
   602 	]
   603         ]
   603     ]
   604     ]
   604 
   605 
   605     "Modified: / 27.10.1997 / 15:09:08 / cg"
   606     "Modified: / 19.6.1998 / 00:34:53 / cg"
   606 !
   607 !
   607 
   608 
   608 detectItem:aBlock
   609 detectItem:aBlock
   609     "evaluate the argument, aBlock for each item in the menu until the
   610     "evaluate the argument, aBlock for each item in the menu until the
   610      block returns true; in this case return the item which caused the
   611      block returns true; in this case return the item which caused the
   641      the item will be returned
   642      the item will be returned
   642     "
   643     "
   643     |item|
   644     |item|
   644 
   645 
   645     items notNil ifTrue:[
   646     items notNil ifTrue:[
   646 	items do:[:anItem|
   647         items do:[:anItem|
   647 	    |sub|
   648             |sub|
   648 
   649 
   649 	    (aOneArgBlock value:anItem) ifTrue:[
   650             (aOneArgBlock value:anItem) ifTrue:[
   650 		^ anItem
   651                 ^ anItem
   651 	    ].
   652             ].
   652 	    (sub := anItem submenu value) notNil ifTrue:[
   653             (sub := anItem submenu) notNil ifTrue:[
   653 		item := sub menuAndSubmenusDetectItem:aOneArgBlock.
   654                 item := sub menuAndSubmenusDetectItem:aOneArgBlock.
   654 		item notNil ifTrue:[
   655                 item notNil ifTrue:[
   655 		    ^ item
   656                     ^ item
   656 		]
   657                 ]
   657 	    ]
   658             ]
   658 	]
   659         ]
   659     ].
   660     ].
   660     ^ nil
   661     ^ nil
   661 
   662 
   662     "Modified: / 27.10.1997 / 15:09:43 / cg"
   663     "Modified: / 19.6.1998 / 00:35:00 / cg"
   663 ! !
   664 ! !
   664 
   665 
   665 !Menu methodsFor:'kludged fixes'!
   666 !Menu methodsFor:'kludged fixes'!
   666 
   667 
   667 destroy
   668 destroy
   837 ! !
   838 ! !
   838 
   839 
   839 !Menu class methodsFor:'documentation'!
   840 !Menu class methodsFor:'documentation'!
   840 
   841 
   841 version
   842 version
   842     ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.31 1998-05-28 13:23:08 ca Exp $'
   843     ^ '$Header: /cvs/stx/stx/libview2/Menu.st,v 1.32 1998-06-18 22:58:02 cg Exp $'
   843 ! !
   844 ! !