MyGUI
3.0.1
|
00001 00007 /* 00008 This file is part of MyGUI. 00009 00010 MyGUI is free software: you can redistribute it and/or modify 00011 it under the terms of the GNU Lesser General Public License as published by 00012 the Free Software Foundation, either version 3 of the License, or 00013 (at your option) any later version. 00014 00015 MyGUI is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU Lesser General Public License for more details. 00019 00020 You should have received a copy of the GNU Lesser General Public License 00021 along with MyGUI. If not, see <http://www.gnu.org/licenses/>. 00022 */ 00023 #ifndef __MYGUI_TEXT_CHANGE_HISTORY_H__ 00024 #define __MYGUI_TEXT_CHANGE_HISTORY_H__ 00025 00026 #include "MyGUI_Prerequest.h" 00027 #include "MyGUI_Macros.h" 00028 #include "MyGUI_UString.h" 00029 #include <deque> 00030 00031 namespace MyGUI 00032 { 00033 00034 // инфо об одной операции 00035 struct TextCommandInfo 00036 { 00037 // типы операций 00038 enum CommandType 00039 { 00040 COMMAND_POSITION, 00041 COMMAND_INSERT, 00042 COMMAND_ERASE 00043 }; 00044 00045 // для удаления и вставки текста 00046 TextCommandInfo(const UString& _text, size_t _start, CommandType _type) 00047 : text(_text), type(_type), start(_start), undo(ITEM_NONE), redo(ITEM_NONE), length(ITEM_NONE) { } 00048 // для указания позиции 00049 TextCommandInfo(size_t _undo, size_t _redo, size_t _length) 00050 : type(COMMAND_POSITION), start(ITEM_NONE), undo(_undo), redo(_redo), length(_length) { } 00051 00052 // строка харрактиризуещая изменения 00053 UString text; 00054 // тип операции 00055 CommandType type; 00056 // инфа о начале позиции 00057 size_t start; 00058 // инфа о псевдо позиции 00059 size_t undo, redo, length; 00060 }; 00061 00062 typedef std::vector<TextCommandInfo> VectorChangeInfo; 00063 typedef std::deque<VectorChangeInfo> DequeUndoRedoInfo; 00064 00065 } // namespace MyGUI 00066 00067 #endif // __MYGUI_TEXT_CHANGE_HISTORY_H__