floatobj.cpp
author insilmaril
Mon, 18 Apr 2005 06:17:00 +0000
changeset 95 f688a9913724
parent 0 7a96bd401351
child 2 608f976aa7bb
child 160 72cc3873306a
permissions -rw-r--r--
added basic xLink functions
insilmaril@0
     1
#include "floatobj.h"
insilmaril@0
     2
insilmaril@0
     3
extern QAction* actionEditToggleFloatExport;
insilmaril@0
     4
insilmaril@0
     5
/////////////////////////////////////////////////////////////////
insilmaril@0
     6
// FloatObj
insilmaril@0
     7
/////////////////////////////////////////////////////////////////
insilmaril@0
     8
insilmaril@0
     9
FloatObj::FloatObj ():LinkableMapObj() 
insilmaril@0
    10
{
insilmaril@0
    11
//    cout << "Const FloatObj ()\n";
insilmaril@0
    12
    setParObj (this);	
insilmaril@0
    13
    init();
insilmaril@0
    14
    depth=-1;
insilmaril@0
    15
}
insilmaril@0
    16
insilmaril@0
    17
FloatObj::FloatObj (QCanvas* c):LinkableMapObj(c)
insilmaril@0
    18
{
insilmaril@0
    19
//	cout << "Const FloatObj (c)  called from MapCenterObj (c)\n";
insilmaril@0
    20
    setParObj (this);	
insilmaril@0
    21
    init();
insilmaril@0
    22
    depth=-1;
insilmaril@0
    23
}
insilmaril@0
    24
insilmaril@0
    25
FloatObj::FloatObj (QCanvas* c, LinkableMapObj* p):LinkableMapObj (c)
insilmaril@0
    26
{
insilmaril@0
    27
//    cout << "Const FloatObj (c,p)\n";
insilmaril@0
    28
    setParObj (p);	
insilmaril@0
    29
    depth=p->getDepth()+1;
insilmaril@0
    30
    init();
insilmaril@0
    31
}
insilmaril@0
    32
insilmaril@0
    33
FloatObj::~FloatObj ()
insilmaril@0
    34
{
insilmaril@0
    35
//   cout << "Destr FloatObj\n";
insilmaril@0
    36
}
insilmaril@0
    37
insilmaril@0
    38
void FloatObj::init () 
insilmaril@0
    39
{
insilmaril@0
    40
    setChildObj(this);
insilmaril@0
    41
	relPos=getRandPos();
insilmaril@0
    42
	useOrientation=true;
insilmaril@0
    43
	floatExport=true;
insilmaril@0
    44
	zPlane=Z_ICON;
insilmaril@0
    45
}
insilmaril@0
    46
insilmaril@0
    47
void FloatObj::copy (FloatObj* other)
insilmaril@0
    48
{
insilmaril@0
    49
	LinkableMapObj::copy (other);
insilmaril@0
    50
	relPos=other->relPos;
insilmaril@0
    51
	useOrientation=other->useOrientation;
insilmaril@0
    52
	setVisibility (other->visible);
insilmaril@0
    53
}
insilmaril@0
    54
insilmaril@0
    55
void FloatObj::setRelPos()
insilmaril@0
    56
{
insilmaril@0
    57
	if (useOrientation)
insilmaril@0
    58
	{
insilmaril@0
    59
		if (parObj->getOrientation()==OrientLeftOfCenter)
insilmaril@0
    60
			relPos.setX ( parObj->x() +parObj->width() - bbox.width() -absPos.x());
insilmaril@0
    61
		else	
insilmaril@0
    62
			relPos.setX (absPos.x() - parObj->x() );
insilmaril@0
    63
	}
insilmaril@0
    64
	else
insilmaril@0
    65
		relPos.setX (absPos.x() - parObj->x() );
insilmaril@0
    66
	relPos.setY (absPos.y() - parObj->y() );
insilmaril@0
    67
}
insilmaril@0
    68
insilmaril@0
    69
void FloatObj::setRelPos(const QPoint &p)
insilmaril@0
    70
{
insilmaril@0
    71
	relPos=p;
insilmaril@0
    72
}
insilmaril@0
    73
insilmaril@0
    74
void FloatObj::setZ(const int &i)
insilmaril@0
    75
{
insilmaril@0
    76
	zPlane=i;
insilmaril@0
    77
}
insilmaril@0
    78
insilmaril@0
    79
int FloatObj::z()
insilmaril@0
    80
{
insilmaril@0
    81
	return zPlane;
insilmaril@0
    82
}
insilmaril@0
    83
insilmaril@0
    84
insilmaril@0
    85
void FloatObj::setUseOrientation (const bool &b)
insilmaril@0
    86
{	
insilmaril@0
    87
	if (useOrientation!=b)
insilmaril@0
    88
	{
insilmaril@0
    89
		useOrientation=b;
insilmaril@0
    90
		requestReposition();
insilmaril@0
    91
	}	
insilmaril@0
    92
}
insilmaril@0
    93
insilmaril@0
    94
void FloatObj::setFloatExport(const bool& b)
insilmaril@0
    95
{
insilmaril@0
    96
	floatExport=b;
insilmaril@0
    97
}
insilmaril@0
    98
insilmaril@0
    99
bool FloatObj::getFloatExport()
insilmaril@0
   100
{
insilmaril@0
   101
	return floatExport;
insilmaril@0
   102
}
insilmaril@0
   103
insilmaril@0
   104
void FloatObj::move (double x, double y)
insilmaril@0
   105
{
insilmaril@0
   106
	MapObj::move(x,y);
insilmaril@0
   107
	selbox->move(x,y);
insilmaril@0
   108
}
insilmaril@0
   109
insilmaril@0
   110
void FloatObj::move (QPoint p)
insilmaril@0
   111
{
insilmaril@0
   112
	move (p.x(), p.y());
insilmaril@0
   113
}
insilmaril@0
   114
insilmaril@0
   115
void FloatObj::reposition()
insilmaril@0
   116
{
insilmaril@0
   117
	if (useOrientation)
insilmaril@0
   118
	{
insilmaril@0
   119
		if (parObj->getOrientation()==OrientLeftOfCenter)
insilmaril@0
   120
			move (parObj->x() - relPos.x() + parObj->width() - bbox.width(), parObj->y()+relPos.y());
insilmaril@0
   121
		else	
insilmaril@0
   122
			move (parObj->x()+relPos.x(), parObj->y()+relPos.y());
insilmaril@0
   123
	}		
insilmaril@0
   124
	else
insilmaril@0
   125
		move (parObj->x()+relPos.x(), parObj->y()+relPos.y());
insilmaril@0
   126
	updateLink();	
insilmaril@0
   127
}
insilmaril@0
   128
insilmaril@0
   129
QRect FloatObj::getTotalBBox()
insilmaril@0
   130
{
insilmaril@0
   131
	return bbox;
insilmaril@0
   132
}
insilmaril@0
   133
insilmaril@0
   134
QRect FloatObj::getBBoxSizeWithChilds()
insilmaril@0
   135
{
insilmaril@0
   136
	return bboxTotal;
insilmaril@0
   137
}
insilmaril@0
   138
insilmaril@0
   139
void FloatObj::select()
insilmaril@0
   140
{
insilmaril@0
   141
    LinkableMapObj::select();
insilmaril@0
   142
	// Temporary draw the link while FO is selected
insilmaril@0
   143
	if (style==StyleUndef) 
insilmaril@0
   144
	{
insilmaril@0
   145
		setLinkStyle(getDefLinkStyle());
insilmaril@0
   146
		setLinkColor(parObj->getLinkColor());
insilmaril@0
   147
	}	
insilmaril@0
   148
insilmaril@0
   149
	// Update FloatExport switch in context menu
insilmaril@0
   150
	if (floatExport)
insilmaril@0
   151
		actionEditToggleFloatExport->setEnabled (true);
insilmaril@0
   152
	else	
insilmaril@0
   153
		actionEditToggleFloatExport->setEnabled (true);
insilmaril@0
   154
insilmaril@0
   155
insilmaril@0
   156
}
insilmaril@0
   157
insilmaril@0
   158
void FloatObj::unselect()
insilmaril@0
   159
{
insilmaril@0
   160
	LinkableMapObj::unselect();
insilmaril@0
   161
	setLinkStyle (StyleUndef);
insilmaril@0
   162
}
insilmaril@0
   163