#ifndef PIXBUF_RENDERER_H
#define PIXBUF_RENDERER_H
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdk.h>
+#include <glib-object.h>
+#include <glib.h>
+#include <gtk/gtk.h>
+
+#include "typedefs.h"
+
+struct PixbufRenderer;
+
#define TYPE_PIXBUF_RENDERER (pixbuf_renderer_get_type())
#define PIXBUF_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TYPE_PIXBUF_RENDERER, PixbufRenderer))
#define PIXBUF_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), TYPE_PIXBUF_RENDERER, PixbufRendererClass))
#define ROUND_DOWN(A,B) ((gint)(((A))/(B))*(B))
-struct RendererFuncs;
-
-struct PixbufRenderer;
-struct PixbufRendererClass;
-
-
using PixbufRendererTileRequestFunc = gint (*)(PixbufRenderer *, gint, gint, gint, gint, GdkPixbuf *, gpointer);
using PixbufRendererTileDisposeFunc = void (*)(PixbufRenderer *, gint, gint, gint, gint, GdkPixbuf *, gpointer);
using PixbufRendererPostProcessFunc = void (*)(PixbufRenderer *, GdkPixbuf **, gint, gint, gint, gint, gpointer);
-enum PixbufRendererScrollResetType {
- PR_SCROLL_RESET_TOPLEFT = 0,
- PR_SCROLL_RESET_CENTER,
- PR_SCROLL_RESET_NOCHANGE,
- PR_SCROLL_RESET_COUNT,
-};
-
enum ImageRenderType {
TILE_RENDER_NONE = 0, /**< do nothing */
TILE_RENDER_AREA, /**< render an area of the tile */
struct RendererFuncs
{
-// void (*redraw)(void *renderer, gint x, gint y, gint w, gint h,
- // gint clamp, ImageRenderType render, gboolean new_data, gboolean only_existing);
void (*area_changed)(void *renderer, gint src_x, gint src_y, gint src_w, gint src_h); /**< pixbuf area changed */
void (*invalidate_region)(void *renderer, gint x, gint y, gint w, gint h);
void (*scroll)(void *renderer, gint x_off, gint y_off); /**< scroll */
gint y_scroll;
gdouble norm_center_x; /**< coordinates of viewport center in the image, in range 0.0 - 1.0 */
- gdouble norm_center_y; /**< these coordinates are used for PR_SCROLL_RESET_NOCHANGE and should be preserved over periods with NULL pixbuf */
+ gdouble norm_center_y; /**< these coordinates are used for ScrollReset::NOCHANGE and should be preserved over periods with NULL pixbuf */
gdouble subpixel_x_scroll; /**< subpixel scroll alignment, used to prevent accumulation of rounding errors */
gdouble subpixel_y_scroll;
gboolean zoom_2pass;
gboolean zoom_expand;
- PixbufRendererScrollResetType scroll_reset;
+ ScrollReset scroll_reset;
gboolean has_frame;
gint autofit_limit_size;
gint enlargement_limit_size;
- GdkColor color;
+ GdkRGBA color;
/*< private >*/
gboolean in_drag;
PixbufRenderer *pixbuf_renderer_new();
void pixbuf_renderer_set_parent(PixbufRenderer *pr, GtkWindow *window);
-GtkWindow *pixbuf_renderer_get_parent(PixbufRenderer *pr);
/**
* @headerfile pixbuf_renderer_set_pixbuf
GdkPixbuf *pixbuf_renderer_get_pixbuf(PixbufRenderer *pr);
void pixbuf_renderer_set_orientation(PixbufRenderer *pr, gint orientation);
-gint pixbuf_renderer_get_orientation(PixbufRenderer *pr);
/**
* @headerfile pixbuf_renderer_set_stereo_data
*/
gboolean pixbuf_renderer_get_visible_rect(PixbufRenderer *pr, GdkRectangle *rect);
-/**
- * @headerfile pixbuf_renderer_get_virtual_rect
- * actual size of the PixbufRenderer window minus borders,
- * x and y are the scroll offset and include zoom factor.
- */
-gboolean pixbuf_renderer_get_virtual_rect(PixbufRenderer *pr, GdkRectangle *rect);
-
/**
* @headerfile pixbuf_renderer_set_color
* background color
*/
-void pixbuf_renderer_set_color(PixbufRenderer *pr, GdkColor *color);
+void pixbuf_renderer_set_color(PixbufRenderer *pr, GdkRGBA *color);
/* overlay */