Ejemplo n.º 1
0
void SQRWebBrowser::OnScreenPosChanged()
{
	if(!m_IsATL)
	{
		if(m_WebWin)
		{
			HWND mainHand=CMainWindowTarget::GetInst()->GetHwnd();
			m_WebWin->SetPostion((int)GetWndLeft(),(int)GetWndTop());
		}
	}
	else
	{
		if(m_WebWinAtl)
		{
			HWND mainHand=CMainWindowTarget::GetInst()->GetHwnd();
			m_WebWinAtl->SetPostion((int)GetWndLeft(),(int)GetWndTop());
		}
	}
}
Ejemplo n.º 2
0
// idx: 새로 들어올 씬 번호
BOOL XESceneSlide::SetSlideLeft( int idx, DWORD p1, DWORD p2 )
{
	if( m_Trans != xTR_NONE )
		return FALSE;
	int idxOld = m_idxScene;
	m_idxScene = -1;	// 이걸 CreateScene에서 쓰고 있는지 알아보려고 이렇게 해봄 이상없으면 지울것.
	m_pNext = CreateScene( idx, p1, p2 );
	if( m_pNext == NULL )
	{
		m_idxScene = idxOld;
		return FALSE;
	}
	m_idxScene = idx;
	m_timerSpeed.Set(0, TRUE );
	GetWndTop()->SetbActive( FALSE );	// 최상위 윈도우를 정지시켜 모든 윈도우의 입력을 막음.
	Add( m_pNext );
	m_pNext->SetPosLocal( XE::GetGameWidth(), 0.f );
	m_timerTrans.Set( 0.15f );
	m_Trans = xTR_LEFT;
	m_Param[0] = p1;
	m_Param[1] = p2;
	return TRUE;
}
Ejemplo n.º 3
0
int XESceneSlide::Process( float dt ) 
{ 
	if( m_Trans == xTR_RIGHT )
	{
		float lerpTime = m_timerTrans.GetSlerp();
		if( lerpTime > 1.0f )
			lerpTime = 1.0f;
//		float lerp = XE::xiCatmullrom( lerpTime, -10.f, 0, 1.f, 1.f );
		float lerp = XE::xiHigherPowerDeAccel( lerpTime, 1.0f, 0 );
		if( m_pCurr )
		{
			float x = XE::GetGameWidth() * lerp; 
			m_pCurr->SetPosLocal( x, 0.f );
		}
		if( m_pNext )
		{
			float x = XE::GetGameWidth() * lerp; 
			m_pNext->SetPosLocal( -XE::GetGameWidth() + x, 0.f );
		}
		if( lerpTime == 1.0f )
		{
			m_Trans = xTR_NONE;
			XWnd::DestroyWnd( m_pCurr );		// 오른쪽으로 사라진 현재씬은 지우고
			m_pCurr = m_pNext;					// 현재씬을 새로운 씬으로 바꿈
//			m_pCurr->SetbActive( TRUE );
			GetWndTop()->SetbActive( TRUE );	// 입력을 다시 풀어줌.
			m_pNext = NULL;
			CallScriptTemplate<XESceneSlide*>( "OnFinishSlide", m_pCurr, m_pCurr->GetstrIdentifier().c_str() );
			OnFinishSlide();
			CallEventHandler( XWM_FINISH_SLIDE, m_idxScene );
		}
	} else
	if( m_Trans == xTR_LEFT )
	{
		float lerpTime = m_timerTrans.GetSlerp();
		if( lerpTime > 1.0f )
			lerpTime = 1.0f;
//		float lerp = XE::xiCatmullrom( lerpTime, -10.f, 0, 1.f, 1.f );
		float lerp = XE::xiHigherPowerDeAccel( lerpTime, 1.0f, 0 );
		if( m_pCurr )
		{
			float x = -XE::GetGameWidth() * lerp; 
			m_pCurr->SetPosLocal( x, 0.f );
		}
		if( m_pNext )
		{
			float x = XE::GetGameWidth() * (1.f - lerp); 
			m_pNext->SetPosLocal( x, 0.f );
		}
		if( lerpTime == 1.0f )
		{
			m_Trans = xTR_NONE;
			XWnd::DestroyWnd( m_pCurr );		// 왼쪽으로 사라진 현재씬은 지우고
			m_pCurr = m_pNext;					// 현재씬을 새로운 씬으로 바꿈
//			m_pCurr->SetbActive( TRUE );		// 슬라이딩이 끝나면 다시 풀어줌.
			GetWndTop()->SetbActive( TRUE );	// 입력을 다시 풀어줌.
			m_pNext = NULL;
			CallScriptTemplate<XESceneSlide*>( "OnFinishSlide", m_pCurr, m_pCurr->GetstrIdentifier().c_str() );
			OnFinishSlide();
			CallEventHandler( XWM_FINISH_SLIDE, m_idxScene );
		}
	}
	return XEBaseScene::Process( dt );
}