FontDescription.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Sep 2017 09:28:09 +0100
branchjv
changeset 8182 c730140a0156
parent 7716 3dba89415c91
child 8420 76e39223f5ab
permissions -rw-r--r--
X11: compile `GLXWorkstation` with OpenGL OpenGL compiler and linker flags are configured locally in `Make.proto` rather than in target config - this moves the configuration closer to the code. Currently all supported (and considered) platforms have OpenGL implementation. Later on one may use conditionals in makefile to deal exceptions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
     1
"
edf02eb2939c Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1994 by Claus Gittinger
89
ea2bf46eb669 *** empty log message ***
claus
parents: 52
diff changeset
     3
	      All Rights Reserved
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
     4
edf02eb2939c Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
edf02eb2939c Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
edf02eb2939c Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
edf02eb2939c Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
edf02eb2939c Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
edf02eb2939c Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
edf02eb2939c Initial revision
claus
parents:
diff changeset
    11
"
3246
213e4771d6fb typo fixed
Claus Gittinger <cg@exept.de>
parents: 3159
diff changeset
    12
"{ Package: 'stx:libview' }"
213e4771d6fb typo fixed
Claus Gittinger <cg@exept.de>
parents: 3159
diff changeset
    13
6723
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
    14
"{ NameSpace: Smalltalk }"
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
    15
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
    16
Object subclass:#FontDescription
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
    17
	instanceVariableNames:'family face style size encoding manufacturer name flags masks
6824
915782c7f935 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6723
diff changeset
    18
		sizeUnit pixelSize weight slant'
7623
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
    19
	classVariableNames:'AntialiasedFlag BoldnessMask
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
    20
		CharacterEncodingToCharacterSetMapping CharacterSetToFontMapping
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
    21
		DecorativeFlag DefaultEncoding FixedFlag GenericFlag GenericFonts
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
    22
		IsTrueTypeFlag ItalicFlag OutlineFlag OverlappingCharactersFlag
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
    23
		ScalableFlag SerifFlag ShadowFlag StrikeoutFlag UnderlineFlag'
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
    24
	poolDictionaries:''
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
    25
	category:'Graphics-Support'
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
    26
!
edf02eb2939c Initial revision
claus
parents:
diff changeset
    27
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
    28
!FontDescription class methodsFor:'documentation'!
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
    29
edf02eb2939c Initial revision
claus
parents:
diff changeset
    30
copyright
edf02eb2939c Initial revision
claus
parents:
diff changeset
    31
"
edf02eb2939c Initial revision
claus
parents:
diff changeset
    32
 COPYRIGHT (c) 1994 by Claus Gittinger
89
ea2bf46eb669 *** empty log message ***
claus
parents: 52
diff changeset
    33
	      All Rights Reserved
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
    34
edf02eb2939c Initial revision
claus
parents:
diff changeset
    35
 This software is furnished under a license and may be used
edf02eb2939c Initial revision
claus
parents:
diff changeset
    36
 only in accordance with the terms of that license and with the
edf02eb2939c Initial revision
claus
parents:
diff changeset
    37
 inclusion of the above copyright notice.   This software may not
edf02eb2939c Initial revision
claus
parents:
diff changeset
    38
 be provided or otherwise made available to, or used by, any
edf02eb2939c Initial revision
claus
parents:
diff changeset
    39
 other person.  No title to or ownership of the software is
edf02eb2939c Initial revision
claus
parents:
diff changeset
    40
 hereby transferred.
edf02eb2939c Initial revision
claus
parents:
diff changeset
    41
"
edf02eb2939c Initial revision
claus
parents:
diff changeset
    42
!
edf02eb2939c Initial revision
claus
parents:
diff changeset
    43
edf02eb2939c Initial revision
claus
parents:
diff changeset
    44
documentation
edf02eb2939c Initial revision
claus
parents:
diff changeset
    45
"
edf02eb2939c Initial revision
claus
parents:
diff changeset
    46
    FontDescription is just a place-holder for scanned font names.
edf02eb2939c Initial revision
claus
parents:
diff changeset
    47
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
    48
    [Instance variables:]
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
    49
        family          <String>        the font's family ('courier', 'helvetica' etc)
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
    50
        face            <String>        the font's face ('bold', 'medium' etc)
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
    51
        style           <String>        the font's style ('roman', 'italic', 'oblique')
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
    52
        size            <String>        the font's size (by default, in points, not in pixels; but see sizeUnit) 
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
    53
        encoding        <Symbol>        the font's encoding (usually #iso8859-1)
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
    54
3991
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    55
        manufacturer    <nil|String|Array>
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
    56
                                        the font's origin - if known
3991
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    57
        name            <nil|String|Array>
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    58
                                        the platform specific name
1265
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    59
3991
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    60
        flags           <SmallInteger>  holds serif/italic etc. as flag bits
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    61
        masks           <SmallInteger>  currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    62
        pixelSize       <SmallInteger>  currently dummy; to allow ST-80 compatible subclassing
6825
4fcdfee4604c class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6824
diff changeset
    63
        sizeUnit        <Symbol>        #px or #pt; defines what size is measuring
4fcdfee4604c class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6824
diff changeset
    64
        weight          <SmallInteger>  for real fonts, which support it
4fcdfee4604c class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6824
diff changeset
    65
        slant           <SmallInteger>  for real fonts, which support it
1265
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    66
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    67
    [class variables:]
3991
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    68
        BoldnessMask                    currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    69
        FixedFlag                       currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    70
        ItalicFlag                      currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    71
        OutlineFlag                     currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    72
        SerifFlag                       currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    73
        ShadowFlag                      currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    74
        StrikeoutFlag                   currently dummy; to allow ST-80 compatible subclassing
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
    75
        UnderlineFlag                   currently dummy; to allow ST-80 compatible subclassing
1265
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    76
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
    77
    [author:]
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 576
diff changeset
    78
        Claus Gittinger
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
    79
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
    80
    [see also:]
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
    81
        Font
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
    82
        FontPanel
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
    83
        GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
    84
        ( introduction to view programming :html: programming/viewintro.html#FONTS )
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
    85
"
edf02eb2939c Initial revision
claus
parents:
diff changeset
    86
! !
edf02eb2939c Initial revision
claus
parents:
diff changeset
    87
1265
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    88
!FontDescription class methodsFor:'initialization'!
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    89
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    90
initialize
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    91
    "initialize class variables"
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
    92
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
    93
    BoldnessMask              := 2r000000000000111.      "/ allows for 8 boldnesses to be encoded
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
    94
    FixedFlag                 := 2r000000000001000.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
    95
    ItalicFlag                := 2r000000000010000.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
    96
    OutlineFlag               := 2r000000000100000.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
    97
    SerifFlag                 := 2r000000001000000.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
    98
    ShadowFlag                := 2r000000010000000.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
    99
    StrikeoutFlag             := 2r000000100000000.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   100
    UnderlineFlag             := 2r000001000000000.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   101
    GenericFlag               := 2r000010000000000.      "/ This is a pseudo font
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   102
    OverlappingCharactersFlag := 2r000100000000000.      "/ special for windows
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   103
    AntialiasedFlag           := 2r001000000000000.      "/ added for Xft
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   104
    ScalableFlag              := 2r010000000000000.      "/ added for Xft
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   105
    DecorativeFlag            := 2r100000000000000.      "/ added for Xft
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   106
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   107
    self initializeGenericFonts.
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   108
    self initializeCharacterEncodingToCharacterSetMapping.
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   109
    self initializeCharacterSetToFontMapping.
5644
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   110
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   111
    "Modified: / 08-11-2010 / 13:12:08 / cg"
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   112
!
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   113
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   114
initializeCharacterEncodingToCharacterSetMapping
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   115
    "character encoding"
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   116
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   117
    CharacterEncodingToCharacterSetMapping isNil ifTrue:[
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   118
        CharacterEncodingToCharacterSetMapping := Dictionary withKeysAndValues:#(
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   119
            utf7        unicode
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   120
            #'utf-7'    unicode
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   121
            utf8        unicode
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   122
            #'utf-8'    unicode
5916
ceb0f5faf565 changed:
Stefan Vogel <sv@exept.de>
parents: 5906
diff changeset
   123
            #utf16be    unicode
ceb0f5faf565 changed:
Stefan Vogel <sv@exept.de>
parents: 5906
diff changeset
   124
            #utf16le    unicode
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   125
        ).
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   126
    ].
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   127
!
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   128
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   129
initializeCharacterSetToFontMapping
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   130
    "character sets"
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   131
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   132
    CharacterSetToFontMapping isNil ifTrue:[
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   133
        CharacterSetToFontMapping := Dictionary withKeysAndValues: #(
5916
ceb0f5faf565 changed:
Stefan Vogel <sv@exept.de>
parents: 5906
diff changeset
   134
            unicode        'iso10646-1'
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   135
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   136
            'koi8-r'       'iso8859-5'
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   137
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   138
            'iso2022-jp'   'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   139
            'x-iso2022-jp' 'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   140
            'x-euc-jp'     'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   141
            'x-shift-jis'  'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   142
            'x-sjis'       'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   143
            'x-jis7'       'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   144
            'jis7'         'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   145
            'euc'          'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   146
            'euc-jp'       'jis*0208*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   147
            'sjis'         'jis*0208*'
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   148
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   149
            'big5'         'big5*'
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   150
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   151
            'gb2312'       'gb*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   152
            'hz-gb-2312'   'gb*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   153
            'x-gbk'        'gb*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   154
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   155
            'iso2022-kr'   'ksc*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   156
            'x-euc-kr'     'ksc*'
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   157
        ).
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   158
    ].
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   159
!
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   160
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   161
initializeGenericFonts
6105
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
   162
    "generic fonts, that do not exist as a device font and are
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   163
     replaced by a real font"
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   164
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   165
    GenericFonts isNil ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   166
        GenericFonts := OrderedCollection new.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   167
        GenericFonts add:((self family:#serif face:nil style:nil size:0 sizeUnit:#pt encoding:nil) isGenericFont:true).
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   168
        GenericFonts add:((self family:#'sans-serif' face:nil style:nil size:0 sizeUnit:#pt encoding:nil) isGenericFont:true).
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   169
        GenericFonts add:((self family:#monospace face:nil style:nil size:0 sizeUnit:#pt encoding:nil) isGenericFont:true).
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   170
    ].
1265
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   171
! !
c8030e99f941 added ST-80 compatible instVars (currently ignored, though)
Claus Gittinger <cg@exept.de>
parents: 1071
diff changeset
   172
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
   173
!FontDescription class methodsFor:'instance creation'!
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
   174
153
claus
parents: 109
diff changeset
   175
family:familyString
claus
parents: 109
diff changeset
   176
    "returns a font for given family and default (12pt) size 
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   177
     with default encoding.
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   178
     The new fonts face defaults `medium', its style to `roman'.
153
claus
parents: 109
diff changeset
   179
     The returned font is not associated to a specific device"
claus
parents: 109
diff changeset
   180
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   181
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   182
        family:familyString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   183
        face:(self defaultFace) 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   184
        style:(self defaultStyle) 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   185
        size:(self defaultSize) 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   186
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   187
        encoding:(self defaultEncoding)
153
claus
parents: 109
diff changeset
   188
claus
parents: 109
diff changeset
   189
    "
claus
parents: 109
diff changeset
   190
     Font family:'helvetica'
claus
parents: 109
diff changeset
   191
     Font family:'courier'
claus
parents: 109
diff changeset
   192
    "
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   193
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   194
    "Modified: 30.4.1996 / 17:20:44 / cg"
153
claus
parents: 109
diff changeset
   195
!
claus
parents: 109
diff changeset
   196
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   197
family:familyString face:faceString size:sizeNum
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   198
    "returns a font for given family and size with default encoding.
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   199
     The new fonts style defaults to `roman'.
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   200
     The returned font is not associated to a specific device"
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   201
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   202
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   203
        family:familyString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   204
        face:faceString 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   205
        style:(self defaultStyle)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   206
        size:sizeNum
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   207
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   208
        encoding:(self defaultEncoding)
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   209
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   210
    "
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   211
     Font family:'helvetica' face:'medium' size:10
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   212
     Font family:'helvetica' face:'bold' size:10
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   213
     Font family:'courier'   face:'bold' size:10
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   214
    "
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   215
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   216
    "Modified: 30.4.1996 / 17:21:07 / cg"
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   217
!
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   218
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   219
family:familyString face:faceString style:styleString size:sizeNum
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   220
    "returns a font for given family, face, style and size with default encoding. 
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   221
     The returned font is not associated to a specific device"
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   222
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   223
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   224
        family:familyString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   225
        face:faceString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   226
        style:styleString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   227
        size:sizeNum
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   228
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   229
        encoding:(self defaultEncoding)
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   230
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   231
    "
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   232
     Font family:'helvetica' face:'medium' style:'roman'  size:10
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   233
     Font family:'helvetica' face:'medium' style:'italic' size:10
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   234
     Font family:'helvetica' face:'bold'   style:'roman'  size:10
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   235
     Font family:'courier'   face:'bold'   style:'italic' size:10
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   236
    "
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   237
!
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   238
3993
7fc0939208e2 defaultEncoding is now 8859-1
Claus Gittinger <cg@exept.de>
parents: 3991
diff changeset
   239
family:familyString face:faceString style:styleString size:sizeNum encoding:encoding
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   240
    "returns a font for given family, face, style, size and the specified encoding. 
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   241
     The returned font is not associated to a specific device"
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   242
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   243
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   244
          family:familyString 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   245
          face:faceString 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   246
          style:styleString 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   247
          size:sizeNum
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   248
          sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   249
          encoding:encoding
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   250
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   251
    "Modified: 20.4.1996 / 23:19:04 / cg"
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   252
!
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   253
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   254
family:familyString face:faceString style:styleString size:size sizeUnit:sizeUnit encoding:encoding
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   255
    "returns a font for given family, face, style, size and the specified encoding. 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   256
     The returned font is not associated to a specific device"
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   257
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
   258
    ^ self new
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   259
          family:familyString 
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   260
          face:faceString 
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   261
          style:styleString 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   262
          size:size
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   263
          sizeUnit:sizeUnit
3993
7fc0939208e2 defaultEncoding is now 8859-1
Claus Gittinger <cg@exept.de>
parents: 3991
diff changeset
   264
          encoding:encoding
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   265
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   266
    "Modified: 20.4.1996 / 23:19:04 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   267
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   268
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   269
family:familyString pixelSize:sizeNum
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   270
    "returns a font for given family and pixelSize with default encoding.
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   271
     The new fonts face defaults to `medium', its style to `roman'.
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   272
     Notice: the returned font will typically only be usable on a screen, 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   273
     and will not scale as to the devices resolution.
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   274
     Use #family:size: for resolution-independent sizing."
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   275
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   276
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   277
        family:familyString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   278
        face:(self defaultFace)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   279
        style:(self defaultStyle)
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   280
        size:sizeNum
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   281
        sizeUnit:#px
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   282
        encoding:(self defaultEncoding)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   283
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   284
    "
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   285
     (Font family:'helvetica' size:10) onDevice:Screen current
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   286
     (Font family:'helvetica' pixelSize:10) onDevice:Screen current
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   287
    "
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   288
!
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   289
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   290
family:familyString size:sizeNum
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   291
    "returns a font for given family and size with default encoding.
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   292
     The new fonts face defaults to `medium', its style to `roman'.
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   293
     The returned font is not associated to a specific device"
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   294
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   295
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   296
        family:familyString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   297
        face:(self defaultFace)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   298
        style:(self defaultStyle)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   299
        size:sizeNum
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   300
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   301
        encoding:(self defaultEncoding)
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   302
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   303
    "
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   304
     Font family:'helvetica' size:10
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   305
     Font family:'courier' size:10
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   306
    "
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   307
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   308
    "Modified: 30.4.1996 / 17:21:40 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   309
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   310
4005
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   311
family:familyString size:sizeNum encoding:encoding
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   312
    "returns a font for given family and size with default encoding.
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   313
     The new fonts face defaults to `medium', its style to `roman'.
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   314
     The returned font is not associated to a specific device"
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   315
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   316
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   317
        family:familyString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   318
        face:(self defaultFace)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   319
        style:(self defaultStyle)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   320
        size:sizeNum
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   321
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   322
        encoding:encoding
4005
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   323
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   324
    "
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   325
     Font family:'helvetica' size:10 encoding:#'iso8859-1'
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   326
     Font family:'courier' size:10 encoding:#'iso8859-1'
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   327
    "
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   328
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   329
    "Modified: 30.4.1996 / 17:21:40 / cg"
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   330
!
cbe56ccc85fa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3996
diff changeset
   331
1071
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   332
family:familyString style:aStyle size:sizeNum
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   333
    "returns a font for given family and size with default encoding.
1071
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   334
     The new fonts face defaults to `medium', its style to `roman'.
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   335
     The returned font is not associated to a specific device"
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   336
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   337
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   338
        family:familyString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   339
        face:(self defaultFace)
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   340
        style:aStyle 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   341
        size:sizeNum
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   342
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   343
        encoding:(self defaultEncoding)
1071
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   344
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   345
    "
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   346
     Font family:'helvetica' style:#roman size:48
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   347
     Font family:'courier' style:#roman size:10
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   348
    "
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   349
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   350
    "Modified: 30.4.1996 / 17:21:40 / cg"
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   351
    "Created: 8.10.1996 / 18:33:55 / cg"
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   352
!
ae5b36b93cf3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
   353
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   354
name:aFontName
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   355
    "returns a font with the given explicit name.
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   356
     WARNING:
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   357
       You shuld not use explicit naming, since font names vary
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   358
       with operatingSystems, devices and architecture.
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   359
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   360
     This interface is provided for special purposes only.
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   361
     On X, the name given should be according the X fontname conventions;
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   362
     i.e. something like: '-*-times-bold-r-normal-*-*-240-*-*-*-*-iso8859-1'.
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   363
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   364
     On other devices, font naming may be completely different."
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   365
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   366
    ^ self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   367
        family:aFontName 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   368
        face:nil
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   369
        style:nil
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   370
        size:nil 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   371
        sizeUnit:#px
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   372
        encoding:nil
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   373
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   374
    "
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   375
     Font name:'-*-times-bold-r-normal-*-*-240-*-*-*-*-iso8859-1'
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   376
     Font name:'6x10'
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   377
     Font name:'k14'
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   378
     ((Font name:'k14') on:Display) encoding
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   379
    "
629
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   380
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   381
    "Modified: 30.4.1996 / 17:23:09 / cg"
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
   382
! !
edf02eb2939c Initial revision
claus
parents:
diff changeset
   383
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   384
!FontDescription class methodsFor:'accessing'!
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   385
5991
c89cdc73a6bb class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 5916
diff changeset
   386
defaultEncoding:encodingSymbol
c89cdc73a6bb class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 5916
diff changeset
   387
    DefaultEncoding := encodingSymbol
c89cdc73a6bb class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 5916
diff changeset
   388
!
c89cdc73a6bb class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 5916
diff changeset
   389
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   390
genericFonts
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   391
    ^ GenericFonts
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   392
! !
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   393
3993
7fc0939208e2 defaultEncoding is now 8859-1
Claus Gittinger <cg@exept.de>
parents: 3991
diff changeset
   394
!FontDescription class methodsFor:'defaults'!
7fc0939208e2 defaultEncoding is now 8859-1
Claus Gittinger <cg@exept.de>
parents: 3991
diff changeset
   395
7fc0939208e2 defaultEncoding is now 8859-1
Claus Gittinger <cg@exept.de>
parents: 3991
diff changeset
   396
defaultEncoding
5991
c89cdc73a6bb class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 5916
diff changeset
   397
    ^ DefaultEncoding ? #'iso10646-1'.
5906
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
   398
"/    ^ #'iso8859-1'
5894
27858a4e6457 changed: #defaultEncoding
Claus Gittinger <cg@exept.de>
parents: 5644
diff changeset
   399
27858a4e6457 changed: #defaultEncoding
Claus Gittinger <cg@exept.de>
parents: 5644
diff changeset
   400
    "Modified: / 20-03-2012 / 23:48:24 / cg"
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   401
!
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   402
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   403
defaultFace
5906
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
   404
    ^ #medium
3996
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   405
!
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   406
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   407
defaultSize
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   408
    ^ 12
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   409
!
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   410
9ed3e413700c *** empty log message ***
ca
parents: 3993
diff changeset
   411
defaultStyle
5906
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
   412
    ^ #roman 
3993
7fc0939208e2 defaultEncoding is now 8859-1
Claus Gittinger <cg@exept.de>
parents: 3991
diff changeset
   413
! !
7fc0939208e2 defaultEncoding is now 8859-1
Claus Gittinger <cg@exept.de>
parents: 3991
diff changeset
   414
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   415
!FontDescription class methodsFor:'queries'!
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   416
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   417
characterSetForCharacterEncoding:encodingName
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   418
    "return the font-encoding for a character encoding"
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   419
4018
473a63a09368 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
   420
    ^ CharacterEncodingToCharacterSetMapping at:encodingName ifAbsent:encodingName
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   421
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   422
    "
4018
473a63a09368 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
   423
     FontDescription characterSetForCharacterEncoding:'utf8'     
473a63a09368 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
   424
     FontDescription characterSetForCharacterEncoding:'koi8-r'     
473a63a09368 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
   425
     FontDescription characterSetForCharacterEncoding:'unicode'     
3987
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   426
    "
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   427
!
796ff0ae8306 more mapping
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
   428
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   429
fontNamePatternForCharset:aCharSetName
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   430
    "return the font-encoding for an iso-charset"
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   431
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   432
    ^ CharacterSetToFontMapping at:aCharSetName ifAbsent:nil
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   433
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   434
    "
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   435
     FontDescription fontNamePatternForCharset:'iso2022-jp'       
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   436
     FontDescription fontNamePatternForCharset:'euc-jp'     
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   437
    "
4010
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   438
!
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   439
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   440
preferredFontEncodingFor:fileEncoding
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   441
    "given a file encoding, return a corresponding match pattern for a preferred fontEncoding"
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   442
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   443
    |ce fe|
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   444
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   445
    ce := FontDescription characterSetForCharacterEncoding:fileEncoding.
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   446
    ce isNil ifTrue:[
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   447
        ce := fileEncoding.
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   448
    ].
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   449
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   450
    fe := FontDescription fontNamePatternForCharset:ce.
7f899eceaf2d preferredFontEncodingFor moved from FileBrowser
Claus Gittinger <cg@exept.de>
parents: 4005
diff changeset
   451
    fe notNil ifTrue:[^ fe].
5906
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
   452
    ^ ce ? self defaultEncoding.
3827
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   453
! !
3390983893a2 font stuff moved from MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
   454
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   455
!FontDescription methodsFor:'Compatibility-ST80'!
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   456
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   457
boldness:aNumber
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   458
    "added for ST-80 compatibility; actually ignored currently"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   459
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   460
    |val|
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   461
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   462
    flags isNil ifTrue:[
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   463
        flags := masks := 0
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   464
    ].
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   465
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   466
    "/ scale from 0..1 to 0..BoldnessMask
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   467
    val := (aNumber max:0.0) min:1.0.
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   468
    val := (BoldnessMask * val) rounded.
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   469
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   470
    flags := flags bitOr:val.
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   471
    masks := masks bitOr:BoldnessMask
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   472
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   473
    "Created: 25.1.1997 / 03:20:05 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   474
    "Modified: 25.1.1997 / 03:20:47 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   475
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   476
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   477
color:aColor
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   478
    "added for ST-80 compatibility; actually ignored currently"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   479
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   480
    "Created: 25.1.1997 / 03:21:28 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   481
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   482
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   483
encodings:aCollectionOfEncodings
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   484
    "added for ST-80 compatibility; actually ignored currently"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   485
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   486
    "Created: 20.6.1997 / 09:52:46 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   487
!
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   488
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   489
fixedWidth:aBoolean
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   490
    "added for ST-80 compatibility; actually ignored currently"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   491
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   492
    flags isNil ifTrue:[
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   493
        flags := masks := 0
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   494
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   495
    aBoolean ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   496
        flags := flags bitOr:FixedFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   497
        masks := masks bitOr:FixedFlag
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   498
    ] ifFalse:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   499
        flags := flags bitClear:FixedFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   500
        masks := masks bitClear:FixedFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   501
    ].
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   502
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   503
    "Created: 25.1.1997 / 03:14:06 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   504
    "Modified: 25.1.1997 / 03:21:03 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   505
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   506
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   507
italic:aBoolean
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   508
    "added for ST-80 compatibility; actually ignored currently"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   509
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   510
    flags isNil ifTrue:[
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   511
        flags := masks := 0
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   512
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   513
    aBoolean ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   514
        flags := flags bitOr:ItalicFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   515
        masks := masks bitOr:ItalicFlag
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   516
    ] ifFalse:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   517
        flags := flags bitClear:ItalicFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   518
        masks := masks bitClear:ItalicFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   519
    ].
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   520
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   521
    "Created: 25.1.1997 / 03:15:37 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   522
    "Modified: 25.1.1997 / 03:20:55 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   523
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   524
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   525
outline:aBoolean
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   526
    "added for ST-80 compatibility; actually ignored currently"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   527
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   528
    flags isNil ifTrue:[
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   529
        flags := masks := 0
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   530
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   531
    aBoolean ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   532
        flags := flags bitOr:OutlineFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   533
        masks := masks bitOr:OutlineFlag
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   534
    ] ifFalse:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   535
        flags := flags bitClear:OutlineFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   536
        masks := masks bitClear:OutlineFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   537
    ].
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   538
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   539
    "Modified: 25.1.1997 / 03:20:55 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   540
    "Created: 20.6.1997 / 09:50:06 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   541
!
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   542
5165
3b03bd5bb18e preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 4894
diff changeset
   543
pixelSize
3b03bd5bb18e preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 4894
diff changeset
   544
    ^ pixelSize 
3b03bd5bb18e preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 4894
diff changeset
   545
!
3b03bd5bb18e preps for pixelSize fonts
Claus Gittinger <cg@exept.de>
parents: 4894
diff changeset
   546
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   547
pixelSize:aNumber
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   548
    "if specified, the size is ignored, and a pixel-sized font is chosen."
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   549
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   550
    pixelSize := aNumber.
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   551
    sizeUnit := #px.
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   552
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   553
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   554
serif:aBoolean
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   555
    "added for ST-80 compatibility; actually ignored currently"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   556
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   557
    flags isNil ifTrue:[
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   558
        flags := masks := 0
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   559
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   560
    aBoolean ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   561
        flags := flags bitOr:SerifFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   562
        masks := masks bitOr:SerifFlag
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   563
    ] ifFalse:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   564
        flags := flags bitClear:SerifFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   565
        masks := masks bitClear:SerifFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   566
    ].
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   567
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   568
    "Created: 25.1.1997 / 03:15:17 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   569
    "Modified: 25.1.1997 / 03:20:59 / cg"
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   570
!
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   571
5196
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   572
setPixelSize:aNumber
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   573
    pixelSize := aNumber.
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   574
!
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
   575
6326
f48560d5ca58 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6320
diff changeset
   576
setSize:aNumber
6960
d26b0f5856db #FEATURE
Stefan Vogel <sv@exept.de>
parents: 6956
diff changeset
   577
    size := aNumber ? 0.
6326
f48560d5ca58 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6320
diff changeset
   578
!
f48560d5ca58 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6320
diff changeset
   579
f48560d5ca58 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6320
diff changeset
   580
setSizeUnit:aSymbol
f48560d5ca58 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6320
diff changeset
   581
    sizeUnit := aSymbol.
f48560d5ca58 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6320
diff changeset
   582
!
f48560d5ca58 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6320
diff changeset
   583
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   584
shadow:aBoolean
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   585
    "added for ST-80 compatibility; actually ignored currently"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   586
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   587
    flags isNil ifTrue:[
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   588
        flags := masks := 0
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   589
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   590
    aBoolean ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   591
        flags := flags bitOr:ShadowFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   592
        masks := masks bitOr:ShadowFlag
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   593
    ] ifFalse:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   594
        flags := flags bitClear:ShadowFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   595
        masks := masks bitClear:ShadowFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   596
    ].
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   597
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   598
    "Modified: 25.1.1997 / 03:20:55 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   599
    "Created: 20.6.1997 / 09:51:03 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   600
!
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   601
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   602
strikeout:aBoolean
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   603
    "added for ST-80 compatibility; actually ignored currently"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   604
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   605
    flags isNil ifTrue:[
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   606
        flags := masks := 0
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   607
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   608
    aBoolean ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   609
        flags := flags bitOr:StrikeoutFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   610
        masks := masks bitOr:StrikeoutFlag
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   611
    ] ifFalse:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   612
        flags := flags bitClear:StrikeoutFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   613
        masks := masks bitClear:StrikeoutFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   614
    ].
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   615
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   616
    "Modified: 25.1.1997 / 03:20:55 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   617
    "Created: 20.6.1997 / 09:51:36 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   618
!
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   619
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   620
underline:aBoolean
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   621
    "added for ST-80 compatibility; actually ignored currently"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   622
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   623
    flags isNil ifTrue:[
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   624
        flags := masks := 0
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   625
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   626
    aBoolean ifTrue:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   627
        flags := flags bitOr:UnderlineFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   628
        masks := masks bitOr:UnderlineFlag
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   629
    ] ifFalse:[
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   630
        flags := flags bitClear:UnderlineFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   631
        masks := masks bitClear:UnderlineFlag.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   632
    ].
1760
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   633
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   634
    "Modified: 25.1.1997 / 03:20:55 / cg"
ccd221469891 more ST80 compatibility (partially dummy)
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
   635
    "Created: 20.6.1997 / 09:51:18 / cg"
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   636
! !
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   637
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
   638
!FontDescription methodsFor:'accessing'!
edf02eb2939c Initial revision
claus
parents:
diff changeset
   639
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   640
device
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   641
    "return the device I am on"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   642
4146
4c46ae30bd64 Use #graphicsDevice
Stefan Vogel <sv@exept.de>
parents: 4018
diff changeset
   643
    <resource:#obsolete>
4c46ae30bd64 Use #graphicsDevice
Stefan Vogel <sv@exept.de>
parents: 4018
diff changeset
   644
3661
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   645
    self obsoleteMethodWarning:'use #graphicsDevice'.
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   646
    ^ self graphicsDevice
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   647
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   648
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   649
encoding
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
   650
    "return the font's encoding, as a symbol
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
   651
     such as #'iso8859', #'jis0208.1983' or #ascii.
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
   652
     If the encoding is not known, return nil; 
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
   653
     You should assume ascii/iso8859-encoding then."
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   654
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   655
    ^ encoding
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   656
575
ad65411701b0 commentary
Claus Gittinger <cg@exept.de>
parents: 478
diff changeset
   657
    "Modified: 20.4.1996 / 23:14:36 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   658
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   659
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   660
face
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   661
    "return the face, a string"
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   662
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   663
    ^ face
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   664
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   665
4892
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   666
face:aString
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   667
    "set the face, a string such as 'bold'"
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   668
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   669
    self assert:(self fontId isNil). "/ cannot change an instantiated font
7120
a13e27041519 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7118
diff changeset
   670
    weight := nil.      "/ weight is the numeric equivalent to face
4892
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   671
    face := aString
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   672
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   673
    "Created: 25.1.1997 / 03:12:12 / cg"
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   674
!
9b15605f58ff check: bad change of attributes of a REAL font
Claus Gittinger <cg@exept.de>
parents: 4627
diff changeset
   675
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   676
family
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   677
    "return the family, a string"
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   678
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   679
    ^ family
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   680
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   681
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   682
family:aString
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   683
    "set the family, a string"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   684
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   685
    self assert:(self fontId isNil). "/ cannot change an instantiated font
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   686
    family := aString
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   687
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   688
    "Created: 25.1.1997 / 03:12:12 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   689
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   690
89
ea2bf46eb669 *** empty log message ***
claus
parents: 52
diff changeset
   691
family:familyString face:faceString style:styleString size:sizeNum encoding:encodingString
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   692
    <resource: #obsolete>
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   693
    "set the instance values"
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   694
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   695
    self 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   696
        family:familyString 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   697
        face:faceString 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   698
        style:styleString 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   699
        size:sizeNum 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   700
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   701
        encoding:encodingString
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   702
!
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
   703
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   704
family:familyString face:faceString style:styleString size:sizeArg sizeUnit:sizeUnitArg encoding:encodingString
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   705
    "set the instance values"
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   706
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   707
    self assert:(self fontId isNil). "/ cannot change an instantiated font
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   708
89
ea2bf46eb669 *** empty log message ***
claus
parents: 52
diff changeset
   709
    family := familyString asSymbol.
6961
29c66fcf1f94 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6960
diff changeset
   710
    faceString notEmptyOrNil ifTrue:[
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   711
        face := faceString asSymbol.
89
ea2bf46eb669 *** empty log message ***
claus
parents: 52
diff changeset
   712
    ].
6961
29c66fcf1f94 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6960
diff changeset
   713
    styleString notEmptyOrNil ifTrue:[
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   714
        style := styleString asSymbol.
89
ea2bf46eb669 *** empty log message ***
claus
parents: 52
diff changeset
   715
    ].
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   716
    sizeUnit := sizeUnitArg.
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   717
    sizeUnit == #px ifTrue:[
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   718
        pixelSize := sizeArg.
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   719
    ] ifFalse:[
6961
29c66fcf1f94 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6960
diff changeset
   720
        sizeUnit isNil ifTrue:[
29c66fcf1f94 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6960
diff changeset
   721
            sizeUnit := #pt.
29c66fcf1f94 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6960
diff changeset
   722
        ].
6960
d26b0f5856db #FEATURE
Stefan Vogel <sv@exept.de>
parents: 6956
diff changeset
   723
        size := sizeArg ? 0.
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   724
    ].
6961
29c66fcf1f94 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6960
diff changeset
   725
    encodingString notEmptyOrNil ifTrue:[
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   726
        encoding := encodingString asSymbol.
89
ea2bf46eb669 *** empty log message ***
claus
parents: 52
diff changeset
   727
    ]
229
099543e5d779 handle empty family/style/encoding strings
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
   728
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   729
    "Modified: 20.4.1996 / 23:19:25 / cg"
52
edf02eb2939c Initial revision
claus
parents:
diff changeset
   730
!
edf02eb2939c Initial revision
claus
parents:
diff changeset
   731
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   732
file:aNumber
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   733
    "set the file"
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   734
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   735
    self assert:(self fontId isNil). "/ cannot change an instantiated font
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   736
"/    file := aNumber
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   737
!
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   738
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   739
flags
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   740
    ^ flags
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   741
!
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   742
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   743
flags:anInteger
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   744
    flags := anInteger.
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   745
!
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   746
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   747
fontFormat:aString
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   748
    "set the fontFormat"
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   749
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   750
    self assert:(self fontId isNil). "/ cannot change an instantiated font
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   751
"/    fontFormat := aString
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   752
!
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   753
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   754
fontId
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   755
    "return the device-dependent font-id"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   756
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   757
    ^ nil
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   758
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   759
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   760
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
   761
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   762
fontVersion:aNumber
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   763
    "set the fontVersion"
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   764
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   765
    self assert:(self fontId isNil). "/ cannot change an instantiated font
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   766
"/    fontVersion := aNumber
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   767
!
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   768
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   769
foundry
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   770
    "return the manufacturer/foundry"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   771
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   772
    ^ manufacturer
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   773
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   774
    "Created: 25.1.1997 / 03:12:43 / cg"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   775
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   776
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   777
foundry:aString
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   778
    "set the value of the manufacturer/foundry"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   779
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   780
    manufacturer := aString.
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   781
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   782
    "Created: 25.1.1997 / 03:12:43 / cg"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   783
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   784
3661
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   785
graphicsDevice
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   786
    "return the device I am on"
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   787
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   788
    ^ nil
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   789
!
b96d4f68b36e device -> graphicsDevice
Michael Beyl <mb@exept.de>
parents: 3629
diff changeset
   790
5644
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   791
hasOverlappingCharacters:aBoolean 
6111
0152b0e4461a class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6105
diff changeset
   792
    "set whether this has overlapping chars (for windows cleartype drawing only)"
5644
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   793
    
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   794
    flags := (flags ? 0) changeMask:OverlappingCharactersFlag to:aBoolean
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   795
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   796
    "Created: / 08-11-2010 / 13:16:23 / cg"
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   797
!
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   798
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   799
isAntialiasedFont:aBoolean 
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   800
    "set whether this is an antialiased font (currently for XftFonts only)"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   801
    
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   802
    flags := (flags ? 0) changeMask:AntialiasedFlag to:aBoolean
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   803
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   804
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   805
isDecorativeFont:aBoolean 
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   806
    "set whether this is a decorative font (currently for XftFonts only)"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   807
    
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   808
    flags := (flags ? 0) changeMask:DecorativeFlag to:aBoolean
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   809
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   810
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   811
isGenericFont:aBoolean 
6111
0152b0e4461a class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6105
diff changeset
   812
    "set whether this is a pseudo font"
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   813
    
5644
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   814
    flags := (flags ? 0) changeMask:GenericFlag to:aBoolean
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   815
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
   816
    "Modified: / 08-11-2010 / 12:58:03 / cg"
6111
0152b0e4461a class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6105
diff changeset
   817
    "Modified (comment): / 27-07-2013 / 15:39:50 / cg"
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   818
!
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   819
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   820
isOutlineFont:aBoolean 
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   821
    "set whether this is an outline font (currently for XftFonts only)"
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   822
    
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   823
    flags := (flags ? 0) changeMask:OutlineFlag to:aBoolean
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   824
!
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   825
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   826
isScalableFont:aBoolean 
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   827
    "set whether this is a scalable font (currently for XftFonts only)"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   828
    
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   829
    flags := (flags ? 0) changeMask:ScalableFlag to:aBoolean
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   830
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   831
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   832
manufacturer
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   833
    "return the manufacturer/foundry"
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   834
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   835
    ^ manufacturer
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   836
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   837
    "Created: 25.1.1997 / 03:12:43 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   838
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   839
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   840
manufacturer:aString
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   841
    "set the value of the manufacturer/foundry"
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   842
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   843
    manufacturer := aString.
1277
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   844
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   845
    "Created: 25.1.1997 / 03:12:43 / cg"
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   846
!
f79716195219 more ST-80 stuff
Claus Gittinger <cg@exept.de>
parents: 1275
diff changeset
   847
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   848
masks
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   849
    ^ masks
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   850
!
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   851
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   852
masks:something
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   853
    masks := something.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   854
!
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   855
6723
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   856
name
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   857
    "the name (typically filename) if known"
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   858
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   859
    ^ name
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   860
!
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   861
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   862
name:aString
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   863
    name := aString.
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   864
!
8a4be06814d1 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6629
diff changeset
   865
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   866
sizeUnit
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   867
    "currently returns one of #pt or #px (internal use only)"
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   868
6961
29c66fcf1f94 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6960
diff changeset
   869
    ^ sizeUnit
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   870
!
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
   871
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   872
slant
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   873
    "get the slant"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   874
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   875
    ^ 0 "/ slant 
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   876
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   877
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   878
slant:aNumber
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   879
    "set the slant"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   880
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   881
    self assert:(self fontId isNil). "/ cannot change an instantiated font
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   882
"/    slant := aNumber
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   883
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   884
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   885
spacing
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   886
    "get the spacing"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   887
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   888
    ^ 100 "/ spacing 
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   889
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   890
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   891
spacing:aNumber
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   892
    "set the spacing"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   893
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   894
    self assert:(self fontId isNil). "/ cannot change an instantiated font
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   895
"/    spacing := aNumber
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   896
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
   897
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   898
style
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   899
    "return the style, a string"
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   900
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
   901
    ^ style
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   902
!
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   903
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   904
style:aString
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   905
    "set the style"
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   906
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   907
    self assert:(self fontId isNil). "/ cannot change an instantiated font
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   908
    style := aString
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   909
!
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   910
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   911
weight:aNumber
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   912
    "set the weight"
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   913
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   914
    self assert:(self fontId isNil). "/ cannot change an instantiated font
7118
7314cb86e7e2 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 6991
diff changeset
   915
    weight := aNumber
6262
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   916
!
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   917
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   918
width:aNumber
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   919
    "set the width"
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   920
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   921
    self assert:(self fontId isNil). "/ cannot change an instantiated font
e1df0f1d5153 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6260
diff changeset
   922
"/    width := aNumber
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   923
! !
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   924
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   925
!FontDescription methodsFor:'comparing'!
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   926
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   927
= aFont
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   928
    "two fonts are considered equal, if the font-name components are;
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   929
     independent of the device, the font is on"
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   930
7561
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   931
    (aFont species ~~ self species) ifTrue:[^ false].
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   932
    (size ~~ aFont size) ifTrue:[^ false].  
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   933
    (family ~= aFont family) ifTrue:[^ false].  
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   934
    (face ~= aFont face) ifTrue:[^ false].  
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   935
    (style ~= aFont style) ifTrue:[^ false].  
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   936
    (encoding ~~ aFont encoding) ifTrue:[^ false].  
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   937
    (sizeUnit ~~ aFont sizeUnit) ifTrue:[^ false].
6991
8271065cb89a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6962
diff changeset
   938
    sizeUnit == #px ifTrue:[
7561
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   939
        (pixelSize ~~ aFont pixelSize) ifTrue:[^ false].  
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   940
    ] ifFalse:[
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   941
        (size ~~ aFont size) ifTrue:[^ false].  
6991
8271065cb89a #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6962
diff changeset
   942
    ].
6541
c75c0398462d class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6475
diff changeset
   943
    ^ true
6474
66caa2e18c27 class: FontDescription
sr
parents: 6467
diff changeset
   944
6475
950c091a7bbf class: FontDescription
sr
parents: 6474
diff changeset
   945
    "Modified: / 20-05-2014 / 11:18:31 / gg"
2160
b57a3f138ae3 added #hash
Claus Gittinger <cg@exept.de>
parents: 1760
diff changeset
   946
!
b57a3f138ae3 added #hash
Claus Gittinger <cg@exept.de>
parents: 1760
diff changeset
   947
b57a3f138ae3 added #hash
Claus Gittinger <cg@exept.de>
parents: 1760
diff changeset
   948
hash
b57a3f138ae3 added #hash
Claus Gittinger <cg@exept.de>
parents: 1760
diff changeset
   949
    "return a number for hashing - req'd since = is redefined."
b57a3f138ae3 added #hash
Claus Gittinger <cg@exept.de>
parents: 1760
diff changeset
   950
2771
25c96682a2f3 really avoid LargeInteger arithmetic
Claus Gittinger <cg@exept.de>
parents: 2770
diff changeset
   951
    ^ ( (family hash bitAnd:16r1FFFFFFF)
25c96682a2f3 really avoid LargeInteger arithmetic
Claus Gittinger <cg@exept.de>
parents: 2770
diff changeset
   952
      + (face hash bitAnd:16r1FFFFFFF)
25c96682a2f3 really avoid LargeInteger arithmetic
Claus Gittinger <cg@exept.de>
parents: 2770
diff changeset
   953
      + (style hash bitAnd:16r1FFFFFFF)
3019
6dc6821c111c oops - care for fractional size in #hash
Claus Gittinger <cg@exept.de>
parents: 2980
diff changeset
   954
      + (size ? 0) asInteger) bitAnd:16r3FFFFFFF
2160
b57a3f138ae3 added #hash
Claus Gittinger <cg@exept.de>
parents: 1760
diff changeset
   955
b57a3f138ae3 added #hash
Claus Gittinger <cg@exept.de>
parents: 1760
diff changeset
   956
    "Created: / 19.6.1998 / 04:19:06 / cg"
2164
2bd89f5166a9 oops - fixed #hash.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
   957
    "Modified: / 20.6.1998 / 17:04:00 / cg"
5166
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
   958
!
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
   959
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
   960
sameDeviceFontAs:aFont
7561
a9ba31e29ade #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
   961
    aFont species ~~ self species ifTrue:[^ false].
6541
c75c0398462d class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6475
diff changeset
   962
7171
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   963
    ^ self sameFamily: aFont family 
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   964
                 face: aFont face
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   965
                style: aFont style 
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   966
                 size: aFont size 
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   967
                 unit: aFont sizeUnit 
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   968
            pixelSize: aFont pixelSize
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   969
             encoding: aFont encoding
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   970
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   971
    "Modified: / 29-02-2016 / 08:30:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7575
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541 7566
diff changeset
   972
 
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541 7566
diff changeset
   973
!    
5441
04ebe289a7e0 changed: #sameDeviceFontAs:
Claus Gittinger <cg@exept.de>
parents: 5223
diff changeset
   974
7171
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   975
sameFamily: otherFamily face: otherFace style: otherStyle size: otherSize unit: otherSizeUnit pixelSize: otherPixelSize encoding: otherEncoding
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   976
    (family = otherFamily) ifFalse:[ ^ false ].
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   977
    (face = otherFace) ifFalse:[ ^ false ].
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   978
    ((style = otherStyle) 
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   979
      or:[ (style = 'italic' and:[otherStyle = 'oblique'])
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   980
      or:[ style = 'oblique' and:[otherStyle = 'italic']]]) ifFalse:[ ^ false ].
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   981
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   982
    (encoding isNil or:[encoding = otherEncoding]) ifFalse:[ ^ false ].
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   983
    (sizeUnit ? #pt) = otherSizeUnit ifFalse:[ ^ false ].
5191
d3b4c72a8871 changed #sameDeviceFontAs:
Claus Gittinger <cg@exept.de>
parents: 5185
diff changeset
   984
    (sizeUnit ? #pt) == #pt ifTrue:[
7575
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541 7566
diff changeset
   985
        (size ~= otherSize) ifTrue:[ ^ false ].
5191
d3b4c72a8871 changed #sameDeviceFontAs:
Claus Gittinger <cg@exept.de>
parents: 5185
diff changeset
   986
    ] ifFalse:[
7575
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541 7566
diff changeset
   987
        (pixelSize ~= otherPixelSize) ifTrue:[ ^ false ].
5191
d3b4c72a8871 changed #sameDeviceFontAs:
Claus Gittinger <cg@exept.de>
parents: 5185
diff changeset
   988
    ].
5166
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
   989
    ^ true
7171
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   990
71c34a23762b X11/XFT: Fixed a baaad bug in font caching causing horrible performance regression
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7120
diff changeset
   991
    "Created: / 29-02-2016 / 08:28:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   992
! !
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   993
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   994
!FontDescription methodsFor:'converting'!
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   995
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   996
asBold
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   997
    "return the bold font corresponding to the receiver"
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
   998
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
   999
    ^ self asFace:#bold
4627
c3992b15969c asBold / asItalic return device fonts, if the receiver is one.
Claus Gittinger <cg@exept.de>
parents: 4626
diff changeset
  1000
!
c3992b15969c asBold / asItalic return device fonts, if the receiver is one.
Claus Gittinger <cg@exept.de>
parents: 4626
diff changeset
  1001
5906
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1002
asEncoding:anotherEncoding
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1003
    |newFont|
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1004
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1005
    family isNil ifTrue:[
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1006
        "CompoundFonts do not have a family"
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1007
        ^ self
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1008
    ].
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1009
    newFont := self class 
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1010
        family:family 
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1011
        face:face 
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1012
        style:style 
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1013
        size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size]) 
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1014
        sizeUnit:sizeUnit
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1015
        encoding:anotherEncoding.
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1016
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1017
    newFont isGenericFont:self isGenericFont.
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1018
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1019
    ^ newFont onDevice:self graphicsDevice.
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1020
    "Modified: / 27-09-2006 / 13:08:11 / cg"
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1021
!
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1022
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1023
asFace:anotherFace
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1024
    "return the bold font corresponding to the receiver"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1025
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1026
    |newFont|
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1027
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1028
    family isNil ifTrue:[
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1029
        "CompoundFonts do not have a family"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1030
        ^ self
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1031
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1032
    newFont := self class 
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1033
                    family:family 
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1034
                    face:anotherFace 
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1035
                    style:style 
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1036
                    size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size]) 
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1037
                    sizeUnit:sizeUnit
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1038
                    encoding:encoding.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1039
    newFont isGenericFont:self isGenericFont.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1040
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1041
    ^ newFont onDevice:self graphicsDevice.
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1042
!
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1043
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1044
asFamily:anotherFamily
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1045
    "return another font corresponding to the receiver face, style and size but
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1046
     with another family"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1047
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1048
    family isNil ifTrue:[
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1049
        "CompoundFonts do not have a family"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1050
        ^ self
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1051
    ].
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1052
    ^ (self class 
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1053
        family:anotherFamily 
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1054
        face:face 
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1055
        style:style 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1056
        size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size]) 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1057
        sizeUnit:sizeUnit
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1058
        encoding:encoding) onDevice:self graphicsDevice.
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1059
!
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1060
5560
4f874d66dbde added: #asFontDescription
ca
parents: 5535
diff changeset
  1061
asFontDescription
4f874d66dbde added: #asFontDescription
ca
parents: 5535
diff changeset
  1062
    ^ self
4f874d66dbde added: #asFontDescription
ca
parents: 5535
diff changeset
  1063
!
4f874d66dbde added: #asFontDescription
ca
parents: 5535
diff changeset
  1064
5196
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
  1065
asFontWithPixelSize:anotherSize
7239
fc6eccef933b #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7220
diff changeset
  1066
    "return another font corresponding to the receiver's family, face and style but
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1067
     with another pixel size"
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1068
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1069
    |newFont|
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1070
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1071
    family isNil ifTrue:[
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1072
        "CompoundFonts do not have a family"
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1073
        ^ self
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1074
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1075
    newFont := self class 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1076
        family:family 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1077
        face:face 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1078
        style:style 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1079
        size:anotherSize 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1080
        sizeUnit:#px
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1081
        encoding:encoding.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1082
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1083
    newFont isGenericFont:self isGenericFont.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1084
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1085
    ^ newFont onDevice:self graphicsDevice.
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1086
!
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1087
5196
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
  1088
asItalic
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
  1089
    "return the italic font corresponding to the receiver"
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
  1090
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1091
    ^ self asStyle:#oblique
5196
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
  1092
!
90aeedb2a2b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5191
diff changeset
  1093
6629
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1094
asPixelSize:anotherSize
7239
fc6eccef933b #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7220
diff changeset
  1095
    "return another font corresponding to the receiver's family, face and style but
6629
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1096
     with another pixel size"
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1097
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1098
    |newFont|
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1099
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1100
    family isNil ifTrue:[
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1101
        "CompoundFonts do not have a family"
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1102
        ^ self
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1103
    ].
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1104
    newFont := self class 
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1105
        family:family 
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1106
        face:face 
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1107
        style:style 
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1108
        size:anotherSize 
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1109
        sizeUnit:#px
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1110
        encoding:encoding.
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1111
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1112
    newFont isGenericFont:self isGenericFont.
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1113
    ^ newFont onDevice:self graphicsDevice.
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1114
!
38198a85e3ed class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6541
diff changeset
  1115
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1116
asSize:anotherSize
7239
fc6eccef933b #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7220
diff changeset
  1117
    "return another font corresponding to the receiver's family, face and style but
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1118
     with another size"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1119
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1120
    |newFont|
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1121
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1122
    family isNil ifTrue:[
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1123
        "CompoundFonts do not have a family"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1124
        ^ self
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1125
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1126
    newFont := self class 
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1127
        family:family 
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1128
        face:face 
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1129
        style:style 
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1130
        size:anotherSize 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1131
        sizeUnit:#pt
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1132
        encoding:encoding.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1133
6316
7fe0b1c1956f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6313
diff changeset
  1134
    newFont isGenericFont:self isGenericFont.
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1135
    ^ newFont onDevice:self graphicsDevice.
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1136
!
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1137
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1138
asStyle:anotherStyle
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1139
    |newFont|
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1140
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1141
    family isNil ifTrue:[
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1142
        "CompoundFonts do not have a family"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1143
        ^ self
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1144
    ].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1145
    newFont := self class 
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1146
        family:family 
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1147
        face:face 
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1148
        style:anotherStyle 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1149
        size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size]) 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1150
        sizeUnit:sizeUnit
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1151
        encoding:encoding.
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1152
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1153
    newFont isGenericFont:self isGenericFont.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1154
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1155
    ^ newFont onDevice:self graphicsDevice.
4894
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1156
    "Modified: / 27-09-2006 / 13:08:11 / cg"
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1157
!
37a8c77e6206 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  1158
4297
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1159
fromLiteralArrayEncoding:literalEncoding
2436
4ef8d33c8951 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2164
diff changeset
  1160
    "read my contents from a aLiteralEncodedArray.
4ef8d33c8951 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2164
diff changeset
  1161
     Must match to what is generated in #literalArrayEncoding"
1740
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1162
4297
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1163
    family := literalEncoding at:2.
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1164
    face   := literalEncoding at:3.
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1165
    style  := literalEncoding at:4.
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1166
    size   := literalEncoding at:5.
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1167
    "/ the following kludge is for backward compatibility 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1168
    "/ do not cleanup !!
4297
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1169
    literalEncoding size > 5 ifTrue:[
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1170
        literalEncoding size > 6 ifTrue:[
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1171
            sizeUnit := literalEncoding at:7.
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1172
            literalEncoding size > 7 ifTrue:[
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1173
                pixelSize := literalEncoding at:8.
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1174
            ].
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1175
        ].
5906
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1176
        encoding := literalEncoding at:6.
4298
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1177
    ] ifFalse:[
5906
7aa045d62811 added: #asEncoding:
Stefan Vogel <sv@exept.de>
parents: 5894
diff changeset
  1178
        encoding := self class defaultEncoding.
4297
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1179
    ].
1740
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1180
!
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1181
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1182
literalArrayEncoding
2436
4ef8d33c8951 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2164
diff changeset
  1183
    "return myself encoded as a literal array.
4ef8d33c8951 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2164
diff changeset
  1184
     Must match to what is expected in #fromLiteralArrayEncoding:"
1740
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1185
4298
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1186
    |myName|
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1187
4532
81d5a57183bd Fix comments.
Stefan Vogel <sv@exept.de>
parents: 4526
diff changeset
  1188
    myName := self class name.
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1189
    "/ see comment in #fromLiteralArrayEncoding
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1190
    "/ do not cleanup !!
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1191
    (pixelSize isNil
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1192
    and:[ encoding == #'iso8859-1' ]) ifTrue:[
4298
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1193
        ^ Array
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1194
            with:myName
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1195
            with:family
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1196
            with:face
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1197
            with:style
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1198
            with:size
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1199
    ].
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1200
    (pixelSize isNil and:[self sizeUnit == #pt]) ifTrue:[
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1201
        ^ Array
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1202
            with:myName
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1203
            with:family
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1204
            with:face
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1205
            with:style
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1206
            with:size
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1207
            with:encoding
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1208
    ].
1740
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1209
    ^ Array
4298
2b347bca3941 encoding
Claus Gittinger <cg@exept.de>
parents: 4297
diff changeset
  1210
        with:myName
1740
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1211
        with:family
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1212
        with:face
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1213
        with:style
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1214
        with:size
4297
10b461a37e26 added encoding to literal vector
Claus Gittinger <cg@exept.de>
parents: 4146
diff changeset
  1215
        with:encoding
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1216
        with:sizeUnit
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1217
        with:pixelSize
1740
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1218
!
804c5b51ec29 fromLiteralArrayEncoding:
ca
parents: 1618
diff changeset
  1219
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1220
on:aDevice
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1221
    "given the receiver, return a device Font"
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1222
3623
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3265
diff changeset
  1223
    "/ send out a warning: #on: is typically used to create views
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3265
diff changeset
  1224
    "/ operating on a model.
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3265
diff changeset
  1225
    "/ Please use #onDevice: to avoid confusion.
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3265
diff changeset
  1226
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3265
diff changeset
  1227
    <resource:#obsolete>
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3265
diff changeset
  1228
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3265
diff changeset
  1229
    self obsoleteMethodWarning:'use #onDevice:'.
3629
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1230
    ^ self onDevice:aDevice.
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1231
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1232
1497
697ac9b15962 added #onDevice: for protocol completeness.
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
  1233
onDevice:aDevice
697ac9b15962 added #onDevice: for protocol completeness.
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
  1234
    "given the receiver, return a device Font"
697ac9b15962 added #onDevice: for protocol completeness.
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
  1235
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1236
    |newFont|
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1237
2980
409e9547a45c ignore nil device in #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
  1238
    aDevice isNil ifTrue:[^ self].
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1239
    newFont := Font
3629
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1240
        family:family 
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1241
        face:face 
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1242
        style:style 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1243
        size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size]) 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1244
        sizeUnit:sizeUnit 
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1245
        encoding:encoding.
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1246
    newFont flags:flags.
5535
06501937fa4f #onDevice:aDevice -> creates a new font
sr
parents: 5511
diff changeset
  1247
    ^ newFont onDevice:aDevice.
5511
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1248
bc18d5eb3527 Support a list of replacement fonts and try each in order
Stefan Vogel <sv@exept.de>
parents: 5441
diff changeset
  1249
   "Created: 28.3.1997 / 16:09:30 / cg"
1497
697ac9b15962 added #onDevice: for protocol completeness.
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
  1250
!
697ac9b15962 added #onDevice: for protocol completeness.
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
  1251
7566
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1252
scaled:factor 
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1253
    "return another font corresponding to the receiver's family, face and style but
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1254
     with another pixel size"
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1255
    
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1256
    |newFont|
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1257
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1258
    family isNil ifTrue:[
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1259
        "CompoundFonts do not have a family"
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1260
        ^ self
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1261
    ].
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1262
    newFont := self class 
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1263
            family:family
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1264
            face:face
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1265
            style:style
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1266
            size:(size * factor) rounded
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1267
            sizeUnit:sizeUnit
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1268
            encoding:encoding.
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1269
    newFont isGenericFont:self isGenericFont.
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1270
    ^ newFont onDevice:self graphicsDevice.
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1271
!
e15d5734e788 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7561
diff changeset
  1272
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1273
size:anotherSize
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1274
    <resource: #obsolete>
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1275
 
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
  1276
    "return a font corresponding to the receiver, but with different size."
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
  1277
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1278
    self obsoleteMethodWarning:'use #asSize:'.
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1279
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
  1280
    ^ self class 
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1281
        family:family 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1282
        face:face 
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1283
        style:style 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1284
        size:anotherSize 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1285
        sizeUnit:#pt
5169
ad531e713603 pixelSized font preps
Claus Gittinger <cg@exept.de>
parents: 5166
diff changeset
  1286
        encoding:encoding
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
  1287
! !
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
  1288
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1289
!FontDescription methodsFor:'displaying'!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1290
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1291
displayOpaqueString:aString from:index1 to:index2 x:x y:y in:aGC
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1292
    "display a partial string at some position in aGC.
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1293
     - display part of a string, drawing both fore- and background pixels"
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1294
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1295
    self displayString:aString from:index1 to:index2 x:x y:y in:aGC opaque:true
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1296
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1297
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1298
displayOpaqueString:aString x:x y:y in:aGC
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1299
    "display a string at some position in aGC."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1300
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1301
    self displayOpaqueString:aString from:1 to:aString size x:x y:y in:aGC
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1302
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1303
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1304
displayString:aString from:index1 to:index2 x:x y:y in:aGC
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1305
    "display a partial string at some position in aGC."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1306
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1307
    self displayString:aString from:index1 to:index2 x:x y:y in:aGC opaque:false
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1308
!
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1309
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1310
displayString:aString from:index1 to:index2 x:x y:y in:aGC opaque:opaque
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1311
    "display a partial string at some position in aGC."
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3661
diff changeset
  1312
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1313
    self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1314
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1315
6467
36da8c7a6ae9 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6388
diff changeset
  1316
displayString:aString from:index1 to:index2 x:x0 y:y0 in:aGC opaque:opaque maxWidth:maxWidth
36da8c7a6ae9 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6388
diff changeset
  1317
    "redefined for subclasses that do not implement maxWidth"
36da8c7a6ae9 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6388
diff changeset
  1318
36da8c7a6ae9 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6388
diff changeset
  1319
    self displayString:aString from:index1 to:index2 x:x0 y:y0 in:aGC opaque:opaque
36da8c7a6ae9 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6388
diff changeset
  1320
!
36da8c7a6ae9 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6388
diff changeset
  1321
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1322
displayString:aString x:x y:y in:aGC
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1323
    "display a string at some position in aGC."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1324
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1325
    self displayString:aString from:1 to:aString size x:x y:y in:aGC
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1326
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1327
! !
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1328
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1329
!FontDescription methodsFor:'errors'!
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
  1330
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1331
errorNoDevice
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1332
    "a query was made for device-specific info"
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 89
diff changeset
  1333
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1334
    "
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1335
     this happens, when you ask a font for its height or width,
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1336
     ascent or any other dimension which depends on the device on
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1337
     which the font is rendered, AND the receiver font is not (yet)
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1338
     associated to a device.
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1339
     You should always use 
3159
3b040b0e4ae4 Fix error string 'for for'
Stefan Vogel <sv@exept.de>
parents: 3144
diff changeset
  1340
        font := font on:someDevice
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1341
     to get a device font, before asking for device specifics.
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1342
    "
3159
3b040b0e4ae4 Fix error string 'for for'
Stefan Vogel <sv@exept.de>
parents: 3144
diff changeset
  1343
    self error:'query device independent font for device specific info'
3b040b0e4ae4 Fix error string 'for for'
Stefan Vogel <sv@exept.de>
parents: 3144
diff changeset
  1344
3b040b0e4ae4 Fix error string 'for for'
Stefan Vogel <sv@exept.de>
parents: 3144
diff changeset
  1345
    "Modified: / 27.1.2000 / 16:55:05 / stefan"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1346
! !
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1347
3785
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1348
!FontDescription methodsFor:'getting a device font'!
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1349
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1350
onDevice:aDevice ifAbsent:exceptionBlock 
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1351
    "create a new Font representing the same font as
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1352
     myself on aDevice. This does NOT try to look for existing
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1353
     or replacement fonts (i.e. can be used to get physical fonts)."
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1354
7700
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1355
    |prefs|
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1356
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1357
    prefs := UserPreferences current.
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1358
    ^ self
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1359
        onDevice:aDevice 
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1360
        xFontsOnly:(prefs useXFontsOnly) 
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1361
        xftFontsOnly:(prefs useXftFontsOnly) 
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1362
        ifAbsent:exceptionBlock 
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1363
!
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1364
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1365
onDevice:aDevice xFontsOnly:xFontsOnly xftFontsOnly:xftFontsOnly ifAbsent:exceptionBlock 
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1366
    "create a new Font representing the same font as myself on aDevice. 
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1367
     The xFontsOnly/xftFontsOnly are only relevant for XWindow devices;
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1368
     xFontsOnly will suppress xft fonts, whereas xftFontsOnly will suppress x fonts
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1369
     (the first is useful if ST/X has a slow remote X connection for display,
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1370
      on which xft fonts are very slow. Yes, this is actually a reasonable setup
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1371
      in use at one of our customers)
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1372
     This does NOT try to look for existing
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1373
     or replacement fonts (i.e. can be used to get physical fonts)."
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1374
7623
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
  1375
    |newFont id xftFont|
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
  1376
7700
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1377
    (aDevice supportsXftFonts) ifTrue:[
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1378
        xFontsOnly ifTrue:[
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1379
            xftFont := (XftFontDescription for:self) onDevice:aDevice ifAbsent:[nil].
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1380
            xftFont notNil ifTrue:[^ xftFont].
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1381
            xftFontsOnly useXftFontsOnly ifTrue:[^ nil].
8a7791c4bceb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7623
diff changeset
  1382
        ].    
7623
aa70617876bb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7609
diff changeset
  1383
    ].    
3785
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1384
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1385
    "ask that device for the font"
5166
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
  1386
    id := aDevice 
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
  1387
            getFontWithFamily:family 
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
  1388
            face:face 
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
  1389
            style:style 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1390
            size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size])  
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1391
            sizeUnit:sizeUnit  
5166
a9cd84083df5 preps for pixelSized fonts
Claus Gittinger <cg@exept.de>
parents: 5165
diff changeset
  1392
            encoding:encoding.
3785
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1393
    id isNil ifTrue:[
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1394
        "oops did not work - (device has no such font)"
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1395
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1396
        ^ exceptionBlock value
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1397
    ].
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1398
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1399
    newFont := (Font basicNew) 
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1400
                        setFamily:family 
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1401
                        face:face
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1402
                        style:style
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1403
                        size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size])  
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1404
                        sizeUnit:sizeUnit  
3785
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1405
                        encoding:encoding
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1406
                        device:aDevice.
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1407
    newFont setFontId:id.
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1408
    newFont getFontInfos.
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1409
    aDevice registerFont:newFont.
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1410
    ^ newFont
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1411
! !
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1412
1618
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1413
!FontDescription methodsFor:'printing & storing'!
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1414
3991
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
  1415
printOn:aStream
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
  1416
    "append a user-friendly representation of the receiver to aStream"
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
  1417
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
  1418
    aStream nextPutAll:self userFriendlyName
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
  1419
!
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
  1420
1618
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1421
userFriendlyName
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1422
    "return a user-friendly printed representation of the receiver"
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1423
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1424
    |nm|
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1425
6197
b4d4a3dc00bf class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6111
diff changeset
  1426
    nm := family ? 'nil font family'.
1618
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1427
    face notNil ifTrue:[
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1428
        nm := nm , '-', face.
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1429
    ].
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1430
    style notNil ifTrue:[
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1431
        nm := nm , '-', style.
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1432
    ].
6962
e310074c6d77 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6961
diff changeset
  1433
    sizeUnit == #px ifTrue:[
e310074c6d77 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6961
diff changeset
  1434
        (pixelSize notNil and:[pixelSize ~~ 0]) ifTrue:[
e310074c6d77 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6961
diff changeset
  1435
            nm := nm , '-', pixelSize printString,'px'.
e310074c6d77 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6961
diff changeset
  1436
        ].
6329
4907031e1432 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6326
diff changeset
  1437
    ] ifFalse:[
6962
e310074c6d77 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6961
diff changeset
  1438
        (size notNil and:[size ~~ 0]) ifTrue:[
e310074c6d77 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6961
diff changeset
  1439
            nm := nm , '-', size printString,'pt'.
6329
4907031e1432 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6326
diff changeset
  1440
        ].
1618
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1441
    ].
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1442
    encoding notNil ifTrue:[
3991
9810f304f469 printString
Claus Gittinger <cg@exept.de>
parents: 3989
diff changeset
  1443
        nm := nm , '(', encoding , ')'.
1618
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1444
    ].
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1445
    ^ nm
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1446
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1447
    "
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1448
     View defaultFont userFriendlyName
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1449
     Button defaultFont userFriendlyName
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1450
    "
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1451
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1452
    "Modified: 20.4.1996 / 23:25:36 / cg"
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1453
    "Created: 19.4.1997 / 18:09:25 / cg"
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1454
! !
044de84f0d5f moved userFriendlyName up
Claus Gittinger <cg@exept.de>
parents: 1585
diff changeset
  1455
7443
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1456
!FontDescription methodsFor:'private'!
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1457
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1458
installInDeviceForGCId:aGCId
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1459
    "install the font for aGCId.
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1460
     This is a No-op. Subclasses may redefine this."
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1461
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1462
    ^ self.
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1463
! !
e2d05b756727 Use devices registry
Stefan Vogel <sv@exept.de>
parents: 7343
diff changeset
  1464
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1465
!FontDescription methodsFor:'queries'!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1466
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1467
bold
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1468
    "return true, if the receiver is a bold font -
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1469
     Added for st-80 compatibility."
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1470
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1471
    "/ Currently, this implementation is a dirty hack and will be changed soon.
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1472
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1473
    ^ face = 'bold'
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1474
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1475
    "Modified: 11.4.1997 / 21:31:25 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1476
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1477
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1478
boldness
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1479
    "return the boldness of the characters in this font 0 .. 1 -
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1480
     Added for st-80 compatibility"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1481
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1482
    "/ Currently, this implementation is a dirty hack and will be changed soon.
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1483
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1484
    face = 'roman' ifTrue:[^ 0.5].
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1485
    face = 'normal' ifTrue:[^ 0.5].
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1486
    face = 'bold' ifTrue:[^ 0.75].
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1487
    face = 'light' ifTrue:[^ 0.25].
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1488
    ^ 0.5
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1489
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1490
    "Modified: 11.4.1997 / 21:31:31 / cg"
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1491
!
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1492
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1493
color
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1494
    "return the default color in which this font is to be rendered.
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1495
     Added for st-80 compatibility.
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1496
     For now always black."
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1497
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1498
    ^ Color black
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1499
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1500
    "Created: 25.1.1997 / 02:59:15 / cg"
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1501
    "Modified: 25.1.1997 / 03:02:14 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1502
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1503
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1504
existsOn:aDevice
7239
fc6eccef933b #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7220
diff changeset
  1505
    "return true, if the receiver is available on aDevice;
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1506
     false otherwise. This is a kludge method; its better to
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1507
     ask a device for its available fonts and use this info ...
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1508
     Notice, that if you simply use a font by name, the system
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1509
     will automatically take a replacement font."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1510
3629
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1511
    ^ ((Font
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1512
        family:family 
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1513
        face:face 
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1514
        style:style 
5185
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1515
        size:(sizeUnit == #px ifTrue:[pixelSize] ifFalse:[size]) 
c807ae478014 pixelSize stuff
Claus Gittinger <cg@exept.de>
parents: 5169
diff changeset
  1516
        sizeUnit:sizeUnit
3629
9d06228191a6 Fix obsolete methods
Stefan Vogel <sv@exept.de>
parents: 3623
diff changeset
  1517
        encoding:encoding) onDevice:aDevice ifAbsent:nil) notNil
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1518
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1519
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1520
fullName
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1521
    ^ nil
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1522
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1523
    "Created: 23.2.1996 / 00:45:45 / cg"
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1524
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1525
5644
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1526
hasOverlappingCharacters
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1527
    "answer true, if this is a windows font where characters overlap"
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1528
    
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1529
    ^ flags notNil and:[ flags bitTest:OverlappingCharactersFlag ].
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1530
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1531
    "Created: / 08-11-2010 / 13:16:51 / cg"
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1532
!
664ce01f38f5 +hasOverlappingCharacters
Claus Gittinger <cg@exept.de>
parents: 5560
diff changeset
  1533
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1534
italic
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1535
    "return true if this is an italic font -
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1536
     Added for st-80 compatibility"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1537
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1538
    "/ Currently, this implementation is a dirty hack and will be changed soon.
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1539
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1540
    style = 'italic' ifTrue:[^ true].
3246
213e4771d6fb typo fixed
Claus Gittinger <cg@exept.de>
parents: 3159
diff changeset
  1541
    style = 'oblique' ifTrue:[^ true].
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1542
    ^ false
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1543
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1544
    "Modified: 11.4.1997 / 21:31:42 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1545
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1546
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1547
serif
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1548
    "return true, if this font has serifs.
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1549
     Added for st-80 compatibility"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1550
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1551
    "/ Currently, this implementation is a dirty hack and will be changed soon.
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1552
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1553
    family = 'Times' ifTrue:[^ true].
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1554
    family = 'times' ifTrue:[^ true].
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1555
    ^ false.
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1556
1585
7892ed31d333 fixed #italic and #bold
Claus Gittinger <cg@exept.de>
parents: 1497
diff changeset
  1557
    "Modified: 11.4.1997 / 21:31:51 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1558
!
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1559
3265
408fac627dc4 category change
Claus Gittinger <cg@exept.de>
parents: 3254
diff changeset
  1560
size
408fac627dc4 category change
Claus Gittinger <cg@exept.de>
parents: 3254
diff changeset
  1561
    "return the size, a number"
408fac627dc4 category change
Claus Gittinger <cg@exept.de>
parents: 3254
diff changeset
  1562
408fac627dc4 category change
Claus Gittinger <cg@exept.de>
parents: 3254
diff changeset
  1563
    ^ size
408fac627dc4 category change
Claus Gittinger <cg@exept.de>
parents: 3254
diff changeset
  1564
!
408fac627dc4 category change
Claus Gittinger <cg@exept.de>
parents: 3254
diff changeset
  1565
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1566
species
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1567
    ^ Font
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1568
!
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1569
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1570
underline
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1571
    "return true if this is an underlined font -
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1572
     Added for st-80 compatibility
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1573
     (always false here)"
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1574
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1575
    ^ false
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1576
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1577
    "Created: 25.1.1997 / 02:58:30 / cg"
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1578
    "Modified: 25.1.1997 / 03:01:12 / cg"
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1579
! !
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1580
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1581
!FontDescription methodsFor:'queries-dimensions'!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1582
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1583
ascent
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1584
    "return the ascent - the number of pixels above the baseLine."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1585
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1586
    ^ self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1587
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1588
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1589
ascentOn:aDevice
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1590
    "return the ascent - the number of pixels above the baseLine."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1591
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1592
    ^ (self onDevice:aDevice) ascent
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1593
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1594
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1595
descent
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1596
    "return the descent - the number of pixels below the baseLine."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1597
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1598
    ^ self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1599
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1600
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1601
descentOn:aDevice
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1602
    "return the ascent - the number of pixels above the baseLine."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1603
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1604
    ^ (self onDevice:aDevice) descent
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1605
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1606
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1607
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1608
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1609
height
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1610
    "return the height - the number of pixels above plus below the baseLine."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1611
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1612
    ^ self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1613
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1614
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1615
heightOf:aString
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1616
    "return the height of the given string.
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1617
     Here, assume the characters are of constant height"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1618
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1619
    ^ self height
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1620
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1621
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1622
heightOf:aString on:aDevice
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1623
    "return the height of the given string on the given device."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1624
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1625
    ^ (self onDevice:aDevice) heightOf:aString
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1626
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1627
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1628
heightOn:aDevice
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1629
    "return the height - the number of pixels above PLUS below the baseLine."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1630
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1631
    ^ (self onDevice:aDevice) height
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1632
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1633
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1634
isFixedWidth
7609
bb3fd768e511 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7607
diff changeset
  1635
    "return true, if this is a fixed pitch font 
bb3fd768e511 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7607
diff changeset
  1636
     (i.e. all characters are of the same width).
bb3fd768e511 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7607
diff changeset
  1637
     Also called monospaced fonts"
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1638
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1639
    self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1640
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1641
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1642
maxAscent
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
  1643
    "return the font's maximum-ascent (i.e. the maximum of all characters);
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1644
     That is the number of units (usually pixels) above the baseline."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1645
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1646
    ^ self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1647
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1648
6313
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1649
maxCode
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1650
    "return the biggest UCS code in font.
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1651
     Dummy for now"
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1652
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1653
    ^ 16rFFFF
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1654
!
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1655
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1656
maxDescent
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
  1657
    "return the font's maximum-descent (i.e. the maximum of all characters);
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1658
     That is the number of units (usually pixels) below the baseline."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1659
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1660
    ^ self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1661
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1662
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1663
maxHeight
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
  1664
    "return the font's characters maximum height;
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1665
     That is the number of units (usually pixels)."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1666
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1667
    ^ self maxAscent + self maxDescent
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1668
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1669
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1670
maxWidth
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
  1671
    "return the font's maximum-width character (i.e. the maximum of all characters);
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1672
     That is a number of units (usually pixels)."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1673
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1674
    ^ self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1675
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1676
6313
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1677
minCode
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1678
    "return the smallest UCS code in font.
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1679
     Dummy for now"
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1680
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1681
    ^ 0
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1682
!
2b9a1e4d6f96 class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 6262
diff changeset
  1683
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1684
width
7343
7ec79c481378 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7239
diff changeset
  1685
    "return the font's characters width;
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1686
     That is a number of units (usually pixels).
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1687
     For variable pitch fonts, the width of the space character is returned.
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1688
     For fixed fonts, this is the same as minWidth or maxWidth (or any character).
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1689
     The receiver must be associated to a device, for this query to be legal."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1690
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1691
    ^ self widthOf:' '
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1692
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1693
    "Modified: 30.4.1996 / 16:43:45 / cg"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1694
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1695
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1696
widthOf:aString
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1697
    "return the width of a string"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1698
3667
53ebf11c6dd9 widthOf fixed for Text-item
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1699
    ^ self widthOf:aString string from:1 to:aString size
2544
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1700
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1701
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1702
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1703
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1704
widthOf:aString from:start to:stop
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1705
    "return the width of a sub string"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1706
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1707
    ^ self subclassResponsibility
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1708
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1709
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1710
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1711
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1712
widthOf:aString from:start to:stop on:aDevice
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1713
    "return the width of a sub string.
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1714
     Here, assume that this fonts width is device independent."
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1715
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1716
    ^ (self onDevice:aDevice) widthOf:aString from:start to:stop
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1717
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1718
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1719
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1720
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1721
widthOf:aString on:aDevice
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1722
    "return the width of a string"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1723
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1724
    ^ (self onDevice:aDevice) widthOf:aString
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1725
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1726
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1727
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1728
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1729
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1730
!
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1731
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1732
widthOn:aDevice
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1733
    "return the width on some device; that is the width of the space character
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1734
     (which is the width of any character iff the font is a fixed pitch font)"
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1735
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1736
    ^ (self onDevice:aDevice) width
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1737
! !
8fdf3d873964 code refactoring
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1738
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1739
!FontDescription methodsFor:'queries-encoding'!
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1740
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1741
isASCII
7239
fc6eccef933b #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7220
diff changeset
  1742
    "return true, if the receiver's encoding is
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1743
     compatible with ascii (i.e. its ascii or iso8859)"
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1744
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1745
    ^ (encoding == #iso8859) or:[encoding == #ascii]
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1746
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1747
    "Created: 24.2.1996 / 22:47:30 / cg"
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1748
    "Modified: 20.4.1996 / 23:20:01 / cg"
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1749
!
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1750
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1751
isISO8859
7239
fc6eccef933b #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7220
diff changeset
  1752
    "return true, if the receiver's encoding is
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1753
     compatible with iso8859 (i.e. iso8859)"
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1754
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1755
    ^ encoding == #iso8859
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1756
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1757
    "Created: 24.2.1996 / 22:47:12 / cg"
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1758
    "Modified: 20.4.1996 / 23:20:13 / cg"
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1759
!
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1760
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1761
isJIS
7239
fc6eccef933b #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7220
diff changeset
  1762
    "return true, if the receiver's encoding is
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1763
     compatible with jis (i.e. jisXXX)"
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1764
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1765
    ^ (encoding startsWith:'jis')
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1766
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1767
    "Created: 24.2.1996 / 22:47:47 / cg"
576
6a7392220976 commentary
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
  1768
    "Modified: 20.4.1996 / 23:20:30 / cg"
456
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1769
! !
3ab60f26b5a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 437
diff changeset
  1770
6105
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1771
!FontDescription methodsFor:'testing'!
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1772
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1773
isAlienFont
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1774
    "answer true, if this is an alien font which does not have a device representation"
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1775
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1776
    ^ true
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1777
!
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1778
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1779
isAntialiasedFont
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1780
    "answer true, if this is an antialiased font (currently Xft only)"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1781
    
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1782
    ^ (flags ? 0) bitTest:AntialiasedFlag
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1783
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1784
7607
3168f2e16613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7566
diff changeset
  1785
isDecorativeFont
3168f2e16613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7566
diff changeset
  1786
    "answer true, if this is an decorative font (currently Xft only)"
3168f2e16613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7566
diff changeset
  1787
    
3168f2e16613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7566
diff changeset
  1788
    ^ (flags ? 0) bitTest:DecorativeFlag
3168f2e16613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7566
diff changeset
  1789
!
3168f2e16613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7566
diff changeset
  1790
6105
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1791
isGenericFont
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1792
    "answer true, if this is a pseudo font"
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1793
    
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1794
    ^ (flags ? 0) bitTest:GenericFlag
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1795
!
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1796
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1797
isOutlineFont
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1798
    "answer true, if this is an outline font (currently Xft only)"
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1799
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1800
    ^ (flags ? 0) bitTest:OutlineFlag 
6105
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1801
!
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1802
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1803
isScaledFont
6956
96f7888403e5 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 6825
diff changeset
  1804
    "answer true, if this is a scalable font"
6260
890ecfee1317 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6197
diff changeset
  1805
6962
e310074c6d77 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 6961
diff changeset
  1806
    ^ (sizeUnit ~= #px and:[size = 0]) or:[flags notNil and:[flags bitTest:ScalableFlag]] 
6320
3205a83288d3 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6316
diff changeset
  1807
!
3205a83288d3 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6316
diff changeset
  1808
3205a83288d3 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6316
diff changeset
  1809
isXftFont
3205a83288d3 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6316
diff changeset
  1810
    "return false here; to be redefined in subclass(es)"
3205a83288d3 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6316
diff changeset
  1811
3205a83288d3 class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 6316
diff changeset
  1812
    ^ false
6105
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1813
! !
156735f7972f class: FontDescription
Stefan Vogel <sv@exept.de>
parents: 5991
diff changeset
  1814
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1815
!FontDescription class methodsFor:'documentation'!
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1816
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1817
version
6956
96f7888403e5 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 6825
diff changeset
  1818
    ^ '$Header$'
5441
04ebe289a7e0 changed: #sameDeviceFontAs:
Claus Gittinger <cg@exept.de>
parents: 5223
diff changeset
  1819
!
04ebe289a7e0 changed: #sameDeviceFontAs:
Claus Gittinger <cg@exept.de>
parents: 5223
diff changeset
  1820
04ebe289a7e0 changed: #sameDeviceFontAs:
Claus Gittinger <cg@exept.de>
parents: 5223
diff changeset
  1821
version_CVS
6956
96f7888403e5 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 6825
diff changeset
  1822
    ^ '$Header$'
437
a81ce3a8038b return dummy default encoding & fullNames
Claus Gittinger <cg@exept.de>
parents: 229
diff changeset
  1823
! !
3785
045a05c6abbe onDevice:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3667
diff changeset
  1824
5991
c89cdc73a6bb class: FontDescription
Claus Gittinger <cg@exept.de>
parents: 5916
diff changeset
  1825
1275
9c3461bb0232 more ST-80 mimicri
Claus Gittinger <cg@exept.de>
parents: 1266
diff changeset
  1826
FontDescription initialize!