本文整理汇总了C++中cegui::Window::getPixelRect方法的典型用法代码示例。如果您正苦于以下问题:C++ Window::getPixelRect方法的具体用法?C++ Window::getPixelRect怎么用?C++ Window::getPixelRect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cegui::Window
的用法示例。
在下文中一共展示了Window::getPixelRect方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: moveWindow
//只改变位置不改变大小
void CUIEditorView::moveWindow(CPoint point,CPoint step,CEGUI::Window* pWin/* = NULL*/)
{
CEGUI::Window* pWindow = pWin ? pWin : m_pSelectedWindow;
if (pWindow)
{
//方向键操作
if ( step.x != 0 || step.y != 0 )
{
CEGUI::Point pos = pWindow->getAbsolutePosition();
pos.d_x += step.x;
pos.d_y += step.y;
pWindow->setPosition(CEGUI::Absolute, pos);
}
//鼠标操作
else
{
CEGUI::Window* pParent = pWindow;
CEGUI::Point pt = CEGUI::Point(point.x, point.y);
if (pWindow->getParent() == CEGUI::System::getSingleton().getGUISheet())
{
pParent = pWindow->getParent();
CEGUI::Point pointWindow = pWindow->getPixelRect().getPosition();
//初始化位置
if(m_ptMouseMovePos.x == 0 && m_ptMouseMovePos.y == 0)
{
m_ptMouseMovePos.x = point.x - pointWindow.d_x;
m_ptMouseMovePos.y = point.y - pointWindow.d_y;
}
pt.d_x -= m_ptMouseMovePos.x;
pt.d_y -= m_ptMouseMovePos.y;
}
else
{
while (pParent && pParent->getParent() != CEGUI::System::getSingleton().getGUISheet())
{
pParent = pParent->getParent();
}
CEGUI::Point pointParent = pParent->getPixelRect().getPosition();
CEGUI::Point pointWindow = pWindow->getPixelRect().getPosition();
//初始化位置
if(m_ptMouseMovePos.x == 0 && m_ptMouseMovePos.y == 0)
{
m_ptMouseMovePos.x = point.x - pointWindow.d_x;
m_ptMouseMovePos.y = point.y - pointWindow.d_y;
}
pt = CEGUI::Point(point.x-pointParent.d_x /*+pointWindow.d_x*/ - m_ptMouseMovePos.x,
point.y - pointParent.d_y/* +pointWindow.d_y*/ - m_ptMouseMovePos.y);
}
pWindow->setClippedByParent(true);
pWindow->setPosition(CEGUI::Absolute, pt);
}
}
}
示例2: setWindowSelected
void CUIEditorView::setWindowSelected(const CEGUI::String& name,bool addEvent /*= true*/)
{
try
{
if( name.length()> 0 && name != m_nSelectWindowName)
{
if(name == "___Shower_Window____") return;
CEGUI::Window* pWindow = CEGUI::WindowManager::getSingleton().getWindow(name);
CEGUI::Window* pOldSel = NULL;
if (pWindow && !pWindow->isAutoWindow())
{
if(m_nSelectWindowName.length() > 0)
{
pOldSel = CEGUI::WindowManager::getSingleton().getWindow(m_nSelectWindowName);
if (pOldSel)
{
for(;pOldSel && pOldSel != CEGUI::System::getSingleton().getGUISheet(); pOldSel = pOldSel->getParent())
{
pOldSel->unsubscribeEvent(CEGUI::Window::EventMoved, CEGUI::Event::Subscriber(&CUIEditorView::handleSelectedWindowMoved, this));
}
}
}
//pWindow->moveToFront();
m_nSelectWindowName = pWindow->getName();
CEGUI::Window* pSet = pWindow;
for (; pSet&& pSet !=CEGUI::System::getSingleton().getGUISheet(); pSet = pSet->getParent() )
{
pSet->subscribeEvent(CEGUI::Window::EventMoved, CEGUI::Event::Subscriber(&CUIEditorView::handleSelectedWindowMoved, this));
}
CEGUI::Rect rect = pWindow->getPixelRect();
setSelectWindowPos(CRect(rect.d_left, rect.d_top, rect.getWidth(), rect.getHeight()));
m_ptMouseMovePos = CPoint(0,0);
}
m_pSelectedWindow = pWindow;
updateCurrentWindowStatusText();
if (addEvent)
{
g_DataPool.OnSelectWindowChanged(pOldSel,pWindow);
}
}
else if (name.length() == 0)
{
if (addEvent)
{
g_DataPool.OnSelectWindowChanged(m_pSelectedWindow,NULL);
}
m_nSelectWindowName = "";
setSelectWindowPos(CRect(), true);
m_pSelectedWindow = NULL;
}
}
catch(CEGUI::UnknownObjectException& e)
{
}
}
示例3: sizingWindow
//只改变大小,不改变位置
void CUIEditorView::sizingWindow(CPoint point,INT type,CEGUI::Window* pWin/* = NULL*/)
{
CEGUI::Window* pWindow = pWin ? pWin : m_pSelectedWindow;
if (pWindow)
{
CEGUI::Window* pParent = pWindow;
CEGUI::Size pt(0,0);
if (pWindow->getParent() == CEGUI::System::getSingleton().getGUISheet())
{
CEGUI::Point pos = pWindow->getPixelRect().getPosition();
pt = CEGUI::Size(point.x - pos.d_x, point.y - pos.d_y);
}
else
{
while (pParent && pParent->getParent() != CEGUI::System::getSingleton().getGUISheet())
{
pParent = pParent->getParent();
}
CEGUI::Rect rectWindow = pWindow->getPixelRect();
pt = CEGUI::Size(point.x -rectWindow.getPosition().d_x ,point.y -rectWindow.getPosition().d_y);
}
pWindow->setClippedByParent(true);
if(type == 0)
{
pWindow->setHeight(CEGUI::Absolute,pt.d_height);
}
else if (type == 1)
{
pWindow->setWidth(CEGUI::Absolute,pt.d_width);
}
else
{
pWindow->setSize(CEGUI::Absolute, pt);
}
}
}