void deleteBackward() { CC_RETURN_IF(m_iCurPos == 0 || m_szText.empty()); if (m_curSelCharRange.first != m_curSelCharRange.second) { if (!textValueChanged(m_curSelCharRange.first, m_curSelCharRange.second - m_curSelCharRange.first, "")) return; CC_RETURN_IF(execCurSelCharRange()); } else { int nDeleteLen = 1; while (0x80 == (0xC0 & m_szText.at(m_iCurPos - nDeleteLen))) { ++nDeleteLen; } if (!textValueChanged(m_iCurPos, nDeleteLen, "")) return; m_iCurPos = MAX(m_iCurPos, nDeleteLen); m_szText.erase(m_iCurPos - nDeleteLen, nDeleteLen); m_iCurPos -= nDeleteLen; updateImage(); } }
void CATextView::deleteBackward() { CC_RETURN_IF(m_iCurPos == 0 || m_szText.empty()); std::string cszDelStr; if (m_curSelCharRange.first != m_curSelCharRange.second) { cszDelStr = m_szText.substr(m_curSelCharRange.first, m_curSelCharRange.second - m_curSelCharRange.first); } else { int nDeleteLen = 1; while (1) { CC_BREAK_IF(m_iCurPos - nDeleteLen < 0); CC_BREAK_IF(0x80 != (0xC0 & m_szText.at(m_iCurPos - nDeleteLen))); ++nDeleteLen; } cszDelStr = m_szText.substr(m_iCurPos - nDeleteLen, nDeleteLen); } CC_RETURN_IF(m_pTextViewDelegate && m_pTextViewDelegate->onTextViewDeleteBackward(this, cszDelStr.c_str(), (int)cszDelStr.length())); CC_RETURN_IF(execCurSelCharRange()); int nDeleteLen = (int)cszDelStr.size(); m_iCurPos = MAX(m_iCurPos, nDeleteLen); m_szText.erase(m_iCurPos - nDeleteLen, nDeleteLen); m_iCurPos -= nDeleteLen; updateImage(); m_pTextArrView->hideTextArrView(); }
void insertText(const char * text, int len) { if (!strcmp(text, "\n")) { if (m_pCATextView->getReturnType() != CrossApp::CATextView::Default) { m_pCATextView->resignFirstResponder(); if (m_pCATextView->getDelegate()) { m_pCATextView->getDelegate()->textViewShouldReturn(m_pCATextView); } return; } } std::string cszAddText; cszAddText.append(text, len); if (m_curSelCharRange.first != m_curSelCharRange.second) { if (!textValueChanged(m_curSelCharRange.first, m_curSelCharRange.second - m_curSelCharRange.first, cszAddText)) return; } else { if (!textValueChanged(m_iCurPos, 0, cszAddText)) return; } execCurSelCharRange(); m_szText.insert(m_iCurPos, text, len); m_iCurPos += len; m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); updateImage(); }
void CATextView::willInsertText(const char* text, int len) { execCurSelCharRange(); int iOldCurPos = m_iCurPos; insertText(text, len); m_curSelCharRange = std::make_pair(iOldCurPos, m_iCurPos); m_pTextSelView->showTextViewMark(getZZCRect()); }
void CATextField::keyboardWillHide(CCIMEKeyboardNotificationInfo& info) { m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); execCurSelCharRange(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) this->resignFirstResponder(); this->hideCursorMark(); #endif }
void CATextView::insertText(const char * text, int len) { CC_RETURN_IF(len <= 0); CC_RETURN_IF(text == 0); execCurSelCharRange(); m_szText.insert(m_iCurPos, text, len); m_iCurPos += len; m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); updateImage(); }
void CATextView::insertText(const char * text, int len) { CCLog("insertText: %s, %d", text, len); if (len<=0)return; execCurSelCharRange(); m_szText.insert(m_iCurPos, text, len); m_iCurPos += len; m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); updateImage(); m_pTextArrView->hideTextArrView(); }
void CATextField::willInsertText(const char *text, int len) { execCurSelCharRange(); int iOldCurPos = m_iCurPos; insertText(text, len); m_curSelCharRange = std::make_pair(iOldCurPos, m_iCurPos); m_pTextViewMark->setFrame(getZZCRect()); m_pTextViewMark->setVisible(true); }
void CATextField::willInsertText(const char *text, int len) { if (m_nInputType == KEY_BOARD_INPUT_PASSWORD) return; execCurSelCharRange(); int iOldCurPos = m_iCurPos; insertText(text, len); m_curSelCharRange = std::make_pair(iOldCurPos, m_iCurPos); m_pTextViewMark->setFrame(getZZCRect()); m_pTextViewMark->setVisible(true); }
void CATextField::deleteBackward() { CC_RETURN_IF(m_iCurPos == 0 || m_sText.empty()); if (m_nInputType==KEY_BOARD_INPUT_PASSWORD) { CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldDeleteBackward(this, m_sText.c_str(), (int)m_sText.length(), m_iCurPos - (int)m_sText.length())); CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldDeleteBackward(this, m_sText.c_str(), (int)m_sText.length())); m_sText.clear(); m_vTextFiledChars.clear(); this->updateImage(); m_iString_l_length = 0; m_iString_r_length = 0; m_iString_o_length = 0; m_iCurPos = 0; m_curSelCharRange = std::make_pair(0, 0); setCursorPosition(); return; } std::string cszDelStr; if (m_curSelCharRange.first != m_curSelCharRange.second) { cszDelStr = m_sText.substr(m_curSelCharRange.first, m_curSelCharRange.second - m_curSelCharRange.first); } else { int nDeleteLen = 1; while (0x80 == (0xC0 & m_sText.at(m_iCurPos - nDeleteLen))) { ++nDeleteLen; } cszDelStr = m_sText.substr(m_iCurPos - nDeleteLen, nDeleteLen); } CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldDeleteBackward(this, cszDelStr.c_str(), (int)cszDelStr.length(), m_iCurPos - (int)cszDelStr.length())); CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldDeleteBackward(this, cszDelStr.c_str(), (int)cszDelStr.length())); CC_RETURN_IF(execCurSelCharRange()); int nDeleteLen = (int)cszDelStr.size(); m_sText.erase(m_iCurPos - nDeleteLen, nDeleteLen); m_iCurPos -= nDeleteLen; m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); m_vTextFiledChars.erase(m_vTextFiledChars.begin() + getStringCharCount(m_sText.substr(0, m_iCurPos))); adjustCursorMove(false); CCLog("··· deleteBackward text:%s", m_sText.c_str()); }
void CATextField::insertText(const char * text, int len) { CC_RETURN_IF(len <= 0); CC_RETURN_IF(text == 0); CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldInsertText(this, text, len, m_iCurPos)); CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldInsertText(this, text, len)); if (!strcmp(text, "\n")) { getKeyBoradReturnCallBack(); return; } execCurSelCharRange(); analyzeString(text, len); adjustCursorMove(true); }
void CATextField::ccTouchEnded(CATouch *pTouch, CAEvent *pEvent) { CCPoint point = this->convertTouchToNodeSpace(pTouch); if (this->getBounds().containsPoint(point)) { becomeFirstResponder(); if (isFirstResponder()) { this->showCursorMark(); if (m_nInputType == KEY_BOARD_INPUT_PASSWORD) { if (!m_sText.empty()) { m_iCurPos =(int)m_vTextFiledChars.size(); m_iString_l_length = m_cImageSize.width; } m_pCursorMark->setCenterOrigin(CCPoint(getCursorX() + m_iHoriMargins, m_obContentSize.height / 2)); return; } calculateSelChars(point, m_iString_l_length, m_iString_r_length, m_iCurPos); m_pCursorMark->setCenterOrigin(CCPoint(getCursorX() + m_iHoriMargins, m_obContentSize.height / 2)); } #if CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID CCEGLView * pGlView = CAApplication::getApplication()->getOpenGLView(); pGlView->setIMECursorPos(getCursorPos(), getContentText()); #endif } else { hideCursorMark(); if (resignFirstResponder()) { this->updateImage(); } } m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); execCurSelCharRange(); }
void CATextField::insertText(const char * text, int len) { CC_RETURN_IF(len <= 0); CC_RETURN_IF(text == 0); if (!strcmp(text, "\n")) { getKeyBoradReturnCallBack(); return; } #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) CC_RETURN_IF(m_nInputType == KEY_BOARD_INPUT_PASSWORD && len >= 2); #endif execCurSelCharRange(); analyzeString(text, len); CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldInsertText(this, m_sText.c_str(), (int)m_sText.length())); adjustCursorMoveForward(); }
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 (canAttachWithIME()) { becomeFirstResponder(); calculateSelChars(point, m_iString_l_length, m_iString_r_length, m_iCurPos); m_pCursorMark->setCenterOrigin(CCPoint(getCursorX() + m_iHoriMargins, m_obContentSize.height / 2)); #if CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID CCEGLView * pGlView = CAApplication::getApplication()->getOpenGLView(); pGlView->setIMECursorPos(getCursorPos(), getContentText()); #endif } } else { if (canDetachWithIME()) { resignFirstResponder(); } } m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); execCurSelCharRange(); }
void CATextView::ccTouchEnded(CATouch *pTouch, CAEvent *pEvent) { CAScheduler::unschedule(schedule_selector(CATextView::ccTouchTimer), this); if (CATextToolBarView::isTextToolBarShow() || m_pTextSelView->isTextViewShow()) return; CCPoint point = this->convertTouchToNodeSpace(pTouch); if (!isScrollWindowNotOutSide()) { if (this->getBounds().containsPoint(point)) { becomeFirstResponder(); if (isFirstResponder()) { this->showCursorMark(); int iCurLine = 0; int iCurPosX = 0; calculateSelChars(point, iCurLine, iCurPosX, m_iCurPos); m_pCursorMark->setCenterOrigin(CCPoint(iCurPosX, m_iLineHeight*1.25f*iCurLine + m_iLineHeight / 2)); CCPoint pt = m_pCursorMark->getCenterOrigin(); m_pTextArrView->showTextArrView(CCPoint(pt.x, pt.y + m_iLineHeight*1.2f + getContentOffset().y)); } } else { m_pTextArrView->hideTextArrView(); m_pTextSelView->hideTextSelView(); if (resignFirstResponder()) { this->hideCursorMark(); } } } m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); execCurSelCharRange(); CAScrollView::ccTouchEnded(pTouch, pEvent); }
void CATextView::deleteBackward() { CC_RETURN_IF(m_iCurPos == 0 || m_szText.empty()); CC_RETURN_IF(m_pTextViewDelegate && m_pTextViewDelegate->onTextViewDeleteBackward(this, m_szText.c_str(), (int)m_szText.length())); CC_RETURN_IF(execCurSelCharRange()); int nDeleteLen = 1; while (1) { CC_BREAK_IF(m_iCurPos - nDeleteLen < 0); CC_BREAK_IF(0x80 != (0xC0 & m_szText.at(m_iCurPos - nDeleteLen))); ++nDeleteLen; } m_iCurPos = MAX(m_iCurPos, nDeleteLen); m_szText.erase(m_iCurPos - nDeleteLen, nDeleteLen); m_iCurPos -= nDeleteLen; updateImage(); m_pTextArrView->hideTextArrView(); }
void insertText(const char * text, int len) { if (!strcmp(text, "\n")) { getKeyBoradReturnCallBack(); CATextFieldDelegate* pDelegate = m_pTextFieldX->getDelegate(); if (m_pTextFieldX->isAllowkeyBoardHide()) { m_pTextFieldX->resignFirstResponder(); EndMouseMoveArr(); } if (pDelegate) { pDelegate->textFieldShouldReturn(m_pTextFieldX); } return; } if (m_sText.size() + len > m_pTextFieldX->getMaxLenght()) return; std::string cszAddText; cszAddText.append(text, len); if (m_curSelCharRange.first != m_curSelCharRange.second) { if (!textValueChanged(m_curSelCharRange.first, m_curSelCharRange.second - m_curSelCharRange.first, cszAddText)) return; } else { if (!textValueChanged(m_iCurPos, 0, cszAddText)) return; } execCurSelCharRange(); analyzeString(text, len); adjustCursorMove(); }
void CATextField::deleteBackward() { if (m_nInputType==KEY_BOARD_INPUT_PASSWORD) { m_sText.clear(); m_vTextFiledChars.clear(); this->updateImage(); m_iString_l_length = 0; m_iString_r_length = 0; m_iString_left_offX = 0; m_iCurPos = 0; m_curSelCharRange = std::make_pair(0, 0); m_pCursorMark->setCenterOrigin(CCPoint(m_iHoriMargins + getCursorX(), m_obContentSize.height / 2)); return; } if (m_iCurPos==0 || m_sText.empty()) return; if (execCurSelCharRange()) return; int nDeleteLen = 1; while (0x80 == (0xC0 & m_sText.at(m_iCurPos - nDeleteLen))) { ++nDeleteLen; } m_sText.erase(m_iCurPos - nDeleteLen, nDeleteLen); m_iCurPos -= nDeleteLen; m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); CC_RETURN_IF(m_pDelegate && m_pDelegate->onTextFieldDeleteBackward(this, m_sText.c_str(), (int)m_sText.length())); m_vTextFiledChars.erase(m_vTextFiledChars.begin() + getStringCharCount(m_sText.substr(0, m_iCurPos))); adjustCursorMoveBackward(); }
void deleteBackward() { CC_RETURN_IF(m_sText.empty() || m_iCurPos==0); if (m_pTextFieldX->isSecureTextEntry()) { clearText(); updateImage(); return; } if (m_curSelCharRange.first != m_curSelCharRange.second) { if (!textValueChanged(m_curSelCharRange.first, m_curSelCharRange.second - m_curSelCharRange.first, "")) return; CC_RETURN_IF(execCurSelCharRange()); } else { int nDeleteLen = 1; while (0x80 == (0xC0 & m_sText.at(m_iCurPos - nDeleteLen))) { ++nDeleteLen; } if (!textValueChanged(m_iCurPos, nDeleteLen, "")) return; m_sText.erase(m_iCurPos - nDeleteLen, nDeleteLen); m_iCurPos -= nDeleteLen; m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); m_vTextFiledChars.erase(m_vTextFiledChars.begin() + getStringCharCount(m_sText.substr(0, m_iCurPos))); adjustCursorMove(); } }
void CATextView::cutToClipboard() { copyToClipboard(); execCurSelCharRange(); }
void CATextView::keyboardWillHide(CCIMEKeyboardNotificationInfo& info) { m_curSelCharRange = std::make_pair(m_iCurPos, m_iCurPos); execCurSelCharRange(); }
void cutToClipboard() { copyToClipboard(); execCurSelCharRange(); }