textmodel.h

来自「这是VCF框架的代码」· C头文件 代码 · 共 236 行

H
236
字号
#ifndef _VCF_TEXTMODEL_H__#define _VCF_TEXTMODEL_H__//TextModel.h/*Copyright 2000-2004 The VCF Project.Please see License.txt in the top level directorywhere you installed the VCF.*/#if _MSC_VER > 1000#   pragma once#endifnamespace VCF{/**\class TextModel TextModel.h "vcf/ApplicationKit/TextModel.h"The TextModel is a model interface for working with text data.It does not \emnot inherit from the Model classdirectly. This is to allow different implementations different base classes.For example, you might have a simple list model that inherits/implements the Model class, and the ListModel class. This would be suitable for most controls.However you might want a fancier implementation, perhaps that is based off of the Document and ListModel classes. This would still allow you to use the same control with either style.*@version 1.0*@author Jim Crafton*/class APPLICATIONKIT_API TextModel  {public:	enum TextModelEvents {		tmTextInserted = VCF::Model::MODEL_CHANGED + 3210,		tmTextReplaced,		tmTextSet,		tmTextRemoved	};	TextModel(){	};	virtual ~TextModel(){};	/**	*adds a new TextModelEvent handler	*/	virtual void addTextModelChangedHandler( EventHandler * handler ) = 0;	/**	*removes a TextModelEvent handler	*/	virtual void removeTextModelChangedHandler( EventHandler * handler ) = 0;	/**	*sets the contents of the text model, completely changes what was previously	*in the model	*/	virtual void setText( const String& text ) = 0;	/**	*inserts text into the model at the given index	*@param long the starting point to begin inserting the text. This number represents	*a zero based index.	*@param String the text to insert	*/	virtual void insertText( const uint32& index, const String& text ) = 0;	/**	*replace text into the model in place of the selected text is any,	*or at the current position otherwise	*@param String the text to replace with	*/	virtual void replaceText( const uint32& index, const uint32& count, const String& text ) = 0;	/**	*deletes text from the model, starting at index, and continuing for count characters,	*or until the text data is empty.	*@param long the starting point. The index is zero based.	*@param long the number of characters to delete	*/	virtual void deleteText( const uint32& index, const uint32& count ) = 0;		/**	*returns all of the TextModel's text in a string.	*/	virtual String getText() = 0;	/**	*returns a sub string of the TextModel's text in a string.	*/	virtual String getText( const uint32& index, const uint32& count ) = 0;	/**	*returns the size of the TextModel. That is the number of charecters in 	text string that this model represents.	*/	virtual uint32 getSize() = 0;};};/***CVS Log info*$Log$*Revision 1.5  2006/04/07 02:35:25  ddiego*initial checkin of merge from 0.6.9 dev branch.**Revision 1.4.2.1  2006/03/14 02:25:47  ddiego*large amounts of source docs updated.**Revision 1.4  2005/07/09 23:14:56  ddiego*merging in changes from devmain-0-6-7 branch.**Revision 1.3.2.4  2005/07/04 03:44:55  marcelloptr*spaces spaces spaces**Revision 1.3.2.3  2005/05/18 03:19:17  ddiego*more text edit changes, fixes some subtle bugs in doc and win32 edit peer.**Revision 1.3.2.2  2005/05/15 23:17:37  ddiego*fixes for better accelerator handling, and various fixes in hwo the text model works.**Revision 1.3.2.1  2005/05/02 02:31:42  ddiego*minor text updates.**Revision 1.3  2004/12/01 04:31:38  ddiego*merged over devmain-0-6-6 code. Marcello did a kick ass job*of fixing a nasty bug (1074768VCF application slows down modal dialogs.)*that he found. Many, many thanks for this Marcello.**Revision 1.2.2.1  2004/09/21 23:41:24  ddiego*made some big changes to how the base list, tree, text, table, and tab models are laid out. They are not just plain interfaces. The actual*concrete implementations of them now derive from BOTH Model and the specific*tree, table, etc model interface.*Also made some fixes to the way the text input is handled for a text control.*We now process on a character by character basis and modify the model one*character at a time. Previously we were just using brute force and setting*the whole models text. This is more efficent, though its also more complex.**Revision 1.2  2004/08/07 02:49:10  ddiego*merged in the devmain-0-6-5 branch to stable**Revision 1.1.2.3  2004/06/06 07:05:31  marcelloptr*changed macros, text reformatting, copyright sections**Revision 1.1.2.2  2004/04/29 03:43:15  marcelloptr*reformatting of source files: macros and csvlog and copyright sections**Revision 1.1.2.1  2004/04/28 00:28:19  ddiego*migration towards new directory structure**Revision 1.11.2.1  2004/04/26 21:58:21  marcelloptr*changes for dir reorganization: _VCF_MACRO_H__**Revision 1.11  2004/04/03 15:48:40  ddiego*Merged over code from the 0-6-3 branch.**Revision 1.10.2.2  2004/03/21 19:44:38  marcelloptr*improvements on TextModel and getCRCount**Revision 1.10.2.1  2004/01/30 05:08:14  ddiego*added more rearrangements for the table control**Revision 1.10  2003/12/18 05:15:57  ddiego*merge from devmain-0-6-2 branch into the stable branch**Revision 1.9.6.2  2003/09/12 16:46:33  ddiego*finished adding header changes to improve compile speed (at least*with MS VC++) and to get rid of some of the clutter that the RTTI macros*add.*But Where'd the RTTI info go!?!?*Have no fear it's still there! It is now located in three .inl files, one*for each kit. Each kit will consolidate it's RTTI decls in the following*files:*FoundationKit:*  vcf/include/FoundationKitRTTI.inl*GraphicsKit:*  vcf/include/GraphicsKitRTTI.inl*ApplicationKit:*  vcf/include/ApplicationKitRTTI.inl**Please alter these files as neeccessary to add/subtract/alter the various*RTTI info. Each kit is also responsible for registering any of the class*in the ClassRegistry.*A side effect of this is that I had to alter the memory allocation for the*VC6 build for the Application it went from /Zm120 to /Zm150. I find this*pretty lame but I don't know what else to do. Hopefully this will improve*compile times when using the Appkit in other programs.**Revision 1.9.6.1  2003/09/12 00:09:32  ddiego*added better tabbing behaviour - fixed an earlier bug.*Code is easier to understand and it simplified the implementation*a bit as well*Moved around the RTTI definitions for various Appkit classes to a*single inline and stripped them from the various class headers**Revision 1.9  2003/02/26 04:30:38  ddiego*merge of code in the devmain-0-5-9 branch into the current tree.*most additions are in the area of the current linux port, but the major*addition to this release is the addition of a Condition class (currently*still under development) and the change over to using the Delegate class*exclusively from the older event handler macros.**Revision 1.8.14.1  2002/12/25 22:38:00  ddiego*more stupid fixes to get rid of the damn gcc no newline warning...grrr...**Revision 1.8  2002/05/09 03:10:42  ddiego*merged over code from development branch devmain-0-5-1a into the main CVS trunk**Revision 1.7.4.1  2002/04/27 15:42:57  ddiego*removed ApplicationKit.h and optimized header includes as*well as adding better include guard support**Revision 1.7  2002/01/24 01:46:47  ddiego*added a cvs "log" comment to the top of all files in vcf/src and vcf/include*to facilitate change tracking**/#endif // _VCF_TEXTMODEL_H__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?