This file is indexed.

/usr/include/libgnomeprint-2.2/libgnomeprint/gnome-print.h is in libgnomeprint2.2-dev 2.18.8-3ubuntu1.

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
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
 *  gnome-print.h: drawing functions api
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Library General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *  Authors:
 *    Raph Levien <raph@acm.org>
 *    Miguel de Icaza <miguel@kernel.org>
 *    Lauris Kaplinski <lauris@ximian.com>
 *    Chema Celorio <chema@celorio.com>
 *
 *  Copyright (C) 1999-2001 Ximian Inc. and authors
 *
 */

#ifndef __GNOME_PRINT_H__
#define __GNOME_PRINT_H__

#include <glib.h>

G_BEGIN_DECLS

/*
 * Notes
 *
 * GnomePrintContexts are both actual drivers and various frontends to
 * further job-processing objects. The API is always the same. Output
 * area is not constrained, so applications has to decide the effective
 * page size. The job may or may not be clipped to the effective page
 * size in the printing pipeline, so in multipage layouts your output
 * may be run out of component page area. If unsure, clip full page
 * manually, as the first graphic operation.
 *
 * All graphic operators have to be invoked between beginpage/showpage
 * pairs, doing otherwise the given method is ignored.
 *
 * If printing is completed, print context should be closed (to flush
 * all data). Closing does not unref print context, so if you have
 * obtained reference to it, release that after closing. Destroying
 * unclosed context discards all printed data (think about it as
 * canceling print a job).
 */

#include <glib-object.h>
#include <libgnomeprint/gnome-print-config.h>
#include <libgnomeprint/gnome-font.h>
#include <libgnomeprint/gnome-glyphlist.h>
#include <libart_lgpl/art_vpath.h>
#include <libart_lgpl/art_bpath.h>

/*
 * Result (error) codes
 *
 * These are the currently defined values for gnome_print functions
 * results feel free to add more, if it makes sense.
 * The rule is, that errors have to be negative, as several
 * methods return num bytes written, >= 0 has to be interpreted
 * as success.
 *
 */
typedef enum {
	GNOME_PRINT_OK = 0,
	GNOME_PRINT_ERROR_UNKNOWN        = -1,
	GNOME_PRINT_ERROR_BADVALUE       = -2,
	GNOME_PRINT_ERROR_NOCURRENTPOINT = -3,
	GNOME_PRINT_ERROR_NOCURRENTPATH  = -4,
	GNOME_PRINT_ERROR_TEXTCORRUPT    = -5,
	GNOME_PRINT_ERROR_BADCONTEXT     = -6,
	GNOME_PRINT_ERROR_NOPAGE         = -7,
	GNOME_PRINT_ERROR_NOMATCH        = -8
} GnomePrintReturnCode;

#define GNOME_TYPE_PRINT_CONTEXT  (gnome_print_context_get_type ())
#define GNOME_PRINT_CONTEXT(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNOME_TYPE_PRINT_CONTEXT, GnomePrintContext))
#define GNOME_IS_PRINT_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNOME_TYPE_PRINT_CONTEXT))

typedef struct _GnomePrintContext GnomePrintContext;

GType               gnome_print_context_get_type (void);

GnomePrintContext * gnome_print_context_new (GnomePrintConfig *config);
gint                gnome_print_context_close (GnomePrintContext *pc);
gint                gnome_print_context_create_transport (GnomePrintContext *ctx);

/*
 * Drawing methods
 *
 * These behave similarly to standard PostScript operators, with some
 * slight differences. Most importantly ALL path output operations
 * (fill, stroke, clip) clear the currentpath.
 */

/* Path manipulation */
gint gnome_print_newpath    (GnomePrintContext *pc);
gint gnome_print_moveto     (GnomePrintContext *pc, gdouble x, gdouble y);
gint gnome_print_lineto     (GnomePrintContext *pc, gdouble x, gdouble y);
gint gnome_print_curveto    (GnomePrintContext *pc, gdouble x1, gdouble y1, gdouble x2, gdouble y2, gdouble x3, gdouble y3);
gint gnome_print_closepath  (GnomePrintContext *pc);
gint gnome_print_strokepath (GnomePrintContext *pc);
gint gnome_print_bpath      (GnomePrintContext *pc, const ArtBpath *bpath, gboolean append);
gint gnome_print_vpath      (GnomePrintContext *pc, const ArtVpath *vpath, gboolean append);
gint gnome_print_arcto      (GnomePrintContext *pc, gdouble x, gdouble y, gdouble radius, gdouble angle1, gdouble angle2, gint direction);

/* Graphic state manipulation */
gint gnome_print_setrgbcolor   (GnomePrintContext *pc, gdouble r, gdouble g, gdouble b);
gint gnome_print_setopacity    (GnomePrintContext *pc, gdouble opacity);
gint gnome_print_setlinewidth  (GnomePrintContext *pc, gdouble width);
gint gnome_print_setmiterlimit (GnomePrintContext *pc, gdouble limit);
gint gnome_print_setlinejoin   (GnomePrintContext *pc, gint jointype);
gint gnome_print_setlinecap    (GnomePrintContext *pc, gint captype);
gint gnome_print_setdash       (GnomePrintContext *pc, gint n_values, const gdouble *values, gdouble offset);
gint gnome_print_setfont       (GnomePrintContext *pc, const GnomeFont *font);
gint gnome_print_clip          (GnomePrintContext *pc);
gint gnome_print_eoclip        (GnomePrintContext *pc);

/* CTM manipulation */
gint gnome_print_concat    (GnomePrintContext *pc, const gdouble *matrix);
gint gnome_print_scale     (GnomePrintContext *pc, gdouble sx, gdouble sy);
gint gnome_print_rotate    (GnomePrintContext *pc, gdouble theta);
gint gnome_print_translate (GnomePrintContext *pc, gdouble x, gdouble y);

/* Stack */
gint gnome_print_gsave    (GnomePrintContext *pc);
gint gnome_print_grestore (GnomePrintContext *pc);

/* Painting */
gint gnome_print_fill   (GnomePrintContext *pc);
gint gnome_print_eofill (GnomePrintContext *pc);
gint gnome_print_stroke (GnomePrintContext *pc);

/* Text drawing */
gint gnome_print_show       (GnomePrintContext *pc, const guchar *text);
gint gnome_print_show_sized (GnomePrintContext *pc, const guchar *text, gint bytes);
gint gnome_print_glyphlist  (GnomePrintContext *pc, GnomeGlyphList *glyphlist);

/* Images */
gint gnome_print_grayimage (GnomePrintContext *pc, const guchar *data, gint width, gint height, gint rowstride);
gint gnome_print_rgbimage  (GnomePrintContext *pc, const guchar *data, gint width, gint height, gint rowstride);
gint gnome_print_rgbaimage (GnomePrintContext *pc, const guchar *data, gint width, gint height, gint rowstride);

/* Page */
gint gnome_print_beginpage (GnomePrintContext *pc, const guchar *name);
gint gnome_print_showpage (GnomePrintContext *pc);
gint gnome_print_end_doc (GnomePrintContext *pc);

/*
 * Convenience methods for printing straight lines and rectangles.
 */
gint gnome_print_line_stroked (GnomePrintContext *pc, gdouble x0, gdouble y0, gdouble x1, gdouble y1);
gint gnome_print_rect_stroked (GnomePrintContext *pc, gdouble x, gdouble y, gdouble width, gdouble height);
gint gnome_print_rect_filled  (GnomePrintContext *pc, gdouble x, gdouble y, gdouble width, gdouble height);

G_END_DECLS

#endif /* __GNOME_PRINT_H__ */