FontPanel.st
author sr
Tue, 11 Jun 2019 11:47:16 +0200
changeset 6604 89a0c07bbba9
parent 6570 32fbafd67a49
child 6701 a6021a918f97
permissions -rw-r--r--
#BUGFIX by Stefan Reise fixed recursion when calling #showSelectedFont #updateFamilyList class: FontPanel added: #updateFamilyListAndDoShowSelectedFont: changed: #showSelectedFont #updateFamilyList
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6503
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
     1
"{ Encoding: utf8 }"
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
     2
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     3
"
5
claus
parents: 3
diff changeset
     4
 COPYRIGHT (c) 1991 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
     5
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    13
"
2275
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
    14
"{ Package: 'stx:libwidg' }"
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
    15
5446
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
    16
"{ NameSpace: Smalltalk }"
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
    17
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    18
DialogBox subclass:#FontPanel
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
    19
	instanceVariableNames:'previewField listOfEncodings allFonts fontsPerFamily familyList
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
    20
		faceList sizeList revertButton currentFamily currentFace
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
    21
		currentStyle currentFaceAndStyle currentSize sizeUnit
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
    22
		currentEncoding initialFont selectedFont nameLabel encodingFilter
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
    23
		encodingFilterField encodingLabel combinedFilter encoding
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
    24
		sizeLabelHolder pixelPointSwitch xftFontsOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
    25
		changeFontInAllViewsHolder withChangeFontInAllViewsCheckBox
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
    26
		withChangeFontInAllViewsCheckBoxVisibleHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
    27
		decorativeOnlyHolder nonDecorativeOnlyHolder monospacedOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
    28
		nonMonospacedOnlyHolder'
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    29
	classVariableNames:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    30
	poolDictionaries:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    31
	category:'Views-DialogBoxes'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    32
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    33
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
    34
!FontPanel class methodsFor:'documentation'!
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    35
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    36
copyright
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    37
"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    38
 COPYRIGHT (c) 1991 by Claus Gittinger
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    39
	      All Rights Reserved
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    40
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    41
 This software is furnished under a license and may be used
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    42
 only in accordance with the terms of that license and with the
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    44
 be provided or otherwise made available to, or used by, any
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    45
 other person.  No title to or ownership of the software is
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    46
 hereby transferred.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    47
"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    48
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    49
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    50
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    51
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    52
documentation
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    53
"
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
    54
    this class implements the font chooser.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    55
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    56
    Notice: 
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    57
        this is a very old dialog; 
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
    58
        it was written before the UI-framework was available and the UI is completely
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
    59
        programmed manually (see initialize method).
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    60
        Therefore, it desperately asks to be rewritten using the UIPainter...
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    61
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    62
    [author:]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    63
        Claus Gittinger
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    64
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    65
    [see also:]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    66
        Font FontDescription
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    67
        View Dialog
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    68
"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    69
!
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    70
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    71
examples
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    72
"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    73
    very simple:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    74
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    75
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    76
        
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    77
        font := FontPanel fontFromUser.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
    78
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    79
                                                                        [exEnd]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    80
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    81
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    82
    with initial font:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    83
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    84
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    85
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    86
        font := FontPanel 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    87
                    fontFromUserInitial:(Font 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    88
                                            family:'courier'
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    89
                                            size:12).
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
    90
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    91
                                                                        [exEnd]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    92
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    93
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    94
    with initial font & title:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    95
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    96
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    97
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    98
        font := FontPanel 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    99
                    fontFromUserInitial:(Font 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   100
                                            family:'courier'
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   101
                                            size:12)
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   102
                                  title:'select a fooBar font'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   103
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   104
                                                                        [exEnd]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   105
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   106
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   107
    full setup; setting a filter to only present iso fonts
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   108
    and callBack action:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   109
                                                                        [exBegin]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   110
585
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   111
        |panel|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   112
585
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   113
        panel := FontPanel new.
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   114
        panel label:'hi there - which iso font ?'.
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   115
        panel filter:[:fd | fd encoding notNil
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   116
                            and:[fd encoding startsWith:'iso']].
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   117
        panel action:[:family :face :style :size | 
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   118
                        Transcript showCR:'family:' , family.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   119
                        Transcript showCR:'face:' , face.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   120
                        Transcript showCR:'style:' , style.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   121
                        Transcript showCR:'size:' , size printString.
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   122
                     ].
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   123
        panel open
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   124
                                                                        [exEnd]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   125
"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   126
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   127
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   128
!FontPanel class methodsFor:'defaults'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   129
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   130
defaultAsciiSampleString
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   131
    ^ (self sampleStringWithAllLetters) , '
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   132
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   133
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   134
1234567890    !!@#$%^&*(){}[]:"~;,./<>?
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   135
'
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   136
!
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   137
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   138
defaultExtent
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   139
    "return the default extent of my instances.
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   140
     The value returned here is usually ignored, and
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   141
     the value from preferredExtent taken instead."
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   142
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   143
    ^ (Screen current pixelPerMillimeter * (200 @ 150)) rounded
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   144
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   145
    "Modified: 22.4.1996 / 23:36:19 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   146
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   147
2860
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   148
defaultJIS0201SampleString
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   149
    "return the sample jis preview text"
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   150
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   151
    ^ (self defaultLatin1SampleString).
2860
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   152
!
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   153
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   154
defaultJISSampleString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   155
    "return the sample jis preview text"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   156
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   157
    ^ 
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   158
'The quick brown fox
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   159
jumps over the lazy dog.
2860
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   160
2939
1c23ad9aa8be Fix russian example text.
Stefan Vogel <sv@exept.de>
parents: 2938
diff changeset
   161
' , #(16r65E5 16r672C 16r8A9E) asUnicodeString
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   162
!
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   163
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   164
defaultLatin1SampleString
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   165
    "return the sample latin1 preview text"
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   166
6503
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
   167
    ^ (self defaultAsciiSampleString) , 'äöüÄÖÜßéèêå©'
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   168
!
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   169
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   170
defaultSampleStringForEncoding:enc
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   171
    |string lines|
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   172
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   173
    enc notNil ifTrue:[    
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   174
        ((enc startsWith:'unicode') or:[enc startsWith:'iso10646-']) ifTrue:[
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   175
            ^ self defaultUnicodeSampleString.
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   176
        ].
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   177
        (enc startsWith:'ms-ansi') ifTrue:[
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   178
            ^ self defaultUnicodeSampleString.
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   179
        ].
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   180
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   181
        (enc startsWith:'jis') ifTrue:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   182
            (enc includesString:'0201') ifTrue:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   183
                string := self defaultJIS0201SampleString    
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   184
            ] ifFalse:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   185
                string := self defaultJISSampleString
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   186
            ]
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   187
        ] ifFalse:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   188
        ]
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   189
    ].
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   190
    string isNil ifTrue:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   191
        string := self defaultLatin1SampleString.
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   192
    ].
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   193
    lines := string asStringCollection.
3481
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   194
    [
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   195
        lines := lines encodeFrom:#unicode into:enc
3481
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   196
    ] on:CharacterEncoderError do:[:ex|
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   197
        "substitute a default value for codes that cannot be represented
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   198
         in the new character set"
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   199
        ex proceedWith:ex defaultValue.
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   200
    ].
3481
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   201
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   202
    ^ lines.
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   203
!
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   204
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   205
defaultUnicodeSampleString
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   206
    "return the sample unicode preview text"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   207
2275
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   208
    |t|
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   209
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   210
    t := (self defaultAsciiSampleString) , '
6568
327aa6e0a885 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6559
diff changeset
   211
diaresis: äöüÄÖÜß  accents: éèêåÅ
327aa6e0a885 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6559
diff changeset
   212
special: ' ,  #(16r20AC) asUnicodeString , ' ',
327aa6e0a885 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6559
diff changeset
   213
'math: ' ,  #(16r2200 16r2203 16r221E 16r2208 16r2209) asUnicodeString , '
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   214
cyrillic: ' ,  #(16r440 16r443 16r441 16r441 16r43A 16r438 16r439 16r20 16r44F 16r437 16r44B 16r43A) asUnicodeString , '
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   215
greek: ' , #(16r395 16r3BB 16r3BB 16r3B7 16r3BD 16r3B9 16r3BA 16r3AC) asUnicodeString , '
6568
327aa6e0a885 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6559
diff changeset
   216
hebrew: ' , #(16r5E9 16r5DC 16r5D5 16r5DD) reversed asUnicodeString , '
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   217
japanese: ' , #(16r65E5 16r672C 16r8A9E) asUnicodeString , '
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   218
chinese: ' ,
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   219
#(16r4F60 16r597D 16r3002) asUnicodeString , ' ' ,
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   220
#(16r6211 16r4E0D 16r8BF4 16r4E2D 16r6587) asUnicodeString , '
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   221
korean: ' , #( 50504 45397 54616 49464 50836 ) asUnicodeString , '
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   222
' ", 'hebrew: ' , #( 16r5E9 16r5dc 16r5d5 16r5dd 16r20 16r5e2 16r5d5 16r5dc 16r5dd ) asUnicodeString , ' (sorry: right-to-left writing is not supported)
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   223
' ", ''.
2276
a34a00b5c65f gimmick
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   224
    ^ t
2933
c530f9283d0e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2932
diff changeset
   225
4161
bda1fae34c83 changed: #defaultUnicodeSampleString
Claus Gittinger <cg@exept.de>
parents: 4147
diff changeset
   226
    "Modified: / 10-08-2010 / 16:05:16 / cg"
6568
327aa6e0a885 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6559
diff changeset
   227
    "Modified: / 27-03-2019 / 22:34:41 / Claus Gittinger"
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   228
!
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   229
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   230
sampleStringWithAllLetters
4147
150b7dff3b6a comment/format in: #sampleStringWithAllLetters
Claus Gittinger <cg@exept.de>
parents: 4094
diff changeset
   231
    ^ (self classResources 
150b7dff3b6a comment/format in: #sampleStringWithAllLetters
Claus Gittinger <cg@exept.de>
parents: 4094
diff changeset
   232
        at:'CHARSET_TEST_SENTENCE' 
150b7dff3b6a comment/format in: #sampleStringWithAllLetters
Claus Gittinger <cg@exept.de>
parents: 4094
diff changeset
   233
        ifAbsent:'The quick brown fox jumps over the lazy dog') withCRs
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   234
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   235
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   236
!FontPanel class methodsFor:'help'!
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   237
6258
a75c92a4819f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 6246
diff changeset
   238
helpSpec
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   239
    <resource: #help>
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   240
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   241
    ^ Dictionary new 
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   242
        addPairsFrom:#(
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   243
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   244
#fontName
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   245
'Shows the full name of the selected font.' 
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   246
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   247
#fontEncodingFilter
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   248
'Filter fonts by encodings.\Almost any can be used for Latin1 languages (English, German, French, Italian etc.).\For other European languages, it should be a Latin-X or Unicode font;\For most middle and far east languages, a Unicode font is required.\\Notice that although ISO10646 is Unicode, many fonts only contain a subset of the required characters.\Check the preview above.' 
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   249
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   250
#fontsEncoding
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   251
'Shows the selected font''s encoding.' 
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   252
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   253
#xftFontsOnlyHolder
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   254
'Filter to only show the nicer looking xft fonts and ignore the ugly X fonts (Linux/OSX only).\\Be aware that if X is used with remote windows via a slow communication line,\it may be preferrable to avoid xft fonts, as they require much more network bandwidth.'
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   255
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   256
#pixelPointSwitch
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   257
'Switch between point and pixels in the size list.\A point is defined as 1/72th of an inch, and a common unit in typesetting.\Not to confuse with pixels, which are dots on your screen.\It is usually not a good idea, to specify font sizes by pixels.' 
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   258
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   259
#flushCachedListOfFonts
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   260
'Flush the cached list of fonts, and rescan the system for available fonts.\This may take a long time in some systems,\and is only needed if you install new fonts while ST/X is running.'
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   261
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   262
#changeInAllTextViews
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   263
'If checked, your font choice is applied to all text views (in ST/X),\and will also be the default for new windows.\Otherwise, it will only affect the current textview.\\To make your choice persistent across sessions, go to the settings dialog and save the settings into your preferences file.'
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   264
)
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   265
! !
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   266
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   267
!FontPanel class methodsFor:'menu specs'!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   268
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   269
previewMenu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   270
    "This resource specification was automatically generated
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   271
     by the MenuEditor of ST/X."
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   272
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   273
    "Do not manually edit this!! If it is corrupted,
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   274
     the MenuEditor may not be able to read the specification."
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   275
6149
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   276
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   277
    "
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   278
     MenuEditor new openOnClass:FontPanel andSelector:#previewMenu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   279
     (Menu new fromLiteralArrayEncoding:(FontPanel previewMenu)) startUp
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   280
    "
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   281
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   282
    <resource: #menu>
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   283
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   284
    ^ 
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   285
     #(Menu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   286
        (
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   287
         (MenuItem
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   288
            label: 'Copy'
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   289
            itemValue: previewCopySelection
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   290
          )
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   291
         (MenuItem
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   292
            label: '-'
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   293
          )
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   294
         (MenuItem
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   295
            label: 'Show Character Set'
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   296
            itemValue: previewShowCharacterSet
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   297
            isVisible: characterSetViewClassAvailable
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   298
          )
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   299
         (MenuItem
6149
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   300
            enabled: xfdCanBeUsed
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   301
            label: 'Show Character Set (Using xfd)'
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   302
            itemValue: previewShowCharacterSetUsingXFD
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   303
            isVisible: osIsUNIXAndXfdIsAvailable
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   304
          )
2935
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   305
         (MenuItem
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   306
            label: '-'
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   307
            isVisible: characterSetViewClassAvailableOrOSIsUNIX
2935
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   308
          )
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   309
         (MenuItem
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   310
            label: 'Inspect Font'
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   311
            itemValue: previewInspectFont
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   312
          )
3604
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   313
         (MenuItem
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   314
            label: 'Copy Fontname'
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   315
            itemValue: copyFontName
6149
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   316
          )
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   317
         (MenuItem
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   318
            label: '-'
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   319
          )
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   320
         (MenuItem
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   321
            label: 'Color'
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   322
            submenu: 
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   323
           (Menu
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   324
              (
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   325
               (MenuItem
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   326
                  label: 'Black on White'
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   327
                  itemValue: previewBlackOnWhite
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   328
                )
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   329
               (MenuItem
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   330
                  label: 'White on Black'
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   331
                  itemValue: previewWhiteOnBlack
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   332
                )
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   333
               (MenuItem
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   334
                  label: 'White on Green'
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   335
                  itemValue: previewWhiteOnGreen
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   336
                )
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   337
               )
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   338
              nil
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   339
              nil
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
   340
            )
3604
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   341
          )
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   342
         )
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   343
        nil
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   344
        nil
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   345
      )
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   346
! !
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   347
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   348
!FontPanel class methodsFor:'startup'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   349
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   350
fontFromUser
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   351
    "open a fontPanel and return the selected font, 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   352
     or nil if abort is pressed"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   353
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   354
    ^ self new fontFromUser
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   355
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   356
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   357
     FontPanel fontFromUser
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   358
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   359
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   360
    "Modified: 27.2.1996 / 00:51:59 / cg"
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   361
!
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   362
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   363
fontFromUserInitial:aFont
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   364
    "open a fontPanel showing aFont initially,
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   365
     and return the selected font, or nil if abort is pressed"
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   366
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   367
    ^ self new fontFromUserInitial:aFont
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   368
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   369
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   370
     FontPanel fontFromUserInitial:(Font family:'courier' size:12)
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   371
     FontPanel fontFromUserInitial:MenuPanel defaultFont
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   372
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   373
!
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   374
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   375
fontFromUserInitial:aFont title:someTitle
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   376
    "open a fontPanel with title and return the selected font, 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   377
     or nil if abort is pressed"
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   378
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   379
    ^ self new 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   380
        fontFromUserInitial:aFont title:someTitle
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   381
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   382
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   383
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   384
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   385
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   386
    "Created: 27.2.1996 / 00:59:46 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   387
    "Modified: 29.4.1996 / 09:45:34 / cg"
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   388
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   389
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   390
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   391
    "open a fontPanel with title and font-filter
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   392
     and return the selected font, or nil if abort is pressed"
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   393
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   394
    ^ self new 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   395
        fontFromUserInitial:initialFont title:someTitle 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   396
        filter:aFilterBlock
2887
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   397
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   398
    "
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   399
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   400
    "
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   401
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   402
    "Created: 27.2.1996 / 00:59:46 / cg"
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   403
    "Modified: 10.4.1997 / 09:53:03 / cg"
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   404
!
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   405
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   406
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   407
    "open a fontPanel with title and font-filter
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   408
     and return the selected font, or nil if abort is pressed"
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   409
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   410
    ^ self new 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   411
        fontFromUserInitial:initialFont title:someTitle 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   412
        filter:aFilterBlock encoding:encoding
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   413
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   414
    "
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   415
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   416
    "
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   417
!
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   418
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   419
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding enabled:enabled
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   420
    "open a fontPanel with title and font-filter
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   421
     and return the selected font, or nil if abort is pressed"
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   422
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   423
    ^ self new
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   424
        fontFromUserInitial:initialFont title:someTitle 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   425
        filter:aFilterBlock encoding:encoding 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   426
        enabled:enabled
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   427
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   428
    "
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   429
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   430
    "
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   431
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   432
    "Created: 27.2.1996 / 00:59:46 / cg"
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   433
    "Modified: 10.4.1997 / 09:53:03 / cg"
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   434
!
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   435
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   436
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding enabled:enabled onChangeAll:actionToChangeAll
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   437
    "open a fontPanel with title and font-filter
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   438
     and return the selected font, or nil if abort is pressed"
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   439
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   440
    ^ self new
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   441
        fontFromUserInitial:initialFont title:someTitle 
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   442
        filter:aFilterBlock encoding:encoding 
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   443
        enabled:enabled
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   444
        onChangeAll:actionToChangeAll
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   445
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   446
    "
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   447
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   448
    "
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   449
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   450
    "Created: 27.2.1996 / 00:59:46 / cg"
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   451
    "Modified: 10.4.1997 / 09:53:03 / cg"
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   452
!
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
   453
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   454
openOn:aFont
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   455
    "open a fontPanel showing aFont initially.
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   456
     This panel is for information only - no font selection is possible."
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   457
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   458
    ^ self 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   459
        fontFromUserInitial:aFont 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   460
        title:(aFont userFriendlyName)
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   461
        filter:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   462
        encoding:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   463
        enabled:false
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   464
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   465
    "
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   466
     FontPanel openOn:(Font family:'courier' size:12)
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   467
     FontPanel openOn:MenuPanel defaultFont
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
   468
     FontPanel fontFromUser
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   469
    "
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   470
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   471
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   472
!FontPanel methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   473
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   474
action:aFourArgBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   475
    "set the action to be evaluated on ok.
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   476
     The block will be evaluated with family, face, style, size and encoding."
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   477
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   478
    okAction := aFourArgBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   479
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   480
    "Modified: 10.4.1997 / 09:49:58 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   481
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   482
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   483
changeFontInAllViews
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   484
    "valid after closing"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   485
    
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   486
    ^ self changeFontInAllViewsHolder value    
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   487
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   488
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   489
changeFontInAllViewsHolder
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   490
    changeFontInAllViewsHolder isNil ifTrue:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   491
        changeFontInAllViewsHolder := false asValue
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   492
    ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   493
    ^ changeFontInAllViewsHolder
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   494
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   495
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   496
decorativeOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   497
    decorativeOnlyHolder isNil ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   498
        decorativeOnlyHolder := false asValue
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   499
    ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   500
    ^ decorativeOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   501
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   502
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   503
encoding:aPattern
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   504
    "set the encoding goal"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   505
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   506
    ((aPattern = #'iso8859-1')
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   507
    or:[ (aPattern = #'iso10646-1') ]) ifFalse:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   508
        encoding := aPattern
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   509
    ] ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   510
        encoding := #'*'
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   511
    ].    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   512
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   513
    encodingFilterField contents:encoding.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   514
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   515
    self encodingFilterSelected:encoding.
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   516
    shown ifTrue:[
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   517
        self updateFamilyList
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   518
    ].
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   519
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   520
    "Created: 29.2.1996 / 04:05:31 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   521
    "Modified: 29.4.1996 / 09:40:18 / cg"
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   522
!
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   523
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   524
encodingFilter:aOneArgBlockOrNil
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   525
    "set a filter"
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   526
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   527
    encodingFilter := aOneArgBlockOrNil.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   528
    self filterChanged
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   529
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   530
    "Created: 27.2.1996 / 01:40:08 / cg"
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   531
    "Modified: 29.4.1996 / 09:40:49 / cg"
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   532
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   533
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   534
filter:aOneArgBlockOrNil
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   535
    <resource: #obsolete>
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   536
    "set a filter; if non-nil, only fonts for which the filterBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   537
     returns true will be offered"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   538
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   539
    self obsoleteMethodWarning:'use encodingFilter:'.
6011
65837f01e289 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5919
diff changeset
   540
    self encodingFilter:aOneArgBlockOrNil.
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   541
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   542
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   543
filterChanged
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   544
    "construct a combined a filter"
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   545
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   546
    |filter1 filter2 filter3|
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   547
    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   548
    encodingFilter isNil ifTrue:[
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   549
        xftFontsOnlyHolder value 
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   550
            ifTrue:[ filter1 := [:fd | fd isXftFont] ]
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   551
            ifFalse:[ filter1 := [:fd | true] ]                                     
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   552
    ] ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   553
        xftFontsOnlyHolder value 
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   554
            ifTrue:[ filter1 := [:fd | fd isXftFont and:[encodingFilter value:fd]] ]
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   555
            ifFalse:[ filter1 := encodingFilter ]
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   556
    ].
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   557
    filter2 := filter1.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   558
    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   559
    self decorativeOnlyHolder value ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   560
        self nonDecorativeOnlyHolder value:false withoutNotifying:self.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   561
        filter2 := [:fd | fd isDecorativeFont and:[filter1 value:fd]]
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   562
    ] ifFalse:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   563
        self nonDecorativeOnlyHolder value ifTrue:[    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   564
            filter2 := [:fd | fd isDecorativeFont not and:[filter1 value:fd]]
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   565
        ].    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   566
    ].    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   567
    filter3 := filter2.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   568
    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   569
    self monospacedOnlyHolder value ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   570
        self nonMonospacedOnlyHolder value:false withoutNotifying:self.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   571
        filter3 := [:fd | fd isFixedWidth and:[filter2 value:fd]]
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   572
    ] ifFalse:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   573
        self nonMonospacedOnlyHolder value ifTrue:[    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   574
            filter3 := [:fd | fd isFixedWidth not and:[filter2 value:fd]]
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   575
        ].    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   576
    ].    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   577
    combinedFilter := filter3.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   578
    self refreshFamilyList
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   579
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   580
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   581
initialFont:aFont
128
claus
parents: 110
diff changeset
   582
    "set the font to be selected initially"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   583
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
   584
    |fontEncoding|
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   585
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   586
    initialFont := selectedFont := aFont.
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   587
    currentFamily := aFont family.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   588
    currentFace := aFont face.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   589
    currentStyle := aFont style.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   590
    currentFaceAndStyle := currentFace,'-',currentStyle.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   591
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
   592
"/    self xftFontsOnlyHolder value:(aFont isXftFont).
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
   593
    fontEncoding := aFont encoding.    
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   594
    sizeUnit := aFont sizeUnit.
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
   595
    sizeUnit = #px ifTrue:[
5188
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
   596
        currentSize := aFont pixelSize asString , 'px'.
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
   597
    ] ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
   598
        currentSize := aFont size asString.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
   599
    ].
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   600
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   601
"/ self halt.
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   602
    self encoding:fontEncoding. 
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   603
    "/    encodingFilter contents:fontEncoding.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   604
    "/    self encodingFilterSelected:fontEncoding.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   605
    self showSelectedFont.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   606
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   607
    "Modified: 23.2.1996 / 00:51:32 / cg"
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   608
!
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   609
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   610
monospacedOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   611
    monospacedOnlyHolder isNil ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   612
        monospacedOnlyHolder := false asValue
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   613
    ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   614
    ^ monospacedOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   615
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   616
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   617
nonDecorativeOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   618
    nonDecorativeOnlyHolder isNil ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   619
        nonDecorativeOnlyHolder := false asValue
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   620
    ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   621
    ^ nonDecorativeOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   622
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   623
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   624
nonMonospacedOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   625
    nonMonospacedOnlyHolder isNil ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   626
        nonMonospacedOnlyHolder := false asValue
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   627
    ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   628
    ^ nonMonospacedOnlyHolder
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   629
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   630
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   631
refreshFamilyList
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   632
    familyList list:nil.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   633
    shown ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   634
        self updateFamilyList
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   635
    ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   636
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   637
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   638
withChangeFontInAllViewsCheckBoxVisibleHolder
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   639
    withChangeFontInAllViewsCheckBoxVisibleHolder isNil ifTrue:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   640
        withChangeFontInAllViewsCheckBoxVisibleHolder := false asValue
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   641
    ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   642
    ^ withChangeFontInAllViewsCheckBoxVisibleHolder
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   643
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   644
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   645
withChangeFontInViewsAllCheckBox:aBoolean
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   646
    "to make that check box visible;
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   647
     call before opening"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   648
     
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   649
    self withChangeFontInAllViewsCheckBoxVisibleHolder value:true
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   650
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   651
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   652
xftFontsOnlyHolder
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   653
    xftFontsOnlyHolder isNil ifTrue:[
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   654
        xftFontsOnlyHolder := true asValue
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   655
    ].
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   656
    ^ xftFontsOnlyHolder
101
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   657
! !
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   658
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   659
!FontPanel methodsFor:'initialization'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   660
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   661
createFontSelectionBrowserIn:aView
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   662
    |topSelectionBox fontLabelAndSizeSelectionBox
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   663
     l hLabel v1 v2 v3 familyLabel faceLabel sizeLabel fH mm|
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   664
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   665
    mm := ViewSpacing.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   666
    hLabel := 30.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   667
    
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   668
    l := (0@0 corner:1@1) asFractionalLayout.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   669
    l bottomInset:hLabel.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   670
    topSelectionBox := (View in:aView) layout:l.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   671
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   672
    l := (0@1 corner:1@1) asFractionalLayout.
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   673
    l topOffset:hLabel negated.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   674
    l rightInset:mm.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   675
    
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   676
    fontLabelAndSizeSelectionBox := (HorizontalPanelView in:aView) layout:l. 
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   677
    fontLabelAndSizeSelectionBox horizontalLayout:#rightFit.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   678
    
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   679
    v1 := View origin:0.0@0.0 corner:0.3@1.0 in:topSelectionBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   680
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   681
    familyLabel := Label label:(resources string:'Family') in:v1.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   682
    familyLabel borderWidth:0.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   683
    familyLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   684
    fH := familyLabel preferredHeight.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   685
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   686
    familyList := ScrollableView for:SelectionInListView in:v1.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   687
    familyList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   688
    familyList inset:mm.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   689
    familyList topInset:fH.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   690
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   691
    familyList := familyList scrolledView.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   692
    self makeTabable:familyList.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   693
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   694
    v2 := View origin:0.3@0.0 corner:0.8@1.0 in:topSelectionBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   695
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   696
    faceLabel := Label label:(resources string:'Typeface') in:v2.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   697
    faceLabel borderWidth:0.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   698
    faceLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   699
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   700
    faceList := ScrollableView for:SelectionInListView in:v2.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   701
    faceList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   702
    faceList inset:mm.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   703
    faceList topInset:fH.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   704
    faceList := faceList scrolledView.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   705
    self makeTabable:faceList.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   706
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   707
    v3 := View origin:0.8@0.0 corner:1.0@1.0 in:topSelectionBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   708
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   709
    sizeLabelHolder := (resources string:'Size') asValue.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   710
    sizeLabel := Label in:v3.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   711
    sizeLabel labelChannel:sizeLabelHolder.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   712
    sizeLabel borderWidth:0.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   713
    sizeLabel origin:(0.0 @ 0.0)extent:(1.0 @ nil).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   714
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   715
    sizeList := ScrollableView for:SelectionInListView in:v3.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   716
    sizeList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   717
    sizeList inset:mm.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   718
    sizeList topInset:fH.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   719
    sizeList := sizeList scrolledView.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   720
    self makeTabable:sizeList.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   721
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   722
    familyList action:[:lineNr | self familySelected:(familyList selectionValue)].
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   723
    faceList action:[:lineNr | self faceSelected:(faceList selectionValue)].
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   724
    sizeList action:[:lineNr | self sizeSelected:(sizeList selectionValue)].
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   725
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   726
    nameLabel := Label label:'' in:fontLabelAndSizeSelectionBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   727
    nameLabel level:0; adjust:#left.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   728
    nameLabel helpKey:#fontName.
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   729
    
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   730
    pixelPointSwitch := ComboListView in:fontLabelAndSizeSelectionBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   731
    pixelPointSwitch level:-1.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   732
    pixelPointSwitch contents:'pt'.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   733
    pixelPointSwitch list:#(#pt #px).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   734
    pixelPointSwitch action:[:sizeUnit | self sizeUnitSelected:sizeUnit].
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   735
    pixelPointSwitch helpKey:#pixelPointSwitch.
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   736
!
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   737
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   738
enabled:aBoolean
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   739
    familyList enabled:aBoolean.
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   740
    faceList enabled:aBoolean.
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   741
    sizeList enabled:aBoolean.
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   742
    encodingFilterField notNil ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   743
        encodingFilterField enabled:aBoolean.
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   744
    ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   745
    aBoolean ifTrue:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   746
        self abortButton label:(resources string:'Cancel').
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   747
        self okButton beVisible.        
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   748
    ] ifFalse:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   749
        self abortButton label:(resources string:'Close').
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   750
        self okButton beInvisible.
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   751
    ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   752
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   753
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   754
     FontPanel openOn:(Font family:'courier' size:12)
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   755
     FontPanel openOn:MenuPanel defaultFont
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   756
     FontPanel fontFromUser
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   757
    "
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   758
!
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   759
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   760
initialize
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   761
    "sigh: hand-crafted box creation; TODO: rewrite using UI painter"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   762
    
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   763
    |everythingExceptOkCancelButtonsPanel fontBrowserView mm l encodingAndXFTOnlyBox box3 box4 xftCheckBox 
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   764
     previewAndFontSelectionPanel filterBox changeInAllCheckBox updateHeight
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   765
     xftFlushFontList decorativeCheckBox nonDecorativeCheckBox monospacedCheckBox nonMonospacedCheckBox|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   766
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   767
    super initialize.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   768
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   769
    label := resources string:'Font dialog'.
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   770
    sizeUnit := #pt.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   771
    mm := ViewSpacing.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   772
1763
1c6be8158c27 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
   773
    self addAbortAndOkButtons.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   774
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   775
    everythingExceptOkCancelButtonsPanel := View origin:0.0@0.0 corner:1.0@1.0 in:self.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   776
    everythingExceptOkCancelButtonsPanel bottomInset:(buttonPanel preferredHeight + (mm)). 
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   777
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   778
    previewAndFontSelectionPanel := VariableVerticalPanel in:everythingExceptOkCancelButtonsPanel.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   779
    previewAndFontSelectionPanel layout:(LayoutFrame
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   780
                    leftFraction:0 offset:0
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   781
                    rightFraction:1 offset:0
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   782
                    topFraction:0 offset:0
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   783
                    bottomFraction:1 offset:-160).
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   784
       
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   785
    filterBox  := VerticalPanelView in:everythingExceptOkCancelButtonsPanel.  
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   786
    filterBox layout:(LayoutFrame
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   787
                    leftFraction:0 offset:0
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   788
                    rightFraction:1 offset:0
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   789
                    topFraction:1 offset:-150
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   790
                    bottomFraction:1 offset:0).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   791
    filterBox horizontalLayout:#fit verticalLayout:#top.
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   792
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   793
    previewField := HVScrollableView for:TextView in:previewAndFontSelectionPanel.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   794
    previewField menuHolder:self previewMenu.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   795
    previewField autoHideScrollBars:true.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   796
    previewField := previewField scrolledView.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   797
"/    previewField inset:mm.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   798
"/    self is3D ifTrue:[
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   799
"/        previewField level:-1.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   800
"/    ] ifFalse:[
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   801
"/        previewField borderWidth:1.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   802
"/    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   803
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   804
    fontBrowserView := View in:previewAndFontSelectionPanel.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   805
    self createFontSelectionBrowserIn:fontBrowserView.
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   806
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   807
    encodingAndXFTOnlyBox := HorizontalPanelView in:filterBox.
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
   808
    encodingAndXFTOnlyBox height:36.
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   809
    encodingAndXFTOnlyBox horizontalLayout:#leftSpace.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   810
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   811
    l := Label label:(resources string:'Encoding:') in:encodingAndXFTOnlyBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   812
    l borderWidth:0.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   813
    l adjust:#left.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   814
    l helpKey:#fontEncodingFilter.
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   815
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   816
    encodingFilterField := ComboBoxView in:encodingAndXFTOnlyBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   817
    encodingFilterField level:-1.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   818
    encodingFilterField contents:'*'.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   819
    encodingFilterField list:(self listOfEncodingsInFilterCombo).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   820
    encodingFilterField action:[:pattern | self encodingFilterSelected:pattern].
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   821
    encodingFilterField immediateAccept:true.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   822
    encodingFilterField helpKey:#fontEncodingFilter.
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   823
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   824
    
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   825
        "/    encodingFilterField acceptOnReturn:true.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   826
        "/    encodingFilterField acceptOnTab:true.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   827
        "/    encodingFilterField acceptOnLeave:true.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   828
        "/    encodingFilterField acceptOnLostFocus:true.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   829
        "/    encodingFilterField acceptOnPointerLeave:true.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   830
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   831
    encodingLabel := Label label:' ' in:encodingAndXFTOnlyBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   832
    encodingLabel level:0; adjust:#left.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   833
    encodingLabel adjust:#right.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   834
    encodingLabel helpKey:#fontsEncoding.
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   835
    
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   836
    self showEncodingFilter ifFalse:[
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   837
        encodingFilterField beInvisible.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   838
        encodingLabel beInvisible
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   839
    ].
5548
Claus Gittinger <cg@exept.de>
parents: 5532
diff changeset
   840
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   841
    device supportsXftFonts ifTrue:[
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   842
        self xftFontsOnlyHolder value: (UserPreferences current useXftFontsOnly).
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   843
        xftCheckBox := CheckBox label:(resources string:'XFT Fonts Only') in:encodingAndXFTOnlyBox.
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   844
        xftCheckBox model:xftFontsOnlyHolder.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   845
        xftCheckBox helpKey:#xftFontsOnlyHolder.
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   846
        xftFontsOnlyHolder onChangeEvaluate:[ self xftFontsOnlyChanged ].
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   847
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
   848
        xftFlushFontList := Button label:(resources string:'Flush Cached Fontlist') in:encodingAndXFTOnlyBox.
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   849
        xftFlushFontList action:[ self flushListOfAvailableFonts].
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   850
        xftFlushFontList helpKey:#flushCachedListOfFonts.
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   851
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   852
    ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   853
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   854
false ifTrue:[
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   855
    decorativeCheckBox := CheckBox label:(resources string:'Decorative Fonts Only').
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   856
    box3 := View new height:(decorativeCheckBox preferredHeight).
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   857
    filterBox add:box3.
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   858
    
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   859
    decorativeCheckBox origin:0.0@0.0 corner:0.5@1.0.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   860
    box3 add:decorativeCheckBox.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   861
    decorativeCheckBox model:self decorativeOnlyHolder.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   862
    self decorativeOnlyHolder onChangeEvaluate:[ self filterChanged ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   863
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   864
    nonDecorativeCheckBox := CheckBox label:(resources string:'Non Decorative Fonts Only') in:box3.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   865
    nonDecorativeCheckBox origin:0.5@0.0 corner:1.0@1.0.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   866
    nonDecorativeCheckBox model:self nonDecorativeOnlyHolder.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   867
    self nonDecorativeOnlyHolder onChangeEvaluate:[ self filterChanged ].
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   868
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   869
    monospacedCheckBox := CheckBox label:(resources string:'Monospaced Fonts Only').
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   870
    box4 := View new height:(monospacedCheckBox preferredHeight).
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   871
    filterBox add:box4.
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   872
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   873
    monospacedCheckBox origin:0.0@0.0 corner:0.5@1.0.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   874
    box4 add:monospacedCheckBox.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   875
    monospacedCheckBox model:self monospacedOnlyHolder.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   876
    self monospacedOnlyHolder onChangeEvaluate:[ self filterChanged ].
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   877
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   878
    nonMonospacedCheckBox := CheckBox label:(resources string:'Non Monospaced Fonts Only') in:box4.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   879
    nonMonospacedCheckBox origin:0.5@0.0 corner:1.0@1.0.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   880
    nonMonospacedCheckBox model:self nonMonospacedOnlyHolder.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   881
    self nonMonospacedOnlyHolder onChangeEvaluate:[ self filterChanged ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   882
].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
   883
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   884
    changeInAllCheckBox := CheckBox label:(resources string:'Change all Textviews and Default for New Views') in:filterBox.
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   885
    changeInAllCheckBox model:self changeFontInAllViewsHolder.
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   886
    changeInAllCheckBox visibilityChannel:self withChangeFontInAllViewsCheckBoxVisibleHolder.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   887
    changeInAllCheckBox helpKey:#changeInAllTextViews.
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
   888
    
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   889
    updateHeight :=
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   890
        [
5913
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   891
            self sensor 
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   892
                pushUserEvent:#value 
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   893
                for:[
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   894
                    |filterBoxHeight|
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   895
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   896
                    filterBoxHeight := filterBox preferredHeight.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   897
                    previewAndFontSelectionPanel layout bottomOffset:(filterBoxHeight negated - 10).
5913
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   898
                    filterBox layout topOffset:(filterBoxHeight negated).
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   899
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   900
                    previewAndFontSelectionPanel layoutChanged.
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   901
                    filterBox layoutChanged.
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   902
                ]
5911
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   903
        ].
c2619d90b1b1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5903
diff changeset
   904
        
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   905
"/    updateHeight value.
5913
9978a04ca957 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5911
diff changeset
   906
    self withChangeFontInAllViewsCheckBoxVisibleHolder 
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
   907
            onChangeEvaluate:updateHeight.
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
   908
    
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   909
    "
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   910
     FontPanel new showAtPointer
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
   911
     FontPanel fontFromUser
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   912
    "
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   913
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   914
    "Modified: 31.5.1996 / 22:01:45 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   915
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   916
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   917
listOfEncodingsInFilterCombo
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   918
    |availableEncodings listPresentedToUser|
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   919
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   920
    listOfEncodings := OrderedCollection new.
5626
7b87b3d3ecbc device access
Claus Gittinger <cg@exept.de>
parents: 5577
diff changeset
   921
    device isWindowsPlatform ifTrue:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   922
        listOfEncodings
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   923
            addAll:
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   924
                #(
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   925
                    '*'
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   926
                    nil
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   927
                ).
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   928
    ] ifFalse:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   929
        listOfEncodings
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   930
            addAll:
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   931
                #(
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   932
                    '*'
4429
671a2fc8798f changed: #listOfEncodingsInFilterCombo
Stefan Vogel <sv@exept.de>
parents: 4161
diff changeset
   933
                    #'iso8859-1'
671a2fc8798f changed: #listOfEncodingsInFilterCombo
Stefan Vogel <sv@exept.de>
parents: 4161
diff changeset
   934
                    #'iso10646-1'
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   935
                    'jis*'
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   936
                    nil
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   937
                ).
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   938
    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   939
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   940
    availableEncodings := Set new.
5626
7b87b3d3ecbc device access
Claus Gittinger <cg@exept.de>
parents: 5577
diff changeset
   941
    device listOfAvailableFonts do:[:f | availableEncodings add:(f encoding ? '?')].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   942
    availableEncodings := availableEncodings asSortedCollection.
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   943
    listOfEncodings addAll:availableEncodings.
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   944
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   945
    listPresentedToUser := listOfEncodings collect:[:enc |
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   946
                            |encoder userFriendlyName|
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   947
2938
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   948
"/
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   949
"/ disabled to avoid autoloading of encoders.
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   950
"/                            (enc notNil and:[enc ~= '*']) ifTrue:[
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   951
"/                                encoder := CharacterEncoder encoderFor:enc ifAbsent:nil.
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   952
"/                                encoder notNil ifTrue:[
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   953
"/                                    userFriendlyName := encoder userFriendlyNameOfEncoding.
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   954
"/                                ].
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   955
"/                            ].
2937
cee2b9a5e360 checkin from browser
ca
parents: 2936
diff changeset
   956
                            (userFriendlyName notNil and:[(userFriendlyName sameAs: enc) not]) ifTrue:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   957
                                enc , ' (' , userFriendlyName , ')'
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   958
                            ] ifFalse:[
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   959
                                enc
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   960
                            ]
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   961
                          ].
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   962
    ^ listPresentedToUser.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   963
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   964
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   965
postRealize
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   966
    "kludge for sco - xlsfont fails sometimes - try again here"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   967
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   968
    self updateFamilyList.
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   969
    super postRealize
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   970
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   971
    "Modified: 27.2.1996 / 01:40:47 / cg"
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   972
    "Created: 24.7.1997 / 18:12:42 / cg"
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   973
!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   974
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   975
previewMenu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   976
    <resource: #programMenu >
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   977
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   978
    |menu|
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   979
3475
f02106987f00 use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 3405
diff changeset
   980
    menu :=  Menu decodeFromLiteralArray:(self class previewMenu).
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   981
    menu findGuiResourcesIn:self.
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   982
    ^ menu
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   983
3475
f02106987f00 use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 3405
diff changeset
   984
    "Modified: / 27-03-2007 / 11:15:53 / cg"
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   985
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   986
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   987
showEncodingFilter
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   988
    ^ true
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   989
! !
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   990
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   991
!FontPanel methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   992
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   993
clearPreview
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   994
    "clear the preview subview"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   995
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   996
    shown ifTrue:[
1297
f5ea02391a59 use #contents: instead of #clear
Claus Gittinger <cg@exept.de>
parents: 1284
diff changeset
   997
        previewField contents:nil.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   998
        encodingLabel notNil ifTrue:[ 
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   999
            encodingLabel label:''.
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1000
        ].
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1001
    ].
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1002
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1003
    "Created: 17.4.1996 / 15:19:16 / cg"
1297
f5ea02391a59 use #contents: instead of #clear
Claus Gittinger <cg@exept.de>
parents: 1284
diff changeset
  1004
    "Modified: 11.8.1997 / 03:01:42 / cg"
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1005
!
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1006
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1007
extractFaceAndStyleFrom:aString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1008
    "given a string, extract currentFace and currentStyle"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1009
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1010
    |index|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1011
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1012
    index := aString indexOf:$-.
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1013
    currentFaceAndStyle := aString.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1014
    (index ~~ 0) ifTrue:[
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1015
        currentFace := aString copyTo:(index - 1).
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1016
        currentStyle := aString copyFrom:(index + 1)
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1017
    ] ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1018
        currentFace := aString.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1019
        currentStyle := nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1020
    ].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1021
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1022
    "Modified: 29.4.1996 / 09:41:47 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1023
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1024
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1025
fontForPreview
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1026
    "get the preview font"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1027
5189
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1028
    |fontShown familyFonts fonts sz szUnitUsed|
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1029
3853
ee85bd42eb22 fixes for pixel-sized fonts
Stefan Vogel <sv@exept.de>
parents: 3848
diff changeset
  1030
    currentSize isNil ifTrue:[
ee85bd42eb22 fixes for pixel-sized fonts
Stefan Vogel <sv@exept.de>
parents: 3848
diff changeset
  1031
        ^ nil.
ee85bd42eb22 fixes for pixel-sized fonts
Stefan Vogel <sv@exept.de>
parents: 3848
diff changeset
  1032
    ].
5189
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1033
    sz := Number readFrom:currentSize.
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1034
    szUnitUsed := sizeUnit.
5446
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
  1035
    (currentSize endsWith:#px) ifTrue:[
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1036
        szUnitUsed := #px.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1037
    ].
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
  1038
5189
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1039
    familyFonts := fontsPerFamily at:currentFamily ifAbsent:nil.
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1040
    familyFonts isNil ifTrue:[
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1041
        familyFonts := fontsPerFamily at:currentFamily asUppercaseFirst ifAbsent:nil.
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1042
        familyFonts isNil ifTrue:[
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1043
            ^ nil
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1044
        ].
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1045
    ].
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1046
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1047
    false "(familyFonts contains:#isXftFont)" ifTrue:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1048
        "/ anything goes...
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1049
        szUnitUsed == #px ifTrue:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1050
            fontShown := Font family:currentFamily face:currentFace style:currentStyle size:sz sizeUnit:#px encoding:nil.
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1051
        ] ifFalse:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1052
            fontShown := Font family:currentFamily face:currentFace style:currentStyle size:sz.
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1053
        ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1054
        ^ fontShown
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1055
    ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1056
5189
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1057
    fonts := familyFonts
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1058
                select:[:fntDescr |
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1059
                    fntDescr face = currentFace
5446
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
  1060
                    and:[fntDescr style = currentStyle
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
  1061
                    and:[fntDescr isScaledFont
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
  1062
                            or:[sz = (szUnitUsed == #px  
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
  1063
                                        ifTrue:[fntDescr pixelSize] ifFalse:[fntDescr size])]]]
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1064
                ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1065
5189
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1066
    fonts isEmpty ifTrue:[
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1067
        ^ nil
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1068
    ].
6246
16356c6f37c0 #UI_ENHANCEMENT by stefan
Stefan Vogel <sv@exept.de>
parents: 6151
diff changeset
  1069
    fontShown := fonts detect:[:eachFont| eachFont encoding = #'iso10646-1'] ifNone:[fonts first].
5189
5148900651b3 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5188
diff changeset
  1070
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1071
    fontShown isScaledFont ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1072
        szUnitUsed == #px ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1073
            fontShown := fontShown asPixelSize:sz
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1074
        ] ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1075
            fontShown := fontShown asSize:sz
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1076
        ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1077
    ].
5626
7b87b3d3ecbc device access
Claus Gittinger <cg@exept.de>
parents: 5577
diff changeset
  1078
    ^ fontShown onDevice:device
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1079
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1080
"/    fontShown :=
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1081
"/        ((Screen current supportsXFTFonts and:[selectedFont isXftFont "self xftFontsOnlyHolder value" ])
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1082
"/            ifTrue:[XftFontDescription]
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1083
"/            ifFalse:[Font])
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1084
"/              family:currentFamily 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1085
"/              face:currentFace 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1086
"/              style:currentStyle
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1087
"/              size:currentSize      
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1088
"/              sizeUnit:sizeUnit
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1089
"/              encoding:encoding.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1090
"/    
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1091
"/    fontShown notNil ifTrue:[^ fontShown].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1092
"/
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1093
"/    allFonts := self graphicsDevice 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1094
"/                    fontsInFamily:(currentFamily ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1095
"/                    face:(currentFace ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1096
"/                    style:(currentStyle ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1097
"/                    filtering:combinedFilter.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1098
"/
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1099
"/    sizeUnit == #px ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1100
"/        fonts := allFonts select:[:f | f pixelSize = currentSize].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1101
"/    ] ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1102
"/        fonts := allFonts select:[:f | f size = currentSize].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1103
"/    ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1104
"/    fonts notEmpty ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1105
"/        fontShown := fonts anElement.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1106
"/    ] ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1107
"/        "/ mhmh:
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1108
"/        "/   size=0 is returned for scalable fonts. 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1109
"/        "/   Any size is possible.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1110
"/        "/
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1111
"/        fonts := allFonts select:[:f | f size = 0].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1112
"/        fonts notEmpty ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1113
"/            fontShown := Font family:currentFamily 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1114
"/                      face:currentFace 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1115
"/                      style:currentStyle
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1116
"/                      size:currentSize      
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1117
"/                      sizeUnit:sizeUnit
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1118
"/                      encoding:(fonts anElement encoding).
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1119
"/        ]    
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1120
"/    ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1121
"/    ^ fontShown
6246
16356c6f37c0 #UI_ENHANCEMENT by stefan
Stefan Vogel <sv@exept.de>
parents: 6151
diff changeset
  1122
16356c6f37c0 #UI_ENHANCEMENT by stefan
Stefan Vogel <sv@exept.de>
parents: 6151
diff changeset
  1123
    "Modified: / 29-12-2017 / 12:04:12 / stefan"
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1124
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1125
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1126
getFacesForFamily:aFamilyName filtering:filter
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1127
    "the list of font faces for a given family"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1128
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1129
    |familyFonts filteredFonts faces|
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1130
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1131
    familyFonts := fontsPerFamily at:aFamilyName ifAbsent:nil.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1132
    familyFonts isEmptyOrNil ifTrue:[^ nil].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1133
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1134
    filteredFonts := familyFonts 
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1135
        select:[:fntDescr |
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1136
            (filter isNil or:[filter value:fntDescr])
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1137
        ].
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1138
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1139
    false "(filteredFonts contains:[:fntDescr | fntDescr isXftFont])" ifTrue:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1140
        ^ #(#'regular' #'medium' #'bold' #'demibold'
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1141
            #'light' #'demilight' #'extralight').  
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1142
    ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1143
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1144
    faces := filteredFonts
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1145
        collect:[:fntDescr |
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1146
            (fntDescr face) ? 'normal'.
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1147
        ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1148
    ^ faces
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1149
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1150
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1151
getFamilyList 
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1152
    "the list of font families"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1153
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1154
    |d sav_useXftFontsOnly sav_useXFontsOnly|
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1155
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1156
    sav_useXftFontsOnly := UserPreferences current useXftFontsOnly.
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1157
    sav_useXFontsOnly := UserPreferences current useXFontsOnly.
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1158
    [
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1159
        UserPreferences current useXftFontsOnly:(xftFontsOnlyHolder value).            
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1160
        UserPreferences current useXFontsOnly:false.            
5626
7b87b3d3ecbc device access
Claus Gittinger <cg@exept.de>
parents: 5577
diff changeset
  1161
        allFonts := device listOfAvailableFonts.
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1162
    ] ensure:[
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1163
        UserPreferences current useXftFontsOnly:sav_useXftFontsOnly.            
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1164
        UserPreferences current useXFontsOnly:sav_useXFontsOnly.            
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1165
    ].    
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1166
    allFonts isNil ifTrue:[^ nil].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1167
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1168
    d := Dictionary new.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1169
    allFonts do:[:fntDescr |
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1170
        |family|
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1171
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1172
        (combinedFilter isNil or:[combinedFilter value:fntDescr]) ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1173
            family := fntDescr family.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1174
            family isNil ifTrue:[
5190
a02b847bef56 Fix bad method var name
Stefan Vogel <sv@exept.de>
parents: 5189
diff changeset
  1175
                family := fntDescr name ? 'unnamed'
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1176
            ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1177
            (d at:family ifAbsentPut:[Set new]) add:fntDescr
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1178
        ]
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1179
    ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1180
    fontsPerFamily := d.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1181
    ^ d keys asOrderedCollection sort
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1182
"/
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1183
"/    ^ self graphicsDevice fontFamiliesFiltering:combinedFilter.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1184
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1185
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1186
getSizesInFamily:aFamilyName face:face style:style filtering:filter
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1187
    |familyFonts filteredFonts faceAndStyleFonts sizes hasScalableFont|
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1188
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1189
    familyFonts := fontsPerFamily at:aFamilyName ifAbsent:nil.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1190
    familyFonts isEmptyOrNil ifTrue:[^ nil].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1191
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1192
    hasScalableFont := false.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1193
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1194
    filteredFonts := 
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1195
        familyFonts 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1196
            select:[:fntDescr |
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1197
                (filter isNil or:[filter value:fntDescr])
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1198
            ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1199
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1200
    false "(filteredFonts contains:[:fntDescr | fntDescr isXftFont])" ifTrue:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1201
        hasScalableFont := true
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1202
    ] ifFalse:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1203
        filteredFonts := 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1204
            filteredFonts
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1205
                select:[:fntDescr |
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1206
                    (fntDescr face = face) and:[ fntDescr style = style ]
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1207
                ].
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1208
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1209
        sizes := 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1210
            filteredFonts
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1211
                collect:[:fntDescr |
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1212
                    fntDescr isScaledFont ifTrue:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1213
                        hasScalableFont := true.
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1214
                    ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1215
                    sizeUnit == #px 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1216
                        ifTrue:[ fntDescr pixelSize ]
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1217
                        ifFalse:[ fntDescr size ]
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1218
                ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1219
    ].
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1220
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1221
    hasScalableFont ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1222
        sizeUnit == #px ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1223
            ^ #(10 16 20 24 28 32 48 56 64 72 80 92 128)
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1224
        ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1225
        ^ #(4 5 6 7 8 9 10 11 12 14 16 18 20 22 24 28 32 48 64 72 96 144 192 288)
3834
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
  1226
    ].
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1227
    (sizes size == 1 and:[sizes first == 0]) ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1228
        "/ some font may only be available in certain pixel sizes...
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1229
        sizeUnit == #pt ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1230
            ^ (faceAndStyleFonts collect:[:fontDescr | fontDescr pixelSize]) asOrderedCollection
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1231
                sort collect:[:sz | sz asString , 'px' ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1232
        ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1233
        ^ (faceAndStyleFonts collect:[:fontDescr | fontDescr size]) asOrderedCollection
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1234
                sort collect:[:sz | sz asString , 'pt' ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1235
    ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1236
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1237
    ^ sizes asOrderedCollection sort.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1238
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1239
"/    sizeUnit == #px ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1240
"/        ^ self graphicsDevice 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1241
"/             pixelSizesInFamily:(currentFamily ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1242
"/             face:(currentFace ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1243
"/             style:(currentStyle ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1244
"/             filtering:filter.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1245
"/    ] ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1246
"/        ^ self graphicsDevice 
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1247
"/             sizesInFamily:(currentFamily ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1248
"/             face:(currentFace ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1249
"/             style:(currentStyle ? '*')
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1250
"/             filtering:filter.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1251
"/    ].
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1252
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1253
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1254
getStylesInFamily:aFamilyName face:aFace filtering:filter
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1255
    "the list of font styles for a given family-face"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1256
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1257
    |familyFonts filteredFonts|
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1258
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1259
    familyFonts := fontsPerFamily at:aFamilyName ifAbsent:nil.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1260
    familyFonts isEmptyOrNil ifTrue:[^ nil].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1261
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1262
    filteredFonts := familyFonts 
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1263
        select:[:fntDescr |
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1264
            (filter isNil or:[filter value:fntDescr])
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1265
        ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1266
    false "(filteredFonts contains:[:fntDescr | fntDescr isXftFont])" ifTrue:[
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1267
        ^ #(#'roman' #'italic').  
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1268
    ].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1269
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1270
    filteredFonts := filteredFonts 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1271
        select:[:fntDescr | fntDescr face = aFace].
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1272
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1273
    ^ filteredFonts
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1274
        collect:[:fntDescr |
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1275
            fntDescr style.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1276
        ]
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1277
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1278
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1279
showPreview
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1280
    "show the preview text"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1281
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1282
    |font deviceFont enc fontName|
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  1283
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1284
    "
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1285
     show a wait cursor: for some fonts (kanji etc) the
2890
2a5804121c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  1286
     X-server needs quite some time to load the font
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1287
    "
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
  1288
    self withWaitCursorDo:[
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1289
        font := self fontForPreview.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  1290
        font notNil ifTrue:[
5626
7b87b3d3ecbc device access
Claus Gittinger <cg@exept.de>
parents: 5577
diff changeset
  1291
            deviceFont := font onDevice:device.
2890
2a5804121c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  1292
            enc := deviceFont encoding.
2916
7f1e089959a3 characterEncoding stuff
Claus Gittinger <cg@exept.de>
parents: 2899
diff changeset
  1293
            enc isNil ifTrue:[enc := #'fontspecific'].
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1294
2874
2b8f8b6a69fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2873
diff changeset
  1295
            previewField font:deviceFont.
2b8f8b6a69fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2873
diff changeset
  1296
            previewField characterEncoding:enc.
2b8f8b6a69fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2873
diff changeset
  1297
2287
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
  1298
            encodingLabel label:enc.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  1299
            currentEncoding := enc.
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  1300
            fontName := deviceFont fullName.
5577
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1301
            font isXftFont ifTrue:[fontName := fontName,' (xft)'].
4951
65fd06520836 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4950
diff changeset
  1302
            previewField contents:(font userFriendlyName,'\\' withCRs,(self class defaultSampleStringForEncoding:enc) asString).
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  1303
        ] ifFalse:[
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1304
            previewField contents:nil.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1305
            encodingLabel label:nil.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  1306
            currentEncoding := nil.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1307
            fontName := nil.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  1308
        ].
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1309
        selectedFont := font.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1310
        nameLabel notNil ifTrue:[nameLabel label:fontName].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1311
    ]
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
  1312
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
  1313
    "Modified: 30.6.1997 / 17:26:22 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1314
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1315
128
claus
parents: 110
diff changeset
  1316
showSelectedFont
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1317
    |fam face faceAndStyle style sz font|
128
claus
parents: 110
diff changeset
  1318
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1319
    font := (selectedFont ? initialFont).
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1320
    
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1321
    fam := font family.
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1322
    currentEncoding := font encoding.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  1323
5188
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1324
    fontsPerFamily isNil ifTrue:[
6604
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1325
        "sr: no comment why changed from #getFamilyList to #updateFamilyList
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1326
         problem: #updateFamilyList will not set #fontsPerFamily and calls 
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1327
         myself #showSelectedFont again -> recursion -> stx crash"
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1328
        self updateFamilyListAndDoShowSelectedFont:false.
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1329
"/        self updateFamilyList.
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1330
        "/ self getFamilyList
5188
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1331
    ].
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1332
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
  1333
    self familySelected:fam showPreview:false.
128
claus
parents: 110
diff changeset
  1334
    fam notNil ifTrue:[
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1335
        face := font face.
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1336
        (face notNil and:[(style := font style) notNil]) ifTrue:[
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1337
            faceAndStyle := face , '-' , style.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1338
        ].
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
  1339
        self faceSelected:faceAndStyle showPreview:false.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1340
        faceAndStyle notNil ifTrue:[
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1341
            sz := sizeUnit == #px ifTrue:[font pixelSize asString,'px'] ifFalse:[font size asString].
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
  1342
            pixelPointSwitch contents:sizeUnit.
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
  1343
            self sizeSelected:sz showPreview:false. 
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1344
        ]
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1345
    ].
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
  1346
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
  1347
    self showPreview
6604
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1348
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1349
    "Modified: / 11-06-2019 / 11:44:55 / Stefan Reise"
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1350
!
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1351
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1352
updateFamilyList 
6604
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1353
    self updateFamilyListAndDoShowSelectedFont:true.
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1354
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1355
    "Created: / 27-02-1996 / 01:40:37 / cg"
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1356
    "Modified: / 11-06-2019 / 11:45:12 / Stefan Reise"
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1357
!
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1358
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1359
updateFamilyListAndDoShowSelectedFont:doShowSelectedFont
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1360
    "update the list of font families"
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1361
6604
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1362
    "sr: use #doShowSelectedFont with false 
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1363
     to avoid recursion when called by #updateFamilyList"
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1364
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1365
    |families|
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1366
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1367
    familyList list isNil ifTrue:[
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
  1368
        families := self getFamilyList.
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1369
        families notNil ifTrue:[
4943
50df4258ca07 class: FontPanel
Stefan Vogel <sv@exept.de>
parents: 4925
diff changeset
  1370
            families := families asNewOrderedCollection sort
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1371
        ].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1372
        familyList list:families
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1373
    ].
6604
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1374
    (selectedFont notNil
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1375
    and:[doShowSelectedFont ? true]) ifTrue:[
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1376
        self showSelectedFont
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1377
    ].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1378
6604
89a0c07bbba9 #BUGFIX by Stefan Reise
sr
parents: 6570
diff changeset
  1379
    "Created: / 11-06-2019 / 11:44:32 / Stefan Reise"
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1380
!
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1381
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1382
updateSizeList
5188
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1383
    |sizes sizeStrings oldSize newSize|
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1384
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1385
    sizes := self 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1386
            getSizesInFamily:(currentFamily ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1387
            face:(currentFace ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1388
            style:(currentStyle ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1389
            filtering:combinedFilter.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1390
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1391
    (sizes isEmptyOrNil) ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1392
        sizeList list:nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1393
        currentSize := nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1394
"/ self halt.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1395
        ^ self
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1396
    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1397
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1398
    sizes := sizes asOrderedCollection.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1399
    selectedFont notNil ifTrue:[
4947
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
  1400
        oldSize := currentSize.
5188
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1401
        newSize := (selectedFont sizeUnit == #px)
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1402
                         ifTrue:[ selectedFont pixelSize ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1403
                         ifFalse:[ selectedFont size ].
5188
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1404
        newSize == 0 ifTrue:[
4947
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
  1405
            currentSize := oldSize 
5188
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1406
        ] ifFalse:[
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1407
            currentSize := newSize asString.
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1408
            (selectedFont sizeUnit == #px) ifTrue:[
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1409
                currentSize := currentSize , 'px'
cc161d523f4f class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5187
diff changeset
  1410
            ]
4947
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
  1411
        ].
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1412
"/        currentSize notNil ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1413
"/            (sizes includes:currentSize) ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1414
"/                sizes add:currentSize
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1415
"/            ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1416
"/        ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1417
    ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1418
    "/ sizes sort.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1419
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1420
    sizeStrings := sizes collect:[:entry | entry asString].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1421
    sizeList list:sizeStrings.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1422
    currentSize notNil ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1423
        (sizeStrings includes:(currentSize asString)) ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1424
            sizeList setSelectElement:currentSize asString.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1425
        ] ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1426
            sizeStrings notEmpty ifTrue:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1427
                sizeList setSelectElement:sizeStrings first.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1428
                currentSize := sizeStrings first.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1429
            ] ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1430
                currentSize := nil
4948
cb343da83d22 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4947
diff changeset
  1431
            ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1432
        ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1433
    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1434
!
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1435
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1436
xftFontsOnlyChanged
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1437
    self filterChanged. "/ will update combinedFilter
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1438
! !
128
claus
parents: 110
diff changeset
  1439
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1440
!FontPanel methodsFor:'queries'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1441
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1442
characterSetViewClassAvailable
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1443
    ^ CharacterSetView notNil
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1444
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1445
    "Created: / 11-10-2006 / 21:27:51 / cg"
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1446
!
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1447
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1448
characterSetViewClassAvailableOrOSIsUNIX
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1449
    ^ self characterSetViewClassAvailable or:[self osIsUNIX]
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1450
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1451
    "Created: / 11-10-2006 / 21:29:20 / cg"
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1452
!
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1453
6503
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1454
computePreferredExtent
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1455
    "return the boxes preferredExtent"
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1456
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1457
    "/ ^ 450@350
6570
32fbafd67a49 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 6568
diff changeset
  1458
    ^ self defaultExtent.
6503
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1459
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1460
    "Created: / 09-11-2018 / 19:53:29 / Claus Gittinger"
6570
32fbafd67a49 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 6568
diff changeset
  1461
    "Modified: / 27-03-2019 / 22:54:37 / Claus Gittinger"
6503
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1462
!
879655ae4d0d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6258
diff changeset
  1463
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1464
osIsUNIX
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1465
    ^ OperatingSystem isUNIXlike
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1466
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1467
    "Modified: / 11-10-2006 / 21:28:59 / cg"
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1468
!
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1469
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1470
osIsUNIXAndXfdIsAvailable
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1471
    ^ self osIsUNIX and:[ (OperatingSystem canExecuteCommand:'xfd')]
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1472
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1473
    "Modified: / 11-10-2006 / 21:28:59 / cg"
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1474
!
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1475
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1476
xfdCanBeUsed
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1477
    ^ self osIsUNIXAndXfdIsAvailable 
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1478
        and:[ selectedFont notNil
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1479
        and:[ selectedFont isXftFont not  ]]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1480
! !
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1481
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1482
!FontPanel methodsFor:'startup'!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1483
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1484
fontFromUser
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1485
    "open this fontPanel and return the selected font, 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1486
     or nil if abort is pressed"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1487
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1488
    ^ self 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1489
        fontFromUserInitial:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1490
        title:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1491
        filter:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1492
        encoding:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1493
        enabled:true
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1494
        withChangeAllOption:false
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1495
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1496
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1497
     FontPanel fontFromUser
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1498
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1499
     FontPanel new
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1500
        withChangeFontInViewsAllCheckBox:true;
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1501
        fontFromUser
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1502
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1503
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1504
    "Modified: 27.2.1996 / 00:51:59 / cg"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1505
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1506
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1507
fontFromUserInitial:aFont
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1508
    "open this fontPanel showing aFont initially,
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1509
     and return the selected font, or nil if abort is pressed"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1510
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1511
    ^ self 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1512
        fontFromUserInitial:aFont 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1513
        title:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1514
        filter:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1515
        encoding:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1516
        enabled:true
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1517
        withChangeAllOption:false
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1518
        
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1519
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1520
     FontPanel fontFromUserInitial:(Font family:'courier' size:12)
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1521
     FontPanel fontFromUserInitial:MenuPanel defaultFont
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1522
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1523
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1524
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1525
fontFromUserInitial:aFont title:someTitle
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1526
    "open this fontPanel with title and return the selected font, 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1527
     or nil if abort is pressed"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1528
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1529
    ^ self 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1530
        fontFromUserInitial:aFont 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1531
        title:someTitle 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1532
        filter:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1533
        encoding:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1534
        enabled:true
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1535
        withChangeAllOption:false
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1536
        
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1537
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1538
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1539
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1540
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1541
    "Created: 27.2.1996 / 00:59:46 / cg"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1542
    "Modified: 29.4.1996 / 09:45:34 / cg"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1543
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1544
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1545
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1546
    "open this fontPanel with title and font-filter
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1547
     and return the selected font, or nil if abort is pressed"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1548
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1549
    ^ self 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1550
        fontFromUserInitial:initialFont 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1551
        title:someTitle 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1552
        filter:aFilterBlock 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1553
        encoding:nil
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1554
        enabled:true
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1555
        withChangeAllOption:false
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1556
        
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1557
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1558
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1559
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1560
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1561
    "Created: 27.2.1996 / 00:59:46 / cg"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1562
    "Modified: 10.4.1997 / 09:53:03 / cg"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1563
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1564
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1565
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1566
    "open this fontPanel with title and font-filter
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1567
     and return the selected font, or nil if abort is pressed"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1568
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1569
    ^ self
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1570
        fontFromUserInitial:initialFont 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1571
        title:someTitle 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1572
        filter:aFilterBlock 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1573
        encoding:encoding 
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1574
        enabled:true
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1575
        withChangeAllOption:false
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1576
        
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1577
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1578
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1579
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1580
!
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1581
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1582
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding enabled:enabled
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1583
    "open this fontPanel with title and font-filter
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1584
     and return the selected font, or nil if abort is pressed"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1585
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1586
    ^ self 
6151
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1587
        fontFromUserInitial:initialFont 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1588
        title:someTitle 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1589
        filter:aFilterBlock 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1590
        encoding:encoding 
16206c642558 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6149
diff changeset
  1591
        enabled:enabled
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1592
        withChangeAllOption:false
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1593
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1594
    "
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1595
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'.
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1596
     
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1597
     FontPanel new
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1598
        withChangeFontInViewsAllCheckBox:true;
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1599
        fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1600
    "
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1601
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1602
    "Created: 27.2.1996 / 00:59:46 / cg"
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1603
    "Modified: 10.4.1997 / 09:53:03 / cg"
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1604
!
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1605
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1606
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding enabled:enabled withChangeAllOption:changeAllBoolean
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1607
    "open this fontPanel with title and font-filter
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1608
     and return the selected font, or nil if abort is pressed"
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1609
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1610
    |selectedFont initialFontsEncoding|
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1611
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1612
    self encodingFilter:aFilterBlock.
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1613
    someTitle notNil ifTrue:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1614
        self label:someTitle
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1615
    ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1616
    self action:[:aFontDescription | selectedFont := aFontDescription].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1617
    initialFont notNil ifTrue:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1618
        self initialFont:initialFont.
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1619
    ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1620
    encoding notNil ifTrue:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1621
        self encoding:encoding.
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1622
    ] ifFalse:[
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1623
        initialFont notNil ifTrue:[
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1624
            initialFontsEncoding := initialFont encoding.
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1625
            ((initialFontsEncoding = #'iso8859-1')
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1626
            or:[ (initialFontsEncoding = #'iso10646-1') ]) ifFalse:[
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1627
                self encoding:initialFontsEncoding
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1628
            ].
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1629
        ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1630
    ].
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1631
    self enabled:enabled.
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1632
    
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1633
    self withChangeFontInAllViewsCheckBoxVisibleHolder 
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1634
            setValue:(enabled and:[changeAllBoolean]);
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1635
            changed.
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1636
    self showAtPointer.
5903
9f80a35511a4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 5900
diff changeset
  1637
5531
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1638
    self destroy.
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1639
    ^ selectedFont
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1640
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1641
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1642
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'.
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1643
     
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1644
     FontPanel new
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1645
        withChangeFontInViewsAllCheckBox:true;
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1646
        fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1647
    "
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1648
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1649
    "Created: 27.2.1996 / 00:59:46 / cg"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1650
    "Modified: 10.4.1997 / 09:53:03 / cg"
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1651
! !
d5ed61031306 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 5524
diff changeset
  1652
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1653
!FontPanel methodsFor:'user interaction'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1654
3604
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1655
copyFontName
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1656
    self setClipboardText:(previewField font storeString).
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1657
!
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1658
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1659
encodingFilterSelected:anEncodingPattern
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1660
    "another encoding was selected; find available fonts and update lists"
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1661
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1662
    |pattern|
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1663
2887
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1664
    anEncodingPattern isNil ifTrue:[
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1665
        self encodingFilter:nil.
2887
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1666
        ^ self.
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1667
    ].
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1668
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1669
    pattern := (anEncodingPattern upTo:$( ) withoutSeparators.
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1670
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1671
    pattern = '?' ifTrue:[
2845
075391fc5ed1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2843
diff changeset
  1672
        pattern := ''
075391fc5ed1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2843
diff changeset
  1673
    ] ifFalse:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1674
        pattern := (pattern isEmptyOrNil ifTrue:'*' ifFalse:pattern).
2845
075391fc5ed1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2843
diff changeset
  1675
    ].
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1676
    self 
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1677
        encodingFilter:
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1678
            [:f | 
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1679
                |doesMatch encoding|
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1680
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1681
                "/ k&d hack for mswindows names...
3848
93776dd41280 oops - leftover debug print
Claus Gittinger <cg@exept.de>
parents: 3841
diff changeset
  1682
                "/ Transcript showCR:f encoding.
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1683
                encoding := f encoding ? ''.
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1684
                doesMatch := (pattern match:encoding).
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1685
                doesMatch ifFalse:[
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1686
                    encoding = 'ms-ansi' ifTrue:[
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1687
                       doesMatch := (pattern = 'iso8859-1') 
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1688
                                    or:[ (pattern = 'iso10646-1')
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1689
                                    or:[ (pattern = 'unicode') ]]
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1690
                    ].
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1691
                    (encoding = 'iso8859-1' 
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1692
                    or:[encoding = 'iso10646-1' 
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1693
                    or:[encoding = 'unicode']]) ifTrue:[
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1694
                       doesMatch := (pattern = 'ms-ansi').
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1695
                       "/ unicode can show all iso charas as well...
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1696
                       doesMatch := doesMatch or:[ pattern = 'iso8859-1' ].
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1697
                       doesMatch := doesMatch or:[ pattern = 'ascii' ].
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1698
                    ].
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1699
                ].
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1700
                doesMatch
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1701
            ].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1702
!
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1703
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1704
faceSelected:aFaceAndStyleName
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1705
    "a fonts face was selected; find available sizes and update lists"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1706
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1707
    self faceSelected:aFaceAndStyleName showPreview:true
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1708
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1709
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1710
faceSelected:aFaceAndStyleName showPreview:showPreview
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1711
    "a fonts face was selected; find available sizes and update lists"
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1712
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
  1713
    |sizes sizeStrings didShow|
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1714
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1715
    aFaceAndStyleName notNil ifTrue:[    
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1716
        self extractFaceAndStyleFrom:aFaceAndStyleName.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1717
    ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1718
    self updateSizeList.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1719
    showPreview ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1720
        self showPreview.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1721
    ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1722
    ^ self.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1723
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1724
"/    sizes := self 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1725
"/                getSizesInFamily:(currentFamily ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1726
"/                face:(currentFace ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1727
"/                style:(currentStyle ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1728
"/                filtering:combinedFilter.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1729
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1730
"/    (sizes isEmptyOrNil) ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1731
"/        sizeList list:nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1732
"/        currentSize := nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1733
"/        self breakPoint:#cg.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1734
"/        showPreview ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1735
"/            self showPreview.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1736
"/        ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1737
"/        ^ self
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1738
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1739
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1740
"/    didShow := false.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1741
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1742
"/    sizes := sizes asOrderedCollection.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1743
"/    selectedFont notNil ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1744
"/        (sizes includes:selectedFont size) ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1745
"/            sizes add:selectedFont size
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1746
"/        ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1747
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1748
"/    sizes sort.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1749
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1750
"/    sizeStrings := sizes collect:[:entry | entry printString].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1751
"/    sizeList list:sizeStrings.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1752
"/    currentSize notNil ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1753
"/        (sizeStrings includes:(currentSize printString)) ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1754
"/            sizeList setSelectElement:currentSize printString.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1755
"/            showPreview ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1756
"/                self showPreview.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1757
"/                didShow := true.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1758
"/            ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1759
"/        ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1760
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1761
"/    didShow ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1762
"/        self clearPreview
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1763
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1764
"/
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
  1765
    "Modified: 30.6.1997 / 17:25:46 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1766
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1767
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1768
familySelected:aFamilyName
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1769
    "a fonts family was selected; find available faces and update lists"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1770
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1771
    self familySelected:aFamilyName showPreview:true
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1772
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1773
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1774
familySelected:aFamilyName showPreview:showPreview
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1775
    "a fonts family was selected; find available faces and update lists"
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1776
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1777
    |familyNameUsed faces styles list idx|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1778
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1779
    familyNameUsed := aFamilyName.
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1780
    
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1781
    familyList setSelectElement:familyNameUsed.
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1782
    familyList selection isNil ifTrue:[
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1783
        "/ mhm - maybe lowercase...
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1784
        idx := familyList list indexOf:(familyNameUsed := aFamilyName asUppercaseFirst).
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1785
        idx == 0 ifTrue:[
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1786
            idx := familyList list indexOf:(familyNameUsed := aFamilyName asLowercaseFirst).
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1787
        ].
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1788
        idx ~~ 0 ifTrue:[
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1789
            familyList selection:idx.
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1790
        ].
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1791
    ].
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1792
    
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1793
    currentFamily := familyNameUsed.
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1794
    faces := self getFacesForFamily:currentFamily filtering:combinedFilter.
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1795
    faces isEmptyOrNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1796
        currentFace := currentStyle := currentFaceAndStyle := nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1797
        faceList list:nil.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1798
        self faceSelected:nil showPreview:showPreview.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1799
        ^ self.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1800
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1801
2353
0d373c7046f7 Show registry AND encoding
Stefan Vogel <sv@exept.de>
parents: 2287
diff changeset
  1802
    list := SortedCollection new.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1803
    faces do:[:aFace |
5466
fc95af7eb796 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 5447
diff changeset
  1804
        styles := (self getStylesInFamily:currentFamily face:aFace filtering:combinedFilter) ? #().
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1805
        styles do:[:aStyle |
5524
56e7888d6438 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 5466
diff changeset
  1806
            aFace isEmptyOrNil ifTrue:[
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1807
                list add:(aStyle)
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1808
            ] ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1809
                list add:(aFace , '-' , aStyle)
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1810
            ]
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1811
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1812
    ].
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1813
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1814
    faceList list:list.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1815
    currentFaceAndStyle notNil ifTrue:[
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1816
        (list includes:currentFaceAndStyle) ifFalse:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1817
            currentFaceAndStyle = 'normal-roman' ifTrue:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1818
                (list includes:'regular-roman') ifTrue:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1819
                    currentFaceAndStyle := 'regular-roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1820
                    currentFace := 'regular'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1821
                    currentStyle := 'roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1822
                ].
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1823
                (list includes:'medium-roman') ifTrue:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1824
                    currentFaceAndStyle := 'medium-roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1825
                    currentFace := 'medium'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1826
                    currentStyle := 'roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1827
                ].
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1828
            ].
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1829
        ].
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1830
        (list includes:currentFaceAndStyle) ifTrue:[
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
  1831
            faceList setSelectElement:currentFaceAndStyle.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1832
            self faceSelected:currentFaceAndStyle showPreview:showPreview.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1833
            ^ self
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1834
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1835
    ].
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1836
    list notEmptyOrNil ifTrue:[
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1837
        "/ faceList setSelectElement:(list first).
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1838
        faceList selectElement:(list first).
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1839
        self faceSelected:(list first) showPreview:showPreview.
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1840
        self updateSizeList.
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1841
        ^ self
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1842
    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1843
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1844
    sizeList list:nil.
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1845
    self clearPreview.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1846
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
  1847
    "Modified: 26.5.1996 / 15:04:29 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1848
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1849
5548
Claus Gittinger <cg@exept.de>
parents: 5532
diff changeset
  1850
flushListOfAvailableFonts
5577
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1851
    self withWaitCursorDo:[
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1852
        "this may take some time, especially with X11 XFT fonts"
5626
7b87b3d3ecbc device access
Claus Gittinger <cg@exept.de>
parents: 5577
diff changeset
  1853
        device 
5577
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1854
            flushListOfAvailableFonts;
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1855
            listOfAvailableFonts.
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1856
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1857
        familyList list:nil.
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1858
        self updateFamilyList.
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1859
    ].
5548
Claus Gittinger <cg@exept.de>
parents: 5532
diff changeset
  1860
!
Claus Gittinger <cg@exept.de>
parents: 5532
diff changeset
  1861
5900
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1862
fontAttributeFilterChanged
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1863
    "a filter toggled (decorative/monospaced etc.)"
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1864
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1865
^ self.
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1866
!
d880e4b3a36d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5626
diff changeset
  1867
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1868
okPressed
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1869
    "ok was pressed; hide myself and evaluate the okAction, passing
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1870
     family, face, style and size as arguments"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1871
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1872
    |sz szUnitUsed|
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1873
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1874
    szUnitUsed := (sizeUnit ? #pt).
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1875
    sz := Number readFrom:currentSize.
5577
Stefan Vogel <sv@exept.de>
parents: 5548
diff changeset
  1876
    (currentSize endsWith:#px) ifTrue:[
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1877
        szUnitUsed := #px
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1878
    ].
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1879
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1880
    self hide.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1881
    okAction notNil ifTrue:[
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
  1882
        currentFamily notNil ifTrue:[
4946
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1883
            okAction value:
5626
7b87b3d3ecbc device access
Claus Gittinger <cg@exept.de>
parents: 5577
diff changeset
  1884
                (((device supportsXftFonts and:[self xftFontsOnlyHolder value])
4946
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1885
                        ifTrue:[XftFontDescription]
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1886
                        ifFalse:[FontDescription])
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1887
                      family:currentFamily 
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1888
                      face:currentFace 
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1889
                      style:currentStyle
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1890
                      size:sz      
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1891
                      sizeUnit:szUnitUsed
4946
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1892
                      encoding:(currentEncoding ? encoding)).
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
  1893
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1894
    ]
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
  1895
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
  1896
    "Modified: 10.4.1997 / 09:51:31 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1897
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1898
6149
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1899
previewBlackOnWhite
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1900
    previewField foregroundColor:(Color black) backgroundColor:(Color white).
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1901
!
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1902
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1903
previewCopySelection
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1904
    previewField copySelection.
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1905
!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1906
2935
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1907
previewInspectFont
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1908
    previewField font inspect.
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1909
!
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1910
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1911
previewShowCharacterSet
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1912
    CharacterSetView openOn:(previewField font)
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1913
!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1914
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
  1915
previewShowCharacterSetUsingXFD
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1916
    |fullName|
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1917
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1918
    (fullName := selectedFont fullName) isNil ifTrue:[
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1919
        self warn:('Sorry could not figure out the X-font (aka file) name of: ', selectedFont printString).
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1920
        ^ self.
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1921
    ].
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1922
    
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1923
    [
5919
e6ef9297a8b5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  1924
        OperatingSystem executeCommand:'xfd -fn ' , fullName.
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1925
    ] fork.
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
  1926
!
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
  1927
6149
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1928
previewWhiteOnBlack
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1929
    previewField foregroundColor:(Color white) backgroundColor:(Color black).
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1930
!
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1931
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1932
previewWhiteOnGreen
6559
09ba4cf1ec92 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6503
diff changeset
  1933
    previewField foregroundColor:(Color white) backgroundColor:(Color darkGreen).
09ba4cf1ec92 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6503
diff changeset
  1934
09ba4cf1ec92 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 6503
diff changeset
  1935
    "Modified: / 13-03-2019 / 21:12:05 / Claus Gittinger"
6149
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1936
!
b3f27b4b16b0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 6011
diff changeset
  1937
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1938
sizeSelected:aNumberOrString
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1939
    "a size was selected; update preview"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1940
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1941
    self sizeSelected:aNumberOrString showPreview:true.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1942
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1943
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1944
sizeSelected:aNumberOrString showPreview:showPreview
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1945
    "a size was selected; update preview"
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1946
5187
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1947
    currentSize := aNumberOrString.
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1948
"/    aNumberOrString isNumber ifFalse:[
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1949
"/        currentSize := Number readFromString:aNumberOrString onError:nil
b313547fe799 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5184
diff changeset
  1950
"/    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1951
    showPreview ifTrue:[self showPreview]
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1952
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1953
    "Modified: 29.4.1996 / 09:43:23 / cg"
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1954
!
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1955
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1956
sizeUnitSelected:unitSymbol
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1957
    sizeUnit := unitSymbol.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1958
    sizeLabelHolder value:(resources 
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
  1959
                            string:(sizeUnit == #px 
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1960
                                        ifTrue:'Size (px)' 
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1961
                                        ifFalse:'Size')).
3834
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
  1962
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
  1963
    self showPreview
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1964
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1965
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
  1966
!FontPanel class methodsFor:'documentation'!
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
  1967
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
  1968
version
5446
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
  1969
    ^ '$Header$'
4094
257521b4e80f changed:
Stefan Vogel <sv@exept.de>
parents: 3940
diff changeset
  1970
!
257521b4e80f changed:
Stefan Vogel <sv@exept.de>
parents: 3940
diff changeset
  1971
257521b4e80f changed:
Stefan Vogel <sv@exept.de>
parents: 3940
diff changeset
  1972
version_CVS
5446
91efc544e8de #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 5190
diff changeset
  1973
    ^ '$Header$'
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
  1974
! !
4660
6ad643669cc1 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4429
diff changeset
  1975