本文整理汇总了C++中XAP_Frame::dragText方法的典型用法代码示例。如果您正苦于以下问题:C++ XAP_Frame::dragText方法的具体用法?C++ XAP_Frame::dragText怎么用?C++ XAP_Frame::dragText使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XAP_Frame
的用法示例。
在下文中一共展示了XAP_Frame::dragText方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _mouseDrag
void FV_VisualDragText::_mouseDrag(UT_sint32 x, UT_sint32 y)
{
//
// Don't try to drag the entire document.
//
if(!m_bDoingCopy && (m_pView->isSelectAll() && !m_pView->isHdrFtrEdit())&&(m_iVisualDragMode != FV_VisualDrag_DRAGGING))
{
setMode(FV_VisualDrag_NOT_ACTIVE);
return;
}
if(m_iVisualDragMode == FV_VisualDrag_NOT_ACTIVE)
{
m_iInitialOffX = x;
m_iInitialOffY = y;
m_iVisualDragMode = FV_VisualDrag_WAIT_FOR_MOUSE_DRAG;
UT_DEBUGMSG(("Initial call for drag -1\n"));
return;
}
if((m_iInitialOffX == 0) && (m_iInitialOffY == 0))
{
m_iInitialOffX = x;
m_iInitialOffY = y;
m_iVisualDragMode = FV_VisualDrag_WAIT_FOR_MOUSE_DRAG;
UT_DEBUGMSG(("Initial call for drag -2 \n"));
}
if(m_iVisualDragMode == FV_VisualDrag_WAIT_FOR_MOUSE_DRAG)
{
double diff = sqrt((static_cast<double>(x) - static_cast<double>(m_iInitialOffX))*(static_cast<double>(x) - static_cast<double>(m_iInitialOffX)) +
(static_cast<double>(y) - static_cast<double>(m_iInitialOffY))*(static_cast<double>(y) - static_cast<double>(m_iInitialOffY)));
if(diff < static_cast<double>(getGraphics()->tlu(MIN_DRAG_PIXELS)))
{
UT_DEBUGMSG(("Not yet dragged enough.%f \n", diff));
//
// Have to drag 4 pixels before initiating the drag
//
return;
}
else
{
m_iVisualDragMode = FV_VisualDrag_START_DRAGGING;
XAP_Frame * pFrame = static_cast<XAP_Frame*>(m_pView->getParentData());
if (pFrame)
pFrame->dragText();
}
}
if((m_iVisualDragMode != FV_VisualDrag_DRAGGING) && (m_iVisualDragMode != FV_VisualDrag_WAIT_FOR_MOUSE_DRAG) && !m_bDoingCopy)
{
//
// Haven't started the drag yet so create our image and cut the text.
//
m_pView->getDocument()->beginUserAtomicGlob();
mouseCut(m_iInitialOffX,m_iInitialOffY);
m_bTextCut = true;
}
clearCursor();
if(m_iVisualDragMode == FV_VisualDrag_START_DRAGGING)
{
reposOffsets(x,y);
}
m_iVisualDragMode = FV_VisualDrag_DRAGGING;
xxx_UT_DEBUGMSG(("x = %d y = %d width \n",x,y));
bool bScrollDown = false;
bool bScrollUp = false;
bool bScrollLeft = false;
bool bScrollRight = false;
m_xLastMouse = x;
m_yLastMouse = y;
if(y<=0)
{
bScrollUp = true;
}
else if( y >= m_pView->getWindowHeight())
{
bScrollDown = true;
}
if(x <= 0)
{
bScrollLeft = true;
}
else if(x >= m_pView->getWindowWidth())
{
bScrollRight = true;
}
if(bScrollDown || bScrollUp || bScrollLeft || bScrollRight)
{
if(m_pAutoScrollTimer != NULL)
{
return;
}
m_pAutoScrollTimer = UT_Timer::static_constructor(_autoScroll, this);
m_pAutoScrollTimer->set(AUTO_SCROLL_MSECS);
m_pAutoScrollTimer->start();
return;
}
UT_sint32 dx = 0;
UT_sint32 dy = 0;
UT_Rect expX(0,m_recCurFrame.top,0,m_recCurFrame.height);
UT_Rect expY(m_recCurFrame.left,0,m_recCurFrame.width,0);
//.........这里部分代码省略.........