#define WINDOW_H
#include <gtk/gtk.h>
+#include "chimara-glk-private.h"
#include "glk.h"
#include "gi_dispa.h"
#include "stream.h"
#include "input.h"
#include "style.h"
+#include "hyperlink.h"
+#include "mouse.h"
+#include "graphics.h"
enum InputRequestType
glui32 line_input_buffer_max_len;
gidispatch_rock_t buffer_rock;
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;
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 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