text: topic "LineEdit";
  [2 $$0,0#00000000000000000000000000000000:Default]
  [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]
  [{_} 
  [ {{10000@3 [s0;%% [*@(229)4 LineEdit]]}}&]
  [s3; &]
  [s1;:LineEdit`:`:class: [@(0.0.255)3 class][3 _][*3 LineEdit][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T
  extCtrl]&]
  [s9;%% A widget used to edit a line of a document one at a time.&]
  [s3; &]
  [s0; &]
  [ {{10000F(128)G(128)@1 [s0;%% [* Protected Method List]]}}&]
  [s3; &]
  [s5;:LineEdit`:`:HighlightLine`(int`,Vector`<LineEdit`:`:Highlight`>`&`,int`): [@(0.0.255) v
  irtual] [@(0.0.255) void]_[* HighlightLine]([@(0.0.255) int]_[*@3 line], 
  [_^Vector^ Vector][@(0.0.255) <][_^LineEdit`:`:Highlight^ Highlight][@(0.0.255) >`&]_[*@3 h
  ], [@(0.0.255) int]_[*@3 pos])&]
  [s2;%% This method can be overridden to add syntax highlighting to 
  the LineEdit. It is called once for each line painted on the 
  screen. [%-*@3 line] is the line index (first line is 0), [%-*@3 h] 
  represents character cells in the line; client code should change 
  this array to achieve the highlighting, [%-*@3 pos] is the index 
  of character from the beginning of text. [%-*@3 h] initially contains 
  one more space character than is the count of characters in the 
  line; this additional character can be used to set the appearance 
  of the rest of line after the last character. You also add more 
  characters to the [%-*@3 h]. Default implementation is empty.&]
  [s3;%% &]
  [s4; &]
  [s5;:LineEdit`:`:NewScrollPos`(`): [@(0.0.255) virtual] [@(0.0.255) void]_[* NewScrollPos](
  )&]
  [s2;%% Called when scrollbar gets new position. Default implementation 
  is empty.&]
  [s3; &]
  [s0; &]
  [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&]
  [s3; &]
  [s5;:LineEdit`:`:GetFontSize`(`)const: [_^Size^ Size]_[* GetFontSize]()_[@(0.0.255) const]&]
  [s2;%% Returns the size of font character cell (LineEdit expects 
  monospace glyphs `-  the width of character is constant).&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetGPos`(int`,int`)const: [@(0.0.255) int]_[* GetGPos]([@(0.0.255) int]_[*@3 l
  n], [@(0.0.255) int]_[*@3 cl])_[@(0.0.255) const]&]
  [s2;%% Returns `"graphical`" position of [%-*@3 ln] line and [%-*@3 cl] 
  column. This takes into account any tabulator characters int 
  the line.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetMousePos`(Point`)const: [@(0.0.255) int]_[* GetMousePos]([_^Point^ Poin
  t]_[*@3 p])_[@(0.0.255) const]&]
  [s2;%% Get the the offset of character placed at [%-*@3 p].&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetColumnLine`(int`)const: [_^Point^ Point]_[* GetColumnLine]([@(0.0.255) i
  nt]_[*@3 pos])_[@(0.0.255) const]&]
  [s2;%% Returns the line and column for the character at [%-*@3 pos] 
  accounting for any tabulators. Column is x member of resulting 
  Point, line is y.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetColumnLinePos`(Point`)const: [@(0.0.255) int]_[* GetColumnLinePos]([_^Point^ P
  oint]_[*@3 pos])_[@(0.0.255) const]&]
  [s2;%% Returns the position for given column and line [%-*@3 pos]. 
  Does account for tabulators.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetIndexLine`(int`)const: [_^Point^ Point]_[* GetIndexLine]([@(0.0.255) in
  t]_[*@3 pos])_[@(0.0.255) const]&]
  [s2;%% Returns the line and index of character in the line for the 
  given [%-*@3 pos]. Does not account for tabulators.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetIndexLinePos`(Point`)const: [@(0.0.255) int]_[* GetIndexLinePos]([_^Point^ P
  oint]_[*@3 pos])_[@(0.0.255) const]&]
  [s2;%% Returns the position for given column and line [%-*@3 pos]. 
  Does not account for tabulators.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ScrollUp`(`): [@(0.0.255) void]_[* ScrollUp]()&]
  [s2;%% Scrolls the text single line up.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ScrollDown`(`): [@(0.0.255) void]_[* ScrollDown]()&]
  [s2;%% Scrolls the text single line down.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ScrollPageUp`(`): [@(0.0.255) void]_[* ScrollPageUp]()&]
  [s2;%% Scrolls the text one page up.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ScrollPageDown`(`): [@(0.0.255) void]_[* ScrollPageDown]()&]
  [s2;%% Scrolls the text one page down.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ScrollBegin`(`): [@(0.0.255) void]_[* ScrollBegin]()&]
  [s2;%% Scrolls the text to the begin.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ScrollEnd`(`): [@(0.0.255) void]_[* ScrollEnd]()&]
  [s2;%% Scrolls the text to the end.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetLineScreenRect`(int`)const: [_^Rect^ Rect]_[* GetLineScreenRect]([@(0.0.255) i
  nt]_[*@3 line])_[@(0.0.255) const]&]
  [s2;%% Gets the absolute screen rectangle position of [%-*@3 line].&]
  [s5;K:`:`:LineEdit`:`:TopCursor`(`): [@(0.0.255) void][@(64) _]TopCursor[@(64) ()]&]
  [s2;%% Scrolls the text to place the line with cursor is first in 
  the view.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:TopCursor`(int`): [@(0.0.255) void]_[* TopCursor]([@(0.0.255) int]_[*@3 line
  s]_`=_[@3 0])&]
  [s2;%% Scrolls the text to place the line with cursor placed [%-*@3 lines] 
  from the top.&]
  [s3;%% &]
  [s4; &]
  [s5;:LineEdit`:`:CenterCursor`(`): [@(0.0.255) void]_[* CenterCursor]()&]
  [s2;%% Scrolls the text to place the line with cursor at the center 
  of the view.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:MoveUpDown`(int`,bool`): [@(0.0.255) void]_[* MoveUpDown]([@(0.0.255) int]_
  [*@3 n], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) false])&]
  [s2;%% Moves the cursor [%-*@3 n] lines up ([%-*@3 n] is negative) or 
  down. If [%-*@3 sel] is true, selects characters between starting 
  and ending cursor position.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:MoveLeft`(bool`): [@(0.0.255) void]_[* MoveLeft]([@(0.0.255) bool]_[*@3 sel]_
  `=_[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MoveRight`(bool`): [@(0.0.255) void]_[* MoveRight]([@(0.0.255) bool]_[*@3 se
  l]_`=_[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MoveUp`(bool`): [@(0.0.255) void]_[* MoveUp]([@(0.0.255) bool]_[*@3 sel]_`=_
  [@(0.0.255) false])&]
  [s5;:LineEdit`:`:MoveDown`(bool`): [@(0.0.255) void]_[* MoveDown]([@(0.0.255) bool]_[*@3 sel]_
  `=_[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MovePageUp`(bool`): [@(0.0.255) void]_[* MovePageUp]([@(0.0.255) bool]_[*@3 s
  el]_`=_[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MovePageDown`(bool`): [@(0.0.255) void]_[* MovePageDown]([@(0.0.255) bool]_
  [*@3 sel]_`=_[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MoveHome`(bool`): [@(0.0.255) void]_[* MoveHome]([@(0.0.255) bool]_[*@3 sel]_
  `=_[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MoveEnd`(bool`): [@(0.0.255) void]_[* MoveEnd]([@(0.0.255) bool]_[*@3 sel]_`=
  _[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MoveTextBegin`(bool`): [@(0.0.255) void]_[* MoveTextBegin]([@(0.0.255) boo
  l]_[*@3 sel]_`=_[@(0.0.255) false])&]
  [s5;:LineEdit`:`:MoveTextEnd`(bool`): [@(0.0.255) void]_[* MoveTextEnd]([@(0.0.255) bool]_[*@3 s
  el]_`=_[@(0.0.255) false])&]
  [s2;%% [%- Moves the cursor in specified direction (Home/End are beginning/end 
  of line). ]If [%-*@3 sel] is true, selects characters between starting 
  and ending cursor position.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:InsertChar`(dword`,int`,bool`): [@(0.0.255) bool]_[* InsertChar]([_^dword^ d
  word]_[*@3 key], [@(0.0.255) int]_[*@3 count]_`=_[@3 1], [@(0.0.255) bool]_[*@3 canoverwrite]_
  `=_[@(0.0.255) false])&]
  [s2;%% Inserts  [%-*@3 count ]characters [%-*@3 key] at cursor position. 
  If [%-*@3 canoverwrite] is true, overwrite mode (as set by user 
  pressing Insert key) can be used.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:DeleteChar`(`): [@(0.0.255) void]_[* DeleteChar]()&]
  [s2;%% Deletes character at cursor position.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:Backspace`(`): [@(0.0.255) void]_[* Backspace]()&]
  [s2;%% If character is not first in the text, deletes it and moves 
  cursor one position back.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:DeleteLine`(`): [@(0.0.255) void]_[* DeleteLine]()&]
  [s2;%% Deletes a line with cursor (if it is not the only line in 
  the text).&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:CutLine`(`): [@(0.0.255) void]_[* CutLine]()&]
  [s2;%% Stores a line to clipboard and calls DeleteLine.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetScrollPos`(`)const: [_^Point^ Point]_[* GetScrollPos]()_[@(0.0.255) con
  st]&]
  [s2;%% Returns the actual scroll position.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetPageSize`(`): [_^Size^ Size]_[* GetPageSize]()&]
  [s2;%% Returns the current view size in character cells.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:SetScrollPos`(Point`): [@(0.0.255) void]_[* SetScrollPos]([_^Point^ Point]_
  [*@3 p])&]
  [s2;%% Sets the scroll position of view, e.g. to the value obtained 
  by GetScrollPos.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetEditPos`(`)const: [_^LineEdit`:`:EditPos^ EditPos]_[* GetEditPos]()_[@(0.0.255) c
  onst]&]
  [s2;%% Returns the edit position in the text to be restored later. 
  Edit position comprises cursor and scrollbar positions.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:SetEditPos`(const LineEdit`:`:EditPos`&`): [@(0.0.255) void]_[* SetEditP
  os]([@(0.0.255) const]_[_^LineEdit`:`:EditPos^ LineEdit`::EditPos][@(0.0.255) `&]_[*@3 pos
  ])&]
  [s2;%% Sets the edit position obtained by calling GetEditPos. If 
  cursor is not in the view after restoring, view is scrolled so 
  that it is by calling ScrollIntoCursor.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:SetEditPosSb`(const LineEdit`:`:EditPos`&`): [@(0.0.255) void]_[* SetEdi
  tPosSb]([@(0.0.255) const]_[_^LineEdit`:`:EditPos^ LineEdit`::EditPos][@(0.0.255) `&]_[*@3 p
  os])&]
  [s2;%% Sets the edit position obtained by calling GetEditPos. Unlike 
  SetEditPos, no scrolls are performed to get cursor into the view.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ScrollIntoCursor`(`): [@(0.0.255) void]_[* ScrollIntoCursor]()&]
  [s2;%% Performs minimal scroll to get the cursor into the view. `"Minimal`" 
  means that if cursor is `"before`" the view, view is scrolled 
  to move cursor to the first line, if it is `"after`", it is moved 
  to the last line.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetCaretPoint`(`)const: [_^Point^ Point]_[* GetCaretPoint]()_[@(0.0.255) c
  onst]&]
  [s2;%% Returns the current caret position.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&]
  [s2;%% Sets the text empty.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:OverWriteMode`(bool`): [@(0.0.255) void]_[* OverWriteMode]([@(0.0.255) boo
  l]_[*@3 o]_`=_[@(0.0.255) true])&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:IsOverWriteMode`(`)const: [@(0.0.255) bool]_[* IsOverWriteMode]()_[@(0.0.255) c
  onst]&]
  [s2;%% In OverWriteMode mode, input characters replace the content 
  instead of being inserted.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:RefreshChars`(bool`(`*`)`(int c`)`): [@(0.0.255) void]_[* RefreshChars](
  [@(0.0.255) bool]_(`*[*@3 predicate])([@(0.0.255) int]_c))&]
  [s2;%% Calls [%-*@3 predicate] for all characters in current view and 
  when it returns true refreshes (schedules for repainting) character 
  cell. It is useful for advanced code editors (e.g. refreshing 
  color of braces in TheIDE editor).&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:TabSize`(int`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* TabSize]([@(0.0.255) i
  nt]_[*@3 n])&]
  [s2;%% Sets the tabulator size.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetTabSize`(`)const: [@(0.0.255) int]_[* GetTabSize]()_[@(0.0.255) const]&]
  [s2;%% Returns current tabulator size.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:BorderColumn`(int`,Color`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* Borde
  rColumn]([@(0.0.255) int]_[*@3 col], [_^Color^ Color]_[*@3 c]_`=_SColorFace())&]
  [s2;%% Displays a border column of width [%-*@3 col] and color [%-*@3 c].&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:SetFont`(Font`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* SetFont]([_^Font^ F
  ont]_[*@3 f])&]
  [s2;%% Sets the font. HighlightLine can replace this font, however, 
  the size of character cell is determined by this font (note that 
  CJK ideograms are two character cells wide). Font should be monospaced. 
  Returns `*this. Default font is Courier(16).&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:GetFont`(`)const: [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&]
  [s2;%% Returns the font.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:NoHorzScrollbar`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* NoHorzSc
  rollbar]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&]
  [s2;%% In this mode horizontal scrollbar is never shown. Default 
  is off.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:IsNoHorzScrollbar`(`)const: [@(0.0.255) bool]_[* IsNoHorzScrollbar]()_[@(0.0.255) c
  onst]&]
  [s2;%% Returns status of NoHrozScrollbar.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ShowTabs`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* ShowTabs]([@(0.0.255) b
  ool]_[*@3 st]_`=_[@(0.0.255) true])&]
  [s2;%% In this mode widget displays tabulators with faint graphics. 
  Default is off.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:IsShowTabs`(`)const: [@(0.0.255) bool]_[* IsShowTabs]()_[@(0.0.255) const]&]
  [s2;%% Returns status of ShowTabs..&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:ShowSpaces`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* ShowSpaces]([@(0.0.255) b
  ool]_[*@3 ss]_`=_[@(0.0.255) true])&]
  [s2;%% In this mode widget displays spaces with faint dots. Default 
  is off..&]
  [s3;%% &]
  [s4; &]
  [s5;:LineEdit`:`:IsShowSpacess`(`)const: [@(0.0.255) bool]_[* IsShowSpacess]()_[@(0.0.255) c
  onst]&]
  [s2;%% Returns status of ShowSpaces.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:WithCutLine`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* WithCutLine](
  [@(0.0.255) bool]_[*@3 b])&]
  [s2;%% In this mode widget calls CutLine when user presses Ctrl`+Y 
  or Ctrl`+L. Default is on.&]
  [s0; &]
  [s4; &]
  [s5;:LineEdit`:`:NoCutLine`(`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* NoCutLine]()&]
  [s2;%% Switches WithCutLine off.&]
  [s3;%% &]
  [s4; &]
  [s5;:LineEdit`:`:IsWithCutLine`(`)const: [@(0.0.255) bool]_[* IsWithCutLine]()_[@(0.0.255) c
  onst]&]
  [s2;%% Returns status of WithCutLine.&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:SetFilter`(int`(`*`)`(int c`)`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* S
  etFilter]([@(0.0.255) int]_(`*[*@3 f])([@(0.0.255) int]_c))&]
  [s2;%% Sets the filter of characters processed. Filter function can 
  alter characters before they are inserted into the text. If filter 
  function returns zero, character is rejected.&]
  [s0; &]
  [s0; &]
  [ {{10000@3 [s0;%% [*@(229)4 LineEdit`::Highlight]]}}&]
  [s3; &]
  [s1;:LineEdit`:`:Highlight`:`:struct: [@(0.0.255)3 struct][3 _][*3 Highlight][3 _:_][@(0.0.255)3 p
  ublic][3 _][*@3;3 Moveable][@(0.0.255)3 <][*3 Highlight][@(0.0.255)3 >][3 _]&]
  [s9; This structure defines syntax highlighting properties of single 
  character cell. &]
  [s3;%% &]
  [s0; &]
  [ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&]
  [s3; &]
  [s5;:LineEdit`:`:Highlight`:`:paper: [_^Color^ Color]_[* paper]&]
  [s3;%% &]
  [s4; &]
  [s5;:LineEdit`:`:Highlight`:`:ink: [_^Color^ Color]_[* ink]&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:Highlight`:`:font: [_^Font^ Font]_[* font]&]
  [s3; &]
  [s4; &]
  [s5;:LineEdit`:`:Highlight`:`:chr: [_^wchar^ wchar]_[* chr]&]
  [s3;%% &]
  [s4; &]
  [s5;:LineEdit`:`:Highlight`:`:operator`=`=`(const LineEdit`:`:Highlight`&`)const: [@(0.0.255) b
  ool]_[* operator`=`=]([@(0.0.255) const]_[_^LineEdit`:`:Highlight^ Highlight][@(0.0.255) `&
  ]_[*@3 h])_[@(0.0.255) const]&]
  [s2;%% Equality comparison.&]
  [s3; &]
  [s0; ]