Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:04:02

0001 /*
0002  * Copyright © 2018  Ebrahim Byagowi.
0003  *
0004  *  This is part of HarfBuzz, a text shaping library.
0005  *
0006  * Permission is hereby granted, without written agreement and without
0007  * license or royalty fees, to use, copy, modify, and distribute this
0008  * software and its documentation for any purpose, provided that the
0009  * above copyright notice and the following two paragraphs appear in
0010  * all copies of this software.
0011  *
0012  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
0013  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
0014  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
0015  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
0016  * DAMAGE.
0017  *
0018  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
0019  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
0020  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
0021  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
0022  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
0023  */
0024 
0025 #if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR)
0026 #error "Include <hb-ot.h> instead."
0027 #endif
0028 
0029 #ifndef HB_OT_NAME_H
0030 #define HB_OT_NAME_H
0031 
0032 #include "hb.h"
0033 
0034 HB_BEGIN_DECLS
0035 
0036 /**
0037  * hb_ot_name_id_predefined_t:
0038  * @HB_OT_NAME_ID_COPYRIGHT: Copyright notice
0039  * @HB_OT_NAME_ID_FONT_FAMILY: Font Family name
0040  * @HB_OT_NAME_ID_FONT_SUBFAMILY: Font Subfamily name
0041  * @HB_OT_NAME_ID_UNIQUE_ID: Unique font identifier
0042  * @HB_OT_NAME_ID_FULL_NAME: Full font name that reflects
0043  * all family and relevant subfamily descriptors
0044  * @HB_OT_NAME_ID_VERSION_STRING: Version string
0045  * @HB_OT_NAME_ID_POSTSCRIPT_NAME: PostScript name for the font
0046  * @HB_OT_NAME_ID_TRADEMARK: Trademark
0047  * @HB_OT_NAME_ID_MANUFACTURER: Manufacturer Name
0048  * @HB_OT_NAME_ID_DESIGNER: Designer
0049  * @HB_OT_NAME_ID_DESCRIPTION: Description
0050  * @HB_OT_NAME_ID_VENDOR_URL: URL of font vendor
0051  * @HB_OT_NAME_ID_DESIGNER_URL: URL of typeface designer
0052  * @HB_OT_NAME_ID_LICENSE: License Description
0053  * @HB_OT_NAME_ID_LICENSE_URL: URL where additional licensing
0054  * information can be found
0055  * @HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY: Typographic Family name
0056  * @HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY: Typographic Subfamily name
0057  * @HB_OT_NAME_ID_MAC_FULL_NAME: Compatible Full Name for MacOS
0058  * @HB_OT_NAME_ID_SAMPLE_TEXT: Sample text
0059  * @HB_OT_NAME_ID_CID_FINDFONT_NAME: PostScript CID findfont name
0060  * @HB_OT_NAME_ID_WWS_FAMILY: WWS Family Name
0061  * @HB_OT_NAME_ID_WWS_SUBFAMILY: WWS Subfamily Name
0062  * @HB_OT_NAME_ID_LIGHT_BACKGROUND: Light Background Palette
0063  * @HB_OT_NAME_ID_DARK_BACKGROUND: Dark Background Palette
0064  * @HB_OT_NAME_ID_VARIATIONS_PS_PREFIX: Variations PostScript Name Prefix
0065  * @HB_OT_NAME_ID_INVALID: Value to represent a nonexistent name ID.
0066  *
0067  * An enum type representing the pre-defined name IDs.
0068  *
0069  * For more information on these fields, see the
0070  * [OpenType spec](https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids).
0071  *
0072  * Since: 7.0.0
0073  **/
0074 typedef enum
0075 {
0076   HB_OT_NAME_ID_COPYRIGHT       = 0,
0077   HB_OT_NAME_ID_FONT_FAMILY     = 1,
0078   HB_OT_NAME_ID_FONT_SUBFAMILY      = 2,
0079   HB_OT_NAME_ID_UNIQUE_ID       = 3,
0080   HB_OT_NAME_ID_FULL_NAME       = 4,
0081   HB_OT_NAME_ID_VERSION_STRING      = 5,
0082   HB_OT_NAME_ID_POSTSCRIPT_NAME     = 6,
0083   HB_OT_NAME_ID_TRADEMARK       = 7,
0084   HB_OT_NAME_ID_MANUFACTURER        = 8,
0085   HB_OT_NAME_ID_DESIGNER        = 9,
0086   HB_OT_NAME_ID_DESCRIPTION     = 10,
0087   HB_OT_NAME_ID_VENDOR_URL      = 11,
0088   HB_OT_NAME_ID_DESIGNER_URL        = 12,
0089   HB_OT_NAME_ID_LICENSE         = 13,
0090   HB_OT_NAME_ID_LICENSE_URL     = 14,
0091 /*HB_OT_NAME_ID_RESERVED        = 15,*/
0092   HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY  = 16,
0093   HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY   = 17,
0094   HB_OT_NAME_ID_MAC_FULL_NAME       = 18,
0095   HB_OT_NAME_ID_SAMPLE_TEXT     = 19,
0096   HB_OT_NAME_ID_CID_FINDFONT_NAME   = 20,
0097   HB_OT_NAME_ID_WWS_FAMILY      = 21,
0098   HB_OT_NAME_ID_WWS_SUBFAMILY       = 22,
0099   HB_OT_NAME_ID_LIGHT_BACKGROUND    = 23,
0100   HB_OT_NAME_ID_DARK_BACKGROUND     = 24,
0101   HB_OT_NAME_ID_VARIATIONS_PS_PREFIX    = 25,
0102 
0103   HB_OT_NAME_ID_INVALID         = 0xFFFF
0104 } hb_ot_name_id_predefined_t;
0105 
0106 /**
0107  * hb_ot_name_id_t:
0108  *
0109  * An integral type representing an OpenType 'name' table name identifier.
0110  * There are predefined name IDs, as well as name IDs return from other
0111  * API.  These can be used to fetch name strings from a font face.
0112  *
0113  * Since: 2.0.0
0114  **/
0115 typedef unsigned int hb_ot_name_id_t;
0116 
0117 
0118 /**
0119  * hb_ot_name_entry_t:
0120  * @name_id: name ID
0121  * @language: language
0122  *
0123  * Structure representing a name ID in a particular language.
0124  *
0125  * Since: 2.1.0
0126  **/
0127 typedef struct hb_ot_name_entry_t {
0128   hb_ot_name_id_t name_id;
0129   /*< private >*/
0130   hb_var_int_t    var;
0131   /*< public >*/
0132   hb_language_t   language;
0133 } hb_ot_name_entry_t;
0134 
0135 HB_EXTERN const hb_ot_name_entry_t *
0136 hb_ot_name_list_names (hb_face_t    *face,
0137                unsigned int *num_entries /* OUT */);
0138 
0139 
0140 HB_EXTERN unsigned int
0141 hb_ot_name_get_utf8 (hb_face_t       *face,
0142              hb_ot_name_id_t  name_id,
0143              hb_language_t    language,
0144              unsigned int    *text_size /* IN/OUT */,
0145              char            *text      /* OUT */);
0146 
0147 HB_EXTERN unsigned int
0148 hb_ot_name_get_utf16 (hb_face_t       *face,
0149               hb_ot_name_id_t  name_id,
0150               hb_language_t    language,
0151               unsigned int    *text_size /* IN/OUT */,
0152               uint16_t        *text      /* OUT */);
0153 
0154 HB_EXTERN unsigned int
0155 hb_ot_name_get_utf32 (hb_face_t       *face,
0156               hb_ot_name_id_t  name_id,
0157               hb_language_t    language,
0158               unsigned int    *text_size /* IN/OUT */,
0159               uint32_t        *text      /* OUT */);
0160 
0161 
0162 HB_END_DECLS
0163 
0164 #endif /* HB_OT_NAME_H */