#include "stream.h"
#include "error.h"
+#include "callbacks.h"
+#include "input.h"
+#include "style.h"
+
enum InputRequestType
{
INPUT_REQUEST_LINE_UNICODE
};
+/**
+ * glk_window_struct:
+ *
+ * This is an opaque structure (see <link linkend="chimara-Opaque-Structures">
+ * Opaque Structures</link> and should not be accessed directly.
+ */
struct glk_window_struct
{
- glui32 rock;
+ /*< private >*/
+ glui32 magic, rock;
/* Pointer to the node in the global tree that contains this window */
GNode *window_node;
/* Window parameters */
- glui32 window_type;
+ glui32 type;
+ /* "widget" is the actual widget with the window's functionality */
GtkWidget *widget;
+ /* "frame" is the widget that is the child of the ChimaraGlk container, such
+ as a scroll window. It may be the same as "widget". */
+ GtkWidget *frame;
+ /* Width and height of the window's size units, in pixels */
+ int unit_width;
+ int unit_height;
+ /* Streams associated with the window */
strid_t window_stream;
strid_t echo_stream;
+ /* Width and height of the window, in characters (text grids only) */
+ glui32 width;
+ glui32 height;
+ /* Window split data (pair windows only) */
+ winid_t key_window;
+ glui32 split_method;
+ glui32 constraint_size;
/* Input request stuff */
enum InputRequestType input_request_type;
gchar *line_input_buffer;
glui32 *line_input_buffer_unicode;
glui32 line_input_buffer_max_len;
+ gboolean mouse_input_requested;
+ /* Line input field (text grids only) */
+ glui32 input_length;
+ GtkTextChildAnchor *input_anchor;
+ GtkWidget *input_entry;
+ /* Signal handlers */
+ gulong keypress_handler;
+ gulong insert_text_handler;
};
#endif