Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
drawableslur.h
Go to the documentation of this file.
1 
8 #ifndef DRAWABLESLUR_H_
9 #define DRAWABLESLUR_H_
10 
12 #include "core/slur.h"
13 
14 class CASlur;
15 
17 public:
18  CADrawableSlur( CASlur *slur, CADrawableContext *c, double x1, double y1, double xMid, double yMid, double x2, double y2 );
19  virtual ~CADrawableSlur();
20 
21  CASlur *slur() { return static_cast<CASlur*>(_musElement); }
22 
23  void draw(QPainter *p, const CADrawSettings s);
24  CADrawableSlur *clone(CADrawableContext* newContext = 0);
25 
26  inline double x1() { return _x1; }
27  inline double y1() { return _y1; }
28  inline double xMid() { return _xMid; }
29  inline double yMid() { return _yMid; }
30  inline double x2() { return _x2; }
31  inline double y2() { return _y2; }
32  inline void setX1(double x1) { _x1 = x1; updateGeometry(); }
33  inline void setY1( double y1 ) { _y1 = y1; updateGeometry(); }
34  inline void setXMid( double xMid ) { _xMid = xMid; updateGeometry(); }
35  inline void setYMid( double yMid ) { _yMid = yMid; updateGeometry(); }
36  inline void setX2( double x2) { _x2 = x2; updateGeometry(); }
37  inline void setY2( double y2 ) { _y2 = y2; updateGeometry(); }
38 
39 private:
40  void updateGeometry();
41 
42  double min(double, double, double);
43  double max(double, double, double);
44  double _x1;
45  double _y1;
46  double _xMid;
47  double _yMid;
48  double _x2;
49  double _y2;
50 };
51 
52 #endif /* DRAWABLESLUR_H_ */