pango-bidi-type.go RawHistoryFolder
1// Package pango was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package pango
3
4import (
5 "github.com/ebitengine/purego"
6
7 "github.com/bnema/puregotk/pkg/core"
8 "github.com/bnema/puregotk/v4/gobject/types"
9)
10
11// `PangoBidiType` represents the bidirectional character
12// type of a Unicode character.
13//
14// The values in this enumeration are specified by the
15// [Unicode bidirectional algorithm](http://www.unicode.org/reports/tr9/).
16type BidiType int
17
18var xBidiTypeGLibType func() types.GType
19
20func BidiTypeGLibType() types.GType {
21 return xBidiTypeGLibType()
22}
23
24const (
25
26 // Left-to-Right
27 BidiTypeLValue BidiType = 0
28 // Left-to-Right Embedding
29 BidiTypeLreValue BidiType = 1
30 // Left-to-Right Override
31 BidiTypeLroValue BidiType = 2
32 // Right-to-Left
33 BidiTypeRValue BidiType = 3
34 // Right-to-Left Arabic
35 BidiTypeAlValue BidiType = 4
36 // Right-to-Left Embedding
37 BidiTypeRleValue BidiType = 5
38 // Right-to-Left Override
39 BidiTypeRloValue BidiType = 6
40 // Pop Directional Format
41 BidiTypePdfValue BidiType = 7
42 // European Number
43 BidiTypeEnValue BidiType = 8
44 // European Number Separator
45 BidiTypeEsValue BidiType = 9
46 // European Number Terminator
47 BidiTypeEtValue BidiType = 10
48 // Arabic Number
49 BidiTypeAnValue BidiType = 11
50 // Common Number Separator
51 BidiTypeCsValue BidiType = 12
52 // Nonspacing Mark
53 BidiTypeNsmValue BidiType = 13
54 // Boundary Neutral
55 BidiTypeBnValue BidiType = 14
56 // Paragraph Separator
57 BidiTypeBValue BidiType = 15
58 // Segment Separator
59 BidiTypeSValue BidiType = 16
60 // Whitespace
61 BidiTypeWsValue BidiType = 17
62 // Other Neutrals
63 BidiTypeOnValue BidiType = 18
64 // Left-to-Right isolate. Since 1.48.6
65 BidiTypeLriValue BidiType = 19
66 // Right-to-Left isolate. Since 1.48.6
67 BidiTypeRliValue BidiType = 20
68 // First strong isolate. Since 1.48.6
69 BidiTypeFsiValue BidiType = 21
70 // Pop directional isolate. Since 1.48.6
71 BidiTypePdiValue BidiType = 22
72)
73
74var xBidiTypeForUnichar func(uint32) BidiType
75
76// Determines the bidirectional type of a character.
77//
78// The bidirectional type is specified in the Unicode Character Database.
79//
80// A simplified version of this function is available as [func@unichar_direction].
81func BidiTypeForUnichar(ChVar uint32) BidiType {
82
83 cret := xBidiTypeForUnichar(ChVar)
84 return cret
85}
86
87var xFindBaseDir func(string, int) Direction
88
89// Searches a string the first character that has a strong
90// direction, according to the Unicode bidirectional algorithm.
91func FindBaseDir(TextVar string, LengthVar int) Direction {
92
93 cret := xFindBaseDir(TextVar, LengthVar)
94 return cret
95}
96
97var xGetMirrorChar func(uint32, *uint32) bool
98
99// Returns the mirrored character of a Unicode character.
100//
101// Mirror characters are determined by the Unicode mirrored property.
102func GetMirrorChar(ChVar uint32, MirroredChVar *uint32) bool {
103
104 cret := xGetMirrorChar(ChVar, MirroredChVar)
105 return cret
106}
107
108var xUnicharDirection func(uint32) Direction
109
110// Determines the inherent direction of a character.
111//
112// The inherent direction is either `PANGO_DIRECTION_LTR`, `PANGO_DIRECTION_RTL`,
113// or `PANGO_DIRECTION_NEUTRAL`.
114//
115// This function is useful to categorize characters into left-to-right
116// letters, right-to-left letters, and everything else. If full Unicode
117// bidirectional type of a character is needed, [func@Pango.BidiType.for_unichar]
118// can be used instead.
119func UnicharDirection(ChVar uint32) Direction {
120
121 cret := xUnicharDirection(ChVar)
122 return cret
123}
124
125func init() {
126 core.SetPackageName("PANGO", "pango")
127 core.SetSharedLibraries("PANGO", []string{"libpango-1.0.so.0"})
128 var libs []uintptr
129 for _, libPath := range core.GetPaths("PANGO") {
130 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
131 if err != nil {
132 panic(err)
133 }
134 libs = append(libs, lib)
135 }
136
137 core.PuregoSafeRegister(&xBidiTypeGLibType, libs, "pango_bidi_type_get_type")
138
139 core.PuregoSafeRegister(&xBidiTypeForUnichar, libs, "pango_bidi_type_for_unichar")
140 core.PuregoSafeRegister(&xFindBaseDir, libs, "pango_find_base_dir")
141 core.PuregoSafeRegister(&xGetMirrorChar, libs, "pango_get_mirror_char")
142 core.PuregoSafeRegister(&xUnicharDirection, libs, "pango_unichar_direction")
143
144}