Merged with trunk R1612.
[ardour.git] / gtk2_ardour / simpleline.h
1 // -*- c++ -*-
2 #ifndef _LIBGNOMECANVASMM_SIMPLELINE_H
3 #define _LIBGNOMECANVASMM_SIMPLELINE_H
4
5 #include <glibmm.h>
6
7
8 /* line.h
9  * 
10  * Copyright (C) 1998 EMC Capital Management Inc.
11  * Developed by Havoc Pennington <hp@pobox.com>
12  *
13  * Copyright (C) 1999 The Gtk-- Development Team
14  *
15  * This library is free software; you can redistribute it and/or
16  * modify it under the terms of the GNU Library General Public
17  * License as published by the Free Software Foundation; either
18  * version 2 of the License, or (at your option) any later version.
19  *
20  * This library is distributed in the hope that it will be useful,
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23  * Library General Public License for more details.
24  *
25  * You should have received a copy of the GNU Library General Public
26  * License along with this library; if not, write to the Free
27  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
28  */
29
30 #include <libgnomecanvasmm/item.h>
31 #include <libgnomecanvas/gnome-canvas-util.h>
32 #include <libgnomecanvas/libgnomecanvas.h>
33 #include "canvas-simpleline.h"
34
35 #ifndef DOXYGEN_SHOULD_SKIP_THIS
36 typedef struct _GnomeCanvasSimpleLine GnomeCanvasSimpleLine;
37 typedef struct _GnomeCanvasSimpleLineClass GnomeCanvasSimpleLineClass;
38 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
39
40
41 namespace Gnome
42 {
43
44 namespace Canvas
45 { class SimpleLine_Class; } // namespace Canvas
46
47 } // namespace Gnome
48 namespace Gnome
49 {
50
51 namespace Canvas
52 {
53
54 class GnomeGroup;
55
56 class SimpleLine : public Item
57 {
58   public:
59 #ifndef DOXYGEN_SHOULD_SKIP_THIS
60   typedef SimpleLine CppObjectType;
61   typedef SimpleLine_Class CppClassType;
62   typedef GnomeCanvasSimpleLine BaseObjectType;
63   typedef GnomeCanvasSimpleLineClass BaseClassType;
64 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
65
66   virtual ~SimpleLine();
67
68 #ifndef DOXYGEN_SHOULD_SKIP_THIS
69
70 private:
71   friend class SimpleLine_Class;
72   static CppClassType line_class_;
73
74   // noncopyable
75   SimpleLine(const SimpleLine&);
76   SimpleLine& operator=(const SimpleLine&);
77
78 protected:
79   explicit SimpleLine(const Glib::ConstructParams& construct_params);
80   explicit SimpleLine(GnomeCanvasSimpleLine* castitem);
81
82 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
83
84 public:
85 #ifndef DOXYGEN_SHOULD_SKIP_THIS
86   static GType get_type()      G_GNUC_CONST;
87   static GType get_base_type() G_GNUC_CONST;
88 #endif
89
90   ///Provides access to the underlying C GtkObject.
91   GnomeCanvasSimpleLine*       gobj()       { return reinterpret_cast<GnomeCanvasSimpleLine*>(gobject_); }
92
93   ///Provides access to the underlying C GtkObject.
94   const GnomeCanvasSimpleLine* gobj() const { return reinterpret_cast<GnomeCanvasSimpleLine*>(gobject_); }
95
96
97 public:
98   //C++ methods used to invoke GTK+ virtual functions:
99
100 protected:
101   //GTK+ Virtual Functions (override these to change behaviour):
102
103   //Default Signal Handlers::
104
105
106 private:
107
108 public:
109   explicit SimpleLine(Group& parent);
110   SimpleLine(Group& parent, double x1, double y1, double x2, double y2);
111
112   /** 
113    *
114    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
115    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
116    * the value of the property changes.
117    */
118   Glib::PropertyProxy<double> property_x1() ;
119
120 /** 
121    *
122    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
123    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
124    * the value of the property changes.
125    */
126   Glib::PropertyProxy_ReadOnly<double> property_x1() const;
127
128   /** 
129    *
130    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
131    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
132    * the value of the property changes.
133    */
134   Glib::PropertyProxy<double> property_x2() ;
135
136 /** 
137    *
138    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
139    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
140    * the value of the property changes.
141    */
142   Glib::PropertyProxy_ReadOnly<double> property_x2() const;
143
144
145   /** 
146    *
147    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
148    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
149    * the value of the property changes.
150    */
151   Glib::PropertyProxy<double> property_y1() ;
152
153 /** 
154    *
155    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
156    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
157    * the value of the property changes.
158    */
159   Glib::PropertyProxy_ReadOnly<double> property_y1() const;
160
161   /** 
162    *
163    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
164    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
165    * the value of the property changes.
166    */
167   Glib::PropertyProxy<double> property_y2() ;
168
169 /** 
170    *
171    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
172    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
173    * the value of the property changes.
174    */
175   Glib::PropertyProxy_ReadOnly<double> property_y2() const;
176
177   /** 
178    *
179    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
180    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
181    * the value of the property changes.
182    */
183   Glib::PropertyProxy<guint> property_color_rgba() ;
184
185 /** 
186    *
187    * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
188    * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
189    * the value of the property changes.
190    */
191   Glib::PropertyProxy_ReadOnly<guint> property_color_rgba() const;
192 };
193
194 } /* namespace Canvas */
195 } /* namespace Gnome */
196
197
198 namespace Glib
199 {
200   /** @relates Gnome::Canvas::SimpleLine
201    * @param object The C instance
202    * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
203    * @result A C++ instance that wraps this C instance.
204    */
205   Gnome::Canvas::SimpleLine* wrap(GnomeCanvasSimpleLine* object, bool take_copy = false);
206 }
207 #endif /* _LIBGNOMECANVASMM_LINE_H */
208