void CATextField::ccTouchEnded(CATouch *pTouch, CAEvent *pEvent) { CATouchView::ccTouchEnded(pTouch, pEvent); if (CATextToolBarView::isTextToolBarShow()) return; if (m_bMoved) { m_bMoved = false; return; } CCPoint point = this->convertTouchToNodeSpace(pTouch); if (this->getBounds().containsPoint(point)) { if (!isFirstResponder()) { becomeFirstResponder(); } calculateSelChars(point, m_iString_l_length, m_iString_r_length, m_iCurPos); adjustCursorMove(); #if CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID CCEGLView * pGlView = CAApplication::getApplication()->getOpenGLView(); pGlView->setIMECursorPos(getCursorPos(), getContentText()); #endif } else { resignFirstResponder(); } m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); execCurSelCharRange(); }
void CATextView::moveSelectChars(bool isLeftBtn, const CCPoint& pt) { int l, r, p; calculateSelChars(convertToNodeSpace(pt), l, r, p); if (isLeftBtn) { if (p < m_curSelCharRange.second) m_curSelCharRange.first = p; } else { if (p > m_curSelCharRange.first) m_curSelCharRange.second = p; } m_iCurPos = p; calcCursorPosition(); m_pTextArrView->hideTextArrView(); m_pTextSelView->showTextSelView(this, getZZCRect(), m_iLineHeight); hideCursorMark(); }
void CATextField::moveSelectChars(bool isLeftBtn, const CCPoint& pt) { int l, r, p; calculateSelChars(convertToNodeSpace(pt), l, r, p); if (isLeftBtn) { if (p < m_curSelCharRange.second) m_curSelCharRange.first = p; } else { if (p > m_curSelCharRange.first) m_curSelCharRange.second = p; } m_iString_l_length = l; m_iString_r_length = r; bool isBackward = p < m_iCurPos; m_iCurPos = p; if (isBackward) { adjustCursorMoveBackward(); } else { adjustCursorMoveForward(); } /*CATextSelectView* pSelCharsView = CATextSelectView::create(); bool ll, rr; CCRect cc = convertRectToWorldSpace(getZZCRect(ll, rr)); pSelCharsView->showTextSelView(cc, this, ll, rr); this->hideCursorMark(); CATextArrowView::hideTextArrowView();*/ }