00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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 }
00066
00067 #endif // __MYGUI_TEXT_CHANGE_HISTORY_H__