'From Pharo4.0 of 18 March 2013 [Latest update: #40419] on 20 December 2014 at 1:15:34.316573 am'! !MenuModel methodsFor: 'protocol' stamp: 'NicolaiHess 12/20/2014 00:35'! buildWithSpecAsMenu ^ self buildWithSpec: #menu! ! !ToolDockingBarMorph methodsFor: '*Spec-Core' stamp: 'NicolaiHess 12/20/2014 00:34'! adoptMenuItemModel: item accumulator: controls item subMenu ifNil: [ | button | button := self buildButtonFor: item. controls add: button ] ifNotNil: [ self emptyAccumulator: controls. self addMorphBack: (Smalltalk ui theme newToolSpacerIn: self). self add: item name font: Smalltalk ui theme menuBarFont icon: item icon help: item description subMenu: item subMenu buildWithSpecAsMenu . self addMorphBack: (Smalltalk ui theme newToolSpacerIn: self) ]! ! !MorphicMenuAdapter methodsFor: 'initialization' stamp: 'NicolaiHess 12/20/2014 00:33'! adaptAsMenu: aComposableModel model := aComposableModel. aComposableModel addDependent: self. widget := self buildWidgetMenu.! ! !MorphicMenuAdapter methodsFor: 'private' stamp: 'NicolaiHess 12/20/2014 00:33'! buildWidgetMenu widget := self basicMenu. self menuGroups do: [ :group | | items | items := group buildWithSpec. items do: [ :item | widget addMenuItem: item ] ] separatedBy: [ widget addLine ]. ^ widget! ! !MorphicMenuAdapter methodsFor: 'private' stamp: 'NicolaiHess 12/20/2014 00:32'! basicMenu ^ DockingBarMenuMorph new addIfNeededTitle: self title andIcon: self icon! ! !MorphicMenuAdapter class methodsFor: 'instance creation' stamp: 'NicolaiHess 12/20/2014 00:31'! adaptAsMenu: aComposableModel ^ self new adaptAsMenu: aComposableModel; yourself! ! !MenuModel class methodsFor: 'specs' stamp: 'NicolaiHess 12/20/2014 00:35'! menu ^ #(MenuAdapter adaptAsMenu: #(model))! !