/*
*
* 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, see .
*
*
* Revision History:
*
* See ChangeLog
*/
#ifndef GUTENPRINTUI_INTERNAL_H
#define GUTENPRINTUI_INTERNAL_H
#ifdef __GNUC__
#ifndef inline
#define inline __inline__
#endif
#endif
#include
#include
#include
typedef struct
{
GtkWidget *checkbox;
int current;
int deflt;
} boolean_option_t;
typedef struct
{
gint callback_id;
char *default_val;
stp_string_list_t *params;
GtkWidget *combo;
GtkWidget *label;
} list_option_t;
typedef struct
{
GtkObject *adjustment;
gfloat upper;
gfloat lower;
gfloat deflt;
gfloat scale;
} float_option_t;
typedef struct
{
GtkWidget *label;
GtkWidget *button;
GtkWidget *dialog;
GtkWidget *gamma_curve;
const char *help_text;
stp_curve_t *current;
const stp_curve_t *deflt;
gboolean is_visible;
} curve_option_t;
typedef struct
{
GtkWidget *f_label;
GtkWidget *f_entry;
GtkWidget *f_button;
GtkWidget *f_browser;
gboolean f_is_visible;
} file_option_t;
typedef struct
{
const stp_parameter_t *fast_desc;
int is_active;
int is_enabled;
int reset_all;
GtkWidget *checkbox;
GtkWidget *reset_btn;
union {
list_option_t list;
float_option_t flt;
curve_option_t curve;
boolean_option_t bool;
file_option_t file;
} info;
} option_t;
typedef struct
{
const char *name;
const char *help;
gdouble scale;
GtkWidget *checkbox;
const char *format;
} unit_t;
typedef struct
{
const char *name;
const char *help;
const char *value;
GtkWidget *button;
} radio_group_t;
typedef struct
{
unsigned char *base_addr;
const char *output_type;
int bpp;
off_t offset;
off_t limit;
} priv_t;
#define PLUG_IN_VERSION VERSION " - " RELEASE_DATE
#define PLUG_IN_NAME "Print"
#define INVALID_TOP 1
#define INVALID_LEFT 2
#define SCALE_ENTRY_LABEL(adj) \
GTK_LABEL (gtk_object_get_data (GTK_OBJECT(adj), "label"))
#define SCALE_ENTRY_SCALE(adj) \
GTK_HSCALE (gtk_object_get_data (GTK_OBJECT(adj), "scale"))
#define SCALE_ENTRY_SCALE_ADJ(adj) \
gtk_range_get_adjustment \
(GTK_RANGE (gtk_object_get_data (GTK_OBJECT (adj), "scale")))
#define SCALE_ENTRY_SPINBUTTON(adj) \
GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT (adj), "spinbutton"))
#define SCALE_ENTRY_SPINBUTTON_ADJ(adj) \
gtk_spin_button_get_adjustment \
(GTK_SPIN_BUTTON (gtk_object_get_data (GTK_OBJECT (adj), "spinbutton")))
extern gint stpui_plist_count; /* Number of system printers */
extern gint stpui_plist_current; /* Current system printer */
extern stpui_plist_t *stpui_plist; /* System printers */
extern char *stpui_printrc_current_printer;
extern int stpui_show_all_paper_sizes;
extern stp_string_list_t *stpui_system_print_queues;
/*
* Function prototypes
*/
extern stpui_plist_t *stpui_plist_create(const char *name, const char *driver);
extern const char *stpui_combo_get_name(GtkWidget *combo,
const stp_string_list_t *options);
extern void stpui_table_attach_aligned(GtkTable *table, gint column,
gint row, const gchar *label_text,
gfloat xalign, gfloat yalign,
GtkWidget *widget, gint colspan,
gboolean left_align);
extern GtkWidget *stpui_create_entry(GtkWidget *table, int hpos, int vpos,
const char *text, const char *help,
GCallback callback);
extern GSList *stpui_create_radio_button(radio_group_t *radio, GSList *group,
GtkWidget *table, int hpos, int vpos,
GCallback callback);
extern void stpui_set_adjustment_tooltip (GtkObject *adj, const gchar *tip);
extern void stpui_create_new_combo(option_t *option, GtkWidget *table,
int hpos, int vpos, gboolean is_optional);
extern void stpui_help_init (void);
extern void stpui_help_free (void);
extern void stpui_enable_help (void);
extern void stpui_disable_help (void);
extern void stpui_set_help_data (GtkWidget *widget, const gchar *tooltip);
extern GtkWidget *stpui_dialog_new(const gchar *title,
GtkWindowPosition position,
gboolean resizable,
/* specify action area buttons as va_list:
* const gchar *label,
* GtkSignalFunc callback,
* gpointer data,
* GtkObject *slot_object,
* GtkWidget **widget_ptr,
* gboolean default_action,
* gboolean connect_delete,
*/
...);
extern GtkWidget *stpui_option_menu_new(gboolean menu_only,
/* specify menu items as va_list:
* const gchar *label,
* GtkSignalFunc callback,
* gpointer data,
* gpointer user_data,
* GtkWidget **widget_ptr,
* gboolean active
*/
...);
extern GtkObject *stpui_scale_entry_new(GtkTable *table,
gint column,
gint row,
const gchar *text,
gint scale_usize,
gint spinbutton_usize,
gfloat value,
gfloat lower,
gfloat upper,
gfloat step_increment,
gfloat page_increment,
guint digits,
gboolean constrain,
gfloat unconstrained_lower,
gfloat unconstrained_upper,
const gchar *tooltip);
extern void stpui_create_scale_entry(option_t *option,
GtkTable *table,
gint column,
gint row,
const gchar *text,
gint scale_usize,
gint spinbutton_usize,
gfloat value,
gfloat lower,
gfloat upper,
gfloat step_increment,
gfloat page_increment,
guint digits,
gboolean constrain,
gfloat unconstrained_lower,
gfloat unconstrained_upper,
const gchar *tooltip,
gboolean is_optional);
/* Thumbnails -- keep it simple! */
stp_image_t *stpui_image_thumbnail_new(const guchar *data, gint w, gint h,
gint bpp);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
static inline gint
p2gint(void *p)
{
return (gint) p;
}
#pragma GCC diagnostic pop
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wint-to-pointer-cast"
static inline void *
gint2p(int i)
{
return (gpointer) i;
}
#pragma GCC diagnostic pop
#pragma GCC diagnostic ignored "-Woverlength-strings"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-qual"
static inline void *
cast_safe(const void *ptr)
{
return (void *)ptr;
}
#pragma GCC diagnostic pop
#endif /* GUTENPRINTUI_INTERNAL_H */