Convert the pager to a GtkOverlay
[projects/chimara/chimara.git] / libchimara / window.h
index bb9a2f66f945c2b61b4dfc69fadc8432154e9b25..4c753c39b587117c598812128bf5513a17e22bb0 100644 (file)
@@ -42,6 +42,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;
@@ -64,6 +68,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;
@@ -77,16 +86,19 @@ struct glk_window_struct
        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;