priv->css_file = "style.css";
priv->default_styles = g_new0(StyleSet,1);
priv->current_styles = g_new0(StyleSet,1);
+ priv->pager_attr_list = pango_attr_list_new();
priv->style_initialized = FALSE;
priv->final_message = g_strdup("[ The game has finished ]");
priv->running = FALSE;
priv->char_input_queue = g_async_queue_new();
priv->line_input_queue = g_async_queue_new();
/* Should be g_async_queue_new_full(g_free); but only in GTK >= 2.16 */
+ priv->resource_lock = g_mutex_new();
+ priv->resource_loaded = g_cond_new();
+ priv->resource_info_available = g_cond_new();
+ priv->image_cache = NULL;
priv->interrupt_handler = NULL;
priv->root_window = NULL;
priv->fileref_list = NULL;
g_hash_table_destroy(priv->default_styles->text_grid);
g_hash_table_destroy(priv->current_styles->text_buffer);
g_hash_table_destroy(priv->current_styles->text_grid);
+ pango_attr_list_unref(priv->pager_attr_list);
priv->style_initialized = FALSE;
/* Free the event queue */
g_mutex_unlock(priv->arrange_lock);
g_mutex_free(priv->arrange_lock);
priv->arrange_lock = NULL;
+ g_mutex_lock(priv->resource_lock);
+ g_cond_free(priv->resource_loaded);
+ g_cond_free(priv->resource_info_available);
+ g_mutex_unlock(priv->resource_lock);
+ g_mutex_free(priv->resource_lock);
+ g_slist_foreach(priv->image_cache, (GFunc)clear_image_cache, NULL);
+ g_slist_free(priv->image_cache);
/* Unref input queues (this should destroy them since any Glk thread has stopped by now */
g_async_queue_unref(priv->char_input_queue);
g_async_queue_unref(priv->line_input_queue);
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
priv->interactive = interactive;
+ g_object_notify(G_OBJECT(glk), "interactive");
}
/**
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
priv->protect = protect;
+ g_object_notify(G_OBJECT(glk), "protect");
}
/**
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
pango_font_description_free(priv->default_font_desc);
priv->default_font_desc = pango_font_description_copy(font);
-
+ g_object_notify(G_OBJECT(glk), "default-font-description");
/* TODO: Apply the font description to all the windows and recalculate the sizes */
}
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
pango_font_description_free(priv->default_font_desc);
priv->default_font_desc = fontdesc;
+ g_object_notify(G_OBJECT(glk), "default-font-description");
/* TODO: Apply the font description to all the windows and recalculate the sizes */
}
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
pango_font_description_free(priv->monospace_font_desc);
priv->monospace_font_desc = pango_font_description_copy(font);
+ g_object_notify(G_OBJECT(glk), "monospace-font-description");
/* TODO: Apply the font description to all the windows and recalculate the sizes */
}
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
pango_font_description_free(priv->monospace_font_desc);
priv->monospace_font_desc = fontdesc;
+ g_object_notify(G_OBJECT(glk), "monospace-font-description");
/* TODO: Apply the font description to all the windows and recalculate the sizes */
}
ChimaraGlkPrivate *priv = CHIMARA_GLK_PRIVATE(glk);
priv->spacing = spacing;
+ g_object_notify(G_OBJECT(glk), "spacing");
}
/**