#include "stream.h"
#include "strio.h"
-extern GPrivate *glk_data_key;
+extern GPrivate glk_data_key;
static gboolean style_accept(GScanner *scanner, GTokenType token);
static gboolean style_accept_style_selector(GScanner *scanner, ChimaraGlk *glk);
void
glk_set_style(glui32 styl)
{
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
g_return_if_fail(glk_data->current_stream != NULL);
glk_set_style_stream(glk_data->current_stream, styl);
}
"user1",
"user2",
"hyperlink",
- "pager",
"default"
};
str->glk_style = (gchar*) get_glk_tag_name(styl);
}
-/* Internal function: call this to initialize the layout of the 'more' prompt. */
-void
-style_init_more_prompt(winid_t win)
-{
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
-
- win->pager_layout = gtk_widget_create_pango_layout(win->widget, "More");
- pango_layout_set_attributes(win->pager_layout, glk_data->pager_attr_list);
-}
-
/* Internal function: call this to initialize the default styles to a textbuffer. */
void
style_init_textbuffer(GtkTextBuffer *buffer)
{
g_return_if_fail(buffer != NULL);
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
/* Place the default text tags in the textbuffer's tag table */
g_hash_table_foreach(glk_data->styles->text_buffer, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer));
style_init_textgrid(GtkTextBuffer *buffer)
{
g_return_if_fail(buffer != NULL);
-
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
/* Place the default text tags in the textbuffer's tag table */
g_hash_table_foreach(glk_data->styles->text_grid, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer));
g_object_set(tag, "foreground", "#0000ff", "foreground-set", TRUE, "underline", PANGO_UNDERLINE_SINGLE, "underline-set", TRUE, NULL);
g_hash_table_insert(default_text_buffer_styles, "hyperlink", tag);
- GtkTextTag *pager_tag = gtk_text_tag_new("pager");
- g_object_set(pager_tag, "family", "Monospace", "family-set", TRUE, "foreground", "#ffffff", "foreground-set", TRUE, "background", "#000000", "background-set", TRUE, NULL);
- g_hash_table_insert(default_text_buffer_styles, "pager", pager_tag);
- text_tag_to_attr_list(pager_tag, priv->pager_attr_list);
-
priv->styles->text_grid = default_text_grid_styles;
priv->styles->text_buffer = default_text_buffer_styles;
-
/* Initialize the GLK styles to empty tags */
int i;
for(i=0; i<style_NUMSTYLES; i++) {
}
g_scanner_destroy(scanner);
-
- /* Update the pager prompt to the new style */
- style_update(glk);
}
/* Internal function: parses a token */
{
g_return_if_fail(tag != NULL);
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
GObject *tag_object = G_OBJECT(tag);
gint reverse_color = GPOINTER_TO_INT( g_object_get_data(tag_object, "reverse-color") );
g_return_val_if_fail(tag != NULL, 0);
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
switch(hint) {
case stylehint_Indentation:
g_printf("glk_stylehint_set(wintype=%d, styl=%d, hint=%d, val=%d)\n", wintype, styl, hint, val);
#endif
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
GtkTextTag *to_change;
if(wintype == wintype_TextBuffer || wintype == wintype_AllTypes) {
g_printf("glk_stylehint_clear(wintype=%d, styl=%d, hint=%d)\n", wintype, styl, hint);
#endif
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
GtkTextTag *tag;
switch(wintype) {
g_printf("glk_style_measure(win->rock=%d, styl=%d, hint=%d, result=...)\n", win->rock, styl, hint);
#endif
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
GtkTextTag *tag;
switch(win->type) {
PangoFontDescription *
get_current_font(guint32 wintype)
{
- ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+ ChimaraGlkPrivate *glk_data = g_private_get(&glk_data_key);
GHashTable *styles, *glk_styles;
PangoFontDescription *font;
}
}
-/* Update pager tag */
-void
-style_update(ChimaraGlk *glk)
-{
- CHIMARA_GLK_USE_PRIVATE(glk, priv);
-
- GtkTextTag *pager_tag = GTK_TEXT_TAG( g_hash_table_lookup(priv->styles->text_buffer, "pager") );
- text_tag_to_attr_list(pager_tag, priv->pager_attr_list);
-}
-
/* Determine the current colors used to render the text for a given stream.
* This can be set in a number of places */
static void