MuseScore Plugins  3.5
Plugins API for MuseScore
layoutbreak.h
1 //=============================================================================
2 // MuseScore
3 // Music Composition & Notation
4 //
5 // Copyright (C) 2002-2011 Werner Schweer
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2
9 // as published by the Free Software Foundation and appearing in
10 // the file LICENCE.GPL
11 //=============================================================================
12 
13 #ifndef __LAYOUTBREAK_H__
14 #define __LAYOUTBREAK_H__
15 
16 #include "element.h"
17 
18 namespace Ms {
19 
20 // layout break subtypes:
21 
22 //---------------------------------------------------------
23 // @@ LayoutBreak
25 //---------------------------------------------------------
26 
27 class LayoutBreak final : public Element {
28  Q_GADGET
29  public:
30  enum Type {
34  };
35  private:
36  Q_ENUM(Type);
37 
38  qreal lw;
39  QPainterPath path;
40  QPainterPath path2;
41  qreal _pause;
42  bool _startWithLongNames;
43  bool _startWithMeasureOne;
44  Type _layoutBreakType;
45 
46  void draw(QPainter*) const override;
47  void layout0();
48  void spatiumChanged(qreal oldValue, qreal newValue) override;
49 
50  public:
51  LayoutBreak(Score* = 0);
52  LayoutBreak(const LayoutBreak&);
53 
54  LayoutBreak* clone() const override { return new LayoutBreak(*this); }
55  ElementType type() const override { return ElementType::LAYOUT_BREAK; }
56 
57  void setLayoutBreakType(Type);
58  Type layoutBreakType() const { return _layoutBreakType; }
59 
60  bool acceptDrop(EditData&) const override;
61  Element* drop(EditData&) override;
62  void write(XmlWriter&) const override;
63  void read(XmlReader&) override;
64 
65  Measure* measure() const { return (Measure*)parent(); }
66  qreal pause() const { return _pause; }
67  void setPause(qreal v) { _pause = v; }
68  bool startWithLongNames() const { return _startWithLongNames; }
69  void setStartWithLongNames(bool v) { _startWithLongNames = v; }
70  bool startWithMeasureOne() const { return _startWithMeasureOne; }
71  void setStartWithMeasureOne(bool v) { _startWithMeasureOne = v; }
72 
73  bool isPageBreak() const { return _layoutBreakType == PAGE; }
74  bool isLineBreak() const { return _layoutBreakType == LINE; }
75  bool isSectionBreak() const { return _layoutBreakType == SECTION; }
76  bool isNoBreak() const { return _layoutBreakType == NOBREAK; }
77 
78  QVariant getProperty(Pid propertyId) const override;
79  bool setProperty(Pid propertyId, const QVariant&) override;
80  QVariant propertyDefault(Pid) const override;
81  Pid propertyId(const QStringRef& xmlName) const override;
82  };
83 
84 
85 } // namespace Ms
86 
87 #endif
symbols for line break, page break etc.
Definition: layoutbreak.h:27
Type
Definition: layoutbreak.h:30
ElementType
Definition: types.h:34
Definition: layoutbreak.h:32
Definition: layoutbreak.h:32
Definition: cursor.cpp:30
Definition: layoutbreak.h:32
Definition: layoutbreak.h:32