1 #ifndef __CHIMARA_GLK_PRIVATE_H__
2 #define __CHIMARA_GLK_PRIVATE_H__
6 #include <pango/pango.h>
9 #include "chimara-glk.h"
13 typedef struct _ChimaraGlkPrivate ChimaraGlkPrivate;
15 struct _ChimaraGlkPrivate {
16 /* Pointer back to the widget itself for use in thread */
19 /* *** Widget properties *** */
20 /* Whether user input is expected */
22 /* Whether file operations are allowed */
24 /* Font description of proportional font */
25 PangoFontDescription *default_font_desc;
26 /* Font description of monospace font */
27 PangoFontDescription *monospace_font_desc;
28 /* Spacing between Glk windows */
31 /* *** Threading data *** */
32 /* Glk program loaded in widget */
34 /* Thread in which Glk program is run */
36 /* Event queue and threading stuff */
39 GCond *event_queue_not_empty;
40 GCond *event_queue_not_full;
43 gboolean abort_signalled;
44 /* Window arrangement locks */
47 gboolean needs_rearrange;
48 gboolean ignore_next_arrange_event;
50 /* *** Glk library data *** */
51 /* User-defined interrupt handler */
52 void (*interrupt_handler)(void);
53 /* Global tree of all windows */
55 /* List of filerefs currently in existence */
58 strid_t current_stream;
59 /* List of streams currently in existence */
63 /* Current resource blorb map */
64 giblorb_map_t *resource_map;
65 /* File stream pointing to the blorb used as current resource map */
66 strid_t resource_file;
68 /* *** Platform-dependent Glk library data *** */
69 /* Flag for functions to find out if they are being called from startup code */
71 /* "Current directory" for creating filerefs */
75 #define CHIMARA_GLK_PRIVATE(obj) \
76 (G_TYPE_INSTANCE_GET_PRIVATE((obj), CHIMARA_TYPE_GLK, ChimaraGlkPrivate))
80 #endif /* __CHIMARA_GLK_PRIVATE_H__ */