FontPanel.st
author Claus Gittinger <cg@exept.de>
Tue, 27 Feb 1996 02:11:51 +0100
changeset 415 2184fe27349a
parent 413 7474707a9e9b
child 434 22586d8221e1
permissions -rw-r--r--
added filter option
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
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    15
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
    16
	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
    17
		currentFamily currentFace currentStyle currentFaceAndStyle
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
    18
		currentSize selectedFont nameLabel encodingLabel filter'
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    19
	classVariableNames:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    20
	poolDictionaries:''
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
    21
	category:'Views-DialogBoxes'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    22
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    24
!FontPanel class methodsFor:'documentation'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    25
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    26
copyright
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    27
"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    28
 COPYRIGHT (c) 1991 by Claus Gittinger
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    29
	      All Rights Reserved
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    30
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    31
 This software is furnished under a license and may be used
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    32
 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
    33
 inclusion of the above copyright notice.   This software may not
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    34
 be provided or otherwise made available to, or used by, any
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    35
 other person.  No title to or ownership of the software is
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    36
 hereby transferred.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    37
"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    38
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    39
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    40
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    41
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    42
documentation
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    43
"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    44
    this class implements a font chooser.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    45
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    46
    usage:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    47
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    48
	|panel|
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    49
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    50
	panel := FontPanel new.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    51
	panel action:[:aFont | Transcript showCR:'the font is' , aFont printString].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    52
	panel show
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    53
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    54
    or simply:
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    55
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    56
	font := FontPanel fontFromUser
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    57
"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    58
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
    59
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    60
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    61
!FontPanel class methodsFor:'defaults'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    62
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    63
defaultExtent
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    64
    ^ (Screen current pixelPerMillimeter * (120 @ 100)) rounded
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    65
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
    66
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    67
defaultJISSampleString
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    68
    ^ ('The quick brown fox
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    69
jumps over the lazy dog
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    70
1234567890
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    71
!!@#$%^&*(){}[]:"~;,./<>?
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
    72
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
    73
\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
    74
' withEscapes decodeFrom:#jis7)
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
    75
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
    76
    "Modified: 23.2.1996 / 23:33:37 / cg"
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    77
!
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    78
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    79
defaultRomanSampleString
110
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
    80
    ^ 'The quick brown fox
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
    81
jumps over the lazy dog
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
    82
1234567890
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
    83
!!@#$%^&*(){}[]:"~;,./<>?
eb59f6e31e84 *** empty log message ***
claus
parents: 101
diff changeset
    84
' , 
398
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    85
(Character value:16rE4) asString ,    "/ umlaut a
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    86
(Character value:16rF6) asString ,    "/ umlaut o
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    87
(Character value:16rFC) asString ,    "/ umlaut u
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    88
(Character value:16rC4) asString ,    "/ umlaut A
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    89
(Character value:16rD6) asString ,    "/ umlaut O
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    90
(Character value:16rDC) asString ,    "/ umlaut U
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    91
(Character value:16rDF) asString ,    "/ sz
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    92
(Character value:233) asString ,      "/ e-degu
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    93
(Character value:232) asString ,      "/ e-grave
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    94
(Character value:234) asString ,      "/ e-circonflex
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    95
(Character value:197) asString ,      "/ A
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    96
(Character value:169) asString        "/ copyright
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    97
6f10715fef28 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 390
diff changeset
    98
    "Modified: 24.2.1996 / 22:45:16 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    99
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   100
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   101
!FontPanel class methodsFor:'startup'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   102
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   103
fontFromUser
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   104
    "open a fontPanel and return the selected font, or nil
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   105
     if abort is pressed"
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   106
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   107
    ^ self fontFromUserInitial:nil
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   108
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   109
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   110
     FontPanel fontFromUser
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   111
    "
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   112
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   113
    "Modified: 27.2.1996 / 00:51:59 / cg"
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   114
!
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   115
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   116
fontFromUserInitial:aFont
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   117
    "open a fontPanel and return the selected font, or nil
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   118
     if abort is pressed"
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   119
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   120
    ^ self fontFromUserInitial:aFont title:nil
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   121
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   122
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   123
     FontPanel fontFromUserInitial:(Font family:'courier' size:12)
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   124
    "
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   125
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   126
    "Created: 27.2.1996 / 00:51:44 / cg"
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   127
    "Modified: 27.2.1996 / 01:00:03 / cg"
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   128
!
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   129
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   130
fontFromUserInitial:aFont title:someTitle
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   131
    "open a fontPanel and return the selected font, or nil
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   132
     if abort is pressed"
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   133
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   134
    ^ self fontFromUserInitial:aFont title:someTitle filter:nil
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   135
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   136
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   137
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   138
    "
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   139
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   140
    "Created: 27.2.1996 / 00:59:46 / cg"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   141
    "Modified: 27.2.1996 / 01:00:12 / cg"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   142
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   143
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   144
fontFromUserInitial:aFont title:someTitle filter:aFilterBlock
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   145
    "open a fontPanel and return the selected font, or nil
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   146
     if abort is pressed"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   147
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   148
    |fontPanel|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   149
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   150
    fontPanel := FontPanel new.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   151
    fontPanel filter:aFilterBlock.
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   152
    someTitle notNil ifTrue:[
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   153
        fontPanel label:someTitle
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   154
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   155
    fontPanel action:[:family :face :style :size |
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   156
        ^ (Font family:family
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   157
                  face:face
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   158
                  style:style
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   159
                   size:size)
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   160
    ].
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   161
    aFont notNil ifTrue:[
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   162
        fontPanel initialFont:aFont.
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   163
    ].
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   164
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   165
    fontPanel showAtPointer.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   166
    ^ nil
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   167
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   168
    "
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   169
     FontPanel fontFromUserInitial:(Font family:'courier' size:12) title:'select some font'
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   170
    "
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   171
413
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   172
    "Created: 27.2.1996 / 00:59:46 / cg"
7474707a9e9b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 410
diff changeset
   173
    "Modified: 27.2.1996 / 01:00:12 / cg"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   174
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   175
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   176
!FontPanel methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   177
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   178
action:aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   179
    okAction := aBlock
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   180
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   181
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   182
filter:aOneArgBlock
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   183
    filter := aOneArgBlock.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   184
    shown ifTrue:[
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   185
        self updateFamilyList
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   186
    ].
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   187
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   188
    "Created: 27.2.1996 / 01:40:08 / cg"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   189
    "Modified: 27.2.1996 / 01:41:33 / cg"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   190
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   191
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   192
initialFont:aFont
128
claus
parents: 110
diff changeset
   193
    "set the font to be selected initially"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   194
128
claus
parents: 110
diff changeset
   195
    selectedFont := aFont.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   196
    self showSelectedFont.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   197
    self showPreview
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   198
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   199
    "Modified: 23.2.1996 / 00:51:32 / cg"
101
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   200
! !
88e7faeda854 *** empty log message ***
claus
parents: 77
diff changeset
   201
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   202
!FontPanel methodsFor:'initialization'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   203
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   204
focusSequence
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   205
    |a|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   206
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   207
    a := Array new:5.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   208
    a at:1 put:familyList.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   209
    a at:2 put:faceList.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   210
    a at:3 put:sizeList.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   211
    a at:4 put:abortButton.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   212
    a at:5 put:okButton.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   213
    ^ a
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   214
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   215
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   216
initialize
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   217
    |familyLabel faceLabel sizeLabel panel fontBrowserView v1 v2 v3
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   218
     mm fH eH|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   219
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   220
    super initialize.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   221
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   222
    mm := ViewSpacing.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   223
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   224
    self addAbortButton.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   225
    self addOkButton.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   226
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   227
    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
   228
    panel bottomInset:(buttonPanel preferredExtent y + (mm*3)).
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   229
150
claus
parents: 131
diff changeset
   230
    label := resources string:'Font dialog'.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   231
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   232
    encodingLabel := Label label:' ' in:panel.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   233
    eH := encodingLabel preferredExtent y.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   234
    encodingLabel origin:0.7@1.0 corner:1.0@1.0.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   235
    encodingLabel topInset:(eH negated); horizontalInset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   236
    encodingLabel level:-1; adjust:#left.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   237
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   238
"/    nameLabel := Label label:' ' in:panel.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   239
"/    nameLabel origin:0.0@1.0 corner:0.7@1.0.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   240
"/    nameLabel topInset:(eH negated); horizontalInset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   241
"/    nameLabel level:-1; adjust:#left.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   242
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   243
    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
   244
    previewField inset:mm.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   245
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   246
"/    previewField contents:self class defaultSampleString.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   247
    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
   248
        previewField level:-1.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   249
    ] ifFalse:[
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   250
        previewField borderWidth:1.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   251
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   252
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   253
    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
   254
    fontBrowserView bottomInset:(eH + mm).
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   255
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   256
    v1 := View origin:0.0@0.0 corner:0.4@1.0 in:fontBrowserView.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   257
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   258
    familyLabel := Label label:'Family' in:v1.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   259
    familyLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   260
    familyLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   261
    fH := familyLabel preferredExtent y.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   262
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   263
    familyList := ScrollableView for:SelectionInListView in:v1.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   264
    familyList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   265
    familyList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   266
    familyList topInset:fH.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   267
128
claus
parents: 110
diff changeset
   268
    familyList := familyList scrolledView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   269
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   270
    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
   271
                   in:fontBrowserView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   272
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   273
    faceLabel := Label label:'Typeface' in:v2.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   274
    faceLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   275
    faceLabel origin:(0.0 @ 0.0) extent:(1.0 @ nil).
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   276
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   277
    faceList := ScrollableView for:SelectionInListView in:v2.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   278
    faceList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   279
    faceList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   280
    faceList topInset:fH.
128
claus
parents: 110
diff changeset
   281
    faceList := faceList scrolledView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   282
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   283
    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
   284
                   in:fontBrowserView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   285
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   286
    sizeLabel := Label label:'Size' in:v3.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   287
    sizeLabel borderWidth:0.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   288
    sizeLabel origin:(0.0 @ 0.0)extent:(1.0 @ nil).
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   289
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   290
    sizeList := ScrollableView for:SelectionInListView in:v3.
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   291
    sizeList origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   292
    sizeList inset:mm.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   293
    sizeList topInset:fH.
128
claus
parents: 110
diff changeset
   294
    sizeList := sizeList scrolledView.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   295
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   296
    familyList action:[:lineNr | self familySelected:(familyList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   297
    faceList action:[:lineNr | self faceSelected:(faceList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   298
    sizeList action:[:lineNr | self sizeSelected:(sizeList selectionValue)].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   299
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   300
    "
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   301
     FontPanel new showAtPointer
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   302
    "
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   303
390
1d54a9b41463 say Hello world in JIS font ;-)
Claus Gittinger <cg@exept.de>
parents: 382
diff changeset
   304
    "Modified: 23.2.1996 / 23:36:01 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   305
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   306
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   307
realize
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   308
    "kludge for sco - xlsfont fails sometimes - try again here"
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   309
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   310
    self updateFamilyList.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   311
    super realize
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   312
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   313
    "Modified: 27.2.1996 / 01:40:47 / cg"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   314
!
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   315
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   316
updateFamilyList 
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   317
    "kludge for sco - xlsfont fails sometimes - try again here"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   318
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   319
    |families|
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   320
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   321
    familyList list isNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   322
        families := device fontFamiliesFiltering:filter.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   323
        families notNil ifTrue:[
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   324
            families := families asOrderedCollection
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   325
        ].
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   326
        familyList list:families
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   327
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   328
    selectedFont notNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   329
        self showSelectedFont
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   330
    ].
415
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
    "Modified: 27.2.1996 / 01:39:42 / cg"
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   333
    "Created: 27.2.1996 / 01:40:37 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   334
! !
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   335
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   336
!FontPanel methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   337
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   338
extractFaceAndStyleFrom:aString
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   339
    |index|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   340
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   341
    index := aString indexOf:$-.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   342
    (index ~~ 0) ifTrue:[
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   343
	currentFaceAndStyle := aString.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   344
	currentFace := aString copyTo:(index - 1).
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   345
	currentStyle := aString copyFrom:(index + 1)
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   346
    ]
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   347
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   348
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   349
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   350
showPreview
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   351
    |f enc s|
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   352
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   353
    shown ifTrue:[
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   354
        previewField clear.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   355
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   356
    "
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   357
     show a wait cursor: for some fonts (kanji etc) the
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   358
     X-server needs quites some time to load the font
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   359
    "
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   360
    self withWaitCursorDo:[
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   361
        previewField font:(f := Font family:currentFamily
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   362
                                       face:currentFace
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   363
                                      style:currentStyle
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   364
                                       size:currentSize).
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   365
        enc := f encoding.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   366
"/        enc isNil ifTrue:[enc := 'ASCII ?'].
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   367
        encodingLabel label:enc.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   368
        nameLabel notNil ifTrue:[nameLabel label:(f fullName)].
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   369
399
13bab2f25c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 398
diff changeset
   370
        (enc notNil and:[enc startsWith:'jis']) ifTrue:[
382
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   371
            s := self class defaultJISSampleString
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   372
        ] ifFalse:[
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   373
            s := self class defaultRomanSampleString.
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   374
        ].
567ea344ab9d show fonts encoding
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   375
        previewField contents:s .
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   376
    ]
255
fdd8ed7f896c use withWaitCursorDo:
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   377
399
13bab2f25c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 398
diff changeset
   378
    "Modified: 24.2.1996 / 23:47:03 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   379
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   380
128
claus
parents: 110
diff changeset
   381
showSelectedFont
claus
parents: 110
diff changeset
   382
    |fam face style sz|
claus
parents: 110
diff changeset
   383
claus
parents: 110
diff changeset
   384
    fam := selectedFont family.
claus
parents: 110
diff changeset
   385
    fam notNil ifTrue:[
claus
parents: 110
diff changeset
   386
	self familySelected:fam.
claus
parents: 110
diff changeset
   387
	face := selectedFont face.
claus
parents: 110
diff changeset
   388
	face notNil ifTrue:[
claus
parents: 110
diff changeset
   389
	    style := selectedFont style.
claus
parents: 110
diff changeset
   390
	    style notNil ifTrue:[
claus
parents: 110
diff changeset
   391
		self faceSelected:(face , '-' , style).
claus
parents: 110
diff changeset
   392
		sz := selectedFont size.
claus
parents: 110
diff changeset
   393
		sz notNil ifTrue:[
claus
parents: 110
diff changeset
   394
		    self sizeSelected:sz 
claus
parents: 110
diff changeset
   395
		]
claus
parents: 110
diff changeset
   396
	    ]
claus
parents: 110
diff changeset
   397
	]
claus
parents: 110
diff changeset
   398
    ]
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   399
! !
128
claus
parents: 110
diff changeset
   400
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   401
!FontPanel methodsFor:'queries'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   402
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   403
preferredExtent
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   404
    ^ 400@350
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   405
! !
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   406
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   407
!FontPanel methodsFor:'user interaction'!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   408
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   409
faceSelected:aFaceAndStyleName
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   410
    |sizes|
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   411
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   412
    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
   413
        self extractFaceAndStyleFrom:aFaceAndStyleName.
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   414
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   415
    sizes := device 
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   416
                 sizesInFamily:currentFamily 
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   417
                 face:currentFace 
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   418
                 style:currentStyle
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   419
                 filtering:filter.
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   420
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   421
    (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
   422
        sizeList list:nil.
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   423
        currentSize := nil.
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   424
        self showPreview.
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   425
        ^ self
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   426
    ].
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   427
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   428
    sizes := (sizes asOrderedCollection sort) collect:[:entry | entry printString].
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   429
    sizeList list:sizes.
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   430
    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
   431
        (sizes includes:(currentSize printString)) ifTrue:[
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   432
            sizeList selectElement:currentSize.
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   433
            self showPreview
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   434
        ]
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   435
    ]
251
25f76efaa547 oops - dont pass a collection of numbers to the size-view
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   436
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   437
    "Modified: 27.2.1996 / 01:39:11 / cg"
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   438
!
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   439
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   440
familySelected:aFamilyName
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   441
    |faces styles list|
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   442
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   443
    familyList selectElement:aFamilyName.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   444
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   445
    currentFamily := aFamilyName.
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   446
    faces := device facesInFamily:aFamilyName filtering:filter.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   447
    (faces isNil or:[faces isEmpty]) ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   448
        currentFace := currentStyle := currentFaceAndStyle := nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   449
        faceList list:nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   450
        self faceSelected:nil.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   451
        ^ self.
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   452
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   453
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   454
    list := OrderedCollection new.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   455
    faces do:[:aFace |
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   456
        styles := device stylesInFamily:aFamilyName face:aFace filtering:filter.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   457
        styles do:[:aStyle |
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   458
            list add:(aFace , '-' , aStyle)
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   459
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   460
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   461
    faceList list:list.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   462
    currentFaceAndStyle notNil ifTrue:[
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   463
        (list includes:currentFaceAndStyle) ifTrue:[
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   464
            faceList selectElement:currentFaceAndStyle.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   465
            self faceSelected:currentFaceAndStyle.
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   466
            ^ self
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   467
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   468
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   469
    sizeList list:nil
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   470
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   471
    "Modified: 27.2.1996 / 01:39:27 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   472
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   473
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   474
okPressed
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   475
    self hide.
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   476
    okAction notNil ifTrue:[
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   477
        currentFamily notNil ifTrue:[
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   478
            okAction value:currentFamily
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   479
                 value:currentFace
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   480
                 value:currentStyle
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   481
                 value:currentSize
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   482
        ]
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   483
    ]
410
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   484
d3fb280141e4 new startup message
Claus Gittinger <cg@exept.de>
parents: 399
diff changeset
   485
    "Modified: 27.2.1996 / 00:50:19 / cg"
77
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   486
!
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   487
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   488
sizeSelected:aNumberOrString
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   489
    aNumberOrString isNumber ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   490
	currentSize := aNumberOrString
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   491
    ] ifFalse:[
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   492
	currentSize := Number readFromString:aNumberOrString
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   493
    ].
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   494
    self showPreview
565b052f5277 *** empty log message ***
claus
parents: 59
diff changeset
   495
! !
197
00927189c882 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 174
diff changeset
   496
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   497
!FontPanel class methodsFor:'documentation'!
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   498
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   499
version
415
2184fe27349a added filter option
Claus Gittinger <cg@exept.de>
parents: 413
diff changeset
   500
    ^ '$Header: /cvs/stx/stx/libwidg/FontPanel.st,v 1.25 1996-02-27 01:11:51 cg Exp $'
243
5c411425097d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   501
! !