[698] | 1 | ' Classes/System/Drawing/FontFamily.ab
|
---|
| 2 |
|
---|
| 3 | Namespace System
|
---|
| 4 | Namespace Drawing
|
---|
| 5 |
|
---|
| 6 | Class FontFamily
|
---|
| 7 | Implements IDisposable, ICloneable
|
---|
| 8 | Public
|
---|
| 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 |
|
---|
| 97 | Private
|
---|
| 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 |
|
---|
| 113 | End Class
|
---|
| 114 |
|
---|
| 115 |
|
---|
| 116 |
|
---|
| 117 | End Namespace
|
---|
| 118 | End Namespace
|
---|