mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 22:02:58 -06:00
316 lines
No EOL
13 KiB
C++
316 lines
No EOL
13 KiB
C++
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;%% &]
|
|
[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`:`: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`:`: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`:`:ShowTabs`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* ShowTabs]([@(0.0.255) b
|
|
ool]_[*@3 st]_`=_[@(0.0.255) true])&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5;:LineEdit`:`:IsShowTabs`(`)const: [@(0.0.255) bool]_[* IsShowTabs]()_[@(0.0.255) const]&]
|
|
[s2;%% In this mode widget displays tabulators with faint graphics.
|
|
Default is off.&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5;:LineEdit`:`:WithCutLine`(bool`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* WithCutLine](
|
|
[@(0.0.255) bool]_[*@3 b])&]
|
|
[s3; &]
|
|
[s4; &]
|
|
[s5;:LineEdit`:`:NoCutLine`(`): [_^LineEdit^ LineEdit][@(0.0.255) `&]_[* NoCutLine]()&]
|
|
[s2;%% In this mode widget calls CutLine when user presses Ctrl`+Y
|
|
or Ctrl`+L. Default is on.&]
|
|
[s3; &]
|
|
[s0; &]
|
|
[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; ] |