]> git.sur5r.net Git - glabels/blob - src/view-object.h
Imported Upstream version 2.2.8
[glabels] / src / view-object.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
2
3 /*
4  *  (GLABELS) Label and Business Card Creation program for GNOME
5  *
6  *  view_object.h:  GLabels canvas item wrapper widget
7  *
8  *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
9  *
10  *  This program is free software; you can redistribute it and/or modify
11  *  it under the terms of the GNU General Public License as published by
12  *  the Free Software Foundation; either version 2 of the License, or
13  *  (at your option) any later version.
14  *
15  *  This program is distributed in the hope that it will be useful,
16  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  *  GNU General Public License for more details.
19  *
20  *  You should have received a copy of the GNU General Public License
21  *  along with this program; if not, write to the Free Software
22  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
23  */
24
25 #ifndef __VIEW_OBJECT_H__
26 #define __VIEW_OBJECT_H__
27
28 #include <glib-object.h>
29 #include "label-object.h"
30
31 typedef enum {
32         GL_VIEW_OBJECT_HANDLES_BOX,
33         GL_VIEW_OBJECT_HANDLES_LINE,
34 } glViewObjectHandlesStyle;
35
36 typedef enum {
37         GL_VIEW_OBJECT_HANDLE_NONE = 0,
38         GL_VIEW_OBJECT_HANDLE_N,
39         GL_VIEW_OBJECT_HANDLE_E,
40         GL_VIEW_OBJECT_HANDLE_W,
41         GL_VIEW_OBJECT_HANDLE_S,
42         GL_VIEW_OBJECT_HANDLE_NW,
43         GL_VIEW_OBJECT_HANDLE_NE,
44         GL_VIEW_OBJECT_HANDLE_SE,
45         GL_VIEW_OBJECT_HANDLE_SW,
46         GL_VIEW_OBJECT_HANDLE_P1,
47         GL_VIEW_OBJECT_HANDLE_P2,
48 } glViewObjectHandle;
49
50
51 #define GL_TYPE_VIEW_OBJECT              (gl_view_object_get_type ())
52 #define GL_VIEW_OBJECT(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_OBJECT, glViewObject))
53 #define GL_VIEW_OBJECT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_OBJECT, glViewObjectClass))
54 #define GL_IS_VIEW_OBJECT(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_OBJECT))
55 #define GL_IS_VIEW_OBJECT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_OBJECT))
56 #define GL_VIEW_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GL_TYPE_VIEW_OBJECT, glViewObjectClass))
57
58 typedef struct _glViewObject          glViewObject;
59 typedef struct _glViewObjectClass     glViewObjectClass;
60
61 typedef struct _glViewObjectPrivate   glViewObjectPrivate;
62
63
64 #include "view.h"
65
66 #include "cairo.h"
67
68 struct _glViewObject {
69         GObject               parent_object;
70
71         glViewObjectPrivate  *priv;
72 };
73
74 struct _glViewObjectClass {
75         GObjectClass          parent_class;
76
77         /*
78          * Methods
79          */
80
81         GtkWidget * (*construct_editor) (glViewObject *view_object);
82
83         gboolean    (*object_at)        (glViewObject *view_object,
84                                          cairo_t      *cr,
85                                          gdouble       x_device,
86                                          gdouble       y_device);
87 };
88
89
90
91
92 G_BEGIN_DECLS
93
94 GType              gl_view_object_get_type          (void) G_GNUC_CONST;
95
96 GObject           *gl_view_object_new               (void);
97
98
99 void               gl_view_object_set_view          (glViewObject             *view_object,
100                                                      glView                   *view);
101
102 void               gl_view_object_set_object        (glViewObject             *view_object,
103                                                      glLabelObject            *object,
104                                                      glViewObjectHandlesStyle  style);
105
106 gboolean           gl_view_object_at                (glViewObject             *view_object,
107                                                      cairo_t                  *cr,
108                                                      gdouble                   x,
109                                                      gdouble                   y);
110
111 void               gl_view_object_draw_handles      (glViewObject             *view_object,
112                                                      cairo_t                  *cr);
113
114 glViewObjectHandle gl_view_object_handle_at         (glViewObject             *view_object,
115                                                      cairo_t                  *cr,
116                                                      gdouble                   x,
117                                                      gdouble                   y);
118
119 glView            *gl_view_object_get_view          (glViewObject             *view_object);
120
121 glLabelObject     *gl_view_object_get_object        (glViewObject             *view_object);
122
123 GtkWidget         *gl_view_object_get_editor        (glViewObject             *view_object);
124
125 void               gl_view_object_select            (glViewObject             *view_object);
126
127 void               gl_view_object_resize_event      (glViewObject             *view_object,
128                                                      glViewObjectHandle        handle,
129                                                      gboolean                  honor_aspect,
130                                                      cairo_t                  *cr,
131                                                      gdouble                   x,
132                                                      gdouble                   y);
133
134
135 G_END_DECLS
136
137 #endif /* __VIEW_OBJECT_H__ */