[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
|