#include <sys/types.h>
#include <stdio.h>
+#include "gstypes.h"
+
G_BEGIN_DECLS
#define GTK_GS_TYPE (gtk_gs_get_type())
typedef struct _GtkGS GtkGS;
typedef struct _GtkGSClass GtkGSClass;
-typedef struct _GtkGSPaperSize GtkGSPaperSize;
-
-typedef enum {
- GTK_GS_ORIENTATION_NONE = -1,
- GTK_GS_ORIENTATION_PORTRAIT = 0,
- GTK_GS_ORIENTATION_SEASCAPE = 3,
- GTK_GS_ORIENTATION_UPSIDEDOWN = 2,
- GTK_GS_ORIENTATION_LANDSCAPE = 1
-} GtkGSOrientation;
-
-typedef enum {
- GTK_GS_ZOOM_ABSOLUTE = 0,
- GTK_GS_ZOOM_FIT_WIDTH = 1,
- GTK_GS_ZOOM_FIT_PAGE = 2
-} GtkGSZoomMode;
struct _GtkGS {
GObject object;
GtkGSZoomMode zoom_mode;
GdkPixmap *bpixmap; /* Backing pixmap */
- int use_bpixmap;
long message_window; /* Used by ghostview to receive messages from app */
struct _GtkGSClass {
GObjectClass parent_class;
+
GdkAtom gs_atom;
- GdkAtom gs_colors_atom;
GdkAtom next_atom;
GdkAtom page_atom;
- GdkAtom done_atom;
GdkAtom string_atom;
-
- GConfClient *gconf_client;
-
- void (*interpreter_message) (GtkGS *, gchar *, gpointer);
- void (*interpreter_error) (GtkGS *, gint, gpointer);
-};
-
-
-/* structure to describe section of file to send to ghostscript */
-struct record_list {
- FILE *fp;
- long begin;
- guint len;
- gboolean seek_needed;
- gboolean close;
- struct record_list *next;
-};
-
-struct _GtkGSPaperSize {
- gchar *name;
- gint width, height;
};
GType gtk_gs_get_type(void);
-GObject *gtk_gs_new_from_file(GtkAdjustment * hadj, GtkAdjustment * vadj,
- gchar * fname);
-GObject *gtk_gs_new(GtkAdjustment * hadj, GtkAdjustment * vadj);
-gboolean gtk_gs_load(GtkGS * gs, const gchar * fname);
-void gtk_gs_reload(GtkGS * gs);
-
-/* control functions */
-void gtk_gs_center_page(GtkGS * gs);
-gboolean gtk_gs_next_page(GtkGS * gs);
-gboolean gtk_gs_prev_page(GtkGS * gs);
-gboolean gtk_gs_goto_page(GtkGS * gs, gint);
-gint gtk_gs_enable_interpreter(GtkGS * gs);
-void gtk_gs_disable_interpreter(GtkGS * gs);
-
-gint gtk_gs_get_current_page(GtkGS * gs);
-gint gtk_gs_get_page_count(GtkGS * gs);
-gboolean gtk_gs_set_page_size(GtkGS * gs, gint new_pagesize, gint pageid);
-gboolean gtk_gs_set_default_orientation(GtkGS * gs, gint orientation);
-gint gtk_gs_get_default_orientation(GtkGS * gs);
-void gtk_gs_set_default_size(GtkGS * gs, gint size);
-gint gtk_gs_get_default_size(GtkGS * gs);
-void gtk_gs_set_zoom(GtkGS * gs, gfloat zoom);
-gfloat gtk_gs_get_zoom(GtkGS * gs);
-gfloat gtk_gs_zoom_to_fit(GtkGS * gs, gboolean fit_width);
-void gtk_gs_set_center(GtkGS * gs, gfloat hval, gfloat vval);
-gint gtk_gs_get_orientation(GtkGS * gs);
-void gtk_gs_set_override_orientation(GtkGS * gs, gboolean f);
-gboolean gtk_gs_get_override_orientation(GtkGS * gs);
-void gtk_gs_set_respect_eof(GtkGS * gs, gboolean f);
-gboolean gtk_gs_get_respect_eof(GtkGS * gs);
-void gtk_gs_set_antialiasing(GtkGS * gs, gboolean f);
-gboolean gtk_gs_get_antialiasing(GtkGS * gs);
-void gtk_gs_set_override_size(GtkGS * gs, gboolean f);
-gboolean gtk_gs_get_override_size(GtkGS * gs);
-const gchar *gtk_gs_get_document_title(GtkGS * widget);
-guint gtk_gs_get_document_numpages(GtkGS * widget);
-const gchar *gtk_gs_get_document_page_label(GtkGS * widget, int page);
-
-void gtk_gs_set_zoom_mode(GtkGS * gs, GtkGSZoomMode zoom_mode);
-GtkGSZoomMode gtk_gs_get_zoom_mode(GtkGS * gs);
-
-void gtk_gs_set_available_size(GtkGS * gs, guint avail_w, guint avail_h);
-
-/* utility functions */
-gint gtk_gs_get_size_index(const gchar * string, GtkGSPaperSize * size);
-
-gchar *gtk_gs_get_postscript(GtkGS * gs, gint * pages);
-
-#define GTK_GS_IS_COMPRESSED(gs) (GTK_GS(gs)->gs_filename_unc != NULL)
-#define GTK_GS_GET_PS_FILE(gs) (GTK_GS_IS_COMPRESSED(gs) ? \
- GTK_GS(gs)->gs_filename_unc : \
- GTK_GS(gs)->gs_filename)
-#define GTK_GS_IS_PDF(gs) (GTK_GS(gs)->gs_filename_dsc != NULL)
-#define GTK_GS_IS_STRUCTURED_DOC(gs) (GTK_GS(gs)->structured_doc)
-
G_END_DECLS
#endif /* __GTK_GS_H__ */