/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2011 Free Software Foundation, Inc.
+ Copyright (C) 2011, 2012, 2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
GType pspp_sheet_view_grid_lines_get_type (void) G_GNUC_CONST;
#define PSPP_TYPE_SHEET_VIEW_GRID_LINES (pspp_sheet_view_grid_lines_get_type ())
+/* A "special cell" is a cell that is editable or activatable. When a row that
+ * contains a special cell is selected, the cursor is drawn around a single
+ * cell; when other rows are selected, the cursor is drawn around the entire
+ * row.
+ *
+ * With the default of "detect", whether a given row contains a special cell is
+ * detected automatically. This is the best choice most of the time. For
+ * sheet views that contain more than 100 columns, an explicit "yes" or "no"
+ * improves performance. */
+typedef enum
+{
+ PSPP_SHEET_VIEW_SPECIAL_CELLS_DETECT,
+ PSPP_SHEET_VIEW_SPECIAL_CELLS_YES,
+ PSPP_SHEET_VIEW_SPECIAL_CELLS_NO,
+} PsppSheetViewSpecialCells;
+
+GType pspp_sheet_view_special_cells_get_type (void) G_GNUC_CONST;
+#define PSPP_TYPE_SHEET_VIEW_SPECIAL_CELLS (pspp_sheet_view_special_cells_get_type ())
+
typedef enum
{
/* drop before/after this row */
PSPP_SHEET_VIEW_DROP_INTO_OR_AFTER
} PsppSheetViewDropPosition;
+typedef enum
+{
+ PSPP_SHEET_SELECT_MODE_TOGGLE = 1 << 0,
+ PSPP_SHEET_SELECT_MODE_EXTEND = 1 << 1
+}
+PsppSheetSelectMode;
+
#define PSPP_TYPE_SHEET_VIEW (pspp_sheet_view_get_type ())
#define PSPP_SHEET_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PSPP_TYPE_SHEET_VIEW, PsppSheetView))
#define PSPP_SHEET_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PSPP_TYPE_SHEET_VIEW, PsppSheetViewClass))
GtkContainer parent;
PsppSheetViewPrivate *GSEAL (priv);
+
+ gboolean dispose_has_run ;
};
struct _PsppSheetViewClass
void (* row_activated) (PsppSheetView *tree_view,
GtkTreePath *path,
PsppSheetViewColumn *column);
- gboolean (* test_expand_row) (PsppSheetView *tree_view,
- GtkTreeIter *iter,
- GtkTreePath *path);
- gboolean (* test_collapse_row) (PsppSheetView *tree_view,
- GtkTreeIter *iter,
- GtkTreePath *path);
- void (* row_expanded) (PsppSheetView *tree_view,
- GtkTreeIter *iter,
- GtkTreePath *path);
- void (* row_collapsed) (PsppSheetView *tree_view,
- GtkTreeIter *iter,
- GtkTreePath *path);
void (* columns_changed) (PsppSheetView *tree_view);
void (* cursor_changed) (PsppSheetView *tree_view);
gboolean (* select_all) (PsppSheetView *tree_view);
gboolean (* unselect_all) (PsppSheetView *tree_view);
gboolean (* select_cursor_row) (PsppSheetView *tree_view,
- gboolean start_editing);
+ gboolean start_editing,
+ PsppSheetSelectMode mode);
gboolean (* toggle_cursor_row) (PsppSheetView *tree_view);
- gboolean (* expand_collapse_cursor_row) (PsppSheetView *tree_view,
- gboolean logical,
- gboolean expand,
- gboolean open_all);
gboolean (* select_cursor_parent) (PsppSheetView *tree_view);
gboolean (* start_interactive_search) (PsppSheetView *tree_view);
const gchar *key,
GtkTreeIter *iter,
gpointer search_data);
-typedef gboolean (*PsppSheetViewRowSeparatorFunc) (GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer data);
typedef void (*PsppSheetViewSearchPositionFunc) (PsppSheetView *tree_view,
GtkWidget *search_dialog,
gpointer user_data);
void pspp_sheet_view_move_column_after (PsppSheetView *tree_view,
PsppSheetViewColumn *column,
PsppSheetViewColumn *base_column);
-void pspp_sheet_view_set_expander_column (PsppSheetView *tree_view,
- PsppSheetViewColumn *column);
-PsppSheetViewColumn *pspp_sheet_view_get_expander_column (PsppSheetView *tree_view);
void pspp_sheet_view_set_column_drag_function (PsppSheetView *tree_view,
PsppSheetViewColumnDropFunc func,
gpointer user_data,
void pspp_sheet_view_row_activated (PsppSheetView *tree_view,
GtkTreePath *path,
PsppSheetViewColumn *column);
-void pspp_sheet_view_expand_all (PsppSheetView *tree_view);
-void pspp_sheet_view_collapse_all (PsppSheetView *tree_view);
-void pspp_sheet_view_expand_to_path (PsppSheetView *tree_view,
- GtkTreePath *path);
-gboolean pspp_sheet_view_expand_row (PsppSheetView *tree_view,
- GtkTreePath *path,
- gboolean open_all);
-gboolean pspp_sheet_view_collapse_row (PsppSheetView *tree_view,
- GtkTreePath *path);
-void pspp_sheet_view_map_expanded_rows (PsppSheetView *tree_view,
- PsppSheetViewMappingFunc func,
- gpointer data);
-gboolean pspp_sheet_view_row_expanded (PsppSheetView *tree_view,
- GtkTreePath *path);
void pspp_sheet_view_set_reorderable (PsppSheetView *tree_view,
gboolean reorderable);
gboolean pspp_sheet_view_get_reorderable (PsppSheetView *tree_view);
gpointer data,
GDestroyNotify destroy);
-void pspp_sheet_view_set_fixed_height_mode (PsppSheetView *tree_view,
- gboolean enable);
-gboolean pspp_sheet_view_get_fixed_height_mode (PsppSheetView *tree_view);
void pspp_sheet_view_set_hover_selection (PsppSheetView *tree_view,
gboolean hover);
gboolean pspp_sheet_view_get_hover_selection (PsppSheetView *tree_view);
-void pspp_sheet_view_set_hover_expand (PsppSheetView *tree_view,
- gboolean expand);
-gboolean pspp_sheet_view_get_hover_expand (PsppSheetView *tree_view);
void pspp_sheet_view_set_rubber_banding (PsppSheetView *tree_view,
gboolean enable);
gboolean pspp_sheet_view_get_rubber_banding (PsppSheetView *tree_view);
gboolean pspp_sheet_view_is_rubber_banding_active (PsppSheetView *tree_view);
-PsppSheetViewRowSeparatorFunc pspp_sheet_view_get_row_separator_func (PsppSheetView *tree_view);
-void pspp_sheet_view_set_row_separator_func (PsppSheetView *tree_view,
- PsppSheetViewRowSeparatorFunc func,
- gpointer data,
- GDestroyNotify destroy);
-
PsppSheetViewGridLines pspp_sheet_view_get_grid_lines (PsppSheetView *tree_view);
void pspp_sheet_view_set_grid_lines (PsppSheetView *tree_view,
PsppSheetViewGridLines grid_lines);
-gboolean pspp_sheet_view_get_enable_tree_lines (PsppSheetView *tree_view);
-void pspp_sheet_view_set_enable_tree_lines (PsppSheetView *tree_view,
- gboolean enabled);
-void pspp_sheet_view_set_show_expanders (PsppSheetView *tree_view,
- gboolean enabled);
-gboolean pspp_sheet_view_get_show_expanders (PsppSheetView *tree_view);
-void pspp_sheet_view_set_level_indentation (PsppSheetView *tree_view,
- gint indentation);
-gint pspp_sheet_view_get_level_indentation (PsppSheetView *tree_view);
+
+PsppSheetViewSpecialCells pspp_sheet_view_get_special_cells (PsppSheetView *tree_view);
+void pspp_sheet_view_set_special_cells (PsppSheetView *tree_view,
+ PsppSheetViewSpecialCells);
+
+int pspp_sheet_view_get_fixed_height (const PsppSheetView *);
+void pspp_sheet_view_set_fixed_height (PsppSheetView *,
+ int fixed_height);
/* Convenience functions for setting tooltips */
void pspp_sheet_view_set_tooltip_row (PsppSheetView *tree_view,
gint column);
gint pspp_sheet_view_get_tooltip_column (PsppSheetView *tree_view);
+void pspp_sheet_view_stop_editing (PsppSheetView *tree_view,
+ gboolean cancel_editing);
+
G_END_DECLS