topic "TextCtrl"; [i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,0#27521748481378242620020725143825:desc] [0 $$3,0#96390100711032703541132217272105:end] [H6;0 $$4,0#05600065144404261032431302351956:begin] [i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] [l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] [l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [2 $$0,0#00000000000000000000000000000000:Default] [{_} [ {{10000@3 [s0; [*@(229)4 TextCtrl]]}}&] [s3; &] [s1;:TextCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 TextCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C trl][3 , ][@(0.0.255)3 protected][3 _][*@3;3 TextArrayOps]&] [s9;%% A base class that implements operations common for [^`:`:DocEdit^ DocEdit] (raw text editor where lines `- LF delimited sections `- are displayed as paragraphs `- wrapped when they do not fit the width) and [^`:`:LineEdit^ LineEdit].(where lines are simply lines and are never wrapped). TextCtrl works in UNICODE, but is able performing conversions to any of predefined charsets. The Value of TextCtrl is contained text; setting it is the same as using Set method, reading is equivalent to Get method.&] [s3;%% &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Protected Method List]]}}&] [s3; &] [s5;:TextCtrl`:`:SelectionChanged`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* SelectionC hanged]()&] [s2;%% Selection anchor or cursor has changed. (called even when there is no selection, just cursor). If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:ClearLines`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* ClearLines]()&] [s2;%% The content was removed (e.g. Clear or Load operations). If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:InsertLines`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* InsertL ines]([@(0.0.255) int]_[*@3 line], [@(0.0.255) int]_[*@3 count])&] [s2;%% [%-*@3 count] lines at [%-*@3 line] position were inserted. If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:RemoveLines`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RemoveL ines]([@(0.0.255) int]_[*@3 line], [@(0.0.255) int]_[*@3 count])&] [s2;%% [%-*@3 count] lines at [%-*@3 line] position were removed. If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:PreInsert`(int`,const WString`&`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PreInsert]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WS tring][@(0.0.255) `&]_[*@3 text])&] [s2;%% Called before any [%-*@3 text] gets inserted at [%-*@3 pos.] If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:PostInsert`(int`,const WString`&`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PostInsert]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) const]_[_^WString^ W String][@(0.0.255) `&]_[*@3 text])&] [s2;%% Called after [%-*@3 text] was inserted at [%-*@3 pos.] If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:PreRemove`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PreRemove ]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] [s2;%% Called before [%-*@3 size] characters get removed from the [%-*@3 pos]. If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:PostRemove`(int`,int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* PostRemo ve]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] [s2;%% Called after [%-*@3 size] characters was removed from the [%-*@3 pos]. If you override this, you should call base`-class version in the body.&] [s3;%% &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:TextCtrl`:`:RefreshLine`(int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* RefreshLine]( [@(0.0.255) int]_[*@3 i])&] [s2;%% This virtual method is called by TextCtrl when the content of line [%-*@3 i] is changed. If you override this, you should call base`-class version in the body.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:WhenBar: [_^Callback1^ Callback1][@(0.0.255) <]Bar[@(0.0.255) `&>]_[* WhenBa r]&] [s2;%% This callback is invoked when user right`-clicks the widget and should specify local menu. It is initialized by the constructor to the StdBar method. &] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:WhenState: [_^Callback^ Callback]_[* WhenState]&] [s2;%% This callback is invoked when the status of widget changes from not`-modified to modified (`"dirty`") or back.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] [s2;%% Called when cursor or selection changes.&] [s3; &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:WhenViewLoading: [_^Upp`:`:Event^ Event]<[_^Upp`:`:int64^ int64]> _[* WhenViewMapping]&] [s2;%% Called during mapping view stream with current position in the stream.&] [s3; &] [s4; &] [s5;:TextCtrl`:`:CachePos`(int`): [@(0.0.255) void]_[* CachePos]([@(0.0.255) int]_[*@3 pos])&] [s2;%% This is specific optimization hint to the widget saying that following operations will be performed near [%-*@3 pos]. Unlikely to be used in the client code.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:CacheLinePos`(int`): [@(0.0.255) void]_[* CacheLinePos]([@(0.0.255) int]_[*@3 l inei])&] [s2;%% This is specific optimization hint to the widget saying that following operations will be performed near line [%-*@3 linei]. Unlikely to be used in the client code.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Load`(Stream`&`,byte`): [@(0.0.255) int]_[* Load]([_^Stream^ Stream][@(0.0.255) `& ]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] [s2;%% Loads the text from the stream with defined [%-*@3 charset]. Function returns the detected line endings mode `- LE`_CRLF, LE`_LF or LE`_DEFAULT if there were no line endings in the file. If file is bigger then the limit set by MaxLength, editor is put into `'truncated`' and read`-only mode.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:IsTruncated`(`)const: [@(0.0.255) bool]_[* IsTruncated]()_[@(0.0.255) cons t]&] [s2;%% Indicates that last Load had to truncate the size because of MaxLength limit.&] [s3; &] [s4; &] [s5;:TextCtrl`:`:Save`(Stream`&`,byte`,int`)const: [@(0.0.255) void]_[* Save]([_^Stream^ St ream][@(0.0.255) `&]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT, [@(0.0.255) int]_[*@3 line`_endings]_`=_LE`_DEFAULT)_[@(0.0.255) const]&] [s2;%% Saves the text to the stream with defined [%-*@3 charset]. Characters that cannot be represented in suggested [%-*@3 charset] are saved as `'?`'. [%-*@3 line`_endings] parameter sets the line ending mode. LE`_DEFAULT uses platform specific line endings (CRLF in Windows, LF in POSIX), LE`_CRLF sets CRLF line endings, LE`_LF sets LF line endings). If IsTruncated is true, Save is blocked.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetInvalidCharPos`(byte`)const: [@(0.0.255) int]_[* GetInvalidCharPos]([_^byte^ b yte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] [s2;%% Returns the position of the first character that cannot be represented [%-*@3 charset]. If there is none, returns negative value.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:CheckCharset`(byte`)const: [@(0.0.255) bool]_[* CheckCharset]([_^byte^ byt e]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] [s2; [%% Same as GetInvalidCharPos(]charset) < 0.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Set`(const WString`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_[_^WString^ W String][@(0.0.255) `&]_[*@3 s])&] [s5;:TextCtrl`:`:Set`(const String`&`,byte`): [@(0.0.255) void]_[* Set]([@(0.0.255) const]_ [_^String^ String][@(0.0.255) `&]_[*@3 s], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT )&] [s2;%% Sets the text in the widget.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Get`(byte`)const: [_^String^ String]_[* Get]([_^byte^ byte]_[*@3 charset]_`= _CHARSET`_DEFAULT)_[@(0.0.255) const]&] [s2;%% Gets the text in the widget.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:Get`(Upp`:`:int64`,int`,Upp`:`:byte`)const: [_^Upp`:`:String^ S tring]_[* Get]([_^Upp`:`:int64^ int64]_[*@3 pos], [@(0.0.255) int]_[*@3 size], [_^Upp`:`:byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] [s2;%% Gets the part of text in the widget.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:GetW`(Upp`:`:int64`,int`)const: [_^Upp`:`:WString^ WString]_[* Ge tW]([_^Upp`:`:int64^ int64]_[*@3 pos], [@(0.0.255) int]_[*@3 size])_[@(0.0.255) const]&] [s2;%% Gets the part of text in the widget in UNICODE.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetW`(`)const: [_^WString^ WString]_[* GetW]()_[@(0.0.255) const]&] [s2;%% Gets the text in the widget in UNICODE.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:ClearDirty`(`): [@(0.0.255) void]_[* ClearDirty]()&] [s2;%% Clears dirty flag. Note that the difference between `"dirty`" flag and `"modified`" flag of Ctrl interface is that `"dirty`" flag can get cleared by undo operation, when the text is restored to the original state (one after setting it or at ClearDirty).&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:IsDirty`(`)const: [@(0.0.255) bool]_[* IsDirty]()_[@(0.0.255) const]&] [s2;%% Tests if text is different from `"original`" state (one after setting it or at ClearDirty).&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] [s2;%% Empties the text.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:GetLine`(Upp`:`:int64`)const: [@(0.0.255) int]_[* GetLine]([_^Upp`:`:int64^ i nt64]_[*@3 pos])_[@(0.0.255) const]&] [s2;%% Similar to GetLinePos, but does not alter [%-*@3 pos] parameter.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetLinePos`(int`&`)const: [@(0.0.255) int]_[* GetLinePos]([@(0.0.255) int`& ]_[*@3 pos])_[@(0.0.255) const]&] [s2;%% Returns the line where character at offset [%-*@3 pos] resides; [%-*@3 pos] is altered to contain the position withing the line.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetPos`(int`,int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 l ine], [@(0.0.255) int]_[*@3 column])_[@(0.0.255) const]&] [s2;%% Returns the offset of character at [%-*@3 line] and [%-*@3 column] index within the line.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetPos`(int`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) int]_[*@3 line]) _[@(0.0.255) const]&] [s2;%% Same as GetPos([%-*@3 line], 0).&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetUtf8Line`(int`)const: [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& ]_[* GetUtf8Line]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] [s2;%% Returns the line [%-*@3 i] in UTF`-8 encoding.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetWLine`(int`)const: [_^WString^ WString]_[* GetWLine]([@(0.0.255) int]_[*@3 i ])_[@(0.0.255) const]&] [s2;%% Returns the line [%-*@3 i] in UNICODE.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetEncodedLine`(int`,byte`)const: [_^String^ String]_[* GetEncodedLine]( [@(0.0.255) int]_[*@3 i], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) con st]&] [s2;%% Returns the line [%-*@3 i] required encoding.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetLineLength`(int`)const: [@(0.0.255) int]_[* GetLineLength]([@(0.0.255) i nt]_[*@3 i])_[@(0.0.255) const]&] [s2;%% Returns the length of line [%-*@3 i].&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetLineCount`(`)const: [@(0.0.255) int]_[* GetLineCount]()_[@(0.0.255) con st]&] [s2;%% Returns the number of lines.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:GetChar`(Upp`:`:int64`)const: [@(0.0.255) int]_[* GetChar]([_^Upp`:`:int64^ i nt64]_[*@3 pos])_[@(0.0.255) const]&] [s5;:Upp`:`:TextCtrl`:`:operator`[`]`(Upp`:`:int64`)const: [@(0.0.255) int]_[* operator`[ `]]([_^Upp`:`:int64^ int64]_[*@3 pos])_[@(0.0.255) const]&] [s2;%% Returns the UNICODE character at [%-*@3 pos] offset.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:GetChar`(`)const: [@(0.0.255) int]_[* GetChar]()_[@(0.0.255) const]&] [s2;%% Returns UNICODE character at cursor, or 0 if cursor is behind the last character.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetLength`(`)const: [@(0.0.255) int]_[* GetLength]()_[@(0.0.255) const]&] [s2;%% Returns the total number of characters in the text.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] [s2;%% Returns the position of cursor.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:GetCursorLine`(`)const: [@(0.0.255) int]_[* GetCursorLine]()_[@(0.0.255) c onst]&] [s2;%% Same as GetLine(GetCursor).&] [s3; &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:SetSelection`(Upp`:`:int64`,Upp`:`:int64`): [@(0.0.255) void]_[* S etSelection]([_^Upp`:`:int64^ int64]_[*@3 anchor]_`=_[@3 0], [_^Upp`:`:int64^ int64]_[*@3 c ursor]_`=_[@3 2147483647]_)&] [s2;%% Sets the selection. If [%-*@3 anchor] or [%-*@3 cursor] are out of range, they are `"fixed`". If they are equal, method changes the position of cursor.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) cons t]&] [s2;%% Tests whether there is non`-empty normal selection.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:IsRectSelection`(`)const: [@(0.0.255) bool]_[* IsRectSelection]()_[@(0.0.255) c onst]&] [s2;%% Returns true if there is rectangular selection.&] [s3; &] [s4; &] [s5;:TextCtrl`:`:IsAnySelection`(`)const: [@(0.0.255) bool]_[* IsAnySelection]()_[@(0.0.255) c onst]&] [s2;%% Returns true if there is either rectangular or normal selection.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetSelection`(int`&`,int`&`)const: [@(0.0.255) bool]_[* GetSelection]([@(0.0.255) i nt`&]_[*@3 l], [@(0.0.255) int`&]_[*@3 h])_[@(0.0.255) const]&] [s5;:Upp`:`:TextCtrl`:`:GetSelection`(Upp`:`:int64`&`,Upp`:`:int64`&`)const: [@(0.0.255) b ool]_[* GetSelection]([_^Upp`:`:int64^ int64][@(0.0.255) `&]_[*@3 l], [_^Upp`:`:int64^ int64][@(0.0.255) `&]_[*@3 h])_[@(0.0.255) const]&] [s2;%% Returns the selection lower and upper bounds. int64 version is only useful in view mode. In view mode, 32 bit version returns false if the range is larger than 2GB.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetSelection`(byte`)const: [_^String^ String]_[* GetSelection]([_^byte^ by te]_[*@3 charset]_`=_CHARSET`_DEFAULT)_[@(0.0.255) const]&] [s2;%% Returns the selected text in given [%-*@3 charset].&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetSelectionW`(`)const: [_^WString^ WString]_[* GetSelectionW]()_[@(0.0.255) c onst]&] [s2;%% Returns the selected text in UNICODE.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] [s2;%% Cancels the selection.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:RemoveSelection`(`): [@(0.0.255) bool]_[* RemoveSelection]()&] [s2;%% Deletes the selection text.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:SetCursor`(Upp`:`:int64`): [@(0.0.255) void]_[* SetCursor]([_^Upp`:`:int64^ i nt64]_[*@3 cursor])&] [s2;%% Places cursor at new position.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Paste`(const WString`&`): [@(0.0.255) int]_[* Paste]([@(0.0.255) const]_[_^WString^ W String][@(0.0.255) `&]_[*@3 text])&] [s2;%% Pastes [%-*@3 text] at current cursor position.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Insert`(int`,const WString`&`): [@(0.0.255) int]_[* Insert]([@(0.0.255) in t]_[*@3 pos], [@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 txt])&] [s2;%% Inserts [%-*@3 txt] at [%-*@3 pos]. Returns a number of characters inserted.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Insert`(int`,const String`&`,byte`): [@(0.0.255) int]_[* Insert]([@(0.0.255) i nt]_[*@3 pos], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 txt], [_^byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] [s2;%% Inserts [%-*@3 txt] encoded with [%-*@3 charset ]at [%-*@3 pos]. Returns a number of characters inserted.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Insert`(int`,const char`*`): [@(0.0.255) int]_[* Insert]([@(0.0.255) int]_ [*@3 pos], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 txt])&] [s2;%% Inserts [%-*@3 txt] at [%-*@3 pos] using default charset. Returns a number of characters inserted.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Remove`(int`,int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 pos], [@(0.0.255) int]_[*@3 size])&] [s2;%% Removes the text.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:Append`(const Upp`:`:WString`&`): [@(0.0.255) int]_[* Append]([@(0.0.255) c onst]_[_^Upp`:`:WString^ WString][@(0.0.255) `&]_[*@3 txt])&] [s2;%% Same as Insert(GetLength(), [%-*@3 txt]).&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:Append`(const Upp`:`:String`&`,Upp`:`:byte`): [@(0.0.255) int]_ [* Append]([@(0.0.255) const]_[_^Upp`:`:String^ String][@(0.0.255) `&]_[*@3 txt], [_^Upp`:`:byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] [s2;%% Same as Insert(GetLength(), [%-*@3 txt], [%-*@3 charset]).&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:Append`(const char`*`): [@(0.0.255) int]_[* Append]([@(0.0.255) con st]_[@(0.0.255) char]_`*[*@3 txt])&] [s2;%% Same as Append(WString([%-*@3 txt])).&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:NextUndo`(`): [@(0.0.255) void]_[* NextUndo]()&] [s2;%% Marks the beginning of next undo block. All text altering operations (inserts and removes) are recorded into undo buffer in sections where each sections represents single user action. NextUndo tells TextCtrl that the next altering operation belongs to the new section. Note that NextUndo does not create a new section (yet); calling it twice without any altering operation in between is the same as calling it once.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Undo`(`): [@(0.0.255) void]_[* Undo]()&] [s2;%% Performs undo.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Redo`(`): [@(0.0.255) void]_[* Redo]()&] [s2;%% Performs redo.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:IsUndo`(`)const: [@(0.0.255) bool]_[* IsUndo]()_[@(0.0.255) const]&] [s2;%% Tests whether there are some undo records.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:IsRedo`(`)const: [@(0.0.255) bool]_[* IsRedo]()_[@(0.0.255) const]&] [s2;%% Tests whether there are some redo records.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:ClearUndo`(`): [@(0.0.255) void]_[* ClearUndo]()&] [s2;%% Clears all undo and redo records.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:ClearRedo`(`): [@(0.0.255) void]_[* ClearRedo]()&] [s2;%% Clears redo records.&] [s3; &] [s4; &] [s5;:TextCtrl`:`:PickUndoData`(`): [_^TextCtrl`:`:UndoData^ UndoData]_[* PickUndoData]()&] [s2;%% Picks undo and redo record. This is useful when single widget is used to edit various text, this allows to change undo/redo records with the text. Must be followed by either SetPickUndoData or ClearUndo before performing any text altering operation.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:SetPickUndoData`(Upp`:`:TextCtrl`:`:UndoData`&`&`): [@(0.0.255) v oid]_[* SetPickUndoData]([_^Upp`:`:TextCtrl`:`:UndoData^ TextCtrl`::UndoData][@(0.0.255) `& `&]_[*@3 data])&] [s2;%% Sets the undo/redo records. [%-@3 data] is picked (destroyed) during the operation.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Cut`(`): [@(0.0.255) void]_[* Cut]()&] [s2;%% Performs Cut.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Copy`(`): [@(0.0.255) void]_[* Copy]()&] [s2;%% Performs Copy.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:Paste`(`): [@(0.0.255) void]_[* Paste]()&] [s2;%% Performs Paste.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:SelectAll`(`): [@(0.0.255) void]_[* SelectAll]()&] [s2;%% Selects the whole text.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m enu])&] [s2;%% Provides the standard local [%-*@3 menu].&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:SetCharset`(byte`): [@(0.0.255) void]_[* SetCharset]([_^byte^ byte]_[*@3 cs]) &] [s2;%% Sets the input character encoding of widget. This character set is used to decide which characters can be entered by the user into the text.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetCharset`(`)const: [_^byte^ byte]_[* GetCharset]()_[@(0.0.255) const]&] [s2;%% Returns the value set by SetCharset.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:SetColor`(int`,Color`): [@(0.0.255) void]_[* SetColor]([@(0.0.255) int]_[*@3 i ], [_^Color^ Color]_[*@3 c])&] [s2;%% Sets one of colors used to display the text.&] [s3;%% &] [ {{4443:5557<288;>864; [s0; [+75 TextCtrl`::][*+75 INK`_NORMAL]] :: [s0;%% [+75 Normal text color.]] :: [s0; [+75 TextCtrl`::][*+75 INK`_DISABLED]] :: [s0;%% [+75 Text color when widget is disabled. ]] :: [s0; [+75 TextCtrl`::][*+75 INK`_SELECTED]] :: [s0;%% [+75 Selected text color.]] :: [s0; [+75 TextCtrl`::][*+75 PAPER`_NORMAL]] :: [s0;%% [+75 Normal paper color.]] :: [s0; [+75 TextCtrl`::][*+75 PAPER`_READONLY]] :: [s0;%% [+75 Paper color when widget is read`-only.]] :: [s0; [+75 TextCtrl`::][*+75 PAPER`_SELECTED]] :: [s0;%% [+75 Selected paper color.]] :: [s0; [+75 TextCtrl`::][*+75 COLOR`_COUNT]] :: [s0;%% [+75 Total number of color indexes.]]}}&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:GetColor`(int`)const: [_^Color^ Color]_[* GetColor]([@(0.0.255) int]_[*@3 i]) _[@(0.0.255) const]&] [s2;%% Gets the color used to display the text.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:View`(Upp`:`:Stream`&`,Upp`:`:byte`): [@(0.0.255) int]_[* View]([_^Upp`:`:Stream^ S tream][@(0.0.255) `&]_[*@3 s], [_^Upp`:`:byte^ byte]_[*@3 charset]_`=_CHARSET`_DEFAULT)&] [s2;%% Initiates the view mode. In view mode, file is not loaded, but displayed while loading it from the stream as necessary. TextCtrl retains a reference to [%-*@3 s] so it must exist for the whole time it is displayed in TextCtrl. TextCtrl is in read`-only mode for view operations. View allows viewing of files >2GB, therefore some functions have 64`-bit counterparts working in view mode only. View actually needs to scan the file to create a map of file; this operation is performed in background (via PostCallbacks), application can use SerializeViewMap to store cache this map for particular file.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:WaitView`(int`,bool`): [@(0.0.255) void]_[* WaitView]([@(0.0.255) i nt]_[*@3 line], [@(0.0.255) bool]_[*@3 progress])&] [s2;%% While mapping of file for view is in progress, makes sure that the file is mapped up to [%-*@3 line] or EOF. If [%-*@3 progress] is true, progress is displayed.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:LockViewMapping`(`): [@(0.0.255) void]_[* LockViewMapping]()&] [s2;%% Stops background mapping of file for view.&] [s3; &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:UnlockViewMapping`(`): [@(0.0.255) void]_[* UnlockViewMapping]()&] [s2; Continues mapping of file for view.&] [s3; &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:SerializeViewMap`(Upp`:`:Stream`&`): [@(0.0.255) void]_[* Seriali zeViewMap]([_^Upp`:`:Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] [s2;%% Serializes the file view map.&] [s3;%% &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:IsView`(`)const: [@(0.0.255) bool]_[* IsView]()_[@(0.0.255) const]&] [s2;%% Returns true if TextCtrl is in view mode.&] [s3; &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:GetViewSize`(`)const: [_^Upp`:`:int64^ int64]_[* GetViewSize]()_[@(0.0.255) c onst]&] [s2;%% Returns GetSize of view stream.&] [s3; &] [s4; &] [s5;:Upp`:`:TextCtrl`:`:GetLinePos64`(Upp`:`:int64`&`)const: [@(0.0.255) int]_[* GetLineP os64]([_^Upp`:`:int64^ int64][@(0.0.255) `&]_[*@3 pos])_[@(0.0.255) const]&] [s5;:Upp`:`:TextCtrl`:`:GetPos64`(int`,int`)const: [_^Upp`:`:int64^ int64]_[* GetPos64]([@(0.0.255) i nt]_[*@3 ln], [@(0.0.255) int]_[*@3 lpos])_[@(0.0.255) const]&] [s5;:Upp`:`:TextCtrl`:`:GetLength64`(`)const: [_^Upp`:`:int64^ int64]_[* GetLength64]()_[@(0.0.255) c onst]&] [s5;:Upp`:`:TextCtrl`:`:GetCursor64`(`)const: [_^Upp`:`:int64^ int64]_[* GetCursor64]()_[@(0.0.255) c onst]&] [s2;%% These are variants of GetLinePos, GetPos, GetLength and GetCursor64 for view mode (where values > INT`_MAX are possible).&] [s3; &] [s4; &] [s5;:TextCtrl`:`:UndoSteps`(int`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* UndoSteps]([@(0.0.255) i nt]_[*@3 n])&] [s2;%% Sets the maximum number of undo steps.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:ProcessTab`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* ProcessTab]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% If active (default), widget accepts K`_TAB keystrokes (inserts `'`\t`').&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:NoProcessTab`(`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoProcessTab]() &] [s2;%% Same as ProcessTab(false).&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:ProcessEnter`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* ProcessEnte r]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% If active (non`-default), widget accepts K`_ENTER keystrokes (inserts a new line).&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:NoProcessEnter`(`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoProcessEnte r]()&] [s2;%% Same as ProcessEnter(false).&] [s3; &] [s4; &] [s5;:TextCtrl`:`:NoBackground`(bool`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* NoBackgroun d]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2;%% Sets the widget into transparent mode `- background is not painted and Transparent is activated `- a result, anything painted behind the widget is visible, allowing client code to provide any background it needs.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:MaxLength`(int`): [_^TextCtrl^ TextCtrl][@(0.0.255) `&]_[* MaxLength]([@(0.0.255) i nt]_[*@3 len])&] [s2;%% Sets the maximum size of text in unicode characters. Has to be less than 1Gchars. The default is 400Mchars.&] [s3;%% &] [s4; &] [s5;:TextCtrl`:`:IsProcessTab`(`): [@(0.0.255) bool]_[* IsProcessTab]()&] [s2;%% Tests whether ProcessTab mode is active.&] [s3;%% &] [s0;%% &] [s0;%% &] [s0;%% &] [ {{10000@3 [s0; [*@(229)4 TextCtrl`::UndoData]]}}&] [s3; &] [s1;:TextCtrl`:`:UndoData`:`:struct: [@(0.0.255)3 struct][3 _][*3 UndoData]&] [s9;%% This structure contains informations about undo/redo state of the widget. It can be with PickUndoData and SetPickUndoDate to store and restore undo/redo state.&] [s3;%% &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] [s3; &] [s5;:TextCtrl`:`:UndoData`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] [s2;%% Clears the undo/redo state&] [s3;%% &] [s3;%% .]]