This file is indexed.

/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_ */