1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
//=============================================================================
// MuseScore
// Music Composition & Notation
//
// Copyright (C) 2011 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 __SEGMENTLIST_H__
#define __SEGMENTLIST_H__
#include <libmscore/segment.h>
namespace Ms {
//---------------------------------------------------------
// SegmentList
//---------------------------------------------------------
class SegmentList {
Segment* _first; ///< First item of segment list
Segment* _last; ///< Last item of segment list
int _size; ///< Number of items in segment list
public:
SegmentList() { clear(); }
void clear() { _first = _last = 0; _size = 0; }
#ifndef NDEBUG
void check();
#else
void check() {}
#endif
SegmentList clone() const;
int size() const { return _size; }
Segment* first() const { return _first; }
Segment* first(Segment::Type) const;
Segment* last() const { return _last; }
Segment* firstCRSegment() const;
void remove(Segment*);
void push_back(Segment*);
void push_front(Segment*);
void insert(Segment*);
void insert(Segment* e, Segment* el);
};
} // namespace Ms
#endif
|