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 change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module gtk.FontChooserIF; 26 27 private import glib.Str; 28 private import gobject.ObjectG; 29 private import gobject.Signals; 30 private import gtkc.gtk; 31 public import gtkc.gtktypes; 32 private import pango.PgFontDescription; 33 private import pango.PgFontFace; 34 private import pango.PgFontFamily; 35 private import pango.PgFontMap; 36 private import std.algorithm; 37 38 39 /** 40 * #GtkFontChooser is an interface that can be implemented by widgets 41 * displaying the list of fonts. In GTK+, the main objects 42 * that implement this interface are #GtkFontChooserWidget, 43 * #GtkFontChooserDialog and #GtkFontButton. The GtkFontChooser interface 44 * has been introducted in GTK+ 3.2. 45 */ 46 public interface FontChooserIF{ 47 /** Get the main Gtk struct */ 48 public GtkFontChooser* getFontChooserStruct(bool transferOwnership = false); 49 50 /** the main Gtk struct as a void* */ 51 protected void* getStruct(); 52 53 54 /** 55 * Gets the currently-selected font name. 56 * 57 * Note that this can be a different string than what you set with 58 * gtk_font_chooser_set_font(), as the font chooser widget may 59 * normalize font names and thus return a string with a different 60 * structure. For example, “Helvetica Italic Bold 12” could be 61 * normalized to “Helvetica Bold Italic 12”. 62 * 63 * Use pango_font_description_equal() if you want to compare two 64 * font descriptions. 65 * 66 * Returns: A string with the name 67 * of the current font, or %NULL if no font is selected. You must 68 * free this string with g_free(). 69 * 70 * Since: 3.2 71 */ 72 public string getFont(); 73 74 /** 75 * Gets the currently-selected font. 76 * 77 * Note that this can be a different string than what you set with 78 * gtk_font_chooser_set_font(), as the font chooser widget may 79 * normalize font names and thus return a string with a different 80 * structure. For example, “Helvetica Italic Bold 12” could be 81 * normalized to “Helvetica Bold Italic 12”. 82 * 83 * Use pango_font_description_equal() if you want to compare two 84 * font descriptions. 85 * 86 * Returns: A #PangoFontDescription for the 87 * current font, or %NULL if no font is selected. 88 * 89 * Since: 3.2 90 */ 91 public PgFontDescription getFontDesc(); 92 93 /** 94 * Gets the #PangoFontFace representing the selected font group 95 * details (i.e. family, slant, weight, width, etc). 96 * 97 * If the selected font is not installed, returns %NULL. 98 * 99 * Returns: A #PangoFontFace representing the 100 * selected font group details, or %NULL. The returned object is owned by 101 * @fontchooser and must not be modified or freed. 102 * 103 * Since: 3.2 104 */ 105 public PgFontFace getFontFace(); 106 107 /** 108 * Gets the #PangoFontFamily representing the selected font family. 109 * Font families are a collection of font faces. 110 * 111 * If the selected font is not installed, returns %NULL. 112 * 113 * Returns: A #PangoFontFamily representing the 114 * selected font family, or %NULL. The returned object is owned by @fontchooser 115 * and must not be modified or freed. 116 * 117 * Since: 3.2 118 */ 119 public PgFontFamily getFontFamily(); 120 121 /** 122 * Gets the custom font map of this font chooser widget, 123 * or %NULL if it does not have one. 124 * 125 * Returns: a #PangoFontMap, or %NULL 126 * 127 * Since: 3.18 128 */ 129 public PgFontMap getFontMap(); 130 131 /** 132 * The selected font size. 133 * 134 * Returns: A n integer representing the selected font size, 135 * or -1 if no font size is selected. 136 * 137 * Since: 3.2 138 */ 139 public int getFontSize(); 140 141 /** 142 * Gets the text displayed in the preview area. 143 * 144 * Returns: the text displayed in the 145 * preview area 146 * 147 * Since: 3.2 148 */ 149 public string getPreviewText(); 150 151 /** 152 * Returns whether the preview entry is shown or not. 153 * 154 * Returns: %TRUE if the preview entry is shown 155 * or %FALSE if it is hidden. 156 * 157 * Since: 3.2 158 */ 159 public bool getShowPreviewEntry(); 160 161 /** 162 * Adds a filter function that decides which fonts to display 163 * in the font chooser. 164 * 165 * Params: 166 * filter = a #GtkFontFilterFunc, or %NULL 167 * userData = data to pass to @filter 168 * destroy = function to call to free @data when it is no longer needed 169 * 170 * Since: 3.2 171 */ 172 public void setFilterFunc(GtkFontFilterFunc filter, void* userData, GDestroyNotify destroy); 173 174 /** 175 * Sets the currently-selected font. 176 * 177 * Params: 178 * fontname = a font name like “Helvetica 12” or “Times Bold 18” 179 * 180 * Since: 3.2 181 */ 182 public void setFont(string fontname); 183 184 /** 185 * Sets the currently-selected font from @font_desc. 186 * 187 * Params: 188 * fontDesc = a #PangoFontDescription 189 * 190 * Since: 3.2 191 */ 192 public void setFontDesc(PgFontDescription fontDesc); 193 194 /** 195 * Sets a custom font map to use for this font chooser widget. 196 * A custom font map can be used to present application-specific 197 * fonts instead of or in addition to the normal system fonts. 198 * 199 * |[<!-- language="C" --> 200 * FcConfig *config; 201 * PangoFontMap *fontmap; 202 * 203 * config = FcInitLoadConfigAndFonts (); 204 * FcConfigAppFontAddFile (config, my_app_font_file); 205 * 206 * fontmap = pango_cairo_font_map_new_for_font_type (CAIRO_FONT_TYPE_FT); 207 * pango_fc_font_map_set_config (PANGO_FC_FONT_MAP (fontmap), config); 208 * 209 * gtk_font_chooser_set_font_map (font_chooser, fontmap); 210 * ]| 211 * 212 * Note that other GTK+ widgets will only be able to use the application-specific 213 * font if it is present in the font map they use: 214 * 215 * |[ 216 * context = gtk_widget_get_pango_context (label); 217 * pango_context_set_font_map (context, fontmap); 218 * ]| 219 * 220 * Params: 221 * fontmap = a #PangoFontMap 222 * 223 * Since: 3.18 224 */ 225 public void setFontMap(PgFontMap fontmap); 226 227 /** 228 * Sets the text displayed in the preview area. 229 * The @text is used to show how the selected font looks. 230 * 231 * Params: 232 * text = the text to display in the preview area 233 * 234 * Since: 3.2 235 */ 236 public void setPreviewText(string text); 237 238 /** 239 * Shows or hides the editable preview entry. 240 * 241 * Params: 242 * showPreviewEntry = whether to show the editable preview entry or not 243 * 244 * Since: 3.2 245 */ 246 public void setShowPreviewEntry(bool showPreviewEntry); 247 248 /** 249 * Emitted when a font is activated. 250 * This usually happens when the user double clicks an item, 251 * or an item is selected and the user presses one of the keys 252 * Space, Shift+Space, Return or Enter. 253 * 254 * Params: 255 * fontname = the font name 256 */ 257 gulong addOnFontActivated(void delegate(string, FontChooserIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0); 258 }