/*********************************************************************
*	ContainerFixes
*	SOURCE FILE
*	Autor:	Michal Jirouš
*	Datum: 1.7.2008
*	Soubor: cotainer_fixed.cpp
*	Popis: Kontejner s fixnimi souradnicemi komponent
**********************************************************************/

#include "gfg.h"

void ContainerFixed::addComponent( CBaseComponent *component, float x_offset, float y_offset )
{
	if( component == NULL )
		return;

	component->setParent( this );
	ContainerElement *newElement = new ContainerElement;

	if( m_pFirstElement == NULL )
		m_pFirstElement = newElement;
	if( m_pLastElement == NULL )
		m_pLastElement = newElement;
	if( !m_Components.empty() )
	{
		newElement->m_pUp = m_pLastElement;
		m_pLastElement->m_pDown = newElement;
		m_pLastElement = newElement;
	}

	m_Components.push_back( newElement );
	m_Components.back()->m_pComponent = component;
	
	//Vypocet souradnic komponenty
	x_offset = m_ScissorBox.x + x_offset - component->getXPosition();
	
	if( y_offset < 0 )
		y_offset = m_fHeight + m_fGlobalYpos + y_offset - component->getYPosition();
	else
		y_offset = m_ScissorBox.y + y_offset - component->getYPosition();
	
	//umisteni komponenty
	component->setPositionOffset( x_offset, y_offset );
	
	m_pFirstElement->m_pUp = m_pLastElement;
	m_pLastElement->m_pDown = m_pFirstElement;
}




