| 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
|
|---|