+/**
+ * chimara_glk_set_default_font_description:
+ * @glk: a #ChimaraGlk widget
+ * @font: a #PangoFontDescription
+ *
+ * Sets @glk's default proportional font. See
+ * #ChimaraGlk:default-font-description.
+ */
+void
+chimara_glk_set_default_font_description(ChimaraGlk *glk, PangoFontDescription *font)
+{
+ g_return_if_fail(glk || CHIMARA_IS_GLK(glk));
+ g_return_if_fail(font);
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ pango_font_description_free(priv->default_font_desc);
+ priv->default_font_desc = pango_font_description_copy(font);
+
+ /* TODO: Apply the font description to all the windows and recalculate the sizes */
+}
+
+/**
+ * chimara_glk_set_default_font_string:
+ * @glk: a #ChimaraGlk widget
+ * @font: string representation of a font description
+ *
+ * Sets @glk's default proportional font according to the string @font, which
+ * must be a string in the form <quote><replaceable>FAMILY-LIST</replaceable>
+ * [<replaceable>STYLE-OPTIONS</replaceable>]
+ * [<replaceable>SIZE</replaceable>]</quote>, such as <quote>Charter,Utopia
+ * Italic 12</quote> or <quote>Sans</quote>. See
+ * #ChimaraGlk:default-font-description.
+ */
+void
+chimara_glk_set_default_font_string(ChimaraGlk *glk, const gchar *font)
+{
+ g_return_if_fail(glk || CHIMARA_IS_GLK(glk));
+ g_return_if_fail(font || *font);
+
+ PangoFontDescription *fontdesc = pango_font_description_from_string(font);
+ g_return_if_fail(fontdesc);
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ pango_font_description_free(priv->default_font_desc);
+ priv->default_font_desc = fontdesc;
+
+ /* TODO: Apply the font description to all the windows and recalculate the sizes */
+}
+
+/**
+ * chimara_glk_get_default_font_description:
+ * @glk: a #ChimaraGlk widget
+ *
+ * Returns @glk's default proportional font.
+ *
+ * Return value: a newly-allocated #PangoFontDescription which must be freed
+ * using pango_font_description_free(), or %NULL on error.
+ */
+PangoFontDescription *
+chimara_glk_get_default_font_description(ChimaraGlk *glk)
+{
+ g_return_val_if_fail(glk || CHIMARA_IS_GLK(glk), NULL);
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ return pango_font_description_copy(priv->default_font_desc);
+}
+
+/**
+ * chimara_glk_set_monospace_font_description:
+ * @glk: a #ChimaraGlk widget
+ * @font: a #PangoFontDescription
+ *
+ * Sets @glk's default monospace font. See
+ * #ChimaraGlk:monospace-font-description.
+ */
+void
+chimara_glk_set_monospace_font_description(ChimaraGlk *glk, PangoFontDescription *font)
+{
+ g_return_if_fail(glk || CHIMARA_IS_GLK(glk));
+ g_return_if_fail(font);
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ pango_font_description_free(priv->monospace_font_desc);
+ priv->monospace_font_desc = pango_font_description_copy(font);
+
+ /* TODO: Apply the font description to all the windows and recalculate the sizes */
+}
+
+/**
+ * chimara_glk_set_monospace_font_string:
+ * @glk: a #ChimaraGlk widget
+ * @font: string representation of a font description
+ *
+ * Sets @glk's default monospace font according to the string @font, which must
+ * be a string in the form <quote><replaceable>FAMILY-LIST</replaceable>
+ * [<replaceable>STYLE-OPTIONS</replaceable>]
+ * [<replaceable>SIZE</replaceable>]</quote>, such as <quote>Courier
+ * Bold 12</quote> or <quote>Monospace</quote>. See
+ * #ChimaraGlk:monospace-font-description.
+ */
+void
+chimara_glk_set_monospace_font_string(ChimaraGlk *glk, const gchar *font)
+{
+ g_return_if_fail(glk || CHIMARA_IS_GLK(glk));
+ g_return_if_fail(font || *font);
+
+ PangoFontDescription *fontdesc = pango_font_description_from_string(font);
+ g_return_if_fail(fontdesc);
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ pango_font_description_free(priv->monospace_font_desc);
+ priv->monospace_font_desc = fontdesc;
+
+ /* TODO: Apply the font description to all the windows and recalculate the sizes */
+}
+
+/**
+ * chimara_glk_get_monospace_font_description:
+ * @glk: a #ChimaraGlk widget
+ *
+ * Returns @glk's default monospace font.
+ *
+ * Return value: a newly-allocated #PangoFontDescription which must be freed
+ * using pango_font_description_free(), or %NULL on error.
+ */
+PangoFontDescription *
+chimara_glk_get_monospace_font_description(ChimaraGlk *glk)
+{
+ g_return_val_if_fail(glk || CHIMARA_IS_GLK(glk), NULL);
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ return pango_font_description_copy(priv->monospace_font_desc);
+}
+
+/**
+ * chimara_glk_set_spacing:
+ * @glk: a #ChimaraGlk widget
+ * @spacing: the number of pixels to put between Glk windows
+ *
+ * Sets the #ChimaraGlk:spacing property of @glk, which is the border width in
+ * pixels between Glk windows.
+ */
+void
+chimara_glk_set_spacing(ChimaraGlk *glk, guint spacing)
+{
+ g_return_if_fail( glk || CHIMARA_IS_GLK(glk) );
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ priv->spacing = spacing;
+}
+
+/**
+ * chimara_glk_get_spacing:
+ * @glk: a #ChimaraGlk widget
+ *
+ * Gets the value set by chimara_glk_set_spacing().
+ *
+ * Return value: pixels of spacing between Glk windows
+ */
+guint
+chimara_glk_get_spacing(ChimaraGlk *glk)
+{
+ g_return_val_if_fail(glk || CHIMARA_IS_GLK(glk), 0);
+
+ ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
+ return priv->spacing;
+}
+