// offset만큼 이동해준다.(children도 이동) BOOL CN3UIBase::MoveOffset(int iOffsetX, int iOffsetY) { if (0 == iOffsetX && 0 == iOffsetY) return FALSE; // ui 영역 m_rcRegion.left += iOffsetX; m_rcRegion.top += iOffsetY; m_rcRegion.right += iOffsetX; m_rcRegion.bottom += iOffsetY; // movable 영역 if( m_rcMovable.right - m_rcMovable.left != 0 && m_rcMovable.bottom - m_rcMovable.top != 0 ) { m_rcMovable.left += iOffsetX; m_rcMovable.top += iOffsetY; m_rcMovable.right += iOffsetX; m_rcMovable.bottom += iOffsetY; } // children 좌표 갱신 CN3UIBase* pCUI = NULL; // Child UI... for(UIListItor itor = m_Children.begin(); m_Children.end() != itor; ++itor) { pCUI = (*itor); __ASSERT(pCUI, "child UI pointer is NULL!"); pCUI->MoveOffset(iOffsetX, iOffsetY); } return TRUE; }
BOOL CUIChat::MoveOffset(int iOffsetX, int iOffsetY) { if (0 == iOffsetX && 0 == iOffsetY) return FALSE; // ui 영역 m_rcRegion.left += iOffsetX; m_rcRegion.top += iOffsetY; m_rcRegion.right += iOffsetX; m_rcRegion.bottom += iOffsetY; // movable 영역 m_rcMovable.left += iOffsetX; m_rcMovable.top += iOffsetY; m_rcMovable.right += iOffsetX; m_rcMovable.bottom += iOffsetY; // children 좌표 갱신 CN3UIBase* pCUI = NULL; // Child UI... for(UIListItor itor = m_Children.begin(); m_Children.end() != itor; ++itor) { pCUI = (*itor); __ASSERT(pCUI, "child UI pointer is NULL!"); pCUI->MoveOffset(iOffsetX, iOffsetY); } if(CGameProcedure::s_pProcMain->m_pUIMsgDlg) { POINT pt = CGameProcedure::s_pProcMain->m_pUIMsgDlg->GetPos(); RECT rt = this->GetRegion(); if( (rt.right != pt.x) || (rt.top != pt.y) ) { CGameProcedure::s_pProcMain->m_pUIMsgDlg->SetPos(rt.right, rt.top); } } return TRUE; }