Change I/O signals to pass a unique window ID
[projects/chimara/chimara.git] / libchimara / window.h
index c67654a15b3f6a3fcbaad2442de719412a9272c8..1ce7aaa6d3d40a498fd17a3019fbde49a7b00224 100644 (file)
@@ -32,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;
@@ -42,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;
@@ -82,7 +87,6 @@ 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 */
@@ -95,9 +99,9 @@ struct glk_window_struct
        gboolean hyperlink_event_requested;
        /* Graphics */
        glui32 background_color;
+       cairo_surface_t *backing_store;
        /* Pager (textbuffer only) */
        gboolean currently_paging;
-       PangoLayout *pager_layout;
 };
 
 #endif