MuseScore/libmscore/jump.h

112 lines
3.4 KiB
C
Raw Normal View History

2013-02-25 14:56:34 +01:00
//=============================================================================
// MuseScore
// Music Composition & Notation
//
// Copyright (C) 2002-2013 Werner Schweer
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2
// as published by the Free Software Foundation and appearing in
// the file LICENCE.GPL
//=============================================================================
#ifndef __JUMP_H__
#define __JUMP_H__
#include "text.h"
2013-05-13 18:49:17 +02:00
namespace Ms {
2018-03-21 14:05:33 +01:00
enum class SubStyleId;
2017-01-16 20:51:12 +01:00
2013-02-25 14:56:34 +01:00
//---------------------------------------------------------
// @@ Jump
/// Jump label
2013-02-25 14:56:34 +01:00
//
// @P continueAt string
// @P jumpTo string
// not used?
// jumpType enum (Jump.DC, .DC_AL_FINE, .DC_AL_CODA, .DS_AL_CODA, .DS_AL_FINE, .DS, USER) (read only)
// @P playUntil string
2013-02-25 14:56:34 +01:00
//---------------------------------------------------------
2017-12-27 11:51:00 +01:00
class Jump final : public TextBase {
2013-02-25 14:56:34 +01:00
QString _jumpTo;
QString _playUntil;
QString _continueAt;
bool _playRepeats;
2013-02-25 14:56:34 +01:00
public:
enum class Type : char {
DC,
DC_AL_FINE,
DC_AL_CODA,
DS_AL_CODA,
DS_AL_FINE,
DS,
USER
};
2013-02-25 14:56:34 +01:00
Jump(Score*);
void setJumpType(Type t);
Type jumpType() const;
QString jumpTypeUserName() const;
2013-02-25 14:56:34 +01:00
2017-02-10 15:13:23 +01:00
virtual Jump* clone() const override { return new Jump(*this); }
virtual ElementType type() const override { return ElementType::JUMP; }
2013-02-25 14:56:34 +01:00
2017-02-10 15:13:23 +01:00
Measure* measure() const { return toMeasure(parent()); }
virtual void read(XmlReader&) override;
2016-11-19 11:51:21 +01:00
virtual void write(XmlWriter& xml) const override;
2013-02-25 14:56:34 +01:00
2017-02-10 15:13:23 +01:00
virtual void layout() override;
QString jumpTo() const { return _jumpTo; }
QString playUntil() const { return _playUntil; }
QString continueAt() const { return _continueAt; }
void setJumpTo(const QString& s) { _jumpTo = s; }
void setPlayUntil(const QString& s) { _playUntil = s; }
void setContinueAt(const QString& s) { _continueAt = s; }
2013-02-25 14:56:34 +01:00
void undoSetJumpTo(const QString& s);
void undoSetPlayUntil(const QString& s);
void undoSetContinueAt(const QString& s);
2017-02-10 15:13:23 +01:00
bool playRepeats() const { return _playRepeats; }
void setPlayRepeats(bool val) { _playRepeats = val; }
2013-02-25 14:56:34 +01:00
2017-02-10 15:13:23 +01:00
virtual bool systemFlag() const override { return true; }
2013-02-25 14:56:34 +01:00
virtual QVariant getProperty(P_ID propertyId) const override;
virtual bool setProperty(P_ID propertyId, const QVariant&) override;
virtual QVariant propertyDefault(P_ID) const override;
Element* nextSegmentElement() override;
Element* prevSegmentElement() override;
2016-02-04 17:06:32 +01:00
virtual QString accessibleInfo() const override;
};
2017-02-10 15:13:23 +01:00
//---------------------------------------------------------
// JumpTypeTable
//---------------------------------------------------------
struct JumpTypeTable {
Jump::Type type;
2018-03-21 14:05:33 +01:00
SubStyleId subStyle;
const char* text;
const char* jumpTo;
const char* playUntil;
const char* continueAt;
QString userText;
2013-02-25 14:56:34 +01:00
};
extern const JumpTypeTable jumpTypeTable[];
int jumpTypeTableSize();
2013-05-13 18:49:17 +02:00
} // namespace Ms
Q_DECLARE_METATYPE(Ms::Jump::Type);
2013-02-25 14:56:34 +01:00
#endif