1
2 // Copyright Ahmet Sait Koçak 2020.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at
5 // https://www.boost.org/LICENSE_1_0.txt)
6
7 module bindbc.hb.bind.ot.name;
8
9 import bindbc.hb.config;
10
11 import bindbc.hb.bind.common;
12 import bindbc.hb.bind.face;
13
14 extern(C) @nogc nothrow:
15
16 /**
17 * hb_ot_name_id_t:
18 * @HB_OT_NAME_ID_INVALID: Value to represent a nonexistent name ID.
19 *
20 * An integral type representing an OpenType 'name' table name identifier.
21 * There are predefined name IDs, as well as name IDs return from other
22 * API. These can be used to fetch name strings from a font face.
23 *
24 * Since: 2.0.0
25 **/
26 enum : uint
27 {
28 HB_OT_NAME_ID_COPYRIGHT = 0,
29 HB_OT_NAME_ID_FONT_FAMILY = 1,
30 HB_OT_NAME_ID_FONT_SUBFAMILY = 2,
31 HB_OT_NAME_ID_UNIQUE_ID = 3,
32 HB_OT_NAME_ID_FULL_NAME = 4,
33 HB_OT_NAME_ID_VERSION_STRING = 5,
34 HB_OT_NAME_ID_POSTSCRIPT_NAME = 6,
35 HB_OT_NAME_ID_TRADEMARK = 7,
36 HB_OT_NAME_ID_MANUFACTURER = 8,
37 HB_OT_NAME_ID_DESIGNER = 9,
38 HB_OT_NAME_ID_DESCRIPTION = 10,
39 HB_OT_NAME_ID_VENDOR_URL = 11,
40 HB_OT_NAME_ID_DESIGNER_URL = 12,
41 HB_OT_NAME_ID_LICENSE = 13,
42 HB_OT_NAME_ID_LICENSE_URL = 14,
43 /*HB_OT_NAME_ID_RESERVED = 15,*/
44 HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY = 16,
45 HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY = 17,
46 HB_OT_NAME_ID_MAC_FULL_NAME = 18,
47 HB_OT_NAME_ID_SAMPLE_TEXT = 19,
48 HB_OT_NAME_ID_CID_FINDFONT_NAME = 20,
49 HB_OT_NAME_ID_WWS_FAMILY = 21,
50 HB_OT_NAME_ID_WWS_SUBFAMILY = 22,
51 HB_OT_NAME_ID_LIGHT_BACKGROUND = 23,
52 HB_OT_NAME_ID_DARK_BACKGROUND = 24,
53 HB_OT_NAME_ID_VARIATIONS_PS_PREFIX = 25,
54
55 HB_OT_NAME_ID_INVALID = 0xFFFF
56 }
57 alias hb_ot_name_id_t = uint;
58
59 static if (hbSupport >= HBSupport.v2_6_3)
60 {
61 /**
62 * hb_ot_name_entry_t:
63 * @name_id: name ID
64 * @language: language
65 *
66 * Structure representing a name ID in a particular language.
67 *
68 * Since: 2.1.0
69 **/
70 struct hb_ot_name_entry_t
71 {
72 hb_ot_name_id_t name_id;
73 /*< private >*/
74 hb_var_int_t var;
75 /*< public >*/
76 hb_language_t language;
77 }
78
79 /* OUT */
80 version(BindHB_Static)
81 const(hb_ot_name_entry_t)* hb_ot_name_list_names (
82 hb_face_t* face,
83 uint* num_entries);
84 else
85 {
86 private alias fp_hb_ot_name_list_names = const(hb_ot_name_entry_t)* function (
87 hb_face_t* face,
88 uint* num_entries);
89 __gshared fp_hb_ot_name_list_names hb_ot_name_list_names;
90 }
91
92 /* IN/OUT */
93 /* OUT */
94 version(BindHB_Static)
95 uint hb_ot_name_get_utf8 (
96 hb_face_t* face,
97 hb_ot_name_id_t name_id,
98 hb_language_t language,
99 uint* text_size,
100 char* text);
101 else
102 {
103 private alias fp_hb_ot_name_get_utf8 = uint function (
104 hb_face_t* face,
105 hb_ot_name_id_t name_id,
106 hb_language_t language,
107 uint* text_size,
108 char* text);
109 __gshared fp_hb_ot_name_get_utf8 hb_ot_name_get_utf8;
110 }
111
112 /* IN/OUT */
113 /* OUT */
114 version(BindHB_Static)
115 uint hb_ot_name_get_utf16 (
116 hb_face_t* face,
117 hb_ot_name_id_t name_id,
118 hb_language_t language,
119 uint* text_size,
120 ushort* text);
121 else
122 {
123 private alias fp_hb_ot_name_get_utf16 = uint function (
124 hb_face_t* face,
125 hb_ot_name_id_t name_id,
126 hb_language_t language,
127 uint* text_size,
128 ushort* text);
129 __gshared fp_hb_ot_name_get_utf16 hb_ot_name_get_utf16;
130 }
131
132 /* IN/OUT */
133 /* OUT */
134 version(BindHB_Static)
135 uint hb_ot_name_get_utf32 (
136 hb_face_t* face,
137 hb_ot_name_id_t name_id,
138 hb_language_t language,
139 uint* text_size,
140 uint* text);
141 else
142 {
143 private alias fp_hb_ot_name_get_utf32 = uint function (
144 hb_face_t* face,
145 hb_ot_name_id_t name_id,
146 hb_language_t language,
147 uint* text_size,
148 uint* text);
149 __gshared fp_hb_ot_name_get_utf32 hb_ot_name_get_utf32;
150 }
151 }