Added popup menus to column and row title areas in datasheet.
[pspp-builds.git] / lib / gtksheet / gtksheet.h
index 8d1e77fe83e4fde12134540ea819e88d6df3691b..c77eb472cac4c84cb14a0f376ca5083746293da1 100644 (file)
@@ -84,6 +84,7 @@ enum
 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_timer;
+  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);
@@ -544,18 +559,11 @@ gtk_sheet_cell_get_text           (const GtkSheet *sheet, gint row, gint col);
 /* clear cell contents */
 void
 gtk_sheet_cell_clear                   (GtkSheet *sheet, gint row, gint col);
-/* clear cell contents and remove links */
-void
-gtk_sheet_cell_delete                  (GtkSheet *sheet, gint row, gint col);
 
 /* clear range contents. If range==NULL the whole sheet will be cleared */
 void
 gtk_sheet_range_clear                  (GtkSheet *sheet,
                                         const GtkSheetRange *range);
-/* clear range contents and remove links */
-void
-gtk_sheet_range_delete                 (GtkSheet *sheet,
-                                        const GtkSheetRange *range);
 
 /* get cell state: GTK_STATE_NORMAL, GTK_STATE_SELECTED */
 GtkStateType