MuseScore/libmscore/dynamichairpingroup.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

69 lines
2.2 KiB
C
Raw Normal View History

//=============================================================================
// MuseScore
// Music Composition & Notation
//
// Copyright (C) 2020 MuseScore BVBA
//
// 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
//=============================================================================
2020-04-28 21:59:58 +02:00
#ifndef __DYNAMICHAIRPINGROUP_H__
#define __DYNAMICHAIRPINGROUP_H__
#include "elementgroup.h"
namespace Ms {
class Dynamic;
class Hairpin;
class HairpinSegment;
//-------------------------------------------------------------------
// HairpinWithDynamicsDragGroup
/// Sequence of Dynamics and Hairpins
//-------------------------------------------------------------------
class HairpinWithDynamicsDragGroup : public ElementGroup
{
Dynamic* startDynamic;
HairpinSegment* hairpinSegment;
Dynamic* endDynamic;
public:
2020-05-29 18:47:27 +02:00
HairpinWithDynamicsDragGroup(Dynamic* start, HairpinSegment* hs, Dynamic* end)
: startDynamic(start), hairpinSegment(hs), endDynamic(end) {}
void startDrag(EditData&) override;
QRectF drag(EditData&) override;
void endDrag(EditData&) override;
static std::unique_ptr<ElementGroup> detectFor(HairpinSegment* hs, std::function<bool(const Element*)> isDragged);
static std::unique_ptr<ElementGroup> detectFor(Dynamic* d, std::function<bool(const Element*)> isDragged);
};
//-------------------------------------------------------------------
// DynamicNearHairpinsDragGroup
//-------------------------------------------------------------------
class DynamicNearHairpinsDragGroup : public ElementGroup
{
Hairpin* leftHairpin;
Dynamic* dynamic;
Hairpin* rightHairpin;
2020-05-26 15:54:26 +02:00
public:
2020-05-29 18:47:27 +02:00
DynamicNearHairpinsDragGroup(Hairpin* left, Dynamic* d, Hairpin* right)
: leftHairpin(left), dynamic(d), rightHairpin(right) {}
void startDrag(EditData&) override;
QRectF drag(EditData&) override;
void endDrag(EditData&) override;
static std::unique_ptr<ElementGroup> detectFor(Dynamic* d, std::function<bool(const Element*)> isDragged);
2020-05-26 15:54:26 +02:00
};
} // namespace Ms
#endif