/* Image item type for GnomeCanvas widget
*
* GnomeCanvas is basically a port of the Tk toolkit's most excellent canvas widget. Tk is
* copyrighted by the Regents of the University of California, Sun Microsystems, and other parties.
*
* Copyright (C) 1998 The Free Software Foundation
*
* Author: Federico Mena <federico@nuclecu.unam.mx>
*/
#include "canvas-background.h"
static void gnome_canvas_background_class_init (GnomeCanvasBackgroundClass *class);
static void gnome_canvas_background_init (GnomeCanvasBackground *background);
static void gnome_canvas_background_destroy (GtkObject *object);
static void gnome_canvas_background_set_arg (GtkObject *object,
GtkArg *arg,
guint arg_id);
static void gnome_canvas_background_get_arg (GtkObject *object,
GtkArg *arg,
guint arg_id);
static void gnome_canvas_background_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags);
static void gnome_canvas_background_realize (GnomeCanvasItem *item);
static void gnome_canvas_background_unrealize (GnomeCanvasItem *item);
static void gnome_canvas_background_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
int x, int y, int width, int height);
static double gnome_canvas_background_point (GnomeCanvasItem *item, double x, double y,
int cx, int cy, GnomeCanvasItem **actual_item);
static void gnome_canvas_background_translate (GnomeCanvasItem *item, double dx, double dy);
static void gnome_canvas_background_bounds (GnomeCanvasItem *item, double *x1, double *y1, double *x2, double *y2);
static void gnome_canvas_background_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf);
//static ArtPixBuf * pixbuf_from_imlib_background (GdkImlibBackground *im);
static GnomeCanvasItemClass *parent_class;
GtkType
gnome_canvas_background_get_type (void)
{
static GtkType background_type = 0;
if (!background_type) {
GtkTypeInfo background_info = {
"GnomeCanvasBackground",
sizeof (GnomeCanvasBackground),
sizeof (GnomeCanvasBackgroundClass),
(GtkClassInitFunc) gnome_canvas_background_class_init,
(GtkObjectInitFunc) gnome_canvas_background_init,
NULL, /* reserved_1 */
NULL, /* reserved_2 */
(GtkClassInitFunc) NULL
};
background_type = gtk_type_unique (gnome_canvas_item_get_type (), &background_info);
}
return background_type;
}
static void
gnome_canvas_background_class_init (GnomeCanvasBackgroundClass *class)
{
GtkObjectClass *object_class;
GnomeCanvasItemClass *item_class;
object_class = (GtkObjectClass *) class;
item_class = (GnomeCanvasItemClass *) class;
parent_class = gtk_type_class (gnome_canvas_item_get_type ());
object_class->destroy = gnome_canvas_background_destroy;
object_class->set_arg = gnome_canvas_background_set_arg;
object_class->get_arg = gnome_canvas_background_get_arg;
item_class->update = gnome_canvas_background_update;
item_class->realize = gnome_canvas_background_realize;
item_class->unrealize = gnome_canvas_background_unrealize;
item_class->draw = gnome_canvas_background_draw;
item_class->point = gnome_canvas_background_point;
//FIXME: gnome 2
//item_class->translate = gnome_canvas_background_translate;
item_class->bounds = gnome_canvas_background_bounds;
item_class->render = gnome_canvas_background_render;
}
static void
gnome_canvas_background_init (GnomeCanvasBackground *background)
{
GnomeCanvasItem *item;
item = GNOME_CANVAS_ITEM(background);
item->x1 = -10000;
item->y1 = -10000;
item->x2 = 10000;
item->y2 = 10000;
}
static void gnome_canvas_background_destroy (GtkObject *object)
{
//GnomeCanvasBackground *background;
g_return_if_fail (object != NULL);
g_return_if_fail (GNOME_IS_CANVAS_BACKGROUND (object));
//background = GNOME_CANVAS_IMAGE (object);
if (GTK_OBJECT_CLASS (parent_class)->destroy)
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
}
static void
gnome_canvas_background_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
{
}
static void
gnome_canvas_background_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)
{
}
static void
gnome_canvas_background_update (GnomeCanvasItem *item, double *affine, ArtSVP *clip_path, int flags)
{
if (parent_class->update)
(* parent_class->update) (item, affine, clip_path, flags);
}
static void
gnome_canvas_background_realize (GnomeCanvasItem *item)
{
GnomeCanvasBackground *background;
background = GNOME_CANVAS_BACKGROUND (item);
if (parent_class->realize)
(* parent_class->realize) (item);
// if (!item->canvas->aa)
// background->gc = gdk_gc_new (item->canvas->layout.bin_window);
}
static void
gnome_canvas_background_unrealize (GnomeCanvasItem *item)
{
GnomeCanvasBackground *background;
background = GNOME_CANVAS_BACKGROUND (item);
if (parent_class->unrealize)
(* parent_class->unrealize) (item);
}
static void
gnome_canvas_background_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
int x, int y, int width, int height)
{
}
static void
gnome_canvas_background_translate (GnomeCanvasItem *item, double dx, double dy)
{
}
static void
gnome_canvas_background_bounds (GnomeCanvasItem *item, double *x1, double *y1, double *x2, double *y2)
{
*x1 = -10000000;
*y1 = -10000000;
*x2 = 10000000;
*y2 = 10000000;
}
static double
gnome_canvas_background_point (GnomeCanvasItem *item, double x, double y,
int cx, int cy, GnomeCanvasItem **actual_item)
{
*actual_item=item;
return 0.0;
}
static void gnome_canvas_background_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
{
}
syntax highlighted by Code2HTML, v. 0.9.1