Fixed bug reporting the significance of paired value t-test.
[pspp-builds.git] / lib / gtksheet / gtksheet.h
index 057620a8ba5bc6be32cf4da5c4d7090ab7183f94..4f402252aabfd8473a2d5d31be3f1967ca46ce7e 100644 (file)
@@ -71,19 +71,19 @@ 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_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,10 +103,19 @@ struct _GtkSheetCell
   gint col;
 };
 
+struct _GtkSheetHoverTitle
+{
+  GtkWidget *window;
+  GtkWidget *label;
+  gint row, column;
+};
 
-struct _GtkSheet{
+struct _GtkSheet
+{
   GtkContainer container;
 
+
+  gboolean dispose_has_run;
   GSheetColumn *column_geometry;
   GSheetRow *row_geometry;
 
@@ -117,11 +126,8 @@ struct _GtkSheet{
   GtkSelectionMode selection_mode;
   gboolean autoresize;
   gboolean autoscroll;
-  gboolean clip_text;
   gboolean justify_entry;
 
-  guint freeze_count;
-
   /* Background colors */
   GdkColor bg_color;
   GdkColor grid_color;
@@ -134,32 +140,28 @@ struct _GtkSheet{
      and the width of the shadow border */
   GdkRectangle internal_allocation;
 
-  gchar *name;
-
   gint16 column_requisition;
   gint16 row_requisition;
 
   gboolean rows_resizable;
   gboolean columns_resizable;
 
-  /* Displayed range */
-  GtkSheetRange view;
-
   /* active cell */
   GtkSheetCell active_cell;
-  GtkWidget *sheet_entry;
 
+  /* The GtkEntry used for editing the cells */
+  GtkWidget *entry_widget;
+
+  /* The widget containing entry_widget, or
+     entry_widget itself if no container */
+  GtkWidget *entry_container;
+
+  /* The type of entry_widget */
   GtkType entry_type;
 
   /* expanding selection */
   GtkSheetCell selection_cell;
 
-  /* timer for automatic scroll during selection */
-  gint32 timer;
-  /* timer for flashing clipped range */
-  gint32 clip_timer;
-  gint interval;
-
   /* global selection button */
   GtkWidget *button;
 
@@ -201,6 +203,8 @@ struct _GtkSheet{
   GtkAdjustment *hadjustment;
   GtkAdjustment *vadjustment;
 
+  gint freeze_count;
+
   /* xor GC for the verticle drag line */
   GdkGC *xor_gc;
 
@@ -222,8 +226,9 @@ struct _GtkSheet{
   /* current range being dragged */
   GtkSheetRange drag_range;
 
-  /* clipped range */
-  GtkSheetRange clip_range;
+  /* Used for the subtitle (popups) */
+  gint motion_timer;
+  GtkSheetHoverTitle *hover_window;
 };
 
 struct _GtkSheetClass
@@ -240,8 +245,6 @@ struct _GtkSheetClass
 
  void (*select_range)          (GtkSheet *sheet, GtkSheetRange *range);
 
- void (*clip_range)            (GtkSheet *sheet, GtkSheetRange *clip_range);
-
  void (*resize_range)          (GtkSheet *sheet,
                                GtkSheetRange *old_range,
                                GtkSheetRange *new_range);
@@ -260,23 +263,8 @@ struct _GtkSheetClass
  gboolean (*activate)          (GtkSheet *sheet,
                                gint row, gint column);
 
- void (*set_cell)              (GtkSheet *sheet,
-                               gint row, gint column);
-
- void (*clear_cell)            (GtkSheet *sheet,
-                               gint row, gint column);
-
  void (*changed)               (GtkSheet *sheet,
                                gint row, gint column);
-
- void (*new_column_width)       (GtkSheet *sheet,
-                                 gint col,
-                                 guint width);
-
- void (*new_row_height)        (GtkSheet *sheet,
-                                 gint row,
-                                 guint height);
-
 };
 
 GType gtk_sheet_get_type (void);
@@ -285,7 +273,6 @@ GtkType gtk_sheet_range_get_type (void);
 
 /* create a new sheet */
 GtkWidget * gtk_sheet_new (GSheetRow *vgeo, GSheetColumn *hgeo,
-                          const gchar *title,
                           GSheetModel *model);
 
 
@@ -303,13 +290,11 @@ gtk_sheet_construct_browser               (GtkSheet *sheet,
 GtkWidget *
 gtk_sheet_new_with_custom_entry        (GSheetRow *vgeo,
                                         GSheetColumn *hgeo,
-                                         const gchar *title,
                                         GtkType entry_type);
 void
 gtk_sheet_construct_with_custom_entry  (GtkSheet *sheet,
                                         GSheetRow *vgeo,
                                         GSheetColumn *hgeo,
-                                         const gchar *title,
                                         GtkType entry_type);
 /* change scroll adjustments */
 void
@@ -344,6 +329,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);
 
@@ -359,12 +349,6 @@ gtk_sheet_set_autoscroll           (GtkSheet *sheet, gboolean autoscroll);
 gboolean
 gtk_sheet_autoscroll                   (GtkSheet *sheet);
 
-void
-gtk_sheet_set_clip_text                        (GtkSheet *sheet, gboolean clip_text);
-
-gboolean
-gtk_sheet_clip_text                    (GtkSheet *sheet);
-
 void
 gtk_sheet_set_justify_entry            (GtkSheet *sheet, gboolean justify);
 
@@ -441,7 +425,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,
@@ -452,6 +436,11 @@ void
 gtk_sheet_show_row_titles              (GtkSheet *sheet);
 void
 gtk_sheet_hide_row_titles              (GtkSheet *sheet);
+void
+gtk_sheet_show_column_titles           (GtkSheet *sheet);
+void
+gtk_sheet_hide_column_titles           (GtkSheet *sheet);
+
 gboolean
 gtk_sheet_row_titles_visible           (GtkSheet *sheet);
 
@@ -494,16 +483,6 @@ void
 gtk_sheet_select_column                (GtkSheet * sheet,
                                        gint column);
 
-/* save selected range to "clipboard" */
-void
-gtk_sheet_clip_range                   (GtkSheet *sheet, const GtkSheetRange *range);
-/* free clipboard */
-void
-gtk_sheet_unclip_range                 (GtkSheet *sheet);
-
-gboolean
-gtk_sheet_in_clip                      (GtkSheet *sheet);
-
 /* get scrollbars adjustment */
 GtkAdjustment *
 gtk_sheet_get_vadjustment              (GtkSheet * sheet);
@@ -523,6 +502,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 +527,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
@@ -702,10 +678,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