Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/drawable/drawableslur.h
Go to the documentation of this file.
00001 
00008 #ifndef DRAWABLESLUR_H_
00009 #define DRAWABLESLUR_H_
00010 
00011 #include "drawable/drawablemuselement.h"
00012 #include "core/slur.h"
00013 
00014 class CASlur;
00015 
00016 class CADrawableSlur : public CADrawableMusElement {
00017 public:
00018         CADrawableSlur( CASlur *slur, CADrawableContext *c, double x1, double y1, double xMid, double yMid, double x2, double y2 );
00019         virtual ~CADrawableSlur();
00020 
00021         CASlur *slur() { return static_cast<CASlur*>(_musElement); }
00022 
00023         void draw(QPainter *p, const CADrawSettings s);
00024         CADrawableSlur *clone(CADrawableContext* newContext = 0);
00025 
00026         inline double x1() { return _x1; }
00027         inline double y1() { return _y1; }
00028         inline double xMid() { return _xMid; }
00029         inline double yMid() { return _yMid; }
00030         inline double x2() { return _x2; }
00031         inline double y2() { return _y2; }
00032         inline void setX1(double x1) { _x1 = x1; updateGeometry(); }
00033         inline void setY1( double y1 ) { _y1 = y1; updateGeometry(); }
00034         inline void setXMid( double xMid ) { _xMid = xMid; updateGeometry(); }
00035         inline void setYMid( double yMid ) { _yMid = yMid; updateGeometry(); }
00036         inline void setX2( double x2) { _x2 = x2; updateGeometry(); }
00037         inline void setY2( double y2 ) { _y2 = y2; updateGeometry(); }
00038 
00039 private:
00040         void updateGeometry();
00041 
00042         double min(double, double, double);
00043         double max(double, double, double);
00044         double _x1;
00045         double _y1;
00046         double _xMid;
00047         double _yMid;
00048         double _x2;
00049         double _y2;
00050 };
00051 
00052 #endif /* DRAWABLESLUR_H_ */