author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 23 Feb 2016 16:58:27 +0000 | |
changeset 43 | 1006839761af |
parent 40 | 28dfc583beb5 |
child 55 | c0fed31c643c |
permissions | -rw-r--r-- |
1 | 1 |
"{ Package: 'stx:goodies/libcairo' }" |
2 |
||
3 |
"{ NameSpace: Cairo }" |
|
4 |
||
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
5 |
CObject subclass:#ScaledFont |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
6 |
instanceVariableNames:'' |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
7 |
classVariableNames:'' |
1 | 8 |
poolDictionaries:'' |
12 | 9 |
category:'Cairo-Objects' |
1 | 10 |
! |
11 |
||
7
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
12 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
13 |
!ScaledFont class methodsFor:'instance creation'! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
14 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
15 |
fromFontDescription: aFontDescription |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
16 |
^ self fromFontFace: (FontFace fromFontDescription: aFontDescription) scale: (Screen current verticalPixelPerInch / 72) * aFontDescription size. |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
17 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
18 |
" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
19 |
Cairo::ScaledFont fromFontDescription: CodeView defaultFont |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
20 |
" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
21 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
22 |
"Created: / 17-02-2016 / 20:21:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
23 |
"Modified: / 18-02-2016 / 08:16:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
24 |
! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
25 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
26 |
fromFontFace: face matrix: fontMatrix transformation: transformationMatrix options: options |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
27 |
^ CPrimitives cairo_scaled_font_create: face _: fontMatrix _: transformationMatrix _: options |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
28 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
29 |
"Created: / 17-02-2016 / 20:30:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
30 |
! |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
31 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
32 |
fromFontFace: face scale: scale |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
33 |
| options font | |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
34 |
options := FontOptions new. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
35 |
font := self fromFontFace: face matrix: (Matrix scale: scale) transformation: Matrix identity options: options. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
36 |
options release. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
37 |
^ font. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
38 |
" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
39 |
Cairo::ScaledFont fromFontDescription: CodeView defaultFont |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
40 |
" |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
41 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
42 |
"Created: / 18-02-2016 / 08:15:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
43 |
"Modified: / 18-02-2016 / 10:17:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
44 |
! ! |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
45 |
|
1 | 46 |
!ScaledFont class methodsFor:'accessing'! |
47 |
||
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
48 |
sizeof |
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
49 |
"Returns size of undelaying structure in bytes" |
1 | 50 |
|
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
51 |
^0 |
1 | 52 |
! ! |
53 |
||
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
54 |
!ScaledFont methodsFor:'accessing'! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
55 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
56 |
fontMatrix |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
57 |
| matrix | |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
58 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
59 |
matrix := Matrix new. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
60 |
CPrimitives cairo_scaled_font_get_font_matrix: self _: matrix. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
61 |
^ matrix |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
62 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
63 |
"Created: / 18-02-2016 / 10:05:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
64 |
! |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
65 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
66 |
referenceCount |
43 | 67 |
"Return value of reference counter" |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
68 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
69 |
^ CPrimitives cairo_scaled_font_get_reference_count: self. |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
70 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
71 |
"Modified: / 17-02-2016 / 20:16:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
43 | 72 |
"Modified (comment): / 23-02-2016 / 10:48:09 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
73 |
! |
|
74 |
||
75 |
status |
|
76 |
"Checks whether an error has previously occurred for this object. |
|
77 |
See Cairo::Status pool for possible values." |
|
78 |
||
79 |
^ CPrimitives cairo_scaled_font_status: self |
|
80 |
||
81 |
"Modified: / 23-02-2016 / 10:48:26 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
82 |
! ! |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
83 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
84 |
!ScaledFont methodsFor:'cairo api'! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
85 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
86 |
extents |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
87 |
| extents | |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
88 |
extents := FontExtents new. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
89 |
Cairo::CPrimitives cairo_scaled_font_extents: self _: extents. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
90 |
^ extents |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
91 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
92 |
"Created: / 16-02-2016 / 14:56:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
93 |
! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
94 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
95 |
textExtents: aString |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
96 |
| extents | |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
97 |
extents := TextExtents new. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
98 |
Cairo::CPrimitives cairo_scaled_font_text_extents: self _: aString utf8Encoded _: extents. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
99 |
^ extents |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
100 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
101 |
"Created: / 16-02-2016 / 14:56:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
102 |
! ! |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
103 |
|
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
104 |
!ScaledFont methodsFor:'private'! |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
105 |
|
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
106 |
destroy |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
107 |
"Tell Cairo library to destroy the corresponding C object. |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
108 |
Remember that object is physically destroyed only if internal |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
109 |
refcounter goes to zero. However, after calling destroy, |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
110 |
this instance should be treated as invalid." |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
111 |
|
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
112 |
CPrimitives cairo_scaled_font_destroy: self. |
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
113 |
self setAddress: nil. |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
114 |
|
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
115 |
"Created: / 28-12-2014 / 22:10:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
40
28dfc583beb5
#displayString: in CairoGraphicsContext revamped
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
34
diff
changeset
|
116 |
"Modified: / 17-02-2016 / 06:39:27 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
34
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
117 |
! ! |
97705b5a9411
Use Cairo's toy text API for text rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
30
diff
changeset
|
118 |
|
7
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
119 |
!ScaledFont class methodsFor:'documentation'! |
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
120 |
|
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
121 |
version |
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
122 |
^'$Id$' |
11 | 123 |
! |
124 |
||
23
38ee47dbd976
Added version_HG to make Mercurial happy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
20
diff
changeset
|
125 |
version_HG |
38ee47dbd976
Added version_HG to make Mercurial happy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
20
diff
changeset
|
126 |
^ '$Changeset: <not expanded> $' |
7
392289f92fab
- DLL path is set automatically.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
6
diff
changeset
|
127 |
! ! |
29
6ba06265e543
Bindinge updated to recent Cairo version.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
23
diff
changeset
|
128 |