summaryrefslogtreecommitdiff
path: root/include/gutenprintui/gutenprintui.h
blob: 2b40d70a892b7a9bbb8a50bf297b0f8a3beae17f (plain)
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
/*
 * "$Id: gutenprintui.h,v 1.2 2005/01/28 03:02:18 rlk Exp $"
 *
 *   Print plug-in for the GIMP.
 *
 *   Copyright 1997-2000 Michael Sweet (mike@easysw.com),
 *	Robert Krawitz (rlk@alum.mit.edu). and Steve Miller (smiller@rni.net
 *
 *   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 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 General Public License
 *   for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 *
 * Revision History:
 *
 *   See ChangeLog
 */

#ifndef GUTENPRINTUI
#define GUTENPRINTUI

#ifdef __cplusplus
extern "C" {
#endif


#ifdef __GNUC__
#define inline __inline__
#endif

#include <gtk/gtk.h>

#include <gutenprint/gutenprint.h>

/*
 * All Gimp-specific code is in this file.
 */

typedef enum
{
  ORIENT_AUTO = -1,
  ORIENT_PORTRAIT = 0,
  ORIENT_LANDSCAPE = 1,
  ORIENT_UPSIDEDOWN = 2,
  ORIENT_SEASCAPE = 3
} orient_t;

/*
 * If this is changed, command_options[] in panel.c must be appropriately
 * updated.
 */
typedef enum
{
  COMMAND_TYPE_DEFAULT,
  COMMAND_TYPE_CUSTOM,
  COMMAND_TYPE_FILE
} command_t;

typedef struct		/**** Printer List ****/
{
  char		*name;		/* Name of printer */
  command_t	command_type;
  char		*queue_name;
  char		*extra_printer_options;
  char		*custom_command;
  char		*current_standard_command;
  char		*output_filename;
  float		scaling;      /* Scaling, percent of printable area */
  orient_t	orientation;
  int		unit;	  /* Units for preview area 0=Inch 1=Metric */
  int		auto_size_roll_feed_paper;
  int		invalid_mask;
  stp_vars_t	*v;
} stpui_plist_t;

typedef struct stpui_image
{
  stp_image_t im;
  void (*transpose)(struct stpui_image *image);
  void (*hflip)(struct stpui_image *image);
  void (*vflip)(struct stpui_image *image);
  void (*rotate_ccw)(struct stpui_image *image);
  void (*rotate_cw)(struct stpui_image *image);
  void (*rotate_180)(struct stpui_image *image);
  void (*crop)(struct stpui_image *image, int left, int top,
	       int right, int bottom);
} stpui_image_t;  

/*
 * Function prototypes
 */
extern void stpui_plist_set_name(stpui_plist_t *p, const char *val);
extern void stpui_plist_set_name_n(stpui_plist_t *p, const char *val, int n);
extern const char *stpui_plist_get_name(const stpui_plist_t *p);

extern void stpui_plist_set_queue_name(stpui_plist_t *p, const char *val);
extern void stpui_plist_set_queue_name_n(stpui_plist_t *p, const char *val, int n);
extern const char *stpui_plist_get_queue_name(const stpui_plist_t *p);

extern void stpui_plist_set_output_filename(stpui_plist_t *p, const char *val);
extern void stpui_plist_set_output_filename_n(stpui_plist_t *p, const char *val, int n);
extern const char *stpui_plist_get_output_filename(const stpui_plist_t *p);

extern void stpui_plist_set_extra_printer_options(stpui_plist_t *p, const char *val);
extern void stpui_plist_set_extra_printer_options_n(stpui_plist_t *p, const char *val, int n);
extern const char *stpui_plist_get_extra_printer_options(const stpui_plist_t *p);

extern void stpui_plist_set_custom_command(stpui_plist_t *p, const char *val);
extern void stpui_plist_set_custom_command_n(stpui_plist_t *p, const char *val, int n);
extern const char *stpui_plist_get_custom_command(const stpui_plist_t *p);

extern void stpui_plist_set_copy_count(stpui_plist_t *p, gint count);
extern int stpui_plist_get_copy_count(const stpui_plist_t *p);

extern void stpui_plist_set_current_standard_command(stpui_plist_t *p, const char *val);
extern void stpui_plist_set_current_standard_command_n(stpui_plist_t *p, const char *val, int n);
extern const char *stpui_plist_get_current_standard_command(const stpui_plist_t *p);

extern void stpui_plist_set_command_type(stpui_plist_t *p, command_t val);
extern command_t stpui_plist_get_command_type(const stpui_plist_t *p);

extern void stpui_set_global_parameter(const char *param, const char *value);
extern const char *stpui_get_global_parameter(const char *param);

extern void stpui_plist_copy(stpui_plist_t *vd, const stpui_plist_t *vs);
extern int stpui_plist_add(const stpui_plist_t *key, int add_only);
extern void stpui_printer_initialize(stpui_plist_t *printer);
extern const stpui_plist_t *stpui_get_current_printer(void);

extern char *stpui_build_standard_print_command(const stpui_plist_t *plist,
						const stp_printer_t *printer);

extern void stpui_set_printrc_file(const char *name);
extern const char * stpui_get_printrc_file(void);
extern void stpui_printrc_load (void);
extern void stpui_get_system_printers (void);
extern void stpui_printrc_save (void);
extern void stpui_set_image_filename(const char *);
extern const char *stpui_get_image_filename(void);
extern void stpui_set_errfunc(stp_outfunc_t wfunc);
extern stp_outfunc_t stpui_get_errfunc(void);
extern void stpui_set_errdata(void *errdata);
extern void *stpui_get_errdata(void);

extern gint stpui_do_print_dialog (void);

extern gint stpui_compute_orientation(void);
extern void stpui_set_image_dimensions(gint width, gint height);
extern void stpui_set_image_resolution(gdouble xres, gdouble yres);
extern void stpui_set_image_type(const char *image_type);
extern void stpui_set_image_raw_channels(gint channels);
extern void stpui_set_image_channel_depth(gint bit_depth);

typedef guchar *(*get_thumbnail_func_t)(void *data, gint *width, gint *height,
					gint *bpp, gint page);
extern void stpui_set_thumbnail_func(get_thumbnail_func_t);
extern get_thumbnail_func_t stpui_get_thumbnail_func(void);
extern void stpui_set_thumbnail_data(void *);
extern void *stpui_get_thumbnail_data(void);

extern int stpui_print(const stpui_plist_t *printer, stpui_image_t *im);


#ifdef __cplusplus
  }
#endif

#endif  /* GUTENPRINTUI */