X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fwindow.h;h=1ce7aaa6d3d40a498fd17a3019fbde49a7b00224;hb=17743f862a0295c3b9bdead66d05a74deaddea0e;hp=1d183a34357983881f00bb8fbbf4b79a5811f1a8;hpb=632ef9d57c270608e01b1afdba772da0da7993ca;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/window.h b/libchimara/window.h index 1d183a3..1ce7aaa 100644 --- a/libchimara/window.h +++ b/libchimara/window.h @@ -10,6 +10,7 @@ #include "style.h" #include "hyperlink.h" #include "mouse.h" +#include "graphics.h" enum InputRequestType @@ -31,6 +32,7 @@ struct glk_window_struct { /*< private >*/ glui32 magic, rock; + char *librock; /* "library rock" - unique string identifier */ gidispatch_rock_t disprock; /* Pointer to the node in the global tree that contains this window */ GNode *window_node; @@ -41,6 +43,10 @@ struct glk_window_struct /* "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; + /* In text buffer windows, the scrolled window and the pager are extra + widgets that are neither "widget" nor "frame" */ + GtkWidget *scrolledwindow; + GtkWidget *pager; /* Width and height of the window's size units, in pixels */ int unit_width; int unit_height; @@ -63,6 +69,11 @@ struct glk_window_struct 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; @@ -75,11 +86,22 @@ struct glk_window_struct gulong tag_event_handler; gulong shutdown_keypress_handler; gulong button_press_event_handler; + gulong size_allocate_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; }; #endif