Ejemplo n.º 1
0
//ajusta las ventanas a redimencionarlas verticalmente
//se decrementa las anteriores ventanas a la actual y se 
//incrementan las posteriores.
void CGuiControlBar::AjustReDinSize(CPoint point)
{
	
	int nFirstPos=GetFirstPos();
	int nLastPos=GetLastPos();
	int m_ThisPos=m_pDockBar->FindBar(this);
	

	ClientToScreen(&point);

	//si la diferencia es negativa esta barra crece la anterior a esta disminuye
	int nDif=0;
	BOOL bGrow=FALSE;
	
	if (IsVert())
	{
		 nDif=m_ptStartPos.y- point.y;
		 if (nDif > 0)
			bGrow=TRUE;
		 
		 if (bGrow)
                m_sizeVert.cy+=abs(nDif)+4;
		 else
				m_sizeVert.cy-=abs(nDif);
			
	 	 if (nFirstPos == m_ThisPos) 
			return;
	
	}
	else
	{
		 nDif=m_ptStartPos.x- point.x;
		 if (nDif < 0)
			bGrow=TRUE;

		 if (bGrow)
				m_sizeHorz.cx+=abs(nDif);
			else
				m_sizeHorz.cx-=abs(nDif);
			
         if (nLastPos == m_ThisPos) 
			return;
	}
	
	
	if (IsVert())
		AjustVert(bGrow,nDif);
	else
		AjustHorz(bGrow,nDif);
	
	RecalWindowPos();
	

	
}
Ejemplo n.º 2
0
int CGuiControlBar::GetWidthMax()
{
	m_pos=m_pDockBar->FindBar(this);
	m_Last=GetLastPos();
	int nWidth=0;
	for (int nPos = GetFirstPos(); nPos <= m_Last; nPos++)
	{
		CGuiControlBar* pBar = GetGuiControlBar(nPos);
		if (pBar== NULL) continue;
		nWidth=max(nWidth,IsVert() ? pBar->m_sizeVert.cx:pBar->m_sizeHorz.cy);
	}
	return nWidth;
}
Ejemplo n.º 3
0
void CGuiToolBarWnd::SetRealSize()
{
	CRect rcWinFrame;
	CRect rcThisBar;
	
	int nVisibles=0;
	
	int nThis = m_pDockBar->FindBar(this);
	int nFirst= GetFirstPos();
	int nLast=  GetLastPos();
	UINT m_nDockBarID = m_pDockBar->GetDlgCtrlID();
	int  nMaxlen=GetHiWid();
    int  nLen=0; 
	for (int i=nFirst;i <nLast;  i++)
	{
		
		CGuiToolBarWnd* pBar;
		pBar = (CGuiToolBarWnd*) m_pDockBar->m_arrBars[i];
		if (HIWORD(pBar) == 0) continue; 
		if (!pBar->IsVisible()) continue;
		
		CRect rc;
		pBar->GetWindowRect(rc);
		if (IsVert())
			nLen+=rc.Height() ;
		else
			nLen+= rc.Width() ;
		nVisibles++;
	}
	
	if ( nLen > nMaxlen)
	{
		int nDif=nLen-nMaxlen;
		

	}
	


/*	if (rcThisBar.Width() > nAfterThis)
	{
		if (nVisibles > 0)
			nAfterThis/=nVisibles;
		

	}
*/		
}
Ejemplo n.º 4
0
void RotateSpriteState::Rotate(const sm::vec2& dst)
{
	ee::RotateSpriteState::Rotate(dst);

	SkeletonData* skeleton = get_curr_skeleton();
	if (!skeleton) {
		return;
	}

	ee::SpriteSelection* selection = GetSelection();
	if (selection->IsEmpty()) {
		return;
	}

	std::vector<ee::SprPtr> sprs;
	selection->Traverse(ee::FetchAllRefVisitor<ee::Sprite>(sprs));

	skeleton->FixJoint(sprs[0]);
	float dAngle = sm::get_angle_in_direction(sprs[0]->GetPosition(), GetLastPos(), dst);
	skeleton->UpdateJoint(sprs[0], dAngle);
}
Ejemplo n.º 5
0
//esta rutina dispone de la posición en el Dockbar de la pila de  ventanas 
void CGuiControlBar::RecalWindowPos()
{
	int m_First=GetFirstPos();
	int m_Last=GetLastPos();
	int m_This=m_pDockBar->FindBar(this);
	
	CRect rcWin=GetDockRect();
	int m_VertPos=0;
	for(int i=m_First; i<= m_Last; i++)
	{
		CGuiControlBar* pBar = GetGuiControlBar(i);
		if (pBar == NULL) continue;
		CRect rcBar;
		pBar->GetWindowRect(rcBar);
		rcBar.OffsetRect(-rcWin.TopLeft());
		if (IsVert())
		{
	 	 if (i==m_First) 
			rcBar.top=-2;
		 else
		 	rcBar.top=m_VertPos;
		}
		else
		{
			if (i==m_First) 
				rcBar.left=-2;
			else
		 		rcBar.left=m_VertPos;
		}
		pBar->MoveWindow(rcBar);
		m_VertPos+=IsVert()? rcBar.Height():rcBar.Width();

	}
	m_pDockSite->RecalcLayout();

}
Ejemplo n.º 6
0
void CGuiControlBar::AjustHorz(BOOL bGrow,int nDif)
{
	int nFirstPos=GetFirstPos();
	int nLastPos=GetLastPos();
	int m_ThisPos=m_pDockBar->FindBar(this);

	if(m_SideMove==HTRIGHT)
	{
				
		//Esta ventana crece las anteriores reducen su tamaño
		
		if (bGrow)	
			{
				for (int i=m_ThisPos+1; i <= nLastPos; i++)
				{
					CGuiControlBar* pBar = GetGuiControlBar(i);
					if (pBar== NULL) return;
					if(IsHorz())
					{
						if (pBar->m_sizeHorz.cx-abs(nDif) < pBar->m_sizeMinH.cx)
						{
							pBar->m_sizeHorz.cx=pBar->m_sizeMinH.cx;
							continue;
						}
						else
						{
							pBar->m_sizeHorz.cx-=abs(nDif);
							break;
						}
					}
				}//for
					
			}//bGrow
			else	//este disminuye la anterior crece
			{
			   if (m_ThisPos+1 <= m_Last)
				{
					CGuiControlBar* pBar = GetGuiControlBar(m_ThisPos+1);
					if (pBar== NULL) return;
					pBar->m_sizeHorz.cx+=abs(nDif); 
					if(m_sizeHorz.cx > m_sizeMinH.cx)
						return;
					else
					  pBar->m_sizeHorz.cx+=abs(nDif); 
				}


				for (int i=m_ThisPos-1; i >0; i--)
				{
					CGuiControlBar* pBar = GetGuiControlBar(i);
					if (pBar== NULL) return;
					if(IsHorz())
					{
						if (pBar->m_sizeHorz.cx-abs(nDif) < pBar->m_sizeMinH.cx)
							continue;
						else
						{
							pBar->m_sizeHorz.cx-=abs(nDif);
							return;
						}
					}
				}//for
			}
	}

	
}
Ejemplo n.º 7
0
void CGuiControlBar::AjustVert(BOOL bGrow,int nDif)
{
	int nFirstPos=GetFirstPos();
	int nLastPos=GetLastPos();
	int m_ThisPos=m_pDockBar->FindBar(this);

	if(m_SideMove==HTTOP)
	{
				
		//Esta ventana crece las anteriores reducen su tamaño
		
		if (bGrow)	
			{
				for (int i=m_ThisPos-1; i > 0; i--)
				{
					CGuiControlBar* pBar = GetGuiControlBar(i);
					if (pBar== NULL) return;
					if(IsVert())
					{
						if (pBar->m_sizeVert.cy-abs(nDif) < pBar->m_sizeMinV.cy)
						{
							pBar->m_sizeVert.cy=pBar->m_sizeMinV.cy;
							continue;
						}
						else
						{
							pBar->m_sizeVert.cy-=abs(nDif);
							break;
						}
					}
				}//for
					
			}//bGrow
			else	//este disminuye la anterior crece
			{
				if (m_ThisPos-1 > 0)
				{
					CGuiControlBar* pBar = GetGuiControlBar(m_ThisPos-1);
					if (pBar== NULL) return;
					pBar->m_sizeVert.cy+=abs(nDif); 
					if(m_sizeVert.cy > m_sizeMinV.cy)
						return;
					else
					  pBar->m_sizeVert.cy-=m_sizeMinV.cy; 
				}
				for (int i=m_ThisPos+1; i >= m_Last; i++)
				{
					CGuiControlBar* pBar = GetGuiControlBar(i);
					if (pBar== NULL) return;
					if(IsVert())
					{
						if (pBar->m_sizeVert.cy-abs(nDif) < pBar->m_sizeMinV.cy)
							continue;
						else
						{
							pBar->m_sizeVert.cy-=abs(nDif);
							return;
						}
					}
				}//for
			}
	}
}