1 /* 2 * Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation 3 * All rights reserved. 4 * 5 * This file is part of the Gnome Library. 6 * 7 * The Gnome Library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Library General Public License as 9 * published by the Free Software Foundation; either version 2 of the 10 * License, or (at your option) any later version. 11 * 12 * The Gnome Library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Library General Public License for more details. 16 * 17 * You should have received a copy of the GNU Library General Public 18 * License along with the Gnome Library; see the file COPYING.LIB. If not, 19 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 * Boston, MA 02111-1307, USA. 21 */ 22 /* 23 @NOTATION@ 24 */ 25 /* Rectangle and ellipse item types for GnomeCanvas widget 26 * 27 * GnomeCanvas is basically a port of the Tk toolkit's most excellent canvas widget. Tk is 28 * copyrighted by the Regents of the University of California, Sun Microsystems, and other parties. 29 * 30 * 31 * Author: Federico Mena <federico@nuclecu.unam.mx> 32 */ 33 34 #ifndef GNOME_CANVAS_RECT_ELLIPSE_H 35 #define GNOME_CANVAS_RECT_ELLIPSE_H 36 37 38 #include <libgnomecanvas/gnome-canvas.h> 39 40 #include <libgnomecanvas/gnome-canvas-shape.h> 41 42 #include <libart_lgpl/art_svp.h> 43 44 G_BEGIN_DECLS 45 46 47 /* Base class for rectangle and ellipse item types. These are defined by their top-left and 48 * bottom-right corners. Rectangles and ellipses share the following arguments: 49 * 50 * name type read/write description 51 * ------------------------------------------------------------------------------------------ 52 * x1 double RW Leftmost coordinate of rectangle or ellipse 53 * y1 double RW Topmost coordinate of rectangle or ellipse 54 * x2 double RW Rightmost coordinate of rectangle or ellipse 55 * y2 double RW Bottommost coordinate of rectangle or ellipse 56 * fill_color string W X color specification for fill color, 57 * or NULL pointer for no color (transparent) 58 * fill_color_gdk GdkColor* RW Allocated GdkColor for fill 59 * outline_color string W X color specification for outline color, 60 * or NULL pointer for no color (transparent) 61 * outline_color_gdk GdkColor* RW Allocated GdkColor for outline 62 * fill_stipple GdkBitmap* RW Stipple pattern for fill 63 * outline_stipple GdkBitmap* RW Stipple pattern for outline 64 * width_pixels uint RW Width of the outline in pixels. The outline will 65 * not be scaled when the canvas zoom factor is changed. 66 * width_units double RW Width of the outline in canvas units. The outline 67 * will be scaled when the canvas zoom factor is changed. 68 */ 69 70 71 #define GNOME_TYPE_CANVAS_RE (gnome_canvas_re_get_type ()) 72 #define GNOME_CANVAS_RE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_TYPE_CANVAS_RE, GnomeCanvasRE)) 73 #define GNOME_CANVAS_RE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_TYPE_CANVAS_RE, GnomeCanvasREClass)) 74 #define GNOME_IS_CANVAS_RE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_TYPE_CANVAS_RE)) 75 #define GNOME_IS_CANVAS_RE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CANVAS_RE)) 76 #define GNOME_CANVAS_RE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_TYPE_CANVAS_RE, GnomeCanvasREClass)) 77 78 79 typedef struct _GnomeCanvasRE GnomeCanvasRE; 80 typedef struct _GnomeCanvasREClass GnomeCanvasREClass; 81 82 struct _GnomeCanvasRE { 83 GnomeCanvasShape item; 84 85 double x1, y1, x2, y2; /* Corners of item */ 86 87 unsigned int path_dirty : 1; 88 }; 89 90 struct _GnomeCanvasREClass { 91 GnomeCanvasShapeClass parent_class; 92 }; 93 94 95 /* Standard Gtk function */ 96 GType gnome_canvas_re_get_type (void) G_GNUC_CONST; 97 98 99 /* Rectangle item. No configurable or queryable arguments are available (use those in 100 * GnomeCanvasRE). 101 */ 102 103 104 #define GNOME_TYPE_CANVAS_RECT (gnome_canvas_rect_get_type ()) 105 #define GNOME_CANVAS_RECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_TYPE_CANVAS_RECT, GnomeCanvasRect)) 106 #define GNOME_CANVAS_RECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_TYPE_CANVAS_RECT, GnomeCanvasRectClass)) 107 #define GNOME_IS_CANVAS_RECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_TYPE_CANVAS_RECT)) 108 #define GNOME_IS_CANVAS_RECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CANVAS_RECT)) 109 #define GNOME_CANVAS_RECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_TYPE_CANVAS_RECT, GnomeCanvasRectClass)) 110 111 112 typedef struct _GnomeCanvasRect GnomeCanvasRect; 113 typedef struct _GnomeCanvasRectClass GnomeCanvasRectClass; 114 115 struct _GnomeCanvasRect { 116 GnomeCanvasRE re; 117 }; 118 119 struct _GnomeCanvasRectClass { 120 GnomeCanvasREClass parent_class; 121 }; 122 123 124 /* Standard Gtk function */ 125 GType gnome_canvas_rect_get_type (void) G_GNUC_CONST; 126 127 128 /* Ellipse item. No configurable or queryable arguments are available (use those in 129 * GnomeCanvasRE). 130 */ 131 132 133 #define GNOME_TYPE_CANVAS_ELLIPSE (gnome_canvas_ellipse_get_type ()) 134 #define GNOME_CANVAS_ELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_TYPE_CANVAS_ELLIPSE, GnomeCanvasEllipse)) 135 #define GNOME_CANVAS_ELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GNOME_TYPE_CANVAS_ELLIPSE, GnomeCanvasEllipseClass)) 136 #define GNOME_IS_CANVAS_ELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_TYPE_CANVAS_ELLIPSE)) 137 #define GNOME_IS_CANVAS_ELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CANVAS_ELLIPSE)) 138 #define GNOME_CANVAS_ELLIPSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GNOME_TYPE_CANVAS_ELLIPSE, GnomeCanvasEllipseClass)) 139 140 141 typedef struct _GnomeCanvasEllipse GnomeCanvasEllipse; 142 typedef struct _GnomeCanvasEllipseClass GnomeCanvasEllipseClass; 143 144 struct _GnomeCanvasEllipse { 145 GnomeCanvasRE re; 146 }; 147 148 struct _GnomeCanvasEllipseClass { 149 GnomeCanvasREClass parent_class; 150 }; 151 152 153 /* Standard Gtk function */ 154 GType gnome_canvas_ellipse_get_type (void) G_GNUC_CONST; 155 156 157 G_END_DECLS 158 159 #endif 160