本文整理汇总了C++中XAP_Frame::getViewKey方法的典型用法代码示例。如果您正苦于以下问题:C++ XAP_Frame::getViewKey方法的具体用法?C++ XAP_Frame::getViewKey怎么用?C++ XAP_Frame::getViewKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XAP_Frame
的用法示例。
在下文中一共展示了XAP_Frame::getViewKey方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: forgetFrame
bool XAP_App::forgetFrame(XAP_Frame * pFrame)
{
UT_return_val_if_fail(pFrame,false);
// If this frame is the currently focussed frame write in NULL
// until another frame appears
if(pFrame == m_lastFocussedFrame )
{
m_lastFocussedFrame = static_cast<XAP_Frame *>(NULL);
}
if (pFrame->getViewNumber() > 0)
{
// locate vector of this frame's clones
UT_GenericVector<XAP_Frame*>* pEntry = m_hashClones.pick(pFrame->getViewKey());
UT_ASSERT(pEntry);
if (pEntry)
{
UT_GenericVector<XAP_Frame*> * pvClones = pEntry;
UT_return_val_if_fail(pvClones,false);
// remove this frame from the vector
UT_sint32 i = pvClones->findItem(pFrame);
UT_ASSERT(i >= 0);
if (i >= 0)
{
pvClones->deleteNthItem(i);
}
// see how many clones are left
UT_uint32 count = pvClones->getItemCount();
UT_ASSERT(count > 0);
XAP_Frame * f = NULL;
if (count == 1)
{
// remaining clone is now a singleton
f = pvClones->getNthItem(count-1);
UT_return_val_if_fail(f,false);
f->setViewNumber(0);
f->updateTitle();
// remove this entry from hashtable
m_hashClones.remove(f->getViewKey(),
NULL);
delete pvClones;
}
else
{
// notify remaining clones of their new view numbers
for (UT_uint32 j=0; j<count; j++)
{
f = static_cast<XAP_Frame *>(pvClones->getNthItem(j));
UT_continue_if_fail(f);
f->setViewNumber(j+1);
f->updateTitle();
}
}
}
}
// remove this frame from our window list
UT_sint32 ndx = m_vecFrames.findItem(pFrame);
UT_ASSERT_HARMLESS(ndx >= 0);
if (ndx >= 0)
{
m_vecFrames.deleteNthItem(ndx);
notifyFrameCountChange();
}
notifyModelessDlgsCloseFrame(pFrame);
// TODO do something here...
return true;
}