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 + -
显示快捷键?