[squeak-dev] The Trunk: ToolBuilder-Morphic-topa.190.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Jan 17 16:59:13 UTC 2017


Tobias Pape uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-topa.190.mcz

==================== Summary ====================

Name: ToolBuilder-Morphic-topa.190
Author: topa
Time: 17 January 2017, 5:57:56.691276 pm
UUID: 9b5813db-ef4d-4ef5-ba76-aa5473e98231
Ancestors: ToolBuilder-Morphic-nice.189

re-use settings for multi- and single-selection lists in toolbuilder

=============== Diff against ToolBuilder-Morphic-nice.189 ===============

Item was changed:
  ----- Method: MorphicToolBuilder>>buildPluggableList: (in category 'widgets required') -----
  buildPluggableList: aSpec
  	| widget listClass getIndex setIndex |
  	aSpec getSelected ifNil:[
  		listClass := self listClass.
  		getIndex := aSpec getIndex.
  		setIndex := aSpec setIndex.
  	] ifNotNil:[
  		listClass := self listByItemClass.
  		getIndex := aSpec getSelected.
  		setIndex := aSpec setSelected.
  	].
  	widget := listClass on: aSpec model
  				list: aSpec list
  				selected: getIndex
  				changeSelected: setIndex
  				menu: aSpec menu
  				keystroke: aSpec keyPress.
  	self register: widget id: aSpec name.
  	
+ 	widget
+ 		dragItemSelector: aSpec dragItem;
+ 		dropItemSelector: aSpec dropItem;
+ 		wantsDropSelector: aSpec dropAccept;
+ 		dragStartedSelector: aSpec dragStarted.
+ 
+ 	self setListPropertiesFor: widget spec: aSpec.
- 	"Override default scroll bar policies if needed. Widget will use preference values otherwise."
- 	aSpec hScrollBarPolicy ifNotNil: [:policy |
- 		policy caseOf: {
- 			[#always] -> [widget alwaysShowHScrollBar].
- 			[#never] -> [widget hideHScrollBarIndefinitely].
- 			[#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]. } ].
- 	aSpec vScrollBarPolicy ifNotNil: [:policy |
- 		policy caseOf: {
- 			[#always] -> [widget alwaysShowVScrollBar].
- 			[#never] -> [widget hideVScrollBarIndefinitely].
- 			[#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]. } ].	
- 	
- 	widget getListElementSelector: aSpec listItem.
- 	widget getListSizeSelector: aSpec listSize.
- 	widget getIconSelector: aSpec icon.
- 	widget getHelpSelector: aSpec helpItem.
- 	widget doubleClickSelector: aSpec doubleClick.
- 	
- 	widget dragItemSelector: aSpec dragItem.
- 	widget dropItemSelector: aSpec dropItem.
- 	widget wantsDropSelector: aSpec dropAccept.
- 	widget dragStartedSelector: aSpec dragStarted.
- 	
- 	widget autoDeselect: aSpec autoDeselect.
- 	widget keystrokePreviewSelector: aSpec keystrokePreview.
- 	
- 	aSpec filterableList ifNotNil: [:b | widget filterableList: b].
- 	aSpec clearFilterAutomatically ifNotNil: [:b | widget clearFilterAutomatically: b].
- 	
- 	aSpec color ifNotNil: [:c | widget color: c].
- 	self buildHelpFor: widget spec: aSpec. 
- 			
- 	self setFrame: aSpec frame in: widget.
- 	self setLayoutHintsFor: widget spec: aSpec.
- 	
- 	parent ifNotNil:[self add: widget to: parent].
- 	panes ifNotNil:[
- 		aSpec list ifNotNil:[panes add: aSpec list].
- 	].
  	^widget!

Item was changed:
  ----- Method: MorphicToolBuilder>>buildPluggableMultiSelectionList: (in category 'widgets optional') -----
  buildPluggableMultiSelectionList: aSpec
  	| widget listClass |
  	aSpec getSelected ifNotNil:[^self error:'There is no PluggableListMorphOfManyByItem'].
  	listClass := self multiSelectListClass.
  	widget := listClass on: aSpec model
  		list: aSpec list
  		primarySelection: aSpec getIndex
  		changePrimarySelection: aSpec setIndex
  		listSelection: aSpec getSelectionList
  		changeListSelection: aSpec setSelectionList
  		menu: aSpec menu.
- 	self register: widget id: aSpec name.
  	widget keystrokeActionSelector: aSpec keyPress.
+ 	self register: widget id: aSpec name.
+ 	self setListPropertiesFor: widget spec: aSpec.
- 	widget getListElementSelector: aSpec listItem.
- 	widget getListSizeSelector: aSpec listSize.
- 	self buildHelpFor: widget spec: aSpec. 
- 	self setFrame: aSpec frame in: widget.
- 	self setLayoutHintsFor: widget spec: aSpec.
- 	parent ifNotNil:[self add: widget to: parent].
- 	panes ifNotNil:[
- 		aSpec list ifNotNil:[panes add: aSpec list].
- 	].
  	^widget!

Item was added:
+ ----- Method: MorphicToolBuilder>>setListPropertiesFor:spec: (in category 'private') -----
+ setListPropertiesFor: widget spec: aSpec
+ 		
+ 	"Override default scroll bar policies if needed. Widget will use preference values otherwise."
+ 	aSpec hScrollBarPolicy ifNotNil: [:policy |
+ 		policy caseOf: {
+ 			[#always] -> [widget alwaysShowHScrollBar].
+ 			[#never] -> [widget hideHScrollBarIndefinitely].
+ 			[#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]. } ].
+ 	aSpec vScrollBarPolicy ifNotNil: [:policy |
+ 		policy caseOf: {
+ 			[#always] -> [widget alwaysShowVScrollBar].
+ 			[#never] -> [widget hideVScrollBarIndefinitely].
+ 			[#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]. } ].	
+ 	
+ 	widget
+ 		getListElementSelector: aSpec listItem;
+ 		getListSizeSelector: aSpec listSize;
+ 		getIconSelector: aSpec icon;
+ 		getHelpSelector: aSpec helpItem;
+ 		doubleClickSelector: aSpec doubleClick.
+ 	
+ 	widget
+ 		autoDeselect: aSpec autoDeselect;
+ 		keystrokePreviewSelector: aSpec keystrokePreview.
+ 	
+ 	aSpec filterableList ifNotNil: [:b | widget filterableList: b].
+ 	aSpec clearFilterAutomatically ifNotNil: [:b | widget clearFilterAutomatically: b].
+ 	
+ 	aSpec color ifNotNil: [:c | widget color: c].
+ 	self buildHelpFor: widget spec: aSpec. 
+ 			
+ 	self setFrame: aSpec frame in: widget.
+ 	self setLayoutHintsFor: widget spec: aSpec.
+ 	
+ 	parent ifNotNil:[self add: widget to: parent].
+ 	(panes notNil and: [aSpec list notNil]) ifTrue: [panes add: aSpec list].
+ !



More information about the Squeak-dev mailing list