3 * Copyright (C) 2001-2009 Jim Evins <evins@snaught.com>.
5 * This file is part of gLabels.
7 * gLabels is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * gLabels 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
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with gLabels. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef __VIEW_OBJECT_H__
22 #define __VIEW_OBJECT_H__
24 #include <glib-object.h>
25 #include "label-object.h"
28 GL_VIEW_OBJECT_HANDLES_BOX,
29 GL_VIEW_OBJECT_HANDLES_LINE,
30 } glViewObjectHandlesStyle;
33 GL_VIEW_OBJECT_HANDLE_NONE = 0,
34 GL_VIEW_OBJECT_HANDLE_N,
35 GL_VIEW_OBJECT_HANDLE_E,
36 GL_VIEW_OBJECT_HANDLE_W,
37 GL_VIEW_OBJECT_HANDLE_S,
38 GL_VIEW_OBJECT_HANDLE_NW,
39 GL_VIEW_OBJECT_HANDLE_NE,
40 GL_VIEW_OBJECT_HANDLE_SE,
41 GL_VIEW_OBJECT_HANDLE_SW,
42 GL_VIEW_OBJECT_HANDLE_P1,
43 GL_VIEW_OBJECT_HANDLE_P2,
47 #define GL_TYPE_VIEW_OBJECT (gl_view_object_get_type ())
48 #define GL_VIEW_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GL_TYPE_VIEW_OBJECT, glViewObject))
49 #define GL_VIEW_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GL_TYPE_VIEW_OBJECT, glViewObjectClass))
50 #define GL_IS_VIEW_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GL_TYPE_VIEW_OBJECT))
51 #define GL_IS_VIEW_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GL_TYPE_VIEW_OBJECT))
52 #define GL_VIEW_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GL_TYPE_VIEW_OBJECT, glViewObjectClass))
54 typedef struct _glViewObject glViewObject;
55 typedef struct _glViewObjectClass glViewObjectClass;
57 typedef struct _glViewObjectPrivate glViewObjectPrivate;
64 struct _glViewObject {
65 GObject parent_object;
67 glViewObjectPrivate *priv;
70 struct _glViewObjectClass {
71 GObjectClass parent_class;
77 GtkWidget * (*construct_editor) (glViewObject *view_object);
79 gboolean (*object_at) (glViewObject *view_object,
90 GType gl_view_object_get_type (void) G_GNUC_CONST;
92 GObject *gl_view_object_new (void);
95 void gl_view_object_set_view (glViewObject *view_object,
98 void gl_view_object_set_object (glViewObject *view_object,
99 glLabelObject *object,
100 glViewObjectHandlesStyle style);
102 gboolean gl_view_object_at (glViewObject *view_object,
107 void gl_view_object_draw_handles (glViewObject *view_object,
110 glViewObjectHandle gl_view_object_handle_at (glViewObject *view_object,
115 glView *gl_view_object_get_view (glViewObject *view_object);
117 glLabelObject *gl_view_object_get_object (glViewObject *view_object);
119 GtkWidget *gl_view_object_get_editor (glViewObject *view_object);
121 void gl_view_object_select (glViewObject *view_object);
123 void gl_view_object_resize_event (glViewObject *view_object,
124 glViewObjectHandle handle,
125 gboolean honor_aspect,
133 #endif /* __VIEW_OBJECT_H__ */
138 * Local Variables: -- emacs
140 * c-basic-offset: 8 -- emacs
141 * tab-width: 8 -- emacs
142 * indent-tabs-mode: nil -- emacs