Fixed freeing data at stop & start. Previously the root window was set to NULL when...
[rodin/chimara.git] / libchimara / window.h
index 71bbb7436168cbbe368ae5827920e05f58d7c422..845550ea6e32a740febc526ee449d2ec723a568b 100644 (file)
@@ -2,6 +2,7 @@
 #define WINDOW_H
 
 #include <gtk/gtk.h>
+#include "chimara-glk-private.h"
 #include "glk.h"
 #include "gi_dispa.h"
 #include "stream.h"
@@ -59,17 +60,25 @@ struct glk_window_struct
        glui32 line_input_buffer_max_len;
        gidispatch_rock_t buffer_rock;
        gboolean mouse_input_requested;
+       GList *history;
+       GList *history_pos;
        /* Line input field (text grids only) */
        glui32 input_length;
        GtkTextChildAnchor *input_anchor;
        GtkWidget *input_entry;
+       gulong line_input_entry_changed;
        /* Signal handlers */
-       gulong keypress_handler;
+       gulong char_input_keypress_handler;
+       gulong line_input_keypress_handler;
        gulong insert_text_handler;
-       gulong mouse_click_handler;
-       gulong mouse_move_handler;
+       gulong tag_event_handler;
        /* Window buffer */
        GString *buffer;
+       /* Hyperlinks */
+       GHashTable *hyperlinks;
+       struct hyperlink *current_hyperlink;
 };
 
+G_GNUC_INTERNAL void trash_window_thread_independent(ChimaraGlkPrivate *glk_data, winid_t win);
+
 #endif