5 #include "chimara-glk-private.h"
11 #include "hyperlink.h"
19 INPUT_REQUEST_CHARACTER,
20 INPUT_REQUEST_CHARACTER_UNICODE,
22 INPUT_REQUEST_LINE_UNICODE
28 * This is an opaque structure (see <link linkend="chimara-Opaque-Structures">
29 * Opaque Structures</link> and should not be accessed directly.
31 struct glk_window_struct
35 char *librock; /* "library rock" - unique string identifier */
36 gidispatch_rock_t disprock;
37 /* Pointer to the node in the global tree that contains this window */
39 /* Window parameters */
41 /* "widget" is the actual widget with the window's functionality */
43 /* "frame" is the widget that is the child of the ChimaraGlk container, such
44 as a scroll window. It may be the same as "widget". */
46 /* In text buffer windows, the scrolled window and the pager are extra
47 widgets that are neither "widget" nor "frame" */
48 GtkWidget *scrolledwindow;
50 /* Width and height of the window's size units, in pixels */
53 /* Streams associated with the window */
54 strid_t window_stream;
56 /* Width and height of the window, in characters (text grids only) */
59 /* Window split data (pair windows only) */
62 glui32 constraint_size;
63 /* Input request stuff */
64 enum InputRequestType input_request_type;
65 gchar *line_input_buffer;
66 glui32 *line_input_buffer_unicode;
67 glui32 line_input_buffer_max_len;
68 gidispatch_rock_t buffer_rock;
69 gboolean mouse_input_requested;
72 GSList *extra_line_terminators;
73 GSList *current_extra_line_terminators;
74 /* Line input echoing (text buffers only) */
75 gboolean echo_line_input;
76 gboolean echo_current_line_input;
77 /* Line input field (text grids only) */
79 GtkTextChildAnchor *input_anchor;
80 GtkWidget *input_entry;
81 gulong line_input_entry_changed;
83 gulong char_input_keypress_handler;
84 gulong line_input_keypress_handler;
85 gulong insert_text_handler;
86 gulong tag_event_handler;
87 gulong shutdown_keypress_handler;
88 gulong button_press_event_handler;
89 gulong size_allocate_handler;
90 gulong pager_keypress_handler;
91 gulong pager_adjustment_handler;
95 GtkTextTag *zcolor_reversed;
97 GHashTable *hyperlinks;
98 struct hyperlink *current_hyperlink;
99 gboolean hyperlink_event_requested;
101 glui32 background_color;
102 cairo_surface_t *backing_store;
103 /* Pager (textbuffer only) */
104 gboolean currently_paging;