X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fchimara-glk-private.h;h=b3c90853795eb9465a6c62d3ae7cd5e044acd768;hb=cbd4cb7f8c62b2ba51329a4cb082a96115a7529d;hp=5ea1e54a51853274826aff1775c9a6d15d642926;hpb=e4819b66649d4963a0661cba603c2967b02a6b80;p=rodin%2Fchimara.git diff --git a/libchimara/chimara-glk-private.h b/libchimara/chimara-glk-private.h index 5ea1e54..b3c9085 100644 --- a/libchimara/chimara-glk-private.h +++ b/libchimara/chimara-glk-private.h @@ -36,6 +36,8 @@ struct _ChimaraGlkPrivate { struct StyleSet *current_styles; /* *** Threading data *** */ + /* Whether program is running */ + gboolean running; /* Glk program loaded in widget */ GModule *program; /* Thread in which Glk program is run */ @@ -53,6 +55,9 @@ struct _ChimaraGlkPrivate { GCond *rearranged; gboolean needs_rearrange; gboolean ignore_next_arrange_event; + /* Input queues */ + GAsyncQueue *char_input_queue; + GAsyncQueue *line_input_queue; /* *** Glk library data *** */ /* User-defined interrupt handler */ @@ -76,6 +81,10 @@ struct _ChimaraGlkPrivate { void (*unregister_obj)(void *, glui32, gidispatch_rock_t); gidispatch_rock_t (*register_arr)(void *, glui32, char *); void (*unregister_arr)(void *, glui32, char *, gidispatch_rock_t); + /* Have styles been initialized */ + gboolean style_initialized; + /* Is widget still displaying windows from last run */ + gboolean needs_reset; /* *** Platform-dependent Glk library data *** */ /* Flag for functions to find out if they are being called from startup code */ @@ -84,9 +93,11 @@ struct _ChimaraGlkPrivate { gchar *current_dir; }; -#define CHIMARA_GLK_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), CHIMARA_TYPE_GLK, ChimaraGlkPrivate)) - +#define CHIMARA_GLK_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), CHIMARA_TYPE_GLK, ChimaraGlkPrivate)) +#define CHIMARA_GLK_USE_PRIVATE(o, n) ChimaraGlkPrivate *n = CHIMARA_GLK_PRIVATE(o) + +G_GNUC_INTERNAL void _chimara_glk_free_nonwindow_private_data(ChimaraGlkPrivate *self); + G_END_DECLS #endif /* __CHIMARA_GLK_PRIVATE_H__ */