osxtexteditpeer.cpp
来自「这是VCF框架的代码」· C++ 代码 · 共 1,049 行 · 第 1/2 页
CPP
1,049 行
case 'p' : { result = vkLetterP; } break; case 'q' : { result = vkLetterQ; } break; case 'r' : { result = vkLetterR; } break; case 's' : { result = vkLetterS; } break; case 't' : { result = vkLetterT; } break; case 'u' : { result = vkLetterU; } break; case 'v' : { result = vkLetterV; } break; case 'w' : { result = vkLetterW; } break; case 'x' : { result = vkLetterX; } break; case 'y' : { result = vkLetterY; } break; case 'z' : { result = vkLetterZ; } break; case '0' : { result = vkNumber0; } break; case '1' : { result = vkNumber1; } break; case '2' : { result = vkNumber2; } break; case '3' : { result = vkNumber3; } break; case '4' : { result = vkNumber4; } break; case '5' : { result = vkNumber5; } break; case '6' : { result = vkNumber6; } break; case '7' : { result = vkNumber7; } break; case '8' : { result = vkNumber8; } break; case '9' : { result = vkNumber9; } break; case '/' : { result = vkDivideSign; } break; case '+' : { result = vkPlusSign; } break; case '-' : { result = vkMinusSign; } break; case '=' : { result = vkEqualsSign; } break; case '_' : { result = vkUnderbar; } break; case '|' : { result = vkUprightBar; } break; case '{' : { result = vkOpenBrace; } break; case '}' : { result = vkCloseBrace; } break; case '[' : { result = vkOpenBracket; } break; case ']' : { result = vkCloseBracket; } break; case '<' : { result = vkLessThan; } break; case '>' : { result = vkGreaterThan; } break; case '.' : { result = vkPeriod; } break; case ',' : { result = vkComma; } break; case '!' : { result = vkExclamation; } break; case '~' : { result = vkTilde; } break; case '`' : { result = vkLeftApostrophe; } break; case '@' : { result = vkCommercialAt; } break; case '#' : { result = vkNumberSign; } break; case '$' : { result = vkDollarSign; } break; case '%' : { result = vkPercent; } break; case '^' : { result = vkCircumflex; } break; case '&' : { result = vkAmpersand; } break; case '*' : { result = vkAsterix; } break; case '(' : { result = vkOpenParen; } break; case ')' : { result = vkCloseParen; } break; case ':' : { result = vkColon; } break; case ';' : { result = vkSemiColon; } break; case '"' : { result = vkDoubleQuote; } break; case '\'' : { result = vkSingleQuote; } break; case '\\' : { result = vkBackSlash; } break; case '?' : { result = vkQuestionMark; } break; } return result;}bool OSXTextEditPeer::stateAllowsModelChange(){ bool result = false; if ( !(editState_ & esStyleChanging) && !(editState_ & esPeerTextChanging) && !(editState_ & esKeyEvent) && !(editState_ & esExternalTextChanging) ) { result = true; } return result;}void OSXTextEditPeer::onTextModelTextChanged( TextEvent* event ){ if ( (NULL != event) && !(editState_ & esModelTextChanging) && !(editState_ & esKeyEvent) ){ switch ( event->getType() ) { case TextModel::tmTextInserted : { insertText( event->getChangeStart(), event->getChangeText() ); } break; case TextModel::tmTextReplaced : { String originalText = event->getOriginalText(); deleteText( event->getChangeStart(), originalText.size() ); insertText( event->getChangeStart(), event->getChangeText() ); } break; case TextModel::tmTextRemoved : { deleteText( event->getChangeStart(), event->getChangeLength() ); } break; case TextModel::tmTextSet : { setText( textControl_->getTextModel()->getText() ); } break; } }}void OSXTextEditPeer::setText( const VCF::String& text ){ editState_ |= esPeerTextChanging; deleteText( 0, getTextLength() ); insertText( 0, text ); editState_ &= ~esPeerTextChanging;}unsigned long OSXTextEditPeer::getSelectionStart(){ unsigned long start = 0; TXNOffset s, e; TXNGetSelection( txnObject_, &s, &e ); start = s; return start;}unsigned long OSXTextEditPeer::getSelectionCount(){ TXNOffset s, e; TXNGetSelection( txnObject_, &s, &e ); return e - s;}/*void OSXTextEditPeer::getSelectionMark( unsigned long & start, unsigned long & end ){ }*/void OSXTextEditPeer::clearSelection(){ TXNClear( txnObject_ );}void OSXTextEditPeer::setSelectionMark( const unsigned long& start, const unsigned long& count ){ TXNSetSelection( txnObject_, start, start + count );}void OSXTextEditPeer::scrollToLine( const ulong32& lineIndex ){ }void OSXTextEditPeer::scrollToSelection( const bool& _showEndSel/*=false*/ ){ }void OSXTextEditPeer::repaint( Rect* repaintRect ){ OSXControl::repaint( repaintRect,false );}void OSXTextEditPeer::setReadOnly( const bool& readonly ){ TXNControlTag iControlTags[] = { kTXNIOPrivilegesTag }; TXNControlData iControlData[1]; if ( readonly ) { iControlData[0].uValue = (UInt32) kTXNReadOnly; } else { iControlData[0].uValue = (UInt32) kTXNReadWrite; } TXNSetTXNObjectControls( txnObject_, false, 1, iControlTags, iControlData ); }ulong32 OSXTextEditPeer::getTotalPrintablePageCount( PrintContext* context ){ ulong32 result = 0; return result;}void OSXTextEditPeer::print( PrintContext* context, const long& page ){ }void OSXTextEditPeer::finishPrinting(){ }void OSXTextEditPeer::onControlModelChanged( Event* e ){ EventHandler* tml = getEventHandler( "OSXTextEditPeer::onTextModelTextChanged" ); if ( NULL == tml ) { tml = new TextModelEventHandler<OSXTextEditPeer>( this, &OSXTextEditPeer::onTextModelTextChanged, "OSXTextEditPeer::onTextModelTextChanged" ); } TextModel* tm = textControl_->getTextModel(); tm->addTextModelChangedHandler( tml ); String text = tm->getText(); setText( text );}void OSXTextEditPeer::cut(){ if ( !textControl_->getReadOnly() ) { TXNCut( txnObject_ ); }}void OSXTextEditPeer::copy(){ TXNCopy( txnObject_ );}void OSXTextEditPeer::paste(){ if ( !textControl_->getReadOnly() ) { TXNPaste( txnObject_ ); }}bool OSXTextEditPeer::canUndo(){ return TXNCanUndo( txnObject_, NULL );}bool OSXTextEditPeer::canRedo(){ return TXNCanRedo( txnObject_, NULL );}void OSXTextEditPeer::undo(){ if ( !textControl_->getReadOnly() ) { TXNUndo( txnObject_ ); }}void OSXTextEditPeer::redo(){ //this one is necessary too, otherwise the model wouldn't be updated if ( !textControl_->getReadOnly() ) { TXNRedo( txnObject_ ); }}void OSXTextEditPeer::onTextControlFontChanged( Event* event ){ Font* font = (Font*) event->getSource(); setFont( font );}void OSXTextEditPeer::setTextWrapping( const bool& val ){}/***CVS Log info*$Log$*Revision 1.3 2006/04/07 02:35:24 ddiego*initial checkin of merge from 0.6.9 dev branch.**Revision 1.2.2.3 2006/02/26 23:44:10 ddiego*minor updates to sync osx version with latest cvs. added xcode proj for Themes example.**Revision 1.2.2.2 2006/01/09 02:22:31 ddiego*more osx code**Revision 1.2.2.1 2005/11/10 04:43:27 ddiego*updated the osx build so that it*compiles again on xcode 1.5. this applies to the foundationkit and graphicskit.**Revision 1.2 2005/07/09 23:14:54 ddiego*merging in changes from devmain-0-6-7 branch.**Revision 1.1.2.3 2005/07/07 23:28:58 ddiego*last osx checkins before release - not complete :(**Revision 1.1.2.2 2005/06/28 04:03:35 ddiego*osx text edit mods and started on osx tree peer.**Revision 1.1.2.1 2005/06/27 03:28:54 ddiego*more osx work.**/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?