~hilaire-fernandes/drgeo/trunk

« back to all changes in this revision

Viewing changes to src/DrGeo.pck.st

  • Committer: Hilaire Fernandes
  • Date: 2023-11-16 22:47:55 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20231116224755-6mpr45nsvtyac4rd
Language font manager WIP

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
'From Cuis 6.0 [latest update: #6068] on 14 November 2023 at 12:22:29 am'!
 
1
'From Cuis 6.0 [latest update: #6068] on 16 November 2023 at 11:47:22 pm'!
2
2
'Description '!
3
 
!provides: 'DrGeo' 1 644!
 
3
!provides: 'DrGeo' 1 646!
4
4
!requires: 'Gettext' 1 17 nil!
5
5
!requires: 'SVG' 1 16 nil!
6
6
!requires: 'YAXO' 1 19 nil!
2920
2920
DrGeoSystem class
2921
2921
        instanceVariableNames: 'platform'!
2922
2922
 
 
2923
!classDefinition: #LanguageFont category: #'DrGeo-System'!
 
2924
Object subclass: #LanguageFont
 
2925
        instanceVariableNames: 'locales family file'
 
2926
        classVariableNames: ''
 
2927
        poolDictionaries: ''
 
2928
        category: 'DrGeo-System'!
 
2929
!classDefinition: 'LanguageFont class' category: #'DrGeo-System'!
 
2930
LanguageFont class
 
2931
        instanceVariableNames: ''!
 
2932
 
 
2933
!classDefinition: #LanguageFontManager category: #'DrGeo-System'!
 
2934
Object subclass: #LanguageFontManager
 
2935
        instanceVariableNames: 'languageFonts'
 
2936
        classVariableNames: ''
 
2937
        poolDictionaries: ''
 
2938
        category: 'DrGeo-System'!
 
2939
!classDefinition: 'LanguageFontManager class' category: #'DrGeo-System'!
 
2940
LanguageFontManager class
 
2941
        instanceVariableNames: ''!
 
2942
 
2923
2943
 
2924
2944
!DrGeoDomain commentStamp: '<historical>' prior: 0!
2925
2945
This is the domain object for DrGeo, aka the top level Model instance for one DrGeo instance. 
3479
3499
I map settings/preferences to the underneath hardware/os plateform
3480
3500
Pattern: strategy!
3481
3501
 
 
3502
!LanguageFont commentStamp: '<historical>' prior: 0!
 
3503
Associate several LocaleIDs (fr_FR, zh_TW, zh_CN) with an appropriate font.
 
3504
- locales : a collection of LocaleID
 
3505
- family : a String, font family name
 
3506
- file : a String, file name of the font!
 
3507
 
3482
3508
!DrGeoDomain methodsFor: 'initialize-release' stamp: 'hlsf 3/9/2023 17:26:59'!
3483
3509
initialize
3484
3510
        super initialize.
33538
33564
] fork
33539
33565
! !
33540
33566
 
 
33567
!LanguageFont methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:00:43'!
 
33568
addLocale: aLocaleID
 
33569
        locales add: aLocaleID ! !
 
33570
 
 
33571
!LanguageFont methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:29:35'!
 
33572
family
 
33573
        ^ family! !
 
33574
 
 
33575
!LanguageFont methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:28:48'!
 
33576
family: aFamilyFont
 
33577
        family := aFamilyFont ! !
 
33578
 
 
33579
!LanguageFont methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:29:41'!
 
33580
file
 
33581
        ^ file ! !
 
33582
 
 
33583
!LanguageFont methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:29:11'!
 
33584
file: aFontFile
 
33585
        file := aFontFile ! !
 
33586
 
 
33587
!LanguageFont methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:19:40'!
 
33588
handles: aLocaleID
 
33589
        ^ locales includes: aLocaleID! !
 
33590
 
 
33591
!LanguageFont methodsFor: 'initialization' stamp: 'hlsf 11/16/2023 23:01:36'!
 
33592
initialize
 
33593
        super initialize.
 
33594
        locales := OrderedCollection new! !
 
33595
 
 
33596
!LanguageFont methodsFor: 'as yet unclassified' stamp: 'hlsf 11/16/2023 23:47:01'!
 
33597
printOn: str
 
33598
        str nextPutAll: 'LanguageFont for '.
 
33599
        locales 
 
33600
                do: [:each |str nextPutAll: each isoString] 
 
33601
                separatedBy: [str nextPut: Character space]
 
33602
        ! !
 
33603
 
 
33604
!LanguageFont class methodsFor: 'instance creation' stamp: 'hlsf 11/16/2023 23:30:43'!
 
33605
family: aString1 file: aString2
 
33606
        ^ self new
 
33607
                family: aString1;
 
33608
                file: aString2 ;
 
33609
                yourself! !
 
33610
 
 
33611
!LanguageFontManager methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:28:15'!
 
33612
add: aLanguageFont
 
33613
        languageFonts add: aLanguageFont ! !
 
33614
 
 
33615
!LanguageFontManager methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:06:05'!
 
33616
familyNameFor: localeID! !
 
33617
 
 
33618
!LanguageFontManager methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:06:11'!
 
33619
fontFileFor: localeID! !
 
33620
 
 
33621
!LanguageFontManager methodsFor: 'accessing' stamp: 'hlsf 11/16/2023 23:21:55'!
 
33622
languageFontFor: aLocaleID
 
33623
        (self europeanLang includes: aLocaleID isoLanguage asSymbol)            ifTrue: [^ nil]. "Use Deja Vu font within Cuis"
 
33624
        ^ languageFonts detect: [:each | each handles: aLocaleID] ifNone: [nil]! !
 
33625
 
 
33626
!LanguageFontManager methodsFor: 'initialization' stamp: 'hlsf 11/16/2023 23:07:06'!
 
33627
initialize
 
33628
        super initialize.
 
33629
        languageFonts := OrderedCollection new! !
 
33630
 
 
33631
!LanguageFontManager methodsFor: 'as yet unclassified' stamp: 'hlsf 11/16/2023 23:13:02'!
 
33632
europeanLang
 
33633
        ^ `#(#ast #ca #cs #da #de #en #es #fi #fr #it #nl #pt #ru #sv #tr #uk)`! !
 
33634
 
33541
33635
!Object methodsFor: '*DrGeo' stamp: 'hlsf 6/20/2021 11:37:54'!
33542
33636
isAngleItem
33543
33637
        ^false! !