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
|
//=========================================================
// MusE
// Linux Music Editor
// $Id: citem.h,v 1.1.1.1 2003/10/29 10:06:35 wschweer Exp $
// (C) Copyright 1999 Werner Schweer (ws@seh.de)
//=========================================================
#ifndef __CITEM_H__
#define __CITEM_H__
#include <map>
#include <qpoint.h>
#include <qrect.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();
CItem(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;
//---------------------------------------------------------
// 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
|