Made the datasheet redraw itself when new data is loaded.
[pspp-builds.git] / lib / gtksheet / gtksheet.h
index 057620a8ba5bc6be32cf4da5c4d7090ab7183f94..ca0dc4f9db49907add483a41beb7991814f2b23a 100644 (file)
@@ -71,19 +71,20 @@ enum
 
 /* Public flags, for compatibility */
 
-#define GTK_SHEET_ROW_FROZEN(sheet)      !gtk_sheet_rows_resizable(sheet)
-#define GTK_SHEET_COLUMN_FROZEN(sheet)   !gtk_sheet_columns_resizable(sheet)
-#define GTK_SHEET_AUTORESIZE(sheet)      gtk_sheet_autoresize(sheet)
-#define GTK_SHEET_CLIP_TEXT(sheet)       gtk_sheet_clip_text(sheet)
-#define GTK_SHEET_ROW_TITLES_VISIBLE(sheet)   gtk_sheet_row_titles_visible(sheet)
-#define GTK_SHEET_COL_TITLES_VISIBLE(sheet)   gtk_sheet_column_titles_visible(sheet)
-#define GTK_SHEET_AUTO_SCROLL(sheet)     gtk_sheet_autoscroll(sheet)
-#define GTK_SHEET_JUSTIFY_ENTRY(sheet)   gtk_sheet_justify_entry(sheet)
+#define GTK_SHEET_ROW_FROZEN(sheet)      !gtk_sheet_rows_resizable (sheet)
+#define GTK_SHEET_COLUMN_FROZEN(sheet)   !gtk_sheet_columns_resizable (sheet)
+#define GTK_SHEET_AUTORESIZE(sheet)      gtk_sheet_autoresize (sheet)
+#define GTK_SHEET_CLIP_TEXT(sheet)       gtk_sheet_clip_text (sheet)
+#define GTK_SHEET_ROW_TITLES_VISIBLE(sheet)   gtk_sheet_row_titles_visible (sheet)
+#define GTK_SHEET_COL_TITLES_VISIBLE(sheet)   gtk_sheet_column_titles_visible (sheet)
+#define GTK_SHEET_AUTO_SCROLL(sheet)     gtk_sheet_autoscroll (sheet)
+#define GTK_SHEET_JUSTIFY_ENTRY(sheet)   gtk_sheet_justify_entry (sheet)
 
 
 typedef struct _GtkSheetClass GtkSheetClass;
 typedef struct _GtkSheetCellAttr     GtkSheetCellAttr;
 typedef struct _GtkSheetCell GtkSheetCell;
+typedef struct _GtkSheetHoverTitle GtkSheetHoverTitle;
 
 
 struct _GtkSheetCellAttr
@@ -103,6 +104,12 @@ struct _GtkSheetCell
   gint col;
 };
 
+struct _GtkSheetHoverTitle
+{
+  GtkWidget *window;
+  GtkWidget *label;
+  gint row, column;
+};
 
 struct _GtkSheet{
   GtkContainer container;
@@ -142,9 +149,6 @@ struct _GtkSheet{
   gboolean rows_resizable;
   gboolean columns_resizable;
 
-  /* Displayed range */
-  GtkSheetRange view;
-
   /* active cell */
   GtkSheetCell active_cell;
   GtkWidget *sheet_entry;
@@ -154,8 +158,6 @@ struct _GtkSheet{
   /* expanding selection */
   GtkSheetCell selection_cell;
 
-  /* timer for automatic scroll during selection */
-  gint32 timer;
   /* timer for flashing clipped range */
   gint32 clip_timer;
   gint interval;
@@ -224,6 +226,10 @@ struct _GtkSheet{
 
   /* clipped range */
   GtkSheetRange clip_range;
+
+  /* Used for the subtitle (popups) */
+  gint motion_events;
+  GtkSheetHoverTitle *hover_window;
 };
 
 struct _GtkSheetClass
@@ -344,6 +350,11 @@ gtk_sheet_get_rows_count           (GtkSheet *sheet);
 void
 gtk_sheet_get_visible_range            (GtkSheet *sheet,
                                         GtkSheetRange *range);
+
+void
+gtk_sheet_get_selected_range           (GtkSheet *sheet,
+                                        GtkSheetRange *range);
+
 void
 gtk_sheet_set_selection_mode           (GtkSheet *sheet, gint mode);
 
@@ -441,7 +452,7 @@ gtk_sheet_row_button_justify                (GtkSheet *sheet,
  * 1.0 being bottom or right; if row or column is negative then there
  * is no change */
 void
-gtk_sheet_moveto (GtkSheet * sheet,
+gtk_sheet_moveto (GtkSheet *sheet,
                  gint row,
                  gint column,
                  gfloat row_align,
@@ -523,6 +534,10 @@ void gtk_sheet_unselect_range              (GtkSheet *sheet);
 gboolean
 gtk_sheet_set_active_cell              (GtkSheet *sheet,
                                        gint row, gint column);
+
+/* Sets *ROW and *COLUMN to be the coordinates of the active cell.
+   ROW and/or COLUMN may be null if the caller is not interested in their
+   values */
 void
 gtk_sheet_get_active_cell              (GtkSheet *sheet,
                                        gint *row, gint *column);
@@ -702,10 +717,10 @@ gtk_sheet_button_attach                   (GtkSheet *sheet,
 
 
 
-void           gtk_sheet_set_model(GtkSheet *sheet,
+void           gtk_sheet_set_model (GtkSheet *sheet,
                                   GSheetModel *model);
 
-GSheetModel * gtk_sheet_get_model(const GtkSheet *sheet);
+GSheetModel * gtk_sheet_get_model (const GtkSheet *sheet);
 
 
 #ifdef __cplusplus