[squeak-dev] The Trunk: EToys-mt.466.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Mar 10 13:20:03 UTC 2022


Marcel Taeumel uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-mt.466.mcz

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

Name: EToys-mt.466
Author: mt
Time: 10 March 2022, 2:19:57.521707 pm
UUID: cf39b2f9-09bf-904f-a635-fd7d95a19272
Ancestors: EToys-mt.465

Complements Multilingual-mt.269

=============== Diff against EToys-mt.465 ===============

Item was removed:
- ClipboardInterpreter subclass: #CP1253ClipboardInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: CP1253ClipboardInterpreter>>fromSystemClipboard: (in category 'as yet unclassified') -----
- fromSystemClipboard: aString
- 
- 	| result converter |
- 	result := WriteStream on: (String new: aString size).
- 	converter := CP1253TextConverter new.
- 	aString do: [:each |
- 		result nextPut: (converter toSqueak: each macToSqueak) asCharacter.
- 	].
- 	^ result contents.
- !

Item was removed:
- ----- Method: CP1253ClipboardInterpreter>>toSystemClipboard: (in category 'as yet unclassified') -----
- toSystemClipboard: aString
- 
- 	| result converter r |
- 	aString isAsciiString ifTrue: [^ aString asOctetString]. "optimization"
- 
- 	result := WriteStream on: (String new: aString size).
- 	converter := CP1253TextConverter new.
- 	aString do: [:each |
- 		r := converter fromSqueak: each.
- 		r charCode < 255 ifTrue: [
- 		result nextPut: r squeakToMac]].
- 	^ result contents.
- !

Item was removed:
- KeyboardInputInterpreter subclass: #CP1253InputInterpreter
- 	instanceVariableNames: 'converter'
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: CP1253InputInterpreter>>initialize (in category 'as yet unclassified') -----
- initialize
- 
- 	converter := CP1253TextConverter new.
- !

Item was removed:
- ----- Method: CP1253InputInterpreter>>nextCharFrom:firstEvt: (in category 'as yet unclassified') -----
- nextCharFrom: sensor firstEvt: evtBuf
- 
- 	| keyValue |
- 	keyValue := evtBuf third.
- 	^ converter toSqueak: keyValue asCharacter.
- !

Item was removed:
- ClipboardInterpreter subclass: #ISO88597ClipboardInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: ISO88597ClipboardInterpreter>>fromSystemClipboard: (in category 'as yet unclassified') -----
- fromSystemClipboard: aString
- 
- 	^ aString convertFromWithConverter: ISO88597TextConverter new.
- !

Item was removed:
- ----- Method: ISO88597ClipboardInterpreter>>toSystemClipboard: (in category 'as yet unclassified') -----
- toSystemClipboard: aString
- 
- 	| result converter |
- 
- 	aString isAsciiString ifTrue: [^ aString asOctetString]. "optimization"
- 
- 	result := WriteStream on: (String new: aString size).
- 	converter := ISO88597TextConverter new.
- 	aString do: [:each |
- 		result nextPut: (converter fromSqueak: each).].
- 	^ result contents.
- !

Item was removed:
- KeyboardInputInterpreter subclass: #ISO88597InputInterpreter
- 	instanceVariableNames: 'converter'
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: ISO88597InputInterpreter>>initialize (in category 'as yet unclassified') -----
- initialize
- 
- 	converter := ISO88597TextConverter new.
- !

Item was removed:
- ----- Method: ISO88597InputInterpreter>>nextCharFrom:firstEvt: (in category 'as yet unclassified') -----
- nextCharFrom: sensor firstEvt: evtBuf
- 
- 	| keyValue |
- 	keyValue := evtBuf third.
- 	^ converter toSqueak: keyValue asCharacter.
- !

Item was removed:
- ----- Method: LanguageEnvironment class>>setUsePangoFlag (in category '*Etoys-Squeakland-private') -----
- setUsePangoFlag
- 
- 	| new old |
- 	old := Preferences usePangoRenderer.
- 	Smalltalk at: #RomePluginCanvas ifPresent: [:c |
- 		new := c pangoIsAvailable and: [Locale current languageEnvironment class usePangoRenderer]].
- 	(old not and: [new]) ifTrue: [
- 		Preferences setPreference: #usePangoRenderer toValue: new.
- 		TextMorph usePango: new.
- 	].!

Item was removed:
- ----- Method: LanguageEnvironment class>>usePangoRenderer (in category '*Etoys-Squeakland-private') -----
- usePangoRenderer
- 
- 	| tr font phraseTest fontName |
- 	Preferences usePangoRenderer ifTrue: [^ true].
- 
- 	"first, see if people specified font." 
- 	tr := NaturalLanguageTranslator current.
- 	fontName := tr translate: 'Linux-Font'.
- 	(fontName ~= 'Linux-Font'
- 			and: [(StrikeFont familyNames includes: fontName asSymbol) not]) ifTrue: [^ true].
- 
- 	font := TextStyle defaultFont.
- 	phraseTest := [:phrase |
- 		phrase  do: [:c |
- 			(font hasGlyphWithFallbackOf: c) ifFalse: [^ true]]].
- 
- 	"Hopefully people start translating phrases that are really used, but also people translate on the Pootle server which has a ideosyncratic ordering..."
- 	#('Rectangle' 'Text' 'forward by' 'turn by' 'color' 'choose new graphic' 'linear gradient' 'open as Flash' 'set custom action' 'show compressed size' 'more smoothing') do: [:ph | phraseTest value: (tr translate: ph)].
- 
- 	"But it is not often the case; so a bit more testing..."
- 	10 timesRepeat: [
- 		phraseTest value: tr atRandom].
- 
- 	^ false.
- !

Item was removed:
- ----- Method: Locale class>>previous: (in category '*Etoys-Squeakland-accessing') -----
- previous: aLocale
- 	Previous := aLocale
- !

Item was removed:
- LanguageEnvironment subclass: #M17nEnvironment
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-Languages'!
- 
- !M17nEnvironment commentStamp: 'kks 10/2/2010 19:45' prior: 0!
- This class supports multilingual Unicode environments that use UTF-8 encoding. Such a large scope implies the use of external fonts and external rendering engines like Pango. Currently, it is useful for Indic and a few Asian languages.!

Item was removed:
- ----- Method: M17nEnvironment class>>clipboardInterpreterClass (in category 'subclass responsibilities') -----
- clipboardInterpreterClass
- 
- 	^ UTF8ClipboardInterpreter.
- !

Item was removed:
- ----- Method: M17nEnvironment class>>fileNameConverterClass (in category 'subclass responsibilities') -----
- fileNameConverterClass
- 
- 	^ UTF8TextConverter.
- !

Item was removed:
- ----- Method: M17nEnvironment class>>inputInterpreterClass (in category 'subclass responsibilities') -----
- inputInterpreterClass
- 	| platformName |
- 	platformName := SmalltalkImage current platformName.
- 	platformName = 'MacOS'
- 			ifTrue: [^MacRomanInputInterpreter].
- 	^M17nInputInterpreter.!

Item was removed:
- ----- Method: M17nEnvironment class>>leadingChar (in category 'subclass responsibilities') -----
- leadingChar
- 
- 	^ Unicode leadingChar.
- !

Item was removed:
- ----- Method: M17nEnvironment class>>supportedLanguages (in category 'subclass responsibilities') -----
- supportedLanguages
- 	"Include languages that will not conflict with other languages"
- 	
- 	^#('bn' 'gu' 'hi' 'kn' 'ml' 'mr' 'ta' 'te' 'sa')!

Item was removed:
- ----- Method: M17nEnvironment class>>systemConverterClass (in category 'subclass responsibilities') -----
- systemConverterClass
- 
- 	^ UTF8TextConverter.!

Item was removed:
- KeyboardInputInterpreter subclass: #M17nInputInterpreter
- 	instanceVariableNames: 'converter'
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!
- 
- !M17nInputInterpreter commentStamp: 'kks 10/2/2010 23:26' prior: 0!
- A flexible input interpreter that is tuned to variations in keyboard events coming in from the VM.
- 
- Old VMs passed only a 8-bit keycode evt[3] and 0 in evt[6]. This code could be in any one of the code pages. On Mac, this used mac-roman, while on Unix, this could be ASCII or UTF-8 depending on the locale.
- 
- Newer VMs pass UTF32 in evt[6]. This can be 'cooked' based on the current language setting to generate a Character.!

Item was removed:
- ----- Method: M17nInputInterpreter>>initialize (in category 'as yet unclassified') -----
- initialize
- 
- 	converter := UTF8TextConverter new.!

Item was removed:
- ----- Method: M17nInputInterpreter>>nextCharFrom:firstEvt: (in category 'as yet unclassified') -----
- nextCharFrom: sensor firstEvt: evtBuf 
- 	| keyValue |
- 	keyValue := evtBuf at: 6.
- 	0 = keyValue ifTrue: [ ^self nextUtf8Char: sensor firstEvt: evtBuf ].
- 	256 > keyValue ifTrue: [ ^keyValue asCharacter ].
- 	^ Character leadingChar: (Locale current languageEnvironment leadingChar) code: keyValue!

Item was removed:
- ----- Method: M17nInputInterpreter>>nextUtf8Char:firstEvt: (in category 'as yet unclassified') -----
- nextUtf8Char: sensor firstEvt: evtBuf
- 	"this code should really go into InputSensor>>fullKey"
- 	| aCollection bytes peekEvent keyValue type stream multiChar evt |
- 	self flag: #fixthis.
- 	keyValue := evtBuf third.
- 	evtBuf fourth = EventKeyChar ifTrue: [type := #keystroke].
- 	peekEvent := sensor peekEvent.
- 	(peekEvent notNil and: [peekEvent fourth = EventKeyDown]) ifTrue: [
- 		sensor nextEvent.
- 		peekEvent := sensor peekEvent].
- 
- 	(type == #keystroke
- 	and: [peekEvent notNil 
- 	and: [peekEvent first = EventTypeKeyboard
- 	and: [peekEvent fourth = EventKeyChar]]]) ifTrue: [
- 		aCollection := OrderedCollection with: keyValue asCharacter.
- 		bytes := (keyValue <= 127)
- 			ifTrue: [ 0 ]
- 			ifFalse: [ (keyValue bitAnd: 16rE0) = 192
- 				ifTrue: [ 1 ]
- 				ifFalse: [ (keyValue bitAnd: 16rF0) = 224
- 					ifTrue: [ 2 ]
- 					ifFalse: [ 3 ]
- 				]
- 			].
- 		[bytes > 0] whileTrue: [
- 			(evt :=  sensor nextEvent) fourth = EventKeyChar ifTrue: [
- 				bytes := bytes - 1.
- 				aCollection add: (Character value: evt third)]].
- 		"aCollection do: [ :each | Transcript show: (each asciiValue hex , ' ')].
- 		Transcript show: Character cr."
- 		stream := ReadStream on: (String withAll: aCollection).
- 		multiChar := converter nextFromStream: stream.
- 		multiChar isOctetCharacter ifFalse: [ sensor nextEvent ].
- 		^ multiChar].
- 
- 	^ keyValue asCharacter!

Item was removed:
- ClipboardInterpreter subclass: #MacUTF8ClipboardInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: MacUTF8ClipboardInterpreter>>fromSystemClipboard: (in category 'as yet unclassified') -----
- fromSystemClipboard: aString
- 	^ aString convertFromWithConverter: UTF8TextConverter new!

Item was removed:
- ----- Method: MacUTF8ClipboardInterpreter>>toSystemClipboard: (in category 'as yet unclassified') -----
- toSystemClipboard: text
- 
- 	| string |
- 	string := text asString.
- 	string isAsciiString ifTrue: [^ string asOctetString].
- 	string isOctetString ifTrue: [^ string ].
- 	^ string convertToWithConverter: UTF8TextConverter new .
- !

Item was removed:
- LanguageEnvironment subclass: #NepaleseEnvironment
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-Languages'!

Item was removed:
- ----- Method: NepaleseEnvironment class>>clipboardInterpreterClass (in category 'subclass responsibilities') -----
- clipboardInterpreterClass
- 
- 	^ UTF8ClipboardInterpreter.
- !

Item was removed:
- ----- Method: NepaleseEnvironment class>>fileNameConverterClass (in category 'subclass responsibilities') -----
- fileNameConverterClass
- 
- 	^ UTF8TextConverter.
- !

Item was removed:
- ----- Method: NepaleseEnvironment class>>inputInterpreterClass (in category 'subclass responsibilities') -----
- inputInterpreterClass
- 	| platformName |
- 	platformName := SmalltalkImage current platformName.
- 	platformName = 'Win32'
- 		ifTrue: [^ UTF32NPInputInterpreter].
- 	platformName = 'Mac OS'
- 		ifTrue: [^ MacUnicodeInputInterpreter].
- 	platformName = 'unix'
- 		ifTrue: [^ UTF32NPInputInterpreter].
- 	^ MacRomanInputInterpreter!

Item was removed:
- ----- Method: NepaleseEnvironment class>>leadingChar (in category 'subclass responsibilities') -----
- leadingChar
- 
- 	^ 15.
- !

Item was removed:
- ----- Method: NepaleseEnvironment class>>supportedLanguages (in category 'subclass responsibilities') -----
- supportedLanguages
- 	"Return the languages that this class supports. 
- 	Any translations for those languages will use this class as their environment."
- 	
- 	^#('ne')!

Item was removed:
- ----- Method: NepaleseEnvironment class>>systemConverterClass (in category 'subclass responsibilities') -----
- systemConverterClass
- 
- 	^ UTF8TextConverter.
- !

Item was removed:
- KeyboardInputInterpreter subclass: #UTF32CNInputInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: UTF32CNInputInterpreter>>nextCharFrom:firstEvt: (in category 'as yet unclassified') -----
- nextCharFrom: sensor firstEvt: evtBuf 
- 	| keyValue |
- 	keyValue := evtBuf at: 6.
- 	keyValue < 256
- 		ifTrue: [^Character value: keyValue].
- 	^ Character leadingChar: SimplifiedChineseEnvironment leadingChar code: keyValue!

Item was removed:
- UTF32InputInterpreter subclass: #UTF32GreekInputInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: UTF32GreekInputInterpreter>>nextCharFrom:firstEvt: (in category 'as yet unclassified') -----
- nextCharFrom: sensor firstEvt: evtBuf 
- 	| keyValue |
- 	keyValue := evtBuf at: 6.
- 	keyValue < 256
- 		ifTrue: [^Character value: keyValue].
- 	^ Character leadingChar: GreekEnvironment leadingChar code: keyValue!

Item was removed:
- KeyboardInputInterpreter subclass: #UTF32NPInputInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: UTF32NPInputInterpreter>>nextCharFrom:firstEvt: (in category 'all') -----
- nextCharFrom: sensor firstEvt: evtBuf 
- 	| keyValue |
- 	keyValue := evtBuf at: 6.
- 	keyValue < 256
- 		ifTrue: [^Character value: keyValue].
- 	^ Character leadingChar: NepaleseEnvironment leadingChar code: keyValue!

Item was removed:
- UTF8ClipboardInterpreter subclass: #UTF8CNClipboardInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: UTF8CNClipboardInterpreter>>fromSystemClipboard: (in category 'as yet unclassified') -----
- fromSystemClipboard: aString
- 	^aString convertFromWithConverter: UTF8TextConverter new.!

Item was removed:
- UTF8ClipboardInterpreter subclass: #UTF8GreekClipboardInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: UTF8GreekClipboardInterpreter>>fromSystemClipboard: (in category 'as yet unclassified') -----
- fromSystemClipboard: aString
- 	| str |
- 	str := aString convertFromWithConverter: UTF8TextConverter new.
- 	^ str collect: [:c |
- 		(#(
- 		16r20AC 16rFFFD 16r201A 16r0192 16r201E 16r2026 16r2020 16r2021
- 		16rFFFD 16r2030 16rFFFD 16r2039 16rFFFD 16rFFFD 16rFFFD 16rFFFD
- 		16rFFFD 16r2018 16r2019 16r201C 16r201D 16r2022 16r2013 16r2014
- 		16rFFFD 16r2122 16rFFFD 16r203A 16rFFFD 16rFFFD 16rFFFD 16rFFFD
- 		16r00A0 16r0385 16r0386 16r00A3 16r00A4 16r00A5 16r00A6 16r00A7
- 		16r00A8 16r00A9 16rFFFD 16r00AB 16r00AC 16r00AD 16r00AE 16r2015
- 		16r00B0 16r00B1 16r00B2 16r00B3 16r0384 16r00B5 16r00B6 16r00B7
- 		16r0388 16r0389 16r038A 16r00BB 16r038C 16r00BD 16r038E 16r038F
- 		16r0390 16r0391 16r0392 16r0393 16r0394 16r0395 16r0396 16r0397
- 		16r0398 16r0399 16r039A 16r039B 16r039C 16r039D 16r039E 16r039F
- 		16r03A0 16r03A1 16rFFFD 16r03A3 16r03A4 16r03A5 16r03A6 16r03A7
- 		16r03A8 16r03A9 16r03AA 16r03AB 16r03AC 16r03AD 16r03AE 16r03AF
- 		16r03B0 16r03B1 16r03B2 16r03B3 16r03B4 16r03B5 16r03B6 16r03B7
- 		16r03B8 16r03B9 16r03BA 16r03BB 16r03BC 16r03BD 16r03BE 16r03BF
- 		16r03C0 16r03C1 16r03C2 16r03C3 16r03C4 16r03C5 16r03C6 16r03C7
- 		16r03C8 16r03C9 16r03CA 16r03CB 16r03CC 16r03CD 16r03CE 16rFFFD
- 		) includes: c charCode) ifTrue: [Character leadingChar: GreekEnvironment leadingChar code: c charCode] ifFalse: [c]].
- 	!

Item was removed:
- UTF8ClipboardInterpreter subclass: #UTF8JPClipboardInterpreter
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: UTF8JPClipboardInterpreter>>fromSystemClipboard: (in category 'as yet unclassified') -----
- fromSystemClipboard: aString
- 	^aString convertFromWithConverter: UTF8TextConverter new.
- !

Item was removed:
- KeyboardInputInterpreter subclass: #UnixEUCKRInputInterpreter
- 	instanceVariableNames: 'converter'
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Etoys-Squeakland-Multilingual-TextConversion'!

Item was removed:
- ----- Method: UnixEUCKRInputInterpreter>>initialize (in category 'as yet unclassified') -----
- initialize
- 
- 	converter := EUCKRTextConverter new.
- !

Item was removed:
- ----- Method: UnixEUCKRInputInterpreter>>nextCharFrom:firstEvt: (in category 'as yet unclassified') -----
- nextCharFrom: sensor firstEvt: evtBuf
- 
- 	| firstChar secondChar peekEvent keyValue type stream multiChar |
- 	keyValue := evtBuf third.
- 	evtBuf fourth = EventKeyChar ifTrue: [type := #keystroke].
- 	peekEvent := sensor peekEvent.
- 	(peekEvent notNil and: [peekEvent fourth = EventKeyDown]) ifTrue: [
- 		sensor nextEvent.
- 		peekEvent := sensor peekEvent].
- 
- 	(type == #keystroke
- 	and: [peekEvent notNil 
- 	and: [peekEvent first = EventTypeKeyboard
- 	and: [peekEvent fourth = EventKeyChar]]]) ifTrue: [
- 		firstChar := keyValue asCharacter.
- 		secondChar := (peekEvent third) asCharacter.
- 		stream := ReadStream on: (String with: firstChar with: secondChar).
- 		multiChar := converter nextFromStream: stream.
- 		multiChar isOctetCharacter ifFalse: [sensor nextEvent].
- 		^ multiChar].
- 
- 	^ keyValue asCharacter!



More information about the Squeak-dev mailing list