1 /*
2 * This file is part of gtkD.
3 *
4 * gtkD is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License
6 * as published by the Free Software Foundation; either version 3
7 * of the License, or (at your option) any later version, with
8 * some exceptions, please read the COPYING file.
9 *
10 * gtkD is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with gtkD; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18 */19 20 // generated automatically - do not change21 // find conversion definition on APILookup.txt22 // implement new conversion functionalities on the wrap.utils pakage23 24 /*
25 * Conversion parameters:
26 * inFile =
27 * outPack = pango
28 * outFile = PgFontFamily
29 * strct = PangoFontFamily
30 * realStrct=
31 * ctorStrct=
32 * clss = PgFontFamily
33 * interf =
34 * class Code: No
35 * interface Code: No
36 * template for:
37 * extend = GObject
38 * implements:
39 * prefixes:
40 * - pango_font_family_
41 * omit structs:
42 * omit prefixes:
43 * omit code:
44 * omit signals:
45 * imports:
46 * - glib.Str
47 * - pango.PgFontFace
48 * structWrap:
49 * - PangoFontFace* -> PgFontFace
50 * module aliases:
51 * local aliases:
52 * overrides:
53 */54 55 modulepango.PgFontFamily;
56 57 publicimportgtkc.pangotypes;
58 59 privateimportgtkc.pango;
60 privateimportglib.ConstructionException;
61 privateimportgobject.ObjectG;
62 63 64 privateimportglib.Str;
65 privateimportpango.PgFontFace;
66 67 68 69 privateimportgobject.ObjectG;
70 71 /**
72 * Description
73 * Pango supports a flexible architecture where a
74 * particular rendering architecture can supply an
75 * implementation of fonts. The PangoFont structure
76 * represents an abstract rendering-system-independent font.
77 * Pango provides routines to list available fonts, and
78 * to load a font of a given description.
79 */80 publicclassPgFontFamily : ObjectG81 {
82 83 /** the main Gtk struct */84 protectedPangoFontFamily* pangoFontFamily;
85 86 87 publicPangoFontFamily* getPgFontFamilyStruct()
88 {
89 returnpangoFontFamily;
90 }
91 92 93 /** the main Gtk struct as a void* */94 protectedoverridevoid* getStruct()
95 {
96 returncast(void*)pangoFontFamily;
97 }
98 99 /**
100 * Sets our main struct and passes it to the parent class
101 */102 publicthis (PangoFontFamily* pangoFontFamily)
103 {
104 super(cast(GObject*)pangoFontFamily);
105 this.pangoFontFamily = pangoFontFamily;
106 }
107 108 protectedoverridevoidsetStruct(GObject* obj)
109 {
110 super.setStruct(obj);
111 pangoFontFamily = cast(PangoFontFamily*)obj;
112 }
113 114 /**
115 */116 117 /**
118 * Gets the name of the family. The name is unique among all
119 * fonts for the font backend and can be used in a PangoFontDescription
120 * to specify that a face from this family is desired.
121 * Returns: the name of the family. This string is owned by the family object and must not be modified or freed.
122 */123 publicstringgetName()
124 {
125 // const char * pango_font_family_get_name (PangoFontFamily *family);126 returnStr.toString(pango_font_family_get_name(pangoFontFamily));
127 }
128 129 /**
130 * A monospace font is a font designed for text display where the the
131 * characters form a regular grid. For Western languages this would
132 * mean that the advance width of all characters are the same, but
133 * this categorization also includes Asian fonts which include
134 * double-width characters: characters that occupy two grid cells.
135 * g_unichar_iswide() returns a result that indicates whether a
136 * character is typically double-width in a monospace font.
137 * The best way to find out the grid-cell size is to call
138 * pango_font_metrics_get_approximate_digit_width(), since the results
139 * of pango_font_metrics_get_approximate_char_width() may be affected
140 * by double-width characters.
141 * Since 1.4
142 * Returns: TRUE if the family is monospace.
143 */144 publicintisMonospace()
145 {
146 // gboolean pango_font_family_is_monospace (PangoFontFamily *family);147 returnpango_font_family_is_monospace(pangoFontFamily);
148 }
149 150 /**
151 * Lists the different font faces that make up family. The faces
152 * in a family share a common design, but differ in slant, weight,
153 * width and other aspects.
154 * Params:
155 * faces = location to store an array of pointers to PangoFontFace
156 * objects, or NULL. This array should be freed with g_free()
157 * when it is no longer needed.
158 */159 publicvoidlistFaces(outPgFontFace[] faces)
160 {
161 // void pango_font_family_list_faces (PangoFontFamily *family, PangoFontFace ***faces, int *n_faces);162 PangoFontFace** outfaces = null;
163 intnFaces;
164 165 pango_font_family_list_faces(pangoFontFamily, &outfaces, &nFaces);
166 167 168 faces = newPgFontFace[nFaces];
169 for(inti = 0; i < nFaces; i++)
170 {
171 faces[i] = ObjectG.getDObject!(PgFontFace)(cast(PangoFontFace*) outfaces[i]);
172 }
173 }
174 }