mapitem.cpp
author insilmaril
Wed, 03 Jun 2009 20:37:17 +0000
changeset 775 6e4b586aa88a
parent 762 ffb95cd03156
child 776 25e634a7e1dc
permissions -rw-r--r--
Unscrolling temporary works again
     1 #include "mapitem.h"
     2 
     3 #include "linkablemapobj.h"
     4 #include "ornamentedobj.h"
     5 
     6 #include <iostream>
     7 using namespace std;
     8 
     9 MapItem::MapItem()
    10 {
    11 	lmo=NULL;
    12 	posMode=Unused;
    13 }
    14 
    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 }
    25 
    26 void MapItem::setAbsPos (const QPointF &p)
    27 {
    28 	posMode=Absolute;
    29 	pos=p;
    30 	if (lmo) lmo->move (p);
    31 }
    32 
    33 void MapItem::setPositionMode (PositionMode mode)
    34 {
    35 	posMode=mode;
    36 }
    37 
    38 LinkableMapObj* MapItem::getLMO()
    39 {
    40 	return lmo;
    41 }
    42 
    43 void MapItem::setLMO(LinkableMapObj *l)
    44 {
    45 	lmo=l;
    46 }
    47 
    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 }
    63 
    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 }
    85