source: trunk/ab5.0/ablib/src/Classes/System/Drawing/FontFamily.ab@ 698

Last change on this file since 698 was 698, checked in by イグトランス (egtra), 15 years ago

GDI+をコンパイルできるように修正。FontFamily, Penの追加。サンプルとして、Step 32のGDI+版を制作。
(#56)

File size: 3.3 KB
RevLine 
[698]1' Classes/System/Drawing/FontFamily.ab
2
3Namespace System
4Namespace Drawing
5
6Class FontFamily
7 Implements IDisposable, ICloneable
8Public
9 Sub FontFamily(native As *GpFontFamily)
10 nativeFamily = native
11 End Sub
12
13 Sub FontFamily(/*IN const*/ name As PCWSTR, fontCollection As FontCollection)
14 SetStatus(GdipCreateFontFamilyFromName(name, getNativeCollection(fontCollection), nativeFamily))
15 End Sub
16
17 Static Function GenericSansSerif() As FontFamily
18 If ActiveBasic.IsNothing(GenericSansSerifFontFamily) Then
19 Dim native As *GpFontFamily
20 SetStatus(GdipGetGenericFontFamilySansSerif(native))
21 GenericSansSerifFontFamily = New FontFamily(native)
22 End If
23 GenericSansSerif = GenericSansSerifFontFamily
24 End Function
25
26 Static Function GenericSerif() As FontFamily
27 If ActiveBasic.IsNothing(GenericSerifFontFamily) Then
28 Dim native As *GpFontFamily
29 SetStatus(GdipGetGenericFontFamilySerif(native))
30 GenericSerifFontFamily = New FontFamily(native)
31 End If
32 GenericSerif = GenericSerifFontFamily
33 End Function
34
35 Static Function GenericMonospace() As FontFamily
36 If ActiveBasic.IsNothing(GenericMonospaceFontFamily) Then
37 Dim native As *GpFontFamily
38 SetStatus(GdipGetGenericFontFamilyMonospace(native))
39 GenericMonospaceFontFamily = New FontFamily(native)
40 End If
41 GenericMonospace = GenericMonospaceFontFamily
42 End Function
43
44 Sub Dispose()
45 If nativeFamily <> 0 Then
46 GdipDeleteFontFamily(nativeFamily)
47 End If
48 nativeFamily = 0
49 End Sub
50
51 Sub ~FontFamily()
52 Dispose()
53 End Sub
54
55 Function Clone() As FontFamily
56 Dim cloned As *GpFontFamily
57 SetStatus(GdipCloneFontFamily(nativeFamily, cloned))
58 Clone = New FontFamily(cloned)
59 End Function
60
61 Function GetName(language As LANGID) As String
62 Dim name[ELM(LF_FACESIZE)] As WCHAR
63 SetStatus(GdipGetFamilyName(nativeFamily, name, language))
64 Dim p = name As PCWSTR
65 GetName = New String(p)
66 End Function
67
68 Function IsStyleAvailable(style As FontStyle) As Boolean
69 Dim StyleAvailable As BOOL
70 SetStatus(GdipIsStyleAvailable(nativeFamily, style, StyleAvailable))
71 IsStyleAvailable = StyleAvailable As Boolean
72 End Function
73
74 Function GetEmHeight(style As FontStyle) As Word
75 SetStatus(GdipGetEmHeight(nativeFamily, style, GetEmHeight))
76 End Function
77/*
78 Function GetCellAscent(style As FontStyle) As Word
79 SetStatus(GdipGetCellAscent(nativeFamily, style, GetEmHeight))
80 End Function
81
82 Function GetCellDescent(style As FontStyle) As Word
83 SetStatus(GdipGetCellDescent(nativeFamily, style, GetEmHeight))
84 End Function
85
86
87 Function GetLineSpacing(style As FontStyle) As Word
88 SetStatus(GdipGetLineSpacing(nativeFamily, style, GetEmHeight))
89 End Function
90*/
91 ' Familes
92
93 Function NativeFamily() As *GpFontFamily
94 NativeFamily = nativeFamily
95 End Function
96
97Private
98
99 nativeFamily As *GpFontFamily
100
101 Static Function getNativeCollection(fc As FontCollection) As *GpFontCollection
102 If ActiveBasic.IsNothing(fc) Then
103 getNativeCollection = 0
104 Else
105 getNativeCollection = fc.nativeCollection
106 End If
107 End Function
108
109 Static GenericSansSerifFontFamily = Nothing As FontFamily
110 Static GenericSerifFontFamily = Nothing As FontFamily
111 Static GenericMonospaceFontFamily = Nothing As FontFamily
112
113End Class
114
115
116
117End Namespace
118End Namespace
Note: See TracBrowser for help on using the repository browser.