blob: cd77f51d61635ed1a4aec62a76c900f934984d8f (
plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
//=========================================================
// MusE
// Linux Music Editor
// $Id: citem.h,v 1.2.2.1 2006/10/04 18:45:35 spamatica Exp $
// (C) Copyright 1999 Werner Schweer (ws@seh.de)
//=========================================================
#ifndef __CITEM_H__
#define __CITEM_H__
#include <map>
#include <QPoint>
#include <QRect>
#include "event.h"
class Event;
class Part;
//---------------------------------------------------------
// CItem
// virtuelle Basisklasse fr alle Canvas Item's
//---------------------------------------------------------
class CItem {
private:
Event _event;
Part* _part;
protected:
bool _isMoving;
QPoint moving;
QRect _bbox;
QPoint _pos;
public:
CItem(const QPoint& p, const QRect& r);
CItem();
// Changed by Tim. p3.3.20
//CItem(Event e, Part* p);
CItem(const Event& e, Part* p);
bool isMoving() const { return _isMoving; }
void setMoving(bool f) { _isMoving = f; }
bool isSelected() const;
void setSelected(bool f);
int width() const { return _bbox.width(); }
void setWidth(int l) { _bbox.setWidth(l); }
void setHeight(int l) { _bbox.setHeight(l); }
void setMp(const QPoint&p) { moving = p; }
const QPoint mp() const { return moving; }
int x() const { return _pos.x(); }
int y() const { return _pos.y(); }
void setY(int y) { _bbox.setY(y); }
QPoint pos() const { return _pos; }
void setPos(const QPoint& p) { _pos = p; }
int height() const { return _bbox.height(); }
const QRect& bbox() const { return _bbox; }
void setBBox(const QRect& r) { _bbox = r; }
void move(const QPoint& tl) {
_bbox.moveTopLeft(tl);
_pos = tl;
}
bool contains(const QPoint& p) const { return _bbox.contains(p); }
bool intersects(const QRect& r) const { return r.intersects(_bbox); }
Event event() const { return _event; }
void setEvent(Event& e) { _event = e; }
Part* part() const { return _part; }
void setPart(Part* p) { _part = p; }
};
typedef std::multimap<int, CItem*, std::less<int> >::iterator iCItem;
//typedef std::multimap<int, CItem*, std::less<int> >::const_iterator ciCItem;
typedef std::multimap<int, CItem*, std::less<int> >::const_reverse_iterator rciCItem;
//---------------------------------------------------------
// CItemList
// Canvas Item List
//---------------------------------------------------------
class CItemList: public std::multimap<int, CItem*, std::less<int> > {
public:
void add(CItem*);
CItem* find(const QPoint& pos) const;
};
#endif
|