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