X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=src%2Fwindow.h;h=b3b824a7a09a5782be52199ebdbad13d7c485e71;hb=5a06246277a255fe6e0e465ce0f190541b7b0e16;hp=728a381079c6f0f8cd302d048abcaad19b958b15;hpb=46974bb948c0a7ca82b476a578b6199e438bab41;p=rodin%2Fchimara.git diff --git a/src/window.h b/src/window.h index 728a381..b3b824a 100644 --- a/src/window.h +++ b/src/window.h @@ -8,6 +8,8 @@ #include "error.h" #include "callbacks.h" #include "input.h" +#include "style.h" + enum InputRequestType { @@ -18,23 +20,49 @@ enum InputRequestType INPUT_REQUEST_LINE_UNICODE }; +/** + * glk_window_struct: + * + * This is an opaque structure (see + * Opaque Structures 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 type; - GtkWidget *widget; /* actual widget that does stuff */ - GtkWidget *frame; /* container child */ + /* "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; };