Change I/O signals to pass a unique window ID
[projects/chimara/chimara.git] / libchimara / window.h
index 36bf257e390e46d2e792f5ec94c06fbad253f00b..85b8db7b645e0b8bff052249ab40484f56871a5f 100644 (file)
@@ -9,6 +9,8 @@
 #include "input.h"
 #include "style.h"
 #include "hyperlink.h"
+#include "mouse.h"
+#include "graphics.h"
 
 
 enum InputRequestType
@@ -30,6 +32,7 @@ struct glk_window_struct
 {
        /*< private >*/
        glui32 magic, rock;
+       char *librock; /* "library rock" - unique string identifier */
        gidispatch_rock_t disprock;
        /* Pointer to the node in the global tree that contains this window */
        GNode *window_node;
@@ -62,6 +65,11 @@ struct glk_window_struct
        gboolean mouse_input_requested;
        GList *history;
        GList *history_pos;
+       GSList *extra_line_terminators;
+       GSList *current_extra_line_terminators;
+       /* Line input echoing (text buffers only) */
+       gboolean echo_line_input;
+       gboolean echo_current_line_input;
        /* Line input field (text grids only) */
        glui32 input_length;
        GtkTextChildAnchor *input_anchor;
@@ -73,11 +81,25 @@ struct glk_window_struct
        gulong insert_text_handler;
        gulong tag_event_handler;
        gulong shutdown_keypress_handler;
+       gulong button_press_event_handler;
+       gulong size_allocate_handler;
+       gulong pager_expose_handler;
+       gulong pager_keypress_handler;
+       gulong pager_adjustment_handler;
        /* Window buffer */
        GString *buffer;
+       GtkTextTag *zcolor;
+       GtkTextTag *zcolor_reversed;
        /* Hyperlinks */
        GHashTable *hyperlinks;
        struct hyperlink *current_hyperlink;
+       gboolean hyperlink_event_requested;
+       /* Graphics */
+       glui32 background_color;
+       cairo_surface_t *backing_store;
+       /* Pager (textbuffer only) */
+       gboolean currently_paging;
+       PangoLayout *pager_layout;
 };
 
 #endif