[squeak-dev] The Inbox: Collections-ct.920.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Nov 4 19:02:04 UTC 2020


A new version of Collections was added to project The Inbox:
http://source.squeak.org/inbox/Collections-ct.920.mcz

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

Name: Collections-ct.920
Author: ct
Time: 4 November 2020, 8:01:59.526134 pm
UUID: 1a9e498f-42f5-c047-9aa5-baadcfbcb734
Ancestors: Collections-mt.919

Proposal: Honor scaleFactor for default spacings in text constants. With this change, tabs in every text editor are finally displayed hi-dpi-sensitive.

Note that I found this method rather by incident than by expertise! I strongly advise against merging this into the Trunk without prior review by someone who has a bit more knowledge of this domain than me. ;-) Is this the right place for such a change, or should we patch the senders of every constant instead?

Requires System-ct.1188.

=============== Diff against Collections-mt.919 ===============

Item was changed:
  ----- Method: Text class>>initTextConstants (in category 'class initialization') -----
  initTextConstants 
  	"Initialize constants shared by classes associated with text display, e.g., 
  	Space, Tab, Cr, Bs, ESC."
  		"1/24/96 sw: in exasperation and confusion, changed cmd-g mapping from 231 to 232 to see if I could gain any relief?!!"
  
  
  	| letter varAndValue tempArray width |
  	"CtrlA..CtrlZ, Ctrla..Ctrlz"
  	letter := $A.
   	#(		212 230 228 196 194 226 241 243 214 229 200 217 246 
  			245 216 202 210 239 211 240 197 198 209 215 242 231
  	 		1 166 228 132 130 12 232 179 150 165 136 153 182 
  			14 15 138 17 18 19 11 21 134 145 151 178 167 ) do:
  		[:kbd |
  		TextConstants at: ('Ctrl', letter asSymbol) asSymbol put: kbd asCharacter.
  		letter := letter == $Z ifTrue: [$a] ifFalse: [(letter asciiValue + 1) asCharacter]].
  
  	varAndValue := #(
  		Space	32
  		Tab		9
  		CR		13
  		Enter	3
  		BS		8
  		BS2		158
  		ESC		160
  		Clear 	173
  	).
  
  	varAndValue size odd ifTrue: [self error: 'unpaired text constant'].
  	(2 to: varAndValue size by: 2) do:
  		[:i | TextConstants at: (varAndValue at: i - 1) put: (varAndValue at: i) asCharacter].
  
+ 	varAndValue := {
+ 		#CtrlDigits. 			#(159 144 143 128 127 129 131 180 149 135).
+ 		#CtrlOpenBrackets.	#(201 7 218 249 219 15).
- 	varAndValue := #(
- 		CtrlDigits 			(159 144 143 128 127 129 131 180 149 135)
- 		CtrlOpenBrackets	(201 7 218 249 219 15)
  			"lparen gottn by ctrl-:= = 201; should be 213 but can't type that on Mac"
  
  			"values for alignment"
+ 		#LeftFlush.	0.
+ 		#RightFlush.	1.
+ 		#Centered.	2.
+ 		#Justified.	3.
- 		LeftFlush	0
- 		RightFlush	1
- 		Centered	2
- 		Justified	3
  
  			"subscripts for a marginTabsArray tuple"
+ 		#LeftMarginTab.	1.
+ 		#RightMarginTab.	2.
- 		LeftMarginTab	1
- 		RightMarginTab	2
  
  			"font faces"
+ 		#Basal.	0.
+ 		#Bold.	1.
+ 		#Italic.	2.
- 		Basal	0
- 		Bold	1
- 		Italic	2
  
  			"in case font doesn't have a width for space character"
  			"some plausible numbers-- are they the right ones?"
+ 		#DefaultSpace.			(4 * RealEstateAgent scaleFactor) rounded.
+ 		#DefaultTab.				(24 * RealEstateAgent scaleFactor) rounded.
+ 		#DefaultLineGrid.			(16 * RealEstateAgent scaleFactor) rounded.
+ 		#DefaultBaseline.			(12 * RealEstateAgent scaleFactor) rounded.
+ 		#DefaultFontFamilySize.	3	"basal, bold, italic"
+ 	}.
- 		DefaultSpace			4
- 		DefaultTab				24
- 		DefaultLineGrid			16
- 		DefaultBaseline			12
- 		DefaultFontFamilySize	3	"basal, bold, italic"
- 	).
  
  	varAndValue size odd ifTrue: [self error: 'unpaired text constant'].
  	(2 to: varAndValue size by: 2) do:
  		[:i | TextConstants at: (varAndValue at: i - 1) put: (varAndValue at: i)].
  
  	TextConstants at: #DefaultRule	put: Form over.
  	TextConstants at: #DefaultMask	put: Color black.
  
  	width := Display width max: 720.
  	tempArray := Array new: width // DefaultTab.
  	1 to: tempArray size do:
  		[:i | tempArray at: i put: DefaultTab * i].
  	TextConstants at: #DefaultTabsArray put: tempArray.
  	tempArray := Array new: (width // DefaultTab) // 2.
  	1 to: tempArray size do:
  		[:i | tempArray at: i put: (Array with: (DefaultTab*i) with: (DefaultTab*i))].
  	TextConstants at: #DefaultMarginTabsArray put: tempArray.
  
  "Text initTextConstants "!



More information about the Squeak-dev mailing list