1 /*
2   Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
3   dedicated to making software imaging solutions freely available.
4 
5   You may not use this file except in compliance with the License.  You may
6   obtain a copy of the License at
7 
8     https://imagemagick.org/script/license.php
9 
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15 
16   MagickCore image type methods.
17 */
18 #ifndef MAGICKCORE_TYPE_H
19 #define MAGICKCORE_TYPE_H
20 
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24 
25 typedef enum
26 {
27   UndefinedStretch,
28   NormalStretch,
29   UltraCondensedStretch,
30   ExtraCondensedStretch,
31   CondensedStretch,
32   SemiCondensedStretch,
33   SemiExpandedStretch,
34   ExpandedStretch,
35   ExtraExpandedStretch,
36   UltraExpandedStretch,
37   AnyStretch
38 } StretchType;
39 
40 typedef enum
41 {
42   UndefinedStyle,
43   NormalStyle,
44   ItalicStyle,
45   ObliqueStyle,
46   AnyStyle,
47   BoldStyle  /* deprecated */
48 } StyleType;
49 
50 typedef struct _TypeInfo
51 {
52   size_t
53     face;
54 
55   char
56     *path,
57     *name,
58     *description,
59     *family;
60 
61   StyleType
62     style;
63 
64   StretchType
65     stretch;
66 
67   size_t
68     weight;
69 
70   char
71     *encoding,
72     *foundry,
73     *format,
74     *metrics,
75     *glyphs;
76 
77   MagickBooleanType
78     stealth;
79 
80   struct _TypeInfo
81     *previous,
82     *next;  /* deprecated, use GetTypeInfoList() */
83 
84   size_t
85     signature;
86 } TypeInfo;
87 
88 extern MagickExport char
89   **GetTypeList(const char *,size_t *,ExceptionInfo *);
90 
91 extern MagickExport MagickBooleanType
92   ListTypeInfo(FILE *,ExceptionInfo *),
93   TypeComponentGenesis(void);
94 
95 extern MagickExport const TypeInfo
96   *GetTypeInfo(const char *,ExceptionInfo *),
97   *GetTypeInfoByFamily(const char *,const StyleType,const StretchType,
98     const size_t,ExceptionInfo *),
99   **GetTypeInfoList(const char *,size_t *,ExceptionInfo *);
100 
101 extern MagickExport void
102   TypeComponentTerminus(void);
103 
104 #if defined(__cplusplus) || defined(c_plusplus)
105 }
106 #endif
107 
108 #endif
109