[squeak-dev] The Trunk: Graphics-nice.147.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Aug 22 18:35:18 UTC 2010


Nicolas Cellier uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-nice.147.mcz

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

Name: Graphics-nice.147
Author: nice
Time: 22 August 2010, 8:34:28.056 pm
UUID: a63d5fff-0971-48d2-bd1a-5c69db803809
Ancestors: Graphics-nice.146

minor change: avoid creating a SortedCollection when not necessary...
asSortedCollection asArray -> asArray sort

=============== Diff against Graphics-nice.146 ===============

Item was changed:
  ----- Method: StrikeFont class>>readStrikeFont2Family:fromDirectory: (in category 'examples') -----
  readStrikeFont2Family: familyName fromDirectory: aDirectory
  	"StrikeFont readStrikeFont2Family: 'Lucida' fromDirectory: FileDirectory default"
  	"This utility reads all available .sf2 StrikeFont files for a given family from  
  	the current directory. It returns an Array, sorted by size, suitable for handing 
  	to TextStyle newFontArray: ."
  	"For this utility to work as is, the .sf2 files must be named 'familyNN.sf2'."
+ 	| fileNames strikeFonts |
- 	| fileNames strikeFonts fontArray |
  	fileNames := aDirectory fileNamesMatching: familyName , '##.sf2'.
  	strikeFonts := fileNames collect: [:fname | StrikeFont new readFromStrike2: fname].
  	strikeFonts do: [ :font | font reset ].
+ 	^strikeFonts asArray sort: [:a :b | a height < b height].
- 	strikeFonts := strikeFonts asSortedCollection: [:a :b | a height < b height].
- 	fontArray := strikeFonts asArray.
- 	^ fontArray
  
  "TextConstants at: #Lucida put: (TextStyle fontArray: (StrikeFont 
  	readStrikeFont2Family: 'Lucida'))."!

Item was changed:
  ----- Method: TextStyle>>addNewFontSize: (in category 'fonts and font indexes') -----
  addNewFontSize: pointSize
  	"Add a font in specified size to the array of fonts."
  	| f d newArray t isSet |
  	fontArray first emphasis ~= 0 ifTrue: [
  		t := TextConstants at: self fontArray first familyName asSymbol.
  		t fonts first emphasis = 0 ifTrue: [
  			^ t addNewFontSize: pointSize.
  		].
  	].
  
  	pointSize <= 0 ifTrue: [^ nil].
  	fontArray do: [:s |
  		s pointSize = pointSize ifTrue: [^ s].
  	].
  
  	(isSet := fontArray first isKindOf: TTCFontSet) 
  	ifTrue:[
  		| fonts |
  		fonts := fontArray first fontArray collect: [ :font |
  			| newFont |
  			(font isNil)
  			ifTrue: [newFont := nil]
  			ifFalse: [
  				newFont := (font ttcDescription size > 256)
  					ifTrue: [MultiTTCFont new initialize]
  					ifFalse: [TTCFont new initialize].
  				newFont ttcDescription: font ttcDescription.
  				newFont pixelSize: pointSize * 96 // 72.
  				font derivativeFonts notEmpty ifTrue: [font derivativeFonts do: [ :proto |
  					proto ifNotNil: [
  						d := proto class new initialize.
  						d ttcDescription: proto ttcDescription.
  						d pixelSize: newFont pixelSize.
  						newFont derivativeFont: d]]].
  				].
  			newFont].
  		f := TTCFontSet newFontArray: fonts]
  	ifFalse: [
  		f := fontArray first class new initialize: fontArray first.
  		f pointSize: pointSize.
  		fontArray first derivativeFonts do: [:proto |
  			proto ifNotNil: [
  				d := proto class new initialize: proto.
  				d pointSize: f pointSize.
  				f derivativeFont: d mainFont: proto.
  			].
  		].
  	].
+ 	newArray := (fontArray copyWith: f) asArray sort: [:a :b | a pointSize <= b pointSize].
- 	newArray := ((fontArray copyWith: f) asSortedCollection: [:a :b | a pointSize <= b pointSize]) asArray.
  	self newFontArray: newArray.
  	isSet ifTrue: [
  		TTCFontSet register: newArray at: newArray first familyName asSymbol.
  	].
  	^ self fontOfPointSize: pointSize
  !




More information about the Squeak-dev mailing list