[squeak-dev] The Inbox: ToolBuilder-Morphic-rww.68.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Sep 11 20:15:05 UTC 2010


A new version of ToolBuilder-Morphic was added to project The Inbox:
http://source.squeak.org/inbox/ToolBuilder-Morphic-rww.68.mcz

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

Name: ToolBuilder-Morphic-rww.68
Author: rww
Time: 11 September 2010, 4:14:22.865 pm
UUID: aec2aa16-a008-1046-a13f-022964858636
Ancestors: ToolBuilder-Morphic-rww.67

I added PluggableDropDownListMorph and the infrastructure to build one.  PluggableDropDownListMorph>>#installDropDownList is the method that builds the Morphs.   I am currently building a label with a button.  There is no drop down list.  I was thinking a Menu would work, but a list would be better.  

=============== Diff against ToolBuilder-Morphic-rww.67 ===============

Item was added:
+ ----- Method: MorphicToolBuilder>>buildPluggableDropDownList: (in category 'pluggable widgets') -----
+ buildPluggableDropDownList: spec
+ 
+ 	| widget model listSelector selectionSelector selectionSetter |
+ 	model := spec model.
+ 	listSelector := spec listSelector.
+ 	selectionSelector := spec selectionSelector.
+ 	selectionSetter := spec selectionSetter.
+ 	widget := self dropDownListClass new
+ 		model: model;
+ 		listSelector: listSelector;
+ 		selectionSelector: selectionSelector;
+ 		selectionSetter: selectionSetter;
+ 		yourself.
+ 	self register: widget id: spec name.
+ 
+ 	widget installDropDownList.
+ 	self setFrame: spec frame in: widget.
+ 	parent ifNotNil:[self add: widget to: parent].
+ 	^widget!

Item was added:
+ ----- Method: MorphicToolBuilder>>dropDownListClass (in category 'widget classes') -----
+ dropDownListClass
+ 	^ PluggableDropDownListMorph!

Item was added:
+ AlignmentMorph subclass: #PluggableDropDownListMorph
+ 	instanceVariableNames: 'model listSelector selectionSelector selectionSetter'
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'ToolBuilder-Morphic'!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>basicPanel (in category 'drawing') -----
+ basicPanel
+ 	^BorderedMorph new
+ 		beTransparent;
+ 		extent: 0 at 0;
+ 		borderWidth: 0;
+ 		layoutInset: 0;
+ 		cellInset: 0;
+ 		layoutPolicy: TableLayout new;
+ 		listCentering: #topLeft;
+ 		cellPositioning: #center;
+ 		hResizing: #spaceFill;
+ 		vResizing: #shrinkWrap;
+ 		yourself!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>currentSelection (in category 'accessing') -----
+ currentSelection
+ 
+ 	^ self model perform: selectionSelector!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>currentSelection: (in category 'accessing') -----
+ currentSelection: obj
+ 
+ 	^ self model perform: selectionSetter with: obj!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>horizontalPanel (in category 'drawing') -----
+ horizontalPanel
+ 	^self basicPanel
+ 		cellPositioning: #center;
+ 		listDirection: #leftToRight;
+ 		yourself.!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>installDropDownList (in category 'drawing') -----
+ installDropDownList
+ 
+ 	| aButton aLabel |
+ 	aButton := PluggableButtonMorph on: self model getState: nil action: nil.
+ 	aLabel := (StringMorph contents: self model currentRemoteVatId translated
+ 				font: (StrikeFont familyName: TextStyle defaultFont familyName
+ 							size: TextStyle defaultFont pointSize - 1)).
+ 	self addMorph: (self horizontalPanel
+ 		addMorphBack: aLabel;
+ 		addMorphBack: aButton;
+ 		yourself).!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>list (in category 'accessing') -----
+ list
+ 	"Answer the value of list"
+ 
+ 	^ self model perform: self listSelector.
+ 	!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>listSelector (in category 'accessing') -----
+ listSelector
+ 	"Answer the value of listSelector"
+ 
+ 	^ listSelector!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>listSelector: (in category 'accessing') -----
+ listSelector: anObject
+ 	"Set the value of listSelector"
+ 
+ 	listSelector := anObject!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>model (in category 'accessing') -----
+ model
+ 	^ model!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>model: (in category 'accessing') -----
+ model: anObject
+ 	"Set the value of model"
+ 
+ 	model := anObject!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>selectionSelector (in category 'accessing') -----
+ selectionSelector
+ 	"Answer the value of selectionSelector"
+ 
+ 	^ selectionSelector!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>selectionSelector: (in category 'accessing') -----
+ selectionSelector: anObject
+ 	"Set the value of selectionSelector"
+ 
+ 	selectionSelector := anObject!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>selectionSetter (in category 'accessing') -----
+ selectionSetter
+ 	"Answer the value of selectionSetter"
+ 
+ 	^ selectionSetter!

Item was added:
+ ----- Method: PluggableDropDownListMorph>>selectionSetter: (in category 'accessing') -----
+ selectionSetter: anObject
+ 	"Set the value of selectionSetter"
+ 
+ 	selectionSetter := anObject!




More information about the Squeak-dev mailing list