Change some declarations from 'struct' to 'class' (and vice-versa)
[ardour.git] / libs / canvas / canvas / outline.h
index c315da874c815e9a640bb6d03331d5efc5d9feb9..474501c8c78c1a38711a388abb0069ffa6d96cda 100644 (file)
 #define __CANVAS_OUTLINE_H__
 
 #include <stdint.h>
+
+#include <boost/noncopyable.hpp>
+
+#include "canvas/visibility.h"
 #include "canvas/types.h"
-#include "canvas/item.h"
 
 namespace ArdourCanvas {
 
-class Outline : virtual public Item
+class Item;
+
+class LIBCANVAS_API Outline : public boost::noncopyable
 {
 public:
-       Outline (Group *);
-       virtual ~Outline () {}
+       Outline (Item& self);
+       virtual ~Outline() {}
 
        Color outline_color () const {
                return _outline_color;
@@ -50,39 +55,14 @@ public:
 
        virtual void set_outline (bool);
 
-#ifdef CANVAS_COMPATIBILITY
-       int& property_first_arrowhead () {
-               return _foo_int;
-       }
-       int& property_last_arrowhead () {
-               return _foo_int;
-       }
-       int& property_arrow_shape_a () {
-               return _foo_int;
-       }
-       int& property_arrow_shape_b () {
-               return _foo_int;
-       }
-       int& property_arrow_shape_c () {
-               return _foo_int;
-       }
-       bool& property_draw () {
-               return _foo_bool;
-       }
-#endif 
-
 protected:
 
        void setup_outline_context (Cairo::RefPtr<Cairo::Context>) const;
-       
-       Color _outline_color;
-       Distance _outline_width;
-       bool _outline;
 
-#ifdef CANVAS_COMPATIBILITY
-       int _foo_int;
-       bool _foo_bool;
-#endif
+       Item&    _self;
+       Color    _outline_color;
+       Distance _outline_width;
+       bool     _outline;
 };
 
 }