1 module dmagick.c.type;
2 
3 import core.stdc.stdio;
4 
5 import dmagick.c.exception;
6 import dmagick.c.magickType;
7 
8 extern(C)
9 {
10 	/**
11 	 * This setting suggests a type of stretch that ImageMagick should try
12 	 * to apply to the currently selected font family.
13 	 */
14 	enum StretchType
15 	{
16 		UndefinedStretch,       ///
17 		NormalStretch,          /// ditto
18 		UltraCondensedStretch,  /// ditto
19 		ExtraCondensedStretch,  /// ditto
20 		CondensedStretch,       /// ditto
21 		SemiCondensedStretch,   /// ditto
22 		SemiExpandedStretch,    /// ditto
23 		ExpandedStretch,        /// ditto
24 		ExtraExpandedStretch,   /// ditto
25 		UltraExpandedStretch,   /// ditto
26 		AnyStretch              /// ditto
27 	}
28 
29 	/**
30 	 * This setting suggests a font style that ImageMagick should try to
31 	 * apply to the currently selected font family.
32 	 */
33 	enum StyleType
34 	{
35 		UndefinedStyle,  ///
36 		NormalStyle,     /// ditto
37 		ItalicStyle,     /// ditto
38 		ObliqueStyle,    /// ditto
39 		AnyStyle         /// ditto
40 	}
41 
42 	struct TypeInfo
43 	{
44 		size_t
45 			face;
46 
47 		char*
48 			path,
49 			name,
50 			description,
51 			family;
52 
53 		StyleType
54 			style;
55 
56 		StretchType
57 			stretch;
58 
59 		size_t
60 			weight;
61 
62 		char*
63 			encoding,
64 			foundry,
65 			format,
66 			metrics,
67 			glyphs;
68 
69 		MagickBooleanType
70 			stealth;
71 
72 		TypeInfo*
73 			previous,
74 			next;
75 
76 		size_t
77 			signature;
78 	}
79 
80 	char** GetTypeList(const(char)*, size_t*, ExceptionInfo*);
81 
82 	MagickBooleanType ListTypeInfo(FILE*, ExceptionInfo*);
83 	MagickBooleanType TypeComponentGenesis();
84 
85 	const(TypeInfo)*  GetTypeInfo(const(char)*, ExceptionInfo*);
86 	const(TypeInfo)*  GetTypeInfoByFamily(const(char)*, const StyleType, const StretchType, const size_t, ExceptionInfo*);
87 	const(TypeInfo)** GetTypeInfoList(const(char)*, size_t*, ExceptionInfo*);
88 
89 	void TypeComponentTerminus();
90 }