/usr/include/libspreadsheet-1.12/spreadsheet/sheet-view.h is in gnumeric 1.12.32-1+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
#ifndef _GNM_SHEET_VIEW_H_
# define _GNM_SHEET_VIEW_H_
#include "gnumeric.h"
#include <glib-object.h>
G_BEGIN_DECLS
typedef enum {
GNM_SHEET_VIEW_NORMAL_MODE,
GNM_SHEET_VIEW_PAGE_BREAK_MODE,
GNM_SHEET_VIEW_LAYOUT_MODE
} GnmSheetViewMode;
struct _SheetView {
GObject base;
Sheet *sheet;
WorkbookView *sv_wbv;
GPtrArray *controls;
GList *ants; /* animated cursors */
/* an ordered list of Ranges, the first of which corresponds to the
* a normalized version of SheetView::{cursor.base_corner:move_corner}
*/
GSList *selections;
GSList *selections_simplified;
int selection_mode; /* GnmSelectionMode */
GnmCellPos edit_pos; /* Cell that would be edited */
GnmCellPos edit_pos_real; /* Even in the middle of a merged cell */
int first_tab_col; /* where to jump to after an Enter */
struct {
/* Static corner to rubber band the selection range around */
GnmCellPos base_corner;
/* Corner that is moved when the selection range is extended */
GnmCellPos move_corner;
} cursor;
GnmCellPos initial_top_left;
GnmCellPos frozen_top_left;
GnmCellPos unfrozen_top_left;
/* state flags */
unsigned char enable_insert_rows;
unsigned char enable_insert_cols;
unsigned char enable_insert_cells;
unsigned char reposition_selection;
GnmSheetViewMode view_mode;
/* TODO : these should be replaced with Dependents when we support
* format based dependents
*/
unsigned char selection_content_changed;
struct {
unsigned char location;
unsigned char content; /* entered content NOT value */
unsigned char style;
} edit_pos_changed;
guint auto_expr_timer;
};
typedef GObjectClass SheetViewClass;
#define GNM_SV_TYPE (sheet_view_get_type ())
#define GNM_SV(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNM_SV_TYPE, SheetView))
#define GNM_IS_SV(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNM_SV_TYPE))
#define GNM_SV_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNM_SV_TYPE, SheetViewClass))
/* Lifecycle */
GType sheet_view_get_type (void);
SheetView *sheet_view_new (Sheet *sheet, WorkbookView *wbv);
void sv_attach_control (SheetView *sv, SheetControl *sc);
void sv_detach_control (SheetControl *sc);
void sv_weak_ref (SheetView *sv, SheetView **ptr);
void sv_weak_unref (SheetView **ptr);
void sv_update (SheetView *sv);
void sv_dispose (SheetView *sv);
/* Information */
Sheet *sv_sheet (SheetView const *sv);
WorkbookView *sv_wbv (SheetView const *sv);
gboolean sv_is_frozen (SheetView const *sv);
GnmFilter *sv_editpos_in_filter (SheetView const *sv);
GnmFilter *sv_selection_intersects_filter_rows (SheetView const *sv);
GnmRange *sv_selection_extends_filter (SheetView const *sv,
GnmFilter const *f);
GnmSheetSlicer *sv_editpos_in_slicer (SheetView const *sv);
/* Manipulation */
void sv_flag_status_update_pos (SheetView *sv, GnmCellPos const *pos);
void sv_flag_status_update_range (SheetView *sv, GnmRange const *range);
void sv_flag_style_update_range (SheetView *sv, GnmRange const *range);
void sv_flag_selection_change (SheetView *sv);
void sv_unant (SheetView *sv);
void sv_ant (SheetView *sv, GList *ranges);
gboolean sv_selection_copy (SheetView *sv, WorkbookControl *wbc);
gboolean sv_selection_cut (SheetView *sv, WorkbookControl *wbc);
void sv_make_cell_visible (SheetView *sv, int col, int row,
gboolean couple_panes);
void sv_redraw_range (SheetView *sv, GnmRange const *r);
void sv_redraw_headers (SheetView const *sheet,
gboolean col, gboolean row,
GnmRange const* r /* optional == NULL */);
void sv_cursor_set (SheetView *sv,
GnmCellPos const *edit,
int base_col, int base_row,
int move_col, int move_row,
GnmRange const *bound);
void sv_set_edit_pos (SheetView *sv, GnmCellPos const *pos);
void sv_freeze_panes (SheetView *sv,
GnmCellPos const *frozen_top_left,
GnmCellPos const *unfrozen_top_left);
void sv_panes_insdel_colrow (SheetView *sv, gboolean is_cols,
gboolean is_insert, int start, int count);
void sv_set_initial_top_left(SheetView *sv, int col, int row);
#define SHEET_VIEW_FOREACH_CONTROL(sv, control, code) \
do { \
int j; \
GPtrArray *controls = (sv)->controls; \
if (controls != NULL) /* Reverse is important during destruction */ \
for (j = controls->len; j-- > 0 ;) { \
SheetControl *control = \
g_ptr_array_index (controls, j); \
code \
} \
} while (0)
G_END_DECLS
#endif /* _GNM_SHEET_VIEW_H_ */
|