author | insilmaril |
Wed, 03 Jun 2009 20:37:17 +0000 | |
changeset 775 | 6e4b586aa88a |
parent 762 | ffb95cd03156 |
child 776 | 25e634a7e1dc |
permissions | -rw-r--r-- |
1 #include "mapitem.h"
3 #include "linkablemapobj.h"
4 #include "ornamentedobj.h"
6 #include <iostream>
7 using namespace std;
9 MapItem::MapItem()
10 {
11 lmo=NULL;
12 posMode=Unused;
13 }
15 void MapItem::setRelPos (const QPointF &p)
16 {
17 posMode=Relative;
18 pos=p;
19 if (lmo)
20 {
21 ((OrnamentedObj*)lmo)->setUseRelPos (true);
22 ((OrnamentedObj*)lmo)->move2RelPos(p);
23 }
24 }
26 void MapItem::setAbsPos (const QPointF &p)
27 {
28 posMode=Absolute;
29 pos=p;
30 if (lmo) lmo->move (p);
31 }
33 void MapItem::setPositionMode (PositionMode mode)
34 {
35 posMode=mode;
36 }
38 LinkableMapObj* MapItem::getLMO()
39 {
40 return lmo;
41 }
43 void MapItem::setLMO(LinkableMapObj *l)
44 {
45 lmo=l;
46 }
48 void MapItem::initLMO()
49 {
50 if (!lmo) return;
51 switch (posMode)
52 {
53 case Relative:
54 lmo->setRelPos (pos);
55 break;
56 case Absolute:
57 lmo->move (pos);
58 break;
59 default:
60 break;
61 }
62 }
64 QString MapItem::getAttr()
65 {
66 switch (posMode)
67 {
68 case Relative:
69 if (lmo) pos=lmo->getRelPos();
70 return
71 attribut("relPosX",QString().setNum(pos.x())) +
72 attribut("relPosY",QString().setNum(pos.y()));
73 break;
74 case Absolute:
75 if (lmo) pos=lmo->getAbsPos();
76 return
77 attribut("absPosX",QString().setNum(pos.x())) +
78 attribut("absPosY",QString().setNum(pos.y()));
79 break;
80 default:
81 return QString();
82 break;
83 }
84 }