FontPanel.st
author Claus Gittinger <cg@exept.de>
Mon, 23 Jun 2014 15:02:55 +0200
changeset 5073 f175c1bfb3b0
parent 5008 2af062c3a407
child 5102 30b7e7cc2d99
permissions -rw-r--r--
class: ScrollableView added: #requestAutoAccept must forward this message to the scrolled view
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1991 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
     3
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     4
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
"
2275
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
    12
"{ Package: 'stx:libwidg' }"
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
    13
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    14
DialogBox subclass:#FontPanel
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
    15
	instanceVariableNames:'previewField listOfEncodings familyList faceList sizeList
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
    16
		revertButton currentFamily currentFace currentStyle
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
    17
		currentFaceAndStyle currentSize sizeUnit currentEncoding
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
    18
		selectedFont nameLabel encodingFilter encodingLabel filter
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
    19
		combinedFilter encoding sizeLabelHolder pixelPointSwitch
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
    20
		xftFontsOnlyHolder'
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    21
	classVariableNames:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    22
	poolDictionaries:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    23
	category:'Views-DialogBoxes'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    24
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    25
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
    26
!FontPanel class methodsFor:'documentation'!
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    27
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    28
copyright
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    29
"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    30
 COPYRIGHT (c) 1991 by Claus Gittinger
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    31
	      All Rights Reserved
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    32
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    33
 This software is furnished under a license and may be used
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    34
 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
    35
 inclusion of the above copyright notice.   This software may not
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    36
 be provided or otherwise made available to, or used by, any
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    37
 other person.  No title to or ownership of the software is
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    38
 hereby transferred.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    39
"
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
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    42
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    43
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    44
documentation
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    45
"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    46
    this class implements a font chooser.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    47
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    48
    Notice: 
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    49
        this is a very old dialog; 
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    50
        it was written before the UI-framework was available and is completely
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    51
        setup manually (initialize method).
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    52
        Therefore, it desperately asks to be rewritten using the UIPainter...
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    53
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    54
    [author:]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    55
        Claus Gittinger
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    56
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    57
    [see also:]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    58
        Font FontDescription
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    59
        View Dialog
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    60
"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    61
!
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    62
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    63
examples
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    64
"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    65
    very simple:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    66
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    67
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    68
        
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    69
        font := FontPanel fontFromUser.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
    70
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    71
                                                                        [exEnd]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    72
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    73
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    74
    with initial font:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    75
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    76
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    77
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    78
        font := FontPanel 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    79
                    fontFromUserInitial:(Font 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    80
                                            family:'courier'
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    81
                                            size:12).
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
    82
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    83
                                                                        [exEnd]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    84
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    85
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    86
    with initial font & title:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    87
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    88
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    89
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    90
        font := FontPanel 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    91
                    fontFromUserInitial:(Font 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    92
                                            family:'courier'
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    93
                                            size:12)
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    94
                                  title:'select a fooBar font'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
    95
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    96
                                                                        [exEnd]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    97
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    98
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    99
    full setup; setting a filter to only present iso fonts
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   100
    and callBack action:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   101
                                                                        [exBegin]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   102
585
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   103
        |panel|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   104
585
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
   105
        panel := FontPanel new.
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   106
        panel label:'hi there - which iso font ?'.
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   107
        panel filter:[:fd | fd encoding notNil
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   108
                            and:[fd encoding startsWith:'iso']].
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   109
        panel action:[:family :face :style :size | 
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   110
                        Transcript showCR:'family:' , family.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   111
                        Transcript showCR:'face:' , face.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   112
                        Transcript showCR:'style:' , style.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   113
                        Transcript showCR:'size:' , size printString.
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   114
                     ].
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   115
        panel open
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   116
                                                                        [exEnd]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   117
"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   118
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   119
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   120
!FontPanel class methodsFor:'defaults'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   121
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   122
defaultAsciiSampleString
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   123
    ^ (self sampleStringWithAllLetters) , '
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   124
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   125
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   126
1234567890    !!@#$%^&*(){}[]:"~;,./<>?
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   127
'
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   128
!
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   129
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   130
defaultExtent
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   131
    "return the default extent of my instances.
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   132
     The value returned here is usually ignored, and
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   133
     the value from preferredExtent taken instead."
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   134
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   135
    ^ (Screen current pixelPerMillimeter * (200 @ 150)) rounded
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   136
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   137
    "Modified: 22.4.1996 / 23:36:19 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   138
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   139
2860
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   140
defaultJIS0201SampleString
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   141
    "return the sample jis preview text"
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   142
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   143
    ^ (self defaultLatin1SampleString).
2860
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   144
!
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   145
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   146
defaultJISSampleString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   147
    "return the sample jis preview text"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   148
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   149
    ^ 
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   150
'The quick brown fox
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   151
jumps over the lazy dog.
2860
69d838dd825c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
   152
2939
1c23ad9aa8be Fix russian example text.
Stefan Vogel <sv@exept.de>
parents: 2938
diff changeset
   153
' , #(16r65E5 16r672C 16r8A9E) asUnicodeString
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   154
!
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   155
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   156
defaultLatin1SampleString
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   157
    "return the sample latin1 preview text"
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   158
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   159
    ^ (self defaultAsciiSampleString) , 'äöüÄÖÜßéèêå©'
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   160
!
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   161
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   162
defaultSampleStringForEncoding:enc
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   163
    |string lines|
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   164
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   165
    enc notNil ifTrue:[    
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   166
        ((enc startsWith:'unicode') or:[enc startsWith:'iso10646-']) ifTrue:[
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   167
            ^ self defaultUnicodeSampleString.
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   168
        ].
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   169
        (enc startsWith:'ms-ansi') ifTrue:[
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   170
            ^ self defaultUnicodeSampleString.
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   171
        ].
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   172
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   173
        (enc startsWith:'jis') ifTrue:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   174
            (enc includesString:'0201') ifTrue:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   175
                string := self defaultJIS0201SampleString    
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   176
            ] ifFalse:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   177
                string := self defaultJISSampleString
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   178
            ]
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   179
        ] ifFalse:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   180
        ]
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   181
    ].
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   182
    string isNil ifTrue:[
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   183
        string := self defaultLatin1SampleString.
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   184
    ].
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   185
    lines := string asStringCollection.
3481
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   186
    [
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   187
        lines := lines encodeFrom:#unicode into:enc
3481
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   188
    ] on:CharacterEncoderError do:[:ex|
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   189
        "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
   190
         in the new character set"
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   191
        ex proceedWith:ex defaultValue.
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   192
    ].
3481
a1fbc8d2494d Catch CharacterEncoderError instead of Error
Stefan Vogel <sv@exept.de>
parents: 3475
diff changeset
   193
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   194
    ^ lines.
2899
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   195
!
2c03646c466f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2896
diff changeset
   196
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   197
defaultUnicodeSampleString
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   198
    "return the sample unicode preview text"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   199
2275
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   200
    |t|
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   201
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   202
    t := (self defaultAsciiSampleString) , '
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   203
diaresis: äöüÄÖÜß
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   204
accent: éèêåÅ
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   205
special: ' ,  #(16r20AC) asUnicodeString , '
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   206
math: ' ,  #(16r2200 16r2203 16r221E 16r2208 16r2209) asUnicodeString , '
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   207
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
   208
greek: ' , #(16r395 16r3BB 16r3BB 16r3B7 16r3BD 16r3B9 16r3BA 16r3AC) asUnicodeString , '
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   209
japanese: ' , #(16r65E5 16r672C 16r8A9E) asUnicodeString , '
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   210
chinese: ' ,
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   211
#(16r4F60 16r597D 16r3002) asUnicodeString , ' ' ,
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   212
#(16r6211 16r4E0D 16r8BF4 16r4E2D 16r6587) asUnicodeString , '
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   213
korean: ' , #( 50504 45397 54616 49464 50836 ) asUnicodeString , '
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   214
' ", '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
   215
' ", ''.
2276
a34a00b5c65f gimmick
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   216
    ^ t
2933
c530f9283d0e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2932
diff changeset
   217
4161
bda1fae34c83 changed: #defaultUnicodeSampleString
Claus Gittinger <cg@exept.de>
parents: 4147
diff changeset
   218
    "Modified: / 10-08-2010 / 16:05:16 / cg"
2930
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   219
!
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   220
576e73803b46 correct display of non-unicode, non-8859 encoded fonts
Claus Gittinger <cg@exept.de>
parents: 2921
diff changeset
   221
sampleStringWithAllLetters
4147
150b7dff3b6a comment/format in: #sampleStringWithAllLetters
Claus Gittinger <cg@exept.de>
parents: 4094
diff changeset
   222
    ^ (self classResources 
150b7dff3b6a comment/format in: #sampleStringWithAllLetters
Claus Gittinger <cg@exept.de>
parents: 4094
diff changeset
   223
        at:'CHARSET_TEST_SENTENCE' 
150b7dff3b6a comment/format in: #sampleStringWithAllLetters
Claus Gittinger <cg@exept.de>
parents: 4094
diff changeset
   224
        ifAbsent:'The quick brown fox jumps over the lazy dog') withCRs
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   225
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   226
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   227
!FontPanel class methodsFor:'menu specs'!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   228
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   229
previewMenu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   230
    "This resource specification was automatically generated
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   231
     by the MenuEditor of ST/X."
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   232
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   233
    "Do not manually edit this!! If it is corrupted,
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   234
     the MenuEditor may not be able to read the specification."
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   235
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   236
    "
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   237
     MenuEditor new openOnClass:FontPanel andSelector:#previewMenu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   238
     (Menu new fromLiteralArrayEncoding:(FontPanel previewMenu)) startUp
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   239
    "
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   240
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   241
    <resource: #menu>
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   242
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   243
    ^ 
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   244
     #(Menu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   245
        (
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   246
         (MenuItem
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   247
            label: 'Copy'
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   248
            itemValue: previewCopySelection
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   249
            translateLabel: true
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   250
          )
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   251
         (MenuItem
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   252
            label: '-'
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   253
          )
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   254
         (MenuItem
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   255
            label: 'Show Character Set'
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   256
            itemValue: previewShowCharacterSet
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   257
            translateLabel: true
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   258
            isVisible: characterSetViewClassAvailable
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   259
          )
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   260
         (MenuItem
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   261
            label: 'Show Character Set (Using xfd)'
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   262
            itemValue: previewShowCharacterSetUsingXFD
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   263
            translateLabel: true
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   264
            isVisible: osIsUNIX
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   265
          )
2935
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   266
         (MenuItem
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   267
            label: '-'
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   268
            isVisible: characterSetViewClassAvailableOrOSIsUNIX
2935
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   269
          )
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   270
         (MenuItem
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   271
            label: 'Inspect Font'
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   272
            itemValue: previewInspectFont
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   273
            translateLabel: true
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
   274
          )
3604
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   275
         (MenuItem
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   276
            label: 'Copy Fontname'
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   277
            itemValue: copyFontName
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   278
            translateLabel: true
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
   279
          )
2852
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
        nil
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   282
        nil
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   283
      )
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   284
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
   285
    "Modified: / 11-10-2006 / 21:51:02 / cg"
2852
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
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   288
!FontPanel class methodsFor:'startup'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   289
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   290
fontFromUser
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   291
    "open a fontPanel and return the selected font, or nil
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   292
     if abort is pressed"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   293
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   294
    ^ self 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   295
        fontFromUserInitial:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   296
        title:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   297
        filter:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   298
        encoding:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   299
        enabled:true
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   300
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   301
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   302
     FontPanel fontFromUser
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   303
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   304
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   305
    "Modified: 27.2.1996 / 00:51:59 / cg"
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   306
!
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   307
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   308
fontFromUserInitial:aFont
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   309
    "open a fontPanel showing aFont initially,
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   310
     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
   311
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   312
    ^ self 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   313
        fontFromUserInitial:aFont 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   314
        title:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   315
        filter:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   316
        encoding:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   317
        enabled:true
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   318
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   319
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   320
     FontPanel fontFromUserInitial:(Font family:'courier' size:12)
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   321
     FontPanel fontFromUserInitial:MenuPanel defaultFont
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   322
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   323
!
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   324
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   325
fontFromUserInitial:aFont title:someTitle
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   326
    "open a fontPanel with title and return the selected font, 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   327
     or nil if abort is pressed"
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   328
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   329
    ^ self 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   330
        fontFromUserInitial:aFont 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   331
        title:someTitle 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   332
        filter:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   333
        encoding:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   334
        enabled:true
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   335
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   336
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   337
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   338
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   339
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   340
    "Created: 27.2.1996 / 00:59:46 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   341
    "Modified: 29.4.1996 / 09:45:34 / cg"
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   342
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   343
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   344
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   345
    "open a fontPanel with title and font-filter
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   346
     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
   347
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   348
    ^ self 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   349
        fontFromUserInitial:initialFont 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   350
        title:someTitle 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   351
        filter:aFilterBlock 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   352
        encoding:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   353
        enabled:true
2887
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   354
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   355
    "
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   356
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   357
    "
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   358
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   359
    "Created: 27.2.1996 / 00:59:46 / cg"
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   360
    "Modified: 10.4.1997 / 09:53:03 / cg"
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   361
!
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   362
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   363
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   364
    "open a fontPanel with title and font-filter
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   365
     and return the selected font, or nil if abort is pressed"
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
   366
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   367
    ^ self
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   368
        fontFromUserInitial:initialFont 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   369
        title:someTitle 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   370
        filter:aFilterBlock 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   371
        encoding:encoding 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   372
        enabled:true
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   373
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   374
    "
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   375
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   376
    "
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   377
!
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   378
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   379
fontFromUserInitial:initialFont title:someTitle filter:aFilterBlock encoding:encoding enabled:enabled
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   380
    "open a fontPanel with title and font-filter
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   381
     and return the selected font, or nil if abort is pressed"
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   382
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   383
    |fontPanel selectedFont|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   384
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   385
    fontPanel := self new.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   386
    fontPanel filter:aFilterBlock.
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   387
    someTitle notNil ifTrue:[
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   388
        fontPanel label:someTitle
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   389
    ].
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   390
    fontPanel action:[:aFontDescription | selectedFont := aFontDescription].
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   391
    initialFont notNil ifTrue:[
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   392
        fontPanel initialFont:initialFont.
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   393
    ].
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   394
    encoding notNil ifTrue:[
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   395
        fontPanel encoding:encoding.
2937
cee2b9a5e360 checkin from browser
ca
parents: 2936
diff changeset
   396
    ] ifFalse:[
cee2b9a5e360 checkin from browser
ca
parents: 2936
diff changeset
   397
        initialFont notNil ifTrue:[
cee2b9a5e360 checkin from browser
ca
parents: 2936
diff changeset
   398
            fontPanel encoding:initialFont encoding
cee2b9a5e360 checkin from browser
ca
parents: 2936
diff changeset
   399
        ].
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   400
    ].
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   401
    fontPanel enabled:enabled.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   402
    fontPanel showAtPointer.
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   403
    fontPanel destroy.
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   404
    ^ selectedFont
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   405
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   406
    "
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   407
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   408
    "
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   409
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   410
    "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
   411
    "Modified: 10.4.1997 / 09:53:03 / cg"
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   412
!
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
openOn:aFont
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   415
    "open a fontPanel showing aFont initially.
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   416
     This panel is for information only - no font selection is possible."
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
    ^ self 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   419
        fontFromUserInitial:aFont 
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   420
        title:(aFont userFriendlyName)
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   421
        filter:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   422
        encoding:nil
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   423
        enabled:false
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   424
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   425
    "
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   426
     FontPanel openOn:(Font family:'courier' size:12)
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   427
     FontPanel openOn:MenuPanel defaultFont
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   428
    "
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   429
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   430
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   431
!FontPanel methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   432
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   433
action:aFourArgBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   434
    "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
   435
     The block will be evaluated with family, face, style, size and encoding."
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   436
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   437
    okAction := aFourArgBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   438
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   439
    "Modified: 10.4.1997 / 09:49:58 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   440
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   441
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   442
encoding:aPattern
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   443
    "set the encoding goal"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   444
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   445
    encoding := aPattern.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   446
    encodingFilter contents:encoding.
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   447
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   448
    self encodingFilterSelected:encoding.
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   449
    shown ifTrue:[
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   450
        self updateFamilyList
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   451
    ].
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   452
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   453
    "Created: 29.2.1996 / 04:05:31 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   454
    "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
   455
!
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   456
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   457
filter:aOneArgBlockOrNil
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   458
    "set a filter; if non-nil, only fonts for which the filterBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   459
     returns true will be offered"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   460
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   461
    filter := aOneArgBlockOrNil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   462
    filter isNil ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   463
        xftFontsOnlyHolder value 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   464
            ifTrue:[ combinedFilter := [:fd | fd isXftFont] ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   465
            ifFalse:[ combinedFilter := [:fd | true] ]                                     
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   466
    ] ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   467
        xftFontsOnlyHolder value 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   468
            ifTrue:[ combinedFilter := [:fd | fd isXftFont and:[filter value:fd]] ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   469
            ifFalse:[ combinedFilter := filter ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   470
    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   471
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   472
    familyList list:nil.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   473
    shown ifTrue:[
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   474
        self updateFamilyList
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   475
    ].
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   476
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   477
    "Created: 27.2.1996 / 01:40:08 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   478
    "Modified: 29.4.1996 / 09:40:49 / cg"
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   479
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   480
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   481
initialFont:aFont
128
claus
parents: 110
diff changeset
   482
    "set the font to be selected initially"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   483
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   484
    |encoding|
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   485
128
claus
parents: 110
diff changeset
   486
    selectedFont := aFont.
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   487
    currentFamily := aFont family.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   488
    currentFace := aFont face.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   489
    currentStyle := aFont style.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   490
    currentSize := aFont size.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   491
    currentFaceAndStyle := currentFace,'-',currentStyle.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
   492
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   493
    self xftFontsOnlyHolder value:(aFont isXftFont).
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   494
    encoding := aFont encoding.    
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   495
    sizeUnit := aFont sizeUnit.
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   496
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   497
"/ self halt.
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   498
    encodingFilter contents:encoding.
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   499
    self encodingFilterSelected:encoding.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   500
    self showSelectedFont.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   501
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   502
    "Modified: 23.2.1996 / 00:51:32 / cg"
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   503
!
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   504
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   505
xftFontsOnlyHolder
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   506
    xftFontsOnlyHolder isNil ifTrue:[
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   507
        xftFontsOnlyHolder := true asValue
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   508
    ].
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   509
    ^ xftFontsOnlyHolder
101
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   510
! !
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   511
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   512
!FontPanel methodsFor:'initialization'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   513
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   514
enabled:aBoolean
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   515
    familyList enabled:aBoolean.
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   516
    faceList enabled:aBoolean.
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   517
    sizeList enabled:aBoolean.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   518
    encodingFilter notNil ifTrue:[
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   519
        encodingFilter enabled:aBoolean.
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   520
    ]
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   521
!
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
   522
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   523
initialize
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   524
    |familyLabel faceLabel sizeLabel panel fontBrowserView v1 v2 v3
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   525
     mm fH eH l box1 box2 showFontNameLabel xftCheckBox vPanel|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   526
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   527
    super initialize.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   528
4982
afe827d81029 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4953
diff changeset
   529
    showFontNameLabel := self graphicsDevice isWindowsPlatform not.
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   530
    sizeUnit := #pt.
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   531
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   532
    mm := ViewSpacing.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   533
1763
1c6be8158c27 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
   534
    self addAbortAndOkButtons.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   535
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   536
    panel := View origin:0.0@0.0 corner:1.0@1.0 in:self.
3607
242d08639bcc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 3604
diff changeset
   537
    panel bottomInset:(buttonPanel preferredHeight 
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   538
                        + (mm*3) 
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   539
                        + (showFontNameLabel ifTrue:24 ifFalse:0) ).
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   540
150
claus
parents: 131
diff changeset
   541
    label := resources string:'Font dialog'.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   542
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   543
    box1 := HorizontalPanelView in:panel.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   544
    "/ box horizontalLayout:#leftFit.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   545
    box1 horizontalLayout:#left.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   546
    box1 origin:0.0@1.0 corner:0.8@1.0.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   547
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   548
    box2 := HorizontalPanelView in:panel.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   549
    "/ box horizontalLayout:#leftFit.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   550
    box2 horizontalLayout:#right.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   551
    box2 origin:0.8@1.0 corner:1.0@1.0.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   552
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   553
    l := Label label:(resources string:'Encoding:') in:box1.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   554
    l borderWidth:0.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   555
    l adjust:#left.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   556
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   557
    eH := 0.
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   558
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   559
    encodingFilter := ComboBoxView in:box1.
2942
a0ef008a69f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2939
diff changeset
   560
    "/ encodingFilter font:l font.
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   561
    encodingFilter level:-1.
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   562
    encodingFilter contents:'*'.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   563
    encodingFilter list:(self listOfEncodingsInFilterCombo).
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   564
    encodingFilter action:[:pattern | self encodingFilterSelected:pattern].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   565
    encodingFilter immediateAccept:true.
2942
a0ef008a69f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2939
diff changeset
   566
    "/ encodingFilter editor font:l font.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   567
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   568
    self showEncodingFilter ifTrue:[
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   569
        eH := encodingFilter preferredHeight.
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   570
        box1 topInset:(eH negated-4); horizontalInset:mm.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   571
    ] ifFalse:[
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   572
        encodingFilter beInvisible
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   573
    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   574
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   575
"/    encodingFilter acceptOnReturn:true.
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   576
"/    encodingFilter acceptOnTab:true.
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   577
"/    encodingFilter acceptOnLeave:true.
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   578
"/    encodingFilter acceptOnLostFocus:true.
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   579
"/    encodingFilter acceptOnPointerLeave:true.
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   580
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   581
    encodingLabel := Label label:' ' in:box1.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   582
    "/ eH := encodingLabel preferredExtent y.
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   583
    "/ encodingLabel origin:0.6@1.0 corner:1.0@1.0.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   584
    "/ encodingLabel topInset:(eH negated); horizontalInset:mm.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   585
    encodingLabel level:0; adjust:#left.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   586
    encodingLabel adjust:#right.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   587
    self showEncodingFilter ifFalse:[
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   588
        encodingLabel beInvisible
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   589
    ].
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   590
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   591
    XftFontDescription notNil ifTrue:[
4952
b5f886f310ce class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4951
diff changeset
   592
        UserPreferences current useXftFontsOnly ifTrue:[
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   593
            self xftFontsOnlyHolder value: true.
4952
b5f886f310ce class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4951
diff changeset
   594
        ] ifFalse:[
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   595
            self xftFontsOnlyHolder value: false.
4952
b5f886f310ce class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4951
diff changeset
   596
            xftCheckBox := CheckBox label:'XFT Fonts Only' in:box1.
b5f886f310ce class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4951
diff changeset
   597
            xftCheckBox model:xftFontsOnlyHolder.
b5f886f310ce class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4951
diff changeset
   598
            xftFontsOnlyHolder onChangeEvaluate:[ self xftFontsOnlyChanged ].
b5f886f310ce class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4951
diff changeset
   599
        ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   600
    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   601
4892
e83dcdeb4d09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4660
diff changeset
   602
"/    sep := View in:box1.
e83dcdeb4d09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4660
diff changeset
   603
"/    sep width:10 height:10.
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   604
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   605
    pixelPointSwitch := ComboListView in:box2.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   606
    "/ encodingFilter font:l font.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   607
    pixelPointSwitch level:-1.
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   608
    pixelPointSwitch contents:'pt'.
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   609
    pixelPointSwitch list:#(#pt #px).
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   610
    pixelPointSwitch action:[:sizeUnit | self sizeUnitSelected:sizeUnit].
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   611
    box2 topInset:(pixelPointSwitch preferredHeight negated-4); horizontalInset:mm.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   612
    "/ encodingFilter editor font:l font.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   613
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   614
    self showEncodingFilter ifTrue:[
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   615
        eH := encodingFilter preferredHeight.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   616
        box1 topInset:(eH negated-4); horizontalInset:mm.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   617
    ] ifFalse:[
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   618
        encodingFilter beInvisible
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   619
    ].
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   620
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   621
    showFontNameLabel ifTrue:[
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   622
        nameLabel := Label label:'' in:self.
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   623
        nameLabel origin:0.0@1.0 corner:1.0@1.0.
3607
242d08639bcc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 3604
diff changeset
   624
        nameLabel bottomInset:(buttonPanel preferredHeight + (mm*2)).
242d08639bcc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 3604
diff changeset
   625
        nameLabel topInset:(buttonPanel preferredHeight + (mm*2) + 24) negated; horizontalInset:mm.
2847
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   626
        nameLabel level:0; adjust:#left.
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   627
        nameLabel font:(FontDescription family:'helvetica' face:'medium' style:'roman' size:9).
27017abf9298 *** empty log message ***
ca
parents: 2845
diff changeset
   628
    ].
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   629
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   630
    vPanel := VariableVerticalPanel in:panel.
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   631
    vPanel origin:0.0@0.0 corner:1.0@1.0.
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   632
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   633
    previewField := HVScrollableView for:TextView in:vPanel.
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   634
    "/ previewField origin:0.0@0.0 corner:1.0@0.4.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   635
    previewField autoHideScrollBars:true.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   636
    previewField := previewField scrolledView.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   637
    previewField inset:mm.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   638
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   639
    self is3D ifTrue:[
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   640
        previewField level:-1.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   641
    ] ifFalse:[
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   642
        previewField borderWidth:1.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   643
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   644
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   645
    fontBrowserView := View in:vPanel.
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
   646
    "/ fontBrowserView origin:0.0@0.4 corner:1.0@1.0.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   647
    fontBrowserView bottomInset:(eH + mm).
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   648
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   649
    v1 := View origin:0.0@0.0 corner:0.4@1.0 in:fontBrowserView.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   650
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   651
    familyLabel := Label label:(resources string:'Family') in:v1.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   652
    familyLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   653
    familyLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
3607
242d08639bcc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 3604
diff changeset
   654
    fH := familyLabel preferredHeight.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   655
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   656
    familyList := ScrollableView for:SelectionInListView in:v1.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   657
    familyList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   658
    familyList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   659
    familyList topInset:fH.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   660
128
claus
parents: 110
diff changeset
   661
    familyList := familyList scrolledView.
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   662
    self makeTabable:familyList.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   663
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   664
    v2 := View origin:0.4@0.0 corner:0.8@1.0
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   665
                   in:fontBrowserView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   666
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   667
    faceLabel := Label label:(resources string:'Typeface') in:v2.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   668
    faceLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   669
    faceLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   670
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   671
    faceList := ScrollableView for:SelectionInListView in:v2.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   672
    faceList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   673
    faceList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   674
    faceList topInset:fH.
128
claus
parents: 110
diff changeset
   675
    faceList := faceList scrolledView.
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   676
    self makeTabable:faceList.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   677
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   678
    v3 := View origin:0.8@0.0 corner:1.0@1.0 in:fontBrowserView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   679
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   680
    sizeLabelHolder := (resources string:'Size') asValue.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   681
    sizeLabel := Label in:v3.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
   682
    sizeLabel labelChannel:sizeLabelHolder.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   683
    sizeLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   684
    sizeLabel origin:(0.0 @ 0.0)extent:(1.0 @ nil).
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   685
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   686
    sizeList := ScrollableView for:SelectionInListView in:v3.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   687
    sizeList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   688
    sizeList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   689
    sizeList topInset:fH.
128
claus
parents: 110
diff changeset
   690
    sizeList := sizeList scrolledView.
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   691
    self makeTabable:sizeList.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   692
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   693
    familyList action:[:lineNr | self familySelected:(familyList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   694
    faceList action:[:lineNr | self faceSelected:(faceList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   695
    sizeList action:[:lineNr | self sizeSelected:(sizeList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   696
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   697
    previewField menuHolder:self previewMenu.
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   698
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   699
    "
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   700
     FontPanel new showAtPointer
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   701
    "
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   702
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   703
    "Modified: 31.5.1996 / 22:01:45 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   704
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   705
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   706
listOfEncodingsInFilterCombo
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   707
    |availableEncodings listPresentedToUser|
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   708
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   709
    listOfEncodings := OrderedCollection new.
4982
afe827d81029 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4953
diff changeset
   710
    self graphicsDevice isWindowsPlatform ifTrue:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   711
        listOfEncodings
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   712
            addAll:
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   713
                #(
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   714
                    '*'
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   715
                    nil
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   716
                ).
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   717
    ] ifFalse:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   718
        listOfEncodings
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   719
            addAll:
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   720
                #(
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   721
                    '*'
4429
671a2fc8798f changed: #listOfEncodingsInFilterCombo
Stefan Vogel <sv@exept.de>
parents: 4161
diff changeset
   722
                    #'iso8859-1'
671a2fc8798f changed: #listOfEncodingsInFilterCombo
Stefan Vogel <sv@exept.de>
parents: 4161
diff changeset
   723
                    #'iso10646-1'
2849
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   724
                    'jis*'
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   725
                    nil
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   726
                ).
f6b71b63b33c *** empty log message ***
ca
parents: 2848
diff changeset
   727
    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   728
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   729
    availableEncodings := Set new.
4897
1e95d1205a94 class: FontPanel
Stefan Vogel <sv@exept.de>
parents: 4892
diff changeset
   730
    self graphicsDevice listOfAvailableFonts do:[:f | availableEncodings add:(f encoding ? '?')].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   731
    availableEncodings := availableEncodings asSortedCollection.
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   732
    listOfEncodings addAll:availableEncodings.
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   733
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   734
    listPresentedToUser := listOfEncodings collect:[:enc |
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   735
                            |encoder userFriendlyName|
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   736
2938
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   737
"/
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   738
"/ disabled to avoid autoloading of encoders.
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   739
"/                            (enc notNil and:[enc ~= '*']) ifTrue:[
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   740
"/                                encoder := CharacterEncoder encoderFor:enc ifAbsent:nil.
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   741
"/                                encoder notNil ifTrue:[
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   742
"/                                    userFriendlyName := encoder userFriendlyNameOfEncoding.
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   743
"/                                ].
fc770ff23ced *** empty log message ***
ca
parents: 2937
diff changeset
   744
"/                            ].
2937
cee2b9a5e360 checkin from browser
ca
parents: 2936
diff changeset
   745
                            (userFriendlyName notNil and:[(userFriendlyName sameAs: enc) not]) ifTrue:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   746
                                enc , ' (' , userFriendlyName , ')'
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   747
                            ] ifFalse:[
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   748
                                enc
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   749
                            ]
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   750
                          ].
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
   751
    ^ listPresentedToUser.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   752
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   753
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   754
postRealize
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   755
    "kludge for sco - xlsfont fails sometimes - try again here"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   756
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   757
    self updateFamilyList.
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   758
    super postRealize
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   759
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   760
    "Modified: 27.2.1996 / 01:40:47 / cg"
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   761
    "Created: 24.7.1997 / 18:12:42 / cg"
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   762
!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   763
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   764
previewMenu
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   765
    <resource: #programMenu >
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   766
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   767
    |menu|
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   768
3475
f02106987f00 use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 3405
diff changeset
   769
    menu :=  Menu decodeFromLiteralArray:(self class previewMenu).
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
   770
    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
   771
    ^ menu
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
   772
3475
f02106987f00 use decodeFromLiteralArray:
Claus Gittinger <cg@exept.de>
parents: 3405
diff changeset
   773
    "Modified: / 27-03-2007 / 11:15:53 / cg"
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   774
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   775
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   776
showEncodingFilter
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   777
    ^ true
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   778
! !
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   779
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   780
!FontPanel methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   781
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   782
clearPreview
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   783
    "clear the preview subview"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   784
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   785
    shown ifTrue:[
1297
f5ea02391a59 use #contents: instead of #clear
Claus Gittinger <cg@exept.de>
parents: 1284
diff changeset
   786
        previewField contents:nil.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   787
        encodingLabel notNil ifTrue:[ 
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   788
            encodingLabel label:''.
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   789
        ].
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   790
    ].
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   791
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   792
    "Created: 17.4.1996 / 15:19:16 / cg"
1297
f5ea02391a59 use #contents: instead of #clear
Claus Gittinger <cg@exept.de>
parents: 1284
diff changeset
   793
    "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
   794
!
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   795
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   796
extractFaceAndStyleFrom:aString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   797
    "given a string, extract currentFace and currentStyle"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   798
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   799
    |index|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   800
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   801
    index := aString indexOf:$-.
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   802
    currentFaceAndStyle := aString.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   803
    (index ~~ 0) ifTrue:[
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   804
        currentFace := aString copyTo:(index - 1).
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   805
        currentStyle := aString copyFrom:(index + 1)
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   806
    ] ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   807
        currentFace := aString.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   808
        currentStyle := nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   809
    ].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   810
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   811
    "Modified: 29.4.1996 / 09:41:47 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   812
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   813
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   814
fontForPreview
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   815
    "get the preview font"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   816
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   817
    |font allFonts fonts|
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   818
3853
ee85bd42eb22 fixes for pixel-sized fonts
Stefan Vogel <sv@exept.de>
parents: 3848
diff changeset
   819
    currentSize isNil ifTrue:[
ee85bd42eb22 fixes for pixel-sized fonts
Stefan Vogel <sv@exept.de>
parents: 3848
diff changeset
   820
        ^ nil.
ee85bd42eb22 fixes for pixel-sized fonts
Stefan Vogel <sv@exept.de>
parents: 3848
diff changeset
   821
    ].
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   822
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
   823
    font := (self xftFontsOnlyHolder value
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   824
                ifTrue:[XftFontDescription]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   825
                ifFalse:[Font])
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   826
              family:currentFamily 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   827
              face:currentFace 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   828
              style:currentStyle
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   829
              size:currentSize      
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   830
              sizeUnit:sizeUnit
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   831
              encoding:encoding.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   832
    
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   833
    font notNil ifTrue:[^ font].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   834
4897
1e95d1205a94 class: FontPanel
Stefan Vogel <sv@exept.de>
parents: 4892
diff changeset
   835
    allFonts := self graphicsDevice 
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   836
                    fontsInFamily:(currentFamily ? '*')
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   837
                    face:(currentFace ? '*')
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   838
                    style:(currentStyle ? '*')
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   839
                    filtering:combinedFilter.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   840
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   841
    sizeUnit == #px ifTrue:[
3834
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   842
        fonts := allFonts select:[:f | f pixelSize = currentSize].
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   843
    ] ifFalse:[
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   844
        fonts := allFonts select:[:f | f size = currentSize].
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   845
    ].
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   846
    fonts notEmpty ifTrue:[
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   847
        font := fonts anElement.
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   848
    ] ifFalse:[
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   849
        "/ mhmh:
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   850
        "/   size=0 is returned for scalable fonts. 
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   851
        "/   Any size is possible.
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   852
        "/
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   853
        fonts := allFonts select:[:f | f size = 0].
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   854
        fonts notEmpty ifTrue:[
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   855
            font := Font family:currentFamily 
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   856
                      face:currentFace 
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   857
                      style:currentStyle
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   858
                      size:currentSize      
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   859
                      sizeUnit:sizeUnit
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   860
                      encoding:(fonts anElement encoding).
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   861
        ]    
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   862
    ].
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   863
    ^ font
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   864
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   865
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   866
getFacesForFamily:aFamilyName filtering:filter
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   867
    "the list of font faces for a given family"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   868
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   869
    ^ self graphicsDevice facesInFamily:aFamilyName filtering:filter.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   870
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   871
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   872
getFamilyList 
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   873
    "the list of font families"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   874
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   875
    ^ self graphicsDevice fontFamiliesFiltering:combinedFilter.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   876
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   877
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   878
getSizesInFamily:aFamilyName face:face style:style filtering:filter
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
   879
    sizeUnit == #px ifTrue:[
4897
1e95d1205a94 class: FontPanel
Stefan Vogel <sv@exept.de>
parents: 4892
diff changeset
   880
        ^ self graphicsDevice 
3834
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   881
             pixelSizesInFamily:(currentFamily ? '*')
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   882
             face:(currentFace ? '*')
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   883
             style:(currentStyle ? '*')
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   884
             filtering:filter.
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   885
    ] ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   886
        ^ self graphicsDevice 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   887
             sizesInFamily:(currentFamily ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   888
             face:(currentFace ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   889
             style:(currentStyle ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   890
             filtering:filter.
3834
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
   891
    ].
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   892
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   893
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   894
getStylesInFamily:aFamilyName face:aFace filtering:filter
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   895
    "the list of font styles for a given family-face"
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   896
4897
1e95d1205a94 class: FontPanel
Stefan Vogel <sv@exept.de>
parents: 4892
diff changeset
   897
    ^ self graphicsDevice stylesInFamily:aFamilyName face:aFace filtering:filter.
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   898
!
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   899
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   900
showPreview
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   901
    "show the preview text"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   902
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   903
    |font deviceFont enc fontName|
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   904
4949
0c81febfc40c class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4948
diff changeset
   905
    "/ self clearPreview.
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   906
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   907
    "
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   908
     show a wait cursor: for some fonts (kanji etc) the
2890
2a5804121c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   909
     X-server needs quite some time to load the font
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   910
    "
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   911
    self withWaitCursorDo:[
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   912
        font := self fontForPreview.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   913
        font notNil ifTrue:[
4897
1e95d1205a94 class: FontPanel
Stefan Vogel <sv@exept.de>
parents: 4892
diff changeset
   914
            deviceFont := font onDevice:self graphicsDevice.
2890
2a5804121c67 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   915
            enc := deviceFont encoding.
2916
7f1e089959a3 characterEncoding stuff
Claus Gittinger <cg@exept.de>
parents: 2899
diff changeset
   916
            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
   917
2874
2b8f8b6a69fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2873
diff changeset
   918
            previewField font:deviceFont.
2b8f8b6a69fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2873
diff changeset
   919
            previewField characterEncoding:enc.
2b8f8b6a69fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2873
diff changeset
   920
2287
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   921
            encodingLabel label:enc.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   922
            currentEncoding := enc.
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   923
            fontName := deviceFont fullName.
4925
ae3aa45c3879 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4897
diff changeset
   924
            (font isKindOf:XftFontDescription) ifTrue:[fontName := fontName,' (xft)'].
4951
65fd06520836 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4950
diff changeset
   925
            previewField contents:(font userFriendlyName,'\\' withCRs,(self class defaultSampleStringForEncoding:enc) asString).
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   926
        ] ifFalse:[
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   927
            previewField contents:nil.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   928
            encodingLabel label:nil.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   929
            currentEncoding := nil.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   930
            fontName := nil.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   931
        ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   932
        nameLabel notNil ifTrue:[nameLabel label:fontName].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   933
    ]
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   934
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   935
    "Modified: 30.6.1997 / 17:26:22 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   936
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   937
128
claus
parents: 110
diff changeset
   938
showSelectedFont
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   939
    |fam face faceAndStyle style sz|
128
claus
parents: 110
diff changeset
   940
claus
parents: 110
diff changeset
   941
    fam := selectedFont family.
2843
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   942
    currentEncoding := selectedFont encoding.
5c470e6254d0 care for encoding
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
   943
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   944
    self familySelected:fam showPreview:false.
128
claus
parents: 110
diff changeset
   945
    fam notNil ifTrue:[
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   946
        face := selectedFont face.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   947
        (face notNil and:[(style := selectedFont style) notNil]) ifTrue:[
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   948
            faceAndStyle := face , '-' , style.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   949
        ].
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   950
        self faceSelected:faceAndStyle showPreview:false.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   951
        faceAndStyle notNil ifTrue:[
3841
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   952
            sz := sizeUnit == #px ifTrue:[selectedFont pixelSize] ifFalse:[selectedFont size].
f8cc80f595ce pixel fonts
Claus Gittinger <cg@exept.de>
parents: 3837
diff changeset
   953
            pixelPointSwitch contents:sizeUnit.
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   954
            self sizeSelected:sz showPreview:false. 
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   955
        ]
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
   956
    ].
2888
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   957
e8d9ca880a4c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2887
diff changeset
   958
    self showPreview
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   959
!
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   960
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   961
updateFamilyList 
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   962
    "update the list of font families"
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   963
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   964
    |families|
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   965
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   966
    familyList list isNil ifTrue:[
3817
71a33dff8fff *** empty log message ***
sr
parents: 3769
diff changeset
   967
        families := self getFamilyList.
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   968
        families notNil ifTrue:[
4943
50df4258ca07 class: FontPanel
Stefan Vogel <sv@exept.de>
parents: 4925
diff changeset
   969
            families := families asNewOrderedCollection sort
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   970
        ].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   971
        familyList list:families
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   972
    ].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   973
    selectedFont notNil ifTrue:[
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   974
        self showSelectedFont
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   975
    ].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   976
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   977
    "Modified: 27.2.1996 / 01:39:42 / cg"
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
   978
    "Created: 27.2.1996 / 01:40:37 / cg"
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   979
!
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   980
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   981
updateSizeList
4947
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
   982
    |sizes sizeStrings oldSize|
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   983
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   984
    sizes := self 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   985
            getSizesInFamily:(currentFamily ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   986
            face:(currentFace ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   987
            style:(currentStyle ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   988
            filtering:combinedFilter.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   989
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   990
    (sizes isEmptyOrNil) ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   991
        sizeList list:nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   992
        currentSize := nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   993
"/ self halt.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   994
        ^ self
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   995
    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   996
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   997
    sizes := sizes asOrderedCollection.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
   998
    selectedFont notNil ifTrue:[
4947
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
   999
        oldSize := currentSize.
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1000
        currentSize := (selectedFont sizeUnit == #px)
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1001
                         ifTrue:[ selectedFont pixelSize ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1002
                         ifFalse:[ selectedFont size ].
4947
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
  1003
        currentSize == 0 ifTrue:[
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
  1004
            currentSize := oldSize 
e8538c8a94f2 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4946
diff changeset
  1005
        ].
4948
cb343da83d22 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4947
diff changeset
  1006
        currentSize notNil ifTrue:[
cb343da83d22 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4947
diff changeset
  1007
            (sizes includes:currentSize) ifFalse:[
cb343da83d22 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4947
diff changeset
  1008
                sizes add:currentSize
cb343da83d22 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4947
diff changeset
  1009
            ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1010
        ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1011
    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1012
    sizes sort.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1013
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1014
    sizeStrings := sizes collect:[:entry | entry printString].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1015
    sizeList list:sizeStrings.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1016
    currentSize notNil ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1017
        (sizeStrings includes:(currentSize printString)) ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1018
            sizeList setSelectElement:currentSize printString.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1019
        ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1020
    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1021
!
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1022
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1023
xftFontsOnlyChanged
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1024
    self filter:filter. "/ will update combinedFilter
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1025
! !
128
claus
parents: 110
diff changeset
  1026
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1027
!FontPanel methodsFor:'queries'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1028
3405
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1029
characterSetViewClassAvailable
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1030
    ^ CharacterSetView notNil
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1031
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1032
    "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
  1033
!
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1034
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1035
characterSetViewClassAvailableOrOSIsUNIX
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1036
    ^ 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
  1037
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1038
    "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
  1039
!
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1040
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1041
osIsUNIX
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1042
    ^ OperatingSystem isUNIXlike
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1043
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1044
    "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
  1045
!
9a03bc64e285 dont offer special-character display in menu, if its not available.
Claus Gittinger <cg@exept.de>
parents: 3274
diff changeset
  1046
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1047
preferredExtent
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1048
    "return the boxes preferredExtent"
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
  1049
3769
758f8b0b6cf2 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3740
diff changeset
  1050
    "/ If I have an explicit preferredExtent..
758f8b0b6cf2 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3740
diff changeset
  1051
    explicitExtent notNil ifTrue:[
758f8b0b6cf2 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3740
diff changeset
  1052
        ^ explicitExtent
758f8b0b6cf2 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3740
diff changeset
  1053
    ].
797
2f9cd56f48ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  1054
3769
758f8b0b6cf2 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3740
diff changeset
  1055
    "/ If I have a cached preferredExtent value..
713
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
  1056
    preferredExtent notNil ifTrue:[
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
  1057
        ^ preferredExtent
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
  1058
    ].
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
  1059
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1060
    "/ ^ 450@350
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1061
    ^ self class defaultExtent.
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
  1062
797
2f9cd56f48ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  1063
    "Modified: 19.7.1996 / 20:44:08 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
  1064
! !
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1065
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1066
!FontPanel methodsFor:'user interaction'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1067
3604
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1068
copyFontName
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1069
    self setClipboardText:(previewField font storeString).
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1070
!
62bb9a172a6f copy font name
Claus Gittinger <cg@exept.de>
parents: 3481
diff changeset
  1071
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1072
encodingFilterSelected:anEncodingPattern
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1073
    "another encoding was selected; find available fonts and update lists"
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1074
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1075
    |pattern|
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1076
2887
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1077
    anEncodingPattern isNil ifTrue:[
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1078
        self filter:nil.
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1079
        ^ self.
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1080
    ].
f3235caea117 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2882
diff changeset
  1081
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1082
    pattern := (anEncodingPattern upTo:$( ) withoutSeparators.
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1083
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1084
    pattern = '?' ifTrue:[
2845
075391fc5ed1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2843
diff changeset
  1085
        pattern := ''
075391fc5ed1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2843
diff changeset
  1086
    ] ifFalse:[
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1087
        pattern := (pattern isEmptyOrNil ifTrue:'*' ifFalse:pattern).
2845
075391fc5ed1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2843
diff changeset
  1088
    ].
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1089
    self 
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1090
        filter:
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1091
            [:f | 
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1092
                |doesMatch encoding|
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1093
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1094
                "/ k&d hack for mswindows names...
3848
93776dd41280 oops - leftover debug print
Claus Gittinger <cg@exept.de>
parents: 3841
diff changeset
  1095
                "/ Transcript showCR:f encoding.
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1096
                encoding := f encoding ? ''.
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1097
                doesMatch := (pattern match:encoding).
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1098
                doesMatch ifFalse:[
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1099
                    encoding = 'ms-ansi' ifTrue:[
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1100
                       doesMatch := (pattern = 'iso8859-1') 
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1101
                                    or:[ (pattern = 'iso10646-1')
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1102
                                    or:[ (pattern = 'unicode') ]]
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1103
                    ].
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1104
                    (encoding = 'iso8859-1' 
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1105
                    or:[encoding = 'iso10646-1' 
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1106
                    or:[encoding = 'unicode']]) ifTrue:[
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1107
                       doesMatch := (pattern = 'ms-ansi')
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1108
                    ].
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1109
                ].
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1110
                doesMatch
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1111
            ].
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1112
!
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1113
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1114
faceSelected:aFaceAndStyleName
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1115
    "a fonts face was selected; find available sizes and update lists"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1116
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1117
    self faceSelected:aFaceAndStyleName showPreview:true
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1118
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1119
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1120
faceSelected:aFaceAndStyleName showPreview:showPreview
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1121
    "a fonts face was selected; find available sizes and update lists"
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1122
3740
dd192b87bd0b read only
Claus Gittinger <cg@exept.de>
parents: 3607
diff changeset
  1123
    |sizes sizeStrings didShow|
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1124
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1125
    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
  1126
        self extractFaceAndStyleFrom:aFaceAndStyleName.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1127
    ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1128
    self updateSizeList.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1129
    showPreview ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1130
        self showPreview.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1131
    ].
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1132
    ^ self.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1133
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1134
"/    sizes := self 
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1135
"/                getSizesInFamily:(currentFamily ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1136
"/                face:(currentFace ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1137
"/                style:(currentStyle ? '*')
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1138
"/                filtering:combinedFilter.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1139
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1140
"/    (sizes isEmptyOrNil) ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1141
"/        sizeList list:nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1142
"/        currentSize := nil.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1143
"/        self breakPoint:#cg.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1144
"/        showPreview ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1145
"/            self showPreview.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1146
"/        ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1147
"/        ^ self
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1148
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1149
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1150
"/    didShow := false.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1151
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1152
"/    sizes := sizes asOrderedCollection.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1153
"/    selectedFont notNil ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1154
"/        (sizes includes:selectedFont size) ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1155
"/            sizes add:selectedFont size
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1156
"/        ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1157
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1158
"/    sizes sort.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1159
"/
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1160
"/    sizeStrings := sizes collect:[:entry | entry printString].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1161
"/    sizeList list:sizeStrings.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1162
"/    currentSize notNil ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1163
"/        (sizeStrings includes:(currentSize printString)) ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1164
"/            sizeList setSelectElement:currentSize printString.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1165
"/            showPreview ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1166
"/                self showPreview.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1167
"/                didShow := true.
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1168
"/            ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1169
"/        ]
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1170
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1171
"/    didShow ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1172
"/        self clearPreview
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1173
"/    ].
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1174
"/
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
  1175
    "Modified: 30.6.1997 / 17:25:46 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1176
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1177
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1178
familySelected:aFamilyName
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1179
    "a fonts family was selected; find available faces and update lists"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1180
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1181
    self familySelected:aFamilyName showPreview:true
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1182
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1183
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1184
familySelected:aFamilyName showPreview:showPreview
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1185
    "a fonts family was selected; find available faces and update lists"
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1186
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1187
    |faces styles list|
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1188
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
  1189
    familyList setSelectElement:aFamilyName.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1190
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1191
    currentFamily := aFamilyName.
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1192
    faces := self getFacesForFamily:aFamilyName filtering:combinedFilter.
3899
966270358179 care for different encoding names in windows
Claus Gittinger <cg@exept.de>
parents: 3853
diff changeset
  1193
    faces isEmptyOrNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1194
        currentFace := currentStyle := currentFaceAndStyle := nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1195
        faceList list:nil.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1196
        self faceSelected:nil showPreview:showPreview.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1197
        ^ self.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1198
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1199
2353
0d373c7046f7 Show registry AND encoding
Stefan Vogel <sv@exept.de>
parents: 2287
diff changeset
  1200
    list := SortedCollection new.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1201
    faces do:[:aFace |
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1202
        styles := (self getStylesInFamily:aFamilyName face:aFace filtering:combinedFilter) ? #().
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1203
        styles do:[:aStyle |
4944
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1204
            aFace isEmpty ifTrue:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1205
                list add:(aStyle)
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1206
            ] ifFalse:[
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1207
                list add:(aFace , '-' , aStyle)
4c45ebdd113b class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4943
diff changeset
  1208
            ]
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1209
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1210
    ].
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1211
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1212
    faceList list:list.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1213
    currentFaceAndStyle notNil ifTrue:[
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1214
        (list includes:currentFaceAndStyle) ifFalse:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1215
            currentFaceAndStyle = 'normal-roman' ifTrue:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1216
                (list includes:'regular-roman') ifTrue:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1217
                    currentFaceAndStyle := 'regular-roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1218
                    currentFace := 'regular'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1219
                    currentStyle := 'roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1220
                ].
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1221
                (list includes:'medium-roman') ifTrue:[
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1222
                    currentFaceAndStyle := 'medium-roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1223
                    currentFace := 'medium'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1224
                    currentStyle := 'roman'.
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1225
                ].
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1226
            ].
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1227
        ].
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1228
        (list includes:currentFaceAndStyle) ifTrue:[
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
  1229
            faceList setSelectElement:currentFaceAndStyle.
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1230
            self faceSelected:currentFaceAndStyle showPreview:showPreview.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1231
            ^ self
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1232
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1233
    ].
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1234
    list notEmptyOrNil ifTrue:[
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1235
        "/ faceList setSelectElement:(list first).
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1236
        faceList selectElement:(list first).
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1237
        self faceSelected:(list first) showPreview:showPreview.
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1238
        self updateSizeList.
5007
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1239
        ^ self
dc3587ec2444 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5001
diff changeset
  1240
    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1241
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1242
    sizeList list:nil.
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
  1243
    self clearPreview.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
  1244
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
  1245
    "Modified: 26.5.1996 / 15:04:29 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1246
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1247
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1248
okPressed
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1249
    "ok was pressed; hide myself and evaluate the okAction, passing
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1250
     family, face, style and size as arguments"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1251
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1252
    self hide.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1253
    okAction notNil ifTrue:[
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
  1254
        currentFamily notNil ifTrue:[
4946
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1255
            okAction value:
4983
739bda141e09 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4982
diff changeset
  1256
                ((self xftFontsOnlyHolder value
4946
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1257
                        ifTrue:[XftFontDescription]
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1258
                        ifFalse:[FontDescription])
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1259
                      family:currentFamily 
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1260
                      face:currentFace 
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1261
                      style:currentStyle
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1262
                      size:currentSize      
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1263
                      sizeUnit:(sizeUnit ? #pt)
19acc64ff897 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4944
diff changeset
  1264
                      encoding:(currentEncoding ? encoding)).
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
  1265
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1266
    ]
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
  1267
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
  1268
    "Modified: 10.4.1997 / 09:51:31 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1269
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1270
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1271
previewCopySelection
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1272
    previewField copySelection.
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1273
!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1274
2935
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1275
previewInspectFont
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1276
    previewField font inspect.
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1277
!
a710dcaf4651 checkin from browser
ca
parents: 2933
diff changeset
  1278
2852
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1279
previewShowCharacterSet
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1280
    CharacterSetView openOn:(previewField font)
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1281
!
7514af362940 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2851
diff changeset
  1282
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
  1283
previewShowCharacterSetUsingXFD
2878
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1284
    [
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1285
        OperatingSystem executeCommand:'xfd -fn ' , previewField font fullName.
8e3fd436ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2875
diff changeset
  1286
    ] fork.
2875
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
  1287
!
b9e9728d8245 font display
Claus Gittinger <cg@exept.de>
parents: 2874
diff changeset
  1288
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1289
sizeSelected:aNumberOrString
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1290
    "a size was selected; update preview"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1291
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1292
    self sizeSelected:aNumberOrString showPreview:true.
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1293
!
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1294
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1295
sizeSelected:aNumberOrString showPreview:showPreview
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1296
    "a size was selected; update preview"
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1297
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1298
    aNumberOrString isNumber ifTrue:[
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1299
        currentSize := aNumberOrString
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1300
    ] ifFalse:[
2826
982a947516dc added encoding filter
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1301
        currentSize := Number readFromString:aNumberOrString onError:nil
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1302
    ].
2842
b660224c409a care for encoding
Claus Gittinger <cg@exept.de>
parents: 2826
diff changeset
  1303
    showPreview ifTrue:[self showPreview]
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1304
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
  1305
    "Modified: 29.4.1996 / 09:43:23 / cg"
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1306
!
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1307
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1308
sizeUnitSelected:unitSymbol
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1309
    sizeUnit := unitSymbol.
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1310
    sizeLabelHolder value:(resources 
3837
3b40cf6ec47f pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 3834
diff changeset
  1311
                            string:(sizeUnit == #px 
3832
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1312
                                        ifTrue:'Size (px)' 
cb29dbf1f69f preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 3817
diff changeset
  1313
                                        ifFalse:'Size')).
3834
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
  1314
fc7363401a48 pixel size support
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
  1315
    self showPreview
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
  1316
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
  1317
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
  1318
!FontPanel class methodsFor:'documentation'!
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
  1319
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
  1320
version
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1321
    ^ '$Header: /cvs/stx/stx/libwidg/FontPanel.st,v 1.126 2014-04-27 21:57:23 cg Exp $'
4094
257521b4e80f changed:
Stefan Vogel <sv@exept.de>
parents: 3940
diff changeset
  1322
!
257521b4e80f changed:
Stefan Vogel <sv@exept.de>
parents: 3940
diff changeset
  1323
257521b4e80f changed:
Stefan Vogel <sv@exept.de>
parents: 3940
diff changeset
  1324
version_CVS
5008
2af062c3a407 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 5007
diff changeset
  1325
    ^ '$Header: /cvs/stx/stx/libwidg/FontPanel.st,v 1.126 2014-04-27 21:57:23 cg Exp $'
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
  1326
! !
4660
6ad643669cc1 class: FontPanel
Claus Gittinger <cg@exept.de>
parents: 4429
diff changeset
  1327