1 /* 2 * GooCanvas. Copyright (C) 2005 Damon Chaplin. 3 * Released under the GNU LGPL license. See COPYING for details. 4 * 5 * goocanvasrect.h - rectangle item. 6 */ 7 #ifndef __GOO_CANVAS_RECT_H__ 8 #define __GOO_CANVAS_RECT_H__ 9 10 #include <gtk/gtk.h> 11 #include "goocanvasitemsimple.h" 12 13 G_BEGIN_DECLS 14 15 16 /* This is the data used by both model and view classes. */ 17 typedef struct _GooCanvasRectData GooCanvasRectData; 18 struct _GooCanvasRectData 19 { 20 gdouble x, y, width, height, radius_x, radius_y; 21 }; 22 23 24 #define GOO_TYPE_CANVAS_RECT (goo_canvas_rect_get_type ()) 25 #define GOO_CANVAS_RECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_CANVAS_RECT, GooCanvasRect)) 26 #define GOO_CANVAS_RECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOO_TYPE_CANVAS_RECT, GooCanvasRectClass)) 27 #define GOO_IS_CANVAS_RECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_CANVAS_RECT)) 28 #define GOO_IS_CANVAS_RECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOO_TYPE_CANVAS_RECT)) 29 #define GOO_CANVAS_RECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOO_TYPE_CANVAS_RECT, GooCanvasRectClass)) 30 31 32 typedef struct _GooCanvasRect GooCanvasRect; 33 typedef struct _GooCanvasRectClass GooCanvasRectClass; 34 35 /** 36 * GooCanvasRect 37 * 38 * The #GooCanvasRect-struct struct contains private data only. 39 */ 40 struct _GooCanvasRect 41 { 42 GooCanvasItemSimple parent; 43 44 GooCanvasRectData *rect_data; 45 }; 46 47 struct _GooCanvasRectClass 48 { 49 GooCanvasItemSimpleClass parent_class; 50 51 /*< private >*/ 52 53 /* Padding for future expansion */ 54 void (*_goo_canvas_reserved1) (void); 55 void (*_goo_canvas_reserved2) (void); 56 void (*_goo_canvas_reserved3) (void); 57 void (*_goo_canvas_reserved4) (void); 58 }; 59 60 61 GType goo_canvas_rect_get_type (void) G_GNUC_CONST; 62 63 GooCanvasItem* goo_canvas_rect_new (GooCanvasItem *parent, 64 gdouble x, 65 gdouble y, 66 gdouble width, 67 gdouble height, 68 ...); 69 70 71 72 #define GOO_TYPE_CANVAS_RECT_MODEL (goo_canvas_rect_model_get_type ()) 73 #define GOO_CANVAS_RECT_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GOO_TYPE_CANVAS_RECT_MODEL, GooCanvasRectModel)) 74 #define GOO_CANVAS_RECT_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GOO_TYPE_CANVAS_RECT_MODEL, GooCanvasRectModelClass)) 75 #define GOO_IS_CANVAS_RECT_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GOO_TYPE_CANVAS_RECT_MODEL)) 76 #define GOO_IS_CANVAS_RECT_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GOO_TYPE_CANVAS_RECT_MODEL)) 77 #define GOO_CANVAS_RECT_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GOO_TYPE_CANVAS_RECT_MODEL, GooCanvasRectModelClass)) 78 79 80 typedef struct _GooCanvasRectModel GooCanvasRectModel; 81 typedef struct _GooCanvasRectModelClass GooCanvasRectModelClass; 82 83 /** 84 * GooCanvasRectModel 85 * 86 * The #GooCanvasRectModel-struct struct contains private data only. 87 */ 88 struct _GooCanvasRectModel 89 { 90 GooCanvasItemModelSimple parent_object; 91 92 GooCanvasRectData rect_data; 93 }; 94 95 struct _GooCanvasRectModelClass 96 { 97 GooCanvasItemModelSimpleClass parent_class; 98 99 /*< private >*/ 100 101 /* Padding for future expansion */ 102 void (*_goo_canvas_reserved1) (void); 103 void (*_goo_canvas_reserved2) (void); 104 void (*_goo_canvas_reserved3) (void); 105 void (*_goo_canvas_reserved4) (void); 106 }; 107 108 109 GType goo_canvas_rect_model_get_type (void) G_GNUC_CONST; 110 111 GooCanvasItemModel* goo_canvas_rect_model_new (GooCanvasItemModel *parent, 112 gdouble x, 113 gdouble y, 114 gdouble width, 115 gdouble height, 116 ...); 117 118 119 G_END_DECLS 120 121 #endif /* __GOO_CANVAS_RECT_H__ */ 122