This file is indexed.

/usr/include/libspreadsheet-1.12/spreadsheet/sheet-object-impl.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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
#ifndef _GNM_SHEET_OBJECT_IMPL_H_
# define _GNM_SHEET_OBJECT_IMPL_H_

G_BEGIN_DECLS

#include "sheet-object.h"
#include <goffice/goffice.h>
#include <gsf/gsf-libxml.h>
#include <libxml/tree.h>
#include <glib-object.h>
#include <gtk/gtk.h>

typedef enum {
	SHEET_OBJECT_IS_VISIBLE	= 1 << 0,	/* user selectable */
	SHEET_OBJECT_PRINT	= 1 << 1,
	SHEET_OBJECT_CAN_PRESS	= 1 << 2,
	SHEET_OBJECT_CAN_RESIZE	= 1 << 3,
	SHEET_OBJECT_CAN_EDIT	= 1 << 4,

	/* Gnumeric specific properties */
	SHEET_OBJECT_MOVE_WITH_CELLS	= 1 << 16,
	SHEET_OBJECT_SIZE_WITH_CELLS	= 1 << 17,
	SHEET_OBJECT_OBSCURED		= 1 << 18	/* cells associated with region are hidden */
} SheetObjectFlags;

struct _SheetObject {
	GObject            parent_object;
	Sheet             *sheet;
	GList             *realized_list;
	SheetObjectAnchor  anchor;
	SheetObjectFlags   flags;
	char              *name;
};

typedef void (*SheetObjectActionFunc) (SheetObject *so, SheetControl *sc);
typedef gboolean (*SheetObjectEnableActionFunc) (SheetObject const *so);
typedef struct {
	char const *icon;	/* optionally NULL */
	char const *label;	/* NULL for separators */
	char const *msg_domain;	/* for plugins to specify translations */
	int  submenu;		/* > 1 starts a menu, < 1 end one */
	SheetObjectActionFunc	func;
	SheetObjectEnableActionFunc	enable_func;
} SheetObjectAction;

typedef struct {
	GObjectClass parent_class;

	/* Signals */
	void (*bounds_changed) (SheetObject *so);
	void (*unrealized)     (SheetObject *so);
	void (*signal_pad1)	(void);
	void (*signal_pad2)	(void);

	/* Virtual methods */
	gboolean (*remove_from_sheet) (SheetObject	*so);
	gboolean   (*assign_to_sheet) (SheetObject	*so,
				       Sheet		*sheet);

	SheetObjectView	*(*new_view) (SheetObject	*so,
				      SheetObjectViewContainer *container);
	void        (*populate_menu) (SheetObject	*so,
				      GPtrArray		*actions);
	void	      (*user_config) (SheetObject	*so,
				      SheetControl	*s_control);
	void      (*prep_sax_parser) (SheetObject *so,
				      GsfXMLIn *xin, xmlChar const **attrs,
				      GnmConventions const *convs);
	void        (*write_xml_sax) (SheetObject const *so,
				      GsfXMLOut *output,
				      GnmConventions const *convs);
	void		    (*copy)  (SheetObject *dst,
				      SheetObject const *src);

	void	     (*default_size) (SheetObject const *so,
				      double *w, double *h);

	void	       (*draw_cairo) (SheetObject const *so, cairo_t *cr,
				      double width, double height);

	void          (*foreach_dep) (SheetObject *so,
				      SheetObjectForeachDepFunc func,
				      gpointer user);

	void (*func_pad1)	(void);
	void (*func_pad2)	(void);

	/*
	 * If false, we draw a rectangle where the object is going to
	 * be layed out If true, we draw the object while laying
	 * it out on the sheet.
	 */
	gboolean rubber_band_directly;

	/*
	 * If FALSE, a mouse click will select the object.
	 */
	gboolean interactive;

	char const *xml_export_name;

	void *data_pad1;
	void *data_pad2;
	void *data_pad3;
	void *data_pad4;
} SheetObjectClass;
#define GNM_SO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNM_SO_TYPE, SheetObjectClass))

/***************************************************************************/

struct _SheetObjectView {
	GocGroup base;

	GnmSOResizeMode resize_mode;
};

typedef struct {
	GocGroupClass base;

	void (*active)	   (SheetObjectView *sov, gboolean is_active);
	void (*set_bounds) (SheetObjectView *sov,
			    double const *coords, gboolean visible);
} SheetObjectViewClass;

#define GNM_SO_VIEW_TYPE		(sheet_object_view_get_type ())
#define GNM_SO_VIEW(o)		(G_TYPE_CHECK_INSTANCE_CAST((o), GNM_SO_VIEW_TYPE, SheetObjectView))
#define GNM_IS_SO_VIEW(o)		(G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SO_VIEW_TYPE))
#define GNM_SO_VIEW_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), GNM_SO_VIEW_TYPE, SheetObjectViewIface))
#define GNM_IS_SO_VIEW_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE((k), GNM_SO_VIEW_TYPE))
#define GNM_SO_VIEW_GET_CLASS(o)  (G_TYPE_INSTANCE_GET_CLASS ((o), GNM_SO_VIEW_TYPE, SheetObjectViewClass))

GType	     sheet_object_view_get_type	  (void);
SheetObject *sheet_object_view_get_so	  (SheetObjectView *sov);
void	     sheet_object_view_set_bounds (SheetObjectView *sov,
					   double const *coords,
					   gboolean visible);

/***************************************************************************/

typedef struct {
	GTypeInterface base;

	/* Map between anchors and un-normalized coordinates */
	void (*anchor_to_coords) (SheetObjectViewContainer *sovc,
				  SheetObjectAnchor const *input, double *output);
	void (*coords_to_anchor) (SheetObjectViewContainer *sovc,
				  double const *input, SheetObjectAnchor *output);
} SheetObjectViewContainerIface;

#if 0
void so_vc_anchor_to_coords (SheetObjectViewContainer *sovc,
			     SheetObjectAnchor const *input, double *output);
void so_vc_coords_to_anchor (SheetObjectViewContainer *sovc,
			     double const *input, SheetObjectAnchor *output);
#endif

/***************************************************************************/

typedef struct {
	GTypeInterface base;

	GtkTargetList *(*get_target_list) (SheetObject const *so);
	void           (*write_image)	  (SheetObject const *so,
					   char const *format,
					   double resolution,
					   GsfOutput *output,
					   GError **err);
} SheetObjectImageableIface;

/***************************************************************************/

typedef struct {
	GTypeInterface base;

	GtkTargetList *(*get_target_list) (SheetObject const *so);
	void           (*write_object)	  (SheetObject const *so,
					   char const *format,
					   GsfOutput *output, GError **err,
					   GnmConventions const *convs);
} SheetObjectExportableIface;

G_END_DECLS

#endif /* _GNM_SHEET_OBJECT_IMPL_H_ */