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