FontPanel.st
author Claus Gittinger <cg@exept.de>
Fri, 29 Sep 2000 09:42:44 +0200
changeset 2287 b33ad40d7538
parent 2286 2a1a6b7cb322
child 2353 0d373c7046f7
permissions -rw-r--r--
preview fixed when font is bad
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
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    13
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    14
2275
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
    15
"{ Package: 'stx:libwidg' }"
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
    16
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    17
DialogBox subclass:#FontPanel
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    18
	instanceVariableNames:'previewField familyList faceList sizeList revertButton
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    19
		currentFamily currentFace currentStyle currentFaceAndStyle
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
    20
		currentSize selectedFont nameLabel encodingLabel filter encoding'
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    21
	classVariableNames:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    22
	poolDictionaries:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    23
	category:'Views-DialogBoxes'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    24
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    25
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
    26
!FontPanel class methodsFor:'documentation'!
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    27
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    28
copyright
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    29
"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    30
 COPYRIGHT (c) 1991 by Claus Gittinger
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    31
	      All Rights Reserved
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    32
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    33
 This software is furnished under a license and may be used
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    34
 only in accordance with the terms of that license and with the
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    35
 inclusion of the above copyright notice.   This software may not
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    36
 be provided or otherwise made available to, or used by, any
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    37
 other person.  No title to or ownership of the software is
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    38
 hereby transferred.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    39
"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    40
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    41
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    42
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    43
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    44
documentation
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    45
"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    46
    this class implements a font chooser.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    47
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    48
    [author:]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    49
        Claus Gittinger
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    50
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    51
    [see also:]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    52
        Font FontDescription
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    53
        View Dialog
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    54
"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    55
!
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    56
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    57
examples
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    58
"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    59
    very simple:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    60
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    61
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    62
        
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    63
        font := FontPanel fontFromUser.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
    64
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    65
                                                                        [exEnd]
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
    with initial font:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    69
                                                                        [exBegin]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    70
        |font|
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    71
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    72
        font := FontPanel 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    73
                    fontFromUserInitial:(Font 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    74
                                            family:'courier'
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    75
                                            size:12).
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 & title:
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)
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    88
                                  title:'select a fooBar font'.
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
    89
        Transcript showCR:font
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    90
                                                                        [exEnd]
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    91
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    92
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    93
    full setup; setting a filter to only present iso fonts
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    94
    and callBack action:
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    95
                                                                        [exBegin]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    96
585
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    97
        |panel|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    98
585
8f395aba0173 documentation
Claus Gittinger <cg@exept.de>
parents: 572
diff changeset
    99
        panel := FontPanel new.
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   100
        panel label:'hi there - which iso font ?'.
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   101
        panel filter:[:fd | fd encoding notNil
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   102
                            and:[fd encoding startsWith:'iso']].
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   103
        panel action:[:family :face :style :size | 
655
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   104
                        Transcript showCR:'family:' , family.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   105
                        Transcript showCR:'face:' , face.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   106
                        Transcript showCR:'style:' , style.
acad3ef3a46c showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 595
diff changeset
   107
                        Transcript showCR:'size:' , size printString.
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   108
                     ].
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   109
        panel open
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   110
                                                                        [exEnd]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   111
"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   112
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   113
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   114
!FontPanel class methodsFor:'defaults'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   115
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   116
defaultExtent
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   117
    "return the default extent of my instances.
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   118
     The value returned here is usually ignored, and
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   119
     the value from preferredExtent taken instead."
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   120
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   121
    ^ (Screen current pixelPerMillimeter * (120 @ 100)) rounded
571
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   122
ddc5d56bd636 commentary
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   123
    "Modified: 22.4.1996 / 23:36:19 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   124
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   125
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   126
defaultJISSampleString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   127
    "return the sample jis preview text"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   128
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   129
    ^ ('The quick brown fox
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   130
jumps over the lazy dog
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   131
1234567890
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   132
!!@#$%^&*(){}[]:"~;,./<>?
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   133
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   134
\e$B$$$i$C$7$c$$$^$;\e(J \e$B@$4V\e(J
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   135
' withEscapes decodeFrom:#jis7)
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   136
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   137
    "Modified: 29.4.1996 / 09:46:11 / cg"
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   138
!
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   139
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   140
defaultRomanSampleString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   141
    "return the sample roman preview text"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   142
2275
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   143
    |t|
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   144
2286
2a1a6b7cb322 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2276
diff changeset
   145
    Smalltalk language == #de ifTrue:[
2275
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   146
        t := 'Franz jagt im komplett verwahrlosten Taxi
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   147
quer durch Bayern'.
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   148
    ] ifFalse:[
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   149
        t := 'The quick brown fox
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   150
jumps over the lazy dog'.
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   151
    ].
7076d59e9d29 gimmick
Claus Gittinger <cg@exept.de>
parents: 2170
diff changeset
   152
    t := t , '
110
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
   153
1234567890
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
   154
!!@#$%^&*(){}[]:"~;,./<>?
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
   155
' , 
398
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   156
(Character value:16rE4) asString ,    "/ umlaut a
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   157
(Character value:16rF6) asString ,    "/ umlaut o
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   158
(Character value:16rFC) asString ,    "/ umlaut u
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   159
(Character value:16rC4) asString ,    "/ umlaut A
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   160
(Character value:16rD6) asString ,    "/ umlaut O
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   161
(Character value:16rDC) asString ,    "/ umlaut U
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   162
(Character value:16rDF) asString ,    "/ sz
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   163
(Character value:233) asString ,      "/ e-degu
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   164
(Character value:232) asString ,      "/ e-grave
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   165
(Character value:234) asString ,      "/ e-circonflex
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   166
(Character value:197) asString ,      "/ A
2276
a34a00b5c65f gimmick
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   167
(Character value:169) asString.       "/ copyright
a34a00b5c65f gimmick
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   168
    ^ t
398
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
   169
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   170
    "Modified: 29.4.1996 / 09:46:19 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   171
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   172
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   173
!FontPanel class methodsFor:'startup'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   174
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   175
fontFromUser
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   176
    "open a fontPanel and return the selected font, or nil
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   177
     if abort is pressed"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   178
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   179
    ^ self fontFromUserInitial:nil
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   180
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   181
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   182
     FontPanel fontFromUser
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   183
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   184
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   185
    "Modified: 27.2.1996 / 00:51:59 / cg"
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   186
!
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   187
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   188
fontFromUserInitial:aFont
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   189
    "open a fontPanel showing aFont initially,
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   190
     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
   191
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   192
    ^ self fontFromUserInitial:aFont title:nil
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   193
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   194
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   195
     FontPanel fontFromUserInitial:(Font family:'courier' size:12)
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   196
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   197
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   198
    "Created: 27.2.1996 / 00:51:44 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   199
    "Modified: 29.4.1996 / 09:45:52 / cg"
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   200
!
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   201
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   202
fontFromUserInitial:aFont title:someTitle
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   203
    "open a fontPanel with title and return the selected font, 
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   204
     or nil if abort is pressed"
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   205
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   206
    ^ self fontFromUserInitial:aFont title:someTitle filter:nil
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   207
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   208
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   209
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   210
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   211
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   212
    "Created: 27.2.1996 / 00:59:46 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   213
    "Modified: 29.4.1996 / 09:45:34 / cg"
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   214
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   215
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   216
fontFromUserInitial:aFont title:someTitle filter:aFilterBlock
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   217
    "open a fontPanel with title and font-filter
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   218
     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
   219
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   220
    |fontPanel selectedFont|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   221
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   222
    fontPanel := FontPanel new.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   223
    fontPanel filter:aFilterBlock.
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   224
    someTitle notNil ifTrue:[
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   225
        fontPanel label:someTitle
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   226
    ].
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   227
    fontPanel action:[:aFontDescription | selectedFont := aFontDescription].
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   228
    aFont notNil ifTrue:[
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   229
        fontPanel initialFont:aFont.
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   230
    ].
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   231
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   232
    fontPanel showAtPointer.
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   233
    fontPanel destroy.
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   234
    ^ selectedFont
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   235
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   236
    "
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   237
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   238
    "
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   239
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   240
    "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
   241
    "Modified: 10.4.1997 / 09:53:03 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   243
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   244
!FontPanel methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   245
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   246
action:aFourArgBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   247
    "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
   248
     The block will be evaluated with family, face, style, size and encoding."
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   249
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   250
    okAction := aFourArgBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   251
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   252
    "Modified: 10.4.1997 / 09:49:58 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   253
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   254
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   255
encoding:aPattern
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   256
    "set the encoding goal"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   257
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   258
    encoding := aPattern.
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   259
    shown ifTrue:[
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   260
        self updateFamilyList
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   261
    ].
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   262
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   263
    "Created: 29.2.1996 / 04:05:31 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   264
    "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
   265
!
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   266
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   267
filter:aOneArgBlock
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   268
    "set a filter; if non-nil, only fonts for which the filterBlock
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   269
     returns true will be offered"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   270
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   271
    filter := aOneArgBlock.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   272
    shown ifTrue:[
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   273
        self updateFamilyList
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   274
    ].
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   275
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   276
    "Created: 27.2.1996 / 01:40:08 / cg"
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   277
    "Modified: 29.4.1996 / 09:40:49 / cg"
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   278
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   279
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   280
initialFont:aFont
128
claus
parents: 110
diff changeset
   281
    "set the font to be selected initially"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   282
128
claus
parents: 110
diff changeset
   283
    selectedFont := aFont.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   284
    self showSelectedFont.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   285
    self showPreview
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   286
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   287
    "Modified: 23.2.1996 / 00:51:32 / cg"
101
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   288
! !
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   289
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   290
!FontPanel methodsFor:'initialization'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   291
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   292
initialize
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   293
    |familyLabel faceLabel sizeLabel panel fontBrowserView v1 v2 v3
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   294
     mm fH eH|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   295
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   296
    super initialize.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   297
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   298
    mm := ViewSpacing.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   299
1763
1c6be8158c27 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
   300
    self addAbortAndOkButtons.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   301
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   302
    panel := View origin:0.0@0.0 corner:1.0@1.0 in:self.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   303
    panel bottomInset:(buttonPanel preferredExtent y + (mm*3)).
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   304
150
claus
parents: 131
diff changeset
   305
    label := resources string:'Font dialog'.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   306
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   307
    encodingLabel := Label label:' ' in:panel.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   308
    eH := encodingLabel preferredExtent y.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   309
    encodingLabel origin:0.7@1.0 corner:1.0@1.0.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   310
    encodingLabel topInset:(eH negated); horizontalInset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   311
    encodingLabel level:-1; adjust:#left.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   312
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   313
"/    nameLabel := Label label:' ' in:panel.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   314
"/    nameLabel origin:0.0@1.0 corner:0.7@1.0.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   315
"/    nameLabel topInset:(eH negated); horizontalInset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   316
"/    nameLabel level:-1; adjust:#left.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   317
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   318
    previewField := TextView origin:0.0@0.0 corner:1.0@0.4 in:panel.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   319
    previewField inset:mm.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   320
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   321
"/    previewField contents:self class defaultSampleString.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   322
    self is3D ifTrue:[
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   323
        previewField level:-1.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   324
    ] ifFalse:[
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   325
        previewField borderWidth:1.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   326
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   327
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   328
    fontBrowserView := View origin:0.0@0.4 corner:1.0@1.0 in:panel.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   329
    fontBrowserView bottomInset:(eH + mm).
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   330
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   331
    v1 := View origin:0.0@0.0 corner:0.4@1.0 in:fontBrowserView.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   332
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   333
    familyLabel := Label label:'Family' in:v1.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   334
    familyLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   335
    familyLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   336
    fH := familyLabel preferredExtent y.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   337
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   338
    familyList := ScrollableView for:SelectionInListView in:v1.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   339
    familyList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   340
    familyList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   341
    familyList topInset:fH.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   342
128
claus
parents: 110
diff changeset
   343
    familyList := familyList scrolledView.
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   344
    self makeTabable:familyList.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   345
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   346
    v2 := View origin:0.4@0.0 corner:0.8@1.0
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   347
                   in:fontBrowserView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   348
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   349
    faceLabel := Label label:'Typeface' in:v2.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   350
    faceLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   351
    faceLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   352
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   353
    faceList := ScrollableView for:SelectionInListView in:v2.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   354
    faceList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   355
    faceList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   356
    faceList topInset:fH.
128
claus
parents: 110
diff changeset
   357
    faceList := faceList scrolledView.
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   358
    self makeTabable:faceList.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   359
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   360
    v3 := View origin:0.8@0.0 corner:1.0@1.0
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   361
                   in:fontBrowserView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   362
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   363
    sizeLabel := Label label:'Size' in:v3.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   364
    sizeLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   365
    sizeLabel origin:(0.0 @ 0.0)extent:(1.0 @ nil).
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   366
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   367
    sizeList := ScrollableView for:SelectionInListView in:v3.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   368
    sizeList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   369
    sizeList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   370
    sizeList topInset:fH.
128
claus
parents: 110
diff changeset
   371
    sizeList := sizeList scrolledView.
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   372
    self makeTabable:sizeList.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   373
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   374
    familyList action:[:lineNr | self familySelected:(familyList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   375
    faceList action:[:lineNr | self faceSelected:(faceList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   376
    sizeList action:[:lineNr | self sizeSelected:(sizeList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   377
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   378
    "
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   379
     FontPanel new showAtPointer
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   380
    "
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   381
740
2d5cb01c7e11 no need for focusSequence - DialogBox does it
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   382
    "Modified: 31.5.1996 / 22:01:45 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   383
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   384
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   385
postRealize
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   386
    "kludge for sco - xlsfont fails sometimes - try again here"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   387
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   388
    self updateFamilyList.
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   389
    super postRealize
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   390
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   391
    "Modified: 27.2.1996 / 01:40:47 / cg"
1277
2609b2dd2768 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1257
diff changeset
   392
    "Created: 24.7.1997 / 18:12:42 / cg"
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   393
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   394
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   395
updateFamilyList 
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   396
    "kludge for sco - xlsfont fails sometimes - try again here"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   397
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   398
    |families|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   399
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   400
    familyList list isNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   401
        families := device fontFamiliesFiltering:filter.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   402
        families notNil ifTrue:[
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   403
            families := families asOrderedCollection
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   404
        ].
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   405
        familyList list:families
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   406
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   407
    selectedFont notNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   408
        self showSelectedFont
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   409
    ].
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   410
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   411
    "Modified: 27.2.1996 / 01:39:42 / cg"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   412
    "Created: 27.2.1996 / 01:40:37 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   413
! !
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   414
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   415
!FontPanel methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   416
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   417
clearPreview
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   418
    "clear the preview subview"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   419
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   420
    shown ifTrue:[
1297
f5ea02391a59 use #contents: instead of #clear
Claus Gittinger <cg@exept.de>
parents: 1284
diff changeset
   421
        previewField contents:nil.
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   422
        encodingLabel label:''.
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   423
    ].
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   424
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   425
    "Created: 17.4.1996 / 15:19:16 / cg"
1297
f5ea02391a59 use #contents: instead of #clear
Claus Gittinger <cg@exept.de>
parents: 1284
diff changeset
   426
    "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
   427
!
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   428
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   429
extractFaceAndStyleFrom:aString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   430
    "given a string, extract currentFace and currentStyle"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   431
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   432
    |index|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   433
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   434
    index := aString indexOf:$-.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   435
    (index ~~ 0) ifTrue:[
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   436
        currentFaceAndStyle := aString.
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   437
        currentFace := aString copyTo:(index - 1).
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   438
        currentStyle := aString copyFrom:(index + 1)
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   439
    ]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   440
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   441
    "Modified: 29.4.1996 / 09:41:47 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   442
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   443
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   444
showPreview
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   445
    "show the preview text"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   446
1284
8c3f71ee81bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   447
    |f enc s all fonts|
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   448
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   449
    self clearPreview.
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   450
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   451
    "
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   452
     show a wait cursor: for some fonts (kanji etc) the
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   453
     X-server needs quites some time to load the font
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   454
    "
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   455
    self withWaitCursorDo:[
450
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   456
        all := fonts := device 
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   457
                    fontsInFamily:(currentFamily ? '*')
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   458
                    face:(currentFace ? '*')
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   459
                    style:(currentStyle ? '*')
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   460
                    filtering:filter.
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   461
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   462
        fonts := fonts select:[:f | f size == currentSize].
450
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   463
        fonts notEmpty ifTrue:[
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   464
            f := fonts anElement.
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   465
        ] ifFalse:[
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   466
            "/ mhmh
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   467
            "/ X returns size0 for scalable fonts. Any size is possible.
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   468
            "/
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   469
450
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   470
            fonts := all select:[:f | f size == 0].
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   471
            fonts notEmpty ifTrue:[
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   472
                f := Font family:currentFamily 
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   473
                          face:currentFace 
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   474
                          style:currentStyle
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   475
                          size:currentSize      
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   476
                          encoding:(fonts anElement encoding).
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   477
            ]    
71af90725928 oops - scalable fonts failed
Claus Gittinger <cg@exept.de>
parents: 434
diff changeset
   478
        ].
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   479
2287
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   480
        f notNil ifTrue:[
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   481
            f := f onDevice:device.
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   482
            previewField font:f.
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   483
2287
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   484
            enc := f encoding.
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   485
            enc isNil ifTrue:[enc := 'ascii ?'].
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   486
            encodingLabel label:enc.
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   487
        ].
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   488
        nameLabel notNil ifTrue:[nameLabel label:(f fullName)].
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   489
399
13bab2f25c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 398
diff changeset
   490
        (enc notNil and:[enc startsWith:'jis']) ifTrue:[
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   491
            s := self class defaultJISSampleString
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   492
        ] ifFalse:[
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   493
            s := self class defaultRomanSampleString.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   494
        ].
434
22586d8221e1 dont get confused by same-name but different encoding
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
   495
        previewField contents:s.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   496
    ]
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   497
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   498
    "Modified: 30.6.1997 / 17:26:22 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   499
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   500
128
claus
parents: 110
diff changeset
   501
showSelectedFont
claus
parents: 110
diff changeset
   502
    |fam face style sz|
claus
parents: 110
diff changeset
   503
claus
parents: 110
diff changeset
   504
    fam := selectedFont family.
claus
parents: 110
diff changeset
   505
    fam notNil ifTrue:[
claus
parents: 110
diff changeset
   506
	self familySelected:fam.
claus
parents: 110
diff changeset
   507
	face := selectedFont face.
claus
parents: 110
diff changeset
   508
	face notNil ifTrue:[
claus
parents: 110
diff changeset
   509
	    style := selectedFont style.
claus
parents: 110
diff changeset
   510
	    style notNil ifTrue:[
claus
parents: 110
diff changeset
   511
		self faceSelected:(face , '-' , style).
claus
parents: 110
diff changeset
   512
		sz := selectedFont size.
claus
parents: 110
diff changeset
   513
		sz notNil ifTrue:[
claus
parents: 110
diff changeset
   514
		    self sizeSelected:sz 
claus
parents: 110
diff changeset
   515
		]
claus
parents: 110
diff changeset
   516
	    ]
claus
parents: 110
diff changeset
   517
	]
claus
parents: 110
diff changeset
   518
    ]
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   519
! !
128
claus
parents: 110
diff changeset
   520
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   521
!FontPanel methodsFor:'queries'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   522
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   523
preferredExtent
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   524
    "return the boxes preferredExtent"
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   525
797
2f9cd56f48ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
   526
    "/ If I have an explicit preferredExtent ..
2f9cd56f48ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
   527
713
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
   528
    preferredExtent notNil ifTrue:[
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
   529
        ^ preferredExtent
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
   530
    ].
0c38ad51016d care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 690
diff changeset
   531
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   532
    ^ 400@350
572
121735c2aff6 commentary
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   533
797
2f9cd56f48ee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
   534
    "Modified: 19.7.1996 / 20:44:08 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   535
! !
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   536
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   537
!FontPanel methodsFor:'user interaction'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   538
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   539
faceSelected:aFaceAndStyleName
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   540
    "a fonts face was seleted; find available sizes and update lists"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   541
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   542
    |sizes|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   543
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   544
    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
   545
        self extractFaceAndStyleFrom:aFaceAndStyleName.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   546
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   547
    sizes := device 
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   548
                 sizesInFamily:(currentFamily ? '*')
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   549
                 face:(currentFace ? '*')
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   550
                 style:(currentStyle ? '*')
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   551
                 filtering:filter.
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   552
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   553
    (sizes isNil or:[sizes isEmpty]) ifTrue:[
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   554
        sizeList list:nil.
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   555
        currentSize := nil.
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   556
        self showPreview.
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   557
        ^ self
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   558
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   559
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   560
    self clearPreview.
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   561
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   562
    sizes := (sizes asOrderedCollection sort) collect:[:entry | entry printString].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   563
    sizeList list:sizes.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   564
    currentSize notNil ifTrue:[
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   565
        (sizes includes:(currentSize printString)) ifTrue:[
2170
Claus Gittinger <cg@exept.de>
parents: 1992
diff changeset
   566
            sizeList setSelectElement:currentSize printString.
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   567
            self showPreview
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   568
        ]
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   569
    ]
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   570
1257
cd6405b2e13a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1185
diff changeset
   571
    "Modified: 30.6.1997 / 17:25:46 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   572
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   573
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   574
familySelected:aFamilyName
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   575
    "a fonts family was seleted; find available faces and update lists"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   576
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   577
    |faces styles list|
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   578
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   579
    familyList setSelectElement:aFamilyName.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   580
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   581
    currentFamily := aFamilyName.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   582
    faces := device facesInFamily:aFamilyName filtering:filter.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   583
    (faces isNil or:[faces isEmpty]) ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   584
        currentFace := currentStyle := currentFaceAndStyle := nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   585
        faceList list:nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   586
        self faceSelected:nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   587
        ^ self.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   588
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   589
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   590
    list := OrderedCollection new.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   591
    faces do:[:aFace |
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   592
        styles := device stylesInFamily:aFamilyName face:aFace filtering:filter.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   593
        styles do:[:aStyle |
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   594
            list add:(aFace , '-' , aStyle)
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   595
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   596
    ].
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   597
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   598
    faceList list:list.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   599
    currentFaceAndStyle notNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   600
        (list includes:currentFaceAndStyle) ifTrue:[
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   601
            faceList setSelectElement:currentFaceAndStyle.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   602
            self faceSelected:currentFaceAndStyle.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   603
            ^ self
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   604
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   605
    ].
541
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   606
    sizeList list:nil.
76018ea821ca clear preview & encoding when no font is shown
Claus Gittinger <cg@exept.de>
parents: 540
diff changeset
   607
    self clearPreview.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   608
690
d579f684aa7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 655
diff changeset
   609
    "Modified: 26.5.1996 / 15:04:29 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   610
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   611
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   612
okPressed
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   613
    "ok was pressed; hide myself and evaluate the okAction, passing
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   614
     family, face, style and size as arguments"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   615
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   616
    self hide.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   617
    okAction notNil ifTrue:[
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   618
        currentFamily notNil ifTrue:[
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   619
            okAction value:(FontDescription
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   620
                                family:currentFamily 
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   621
                                face:currentFace 
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   622
                                style:currentStyle 
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   623
                                size:currentSize 
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   624
                                encoding:encoding).
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   625
                                
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   626
"/            okAction 
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   627
"/                 value:currentFamily
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   628
"/                 value:currentFace
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   629
"/                 value:currentStyle
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   630
"/                 value:currentSize
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   631
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   632
    ]
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   633
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   634
    "Modified: 10.4.1997 / 09:51:31 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   635
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   636
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   637
sizeSelected:aNumberOrString
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   638
    "a size was seleted; update preview"
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   639
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   640
    aNumberOrString isNumber ifTrue:[
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   641
        currentSize := aNumberOrString
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   642
    ] ifFalse:[
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   643
        currentSize := Number readFromString:aNumberOrString
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   644
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   645
    self showPreview
595
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   646
31cdbedb303d documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
   647
    "Modified: 29.4.1996 / 09:43:23 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   648
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   649
1185
3b8bd5ea8d62 action block is evaluated with a fontDescription
Claus Gittinger <cg@exept.de>
parents: 797
diff changeset
   650
!FontPanel class methodsFor:'documentation'!
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   651
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   652
version
2287
b33ad40d7538 preview fixed when font is bad
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
   653
    ^ '$Header: /cvs/stx/stx/libwidg/FontPanel.st,v 1.50 2000-09-29 07:42:44 cg Exp $'
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   654
! !