X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpspp-sheet-view.h;h=c0a90106fa74680ac165423b05c42486faee7102;hb=df11254fddfd186f3d947c9891ab85eca20739ab;hp=b13d92d6920fc089d6f15fd204821cd01008124c;hpb=d64431ef201b3031adaca5643e35274c0cee2fa5;p=pspp diff --git a/src/ui/gui/pspp-sheet-view.h b/src/ui/gui/pspp-sheet-view.h index b13d92d692..c0a90106fa 100644 --- a/src/ui/gui/pspp-sheet-view.h +++ b/src/ui/gui/pspp-sheet-view.h @@ -1,5 +1,5 @@ /* 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 @@ -53,6 +53,25 @@ typedef enum 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 */ @@ -65,6 +84,13 @@ typedef enum 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)) @@ -83,6 +109,8 @@ struct _PsppSheetView GtkContainer parent; PsppSheetViewPrivate *GSEAL (priv); + + gboolean dispose_has_run ; }; struct _PsppSheetViewClass @@ -95,18 +123,6 @@ 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); @@ -117,12 +133,9 @@ struct _PsppSheetViewClass 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); @@ -148,9 +161,6 @@ typedef gboolean (*PsppSheetViewSearchEqualFunc) (GtkTreeModel *model 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); @@ -209,9 +219,6 @@ GList *pspp_sheet_view_get_columns (PsppSheetV 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, @@ -230,20 +237,6 @@ void pspp_sheet_view_scroll_to_cell (PsppSheetV 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); @@ -391,39 +384,26 @@ void pspp_sheet_view_set_destroy_count_func (PsppSheetView *tree_vie 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, @@ -445,6 +425,9 @@ void pspp_sheet_view_set_tooltip_column (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