diff --git a/uppsrc/CtrlLib/ArrayCtrl.h b/uppsrc/CtrlLib/ArrayCtrl.h index d4d10b1eb..8ff80f782 100644 --- a/uppsrc/CtrlLib/ArrayCtrl.h +++ b/uppsrc/CtrlLib/ArrayCtrl.h @@ -341,6 +341,8 @@ protected: void ClearModify(); public: + Callback WhenSel; // the most usual ArrayCtrl callbak + Callback WhenLeftDouble; Callback1 WhenMouseMove; Callback WhenEnterKey; @@ -352,7 +354,6 @@ public: Callback WhenStartEdit; Callback WhenAcceptEdit; Callback WhenCtrlsAction; - Callback WhenSel; Callback WhenScroll; Callback WhenHeaderLayout; diff --git a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp index cb5381800..4a50f8d9b 100644 --- a/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ArrayCtrl$en-us.tpp @@ -10,14 +10,14 @@ topic "ArrayCtrl"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 ArrayCtrl]]}}&] -[s5;K%- &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl]]}}&] +[s5;K &] [s0; @@image:2362&1443 (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) &] -[s0;*@3;3%- &] -[s1;:ArrayCtrl`:`:class:%- [@(0.0.255)3 class][3 _][*3 ArrayCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C +[s0;*@3;3 &] +[s1;:ArrayCtrl`:`:class: [@(0.0.255)3 class][3 _][*3 ArrayCtrl][3 _:_][@(0.0.255)3 public][3 _][*@3;3 C trl]&] [s1; &] [s0; [* @@ -190,8 +190,8 @@ editing. This mechanism is turned on by default, but it can be disable by setting the [* NoInsertAppend] property to true.&] [s3; &] [s0; &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Categorized method summary]]}}&] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 Categorized method summary]]}}&] [s9; The following table summarizes ArrayCtrl methods according to the aspect of functionality they support together with a very brief description. For more thorough documentation of the individual @@ -531,340 +531,334 @@ use WhenSel)]] [s3; &] [s0; &] [s0; &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 Detailed method description]]}}&] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 Detailed method description]]}}&] [s0; &] [s0; [* Initialization and configuration]&] [s3; &] [s0; &] -[s5;:ArrayCtrl`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] +[s5;:ArrayCtrl`:`:Reset`(`): [@(0.0.255) void]_[* Reset]()&] [s2; Clears table rows and resets all array properties to their default values.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ShowAppendLine`(`):%- [@(0.0.255) void]_[* ShowAppendLine]()&] +[s4; &] +[s5;:ArrayCtrl`:`:ShowAppendLine`(`): [@(0.0.255) void]_[* ShowAppendLine]()&] [s2; Show an additional pseudo`-row at the table end. When clicked, a new row is appended to the array.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsEdit`(`)const:%- [@(0.0.255) bool]_[* IsEdit]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsEdit`(`)const: [@(0.0.255) bool]_[* IsEdit]()_[@(0.0.255) const]&] [s2; Checks whether the array is currently being edited.&] [s7; [*/ Return value]-|[* true] `= a row is currently open for editing, [* false] `= array is in normal browsing mode&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsInsert`(`)const:%- [@(0.0.255) bool]_[* IsInsert]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsInsert`(`)const: [@(0.0.255) bool]_[* IsInsert]()_[@(0.0.255) const]&] [s2; Checks whether a new row is currently being inserted.&] [s7; [*/ Return value]-|[* true] `= newly inserted row is currently being edited, [* false] when not&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetLineCy`(int`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* SetLineCy]( -[@(0.0.255) int]_[*@3 cy])&] +[s4; &] +[s5;:ArrayCtrl`:`:SetLineCy`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* SetLineCy]([@(0.0.255) i +nt]_[*@3 cy])&] [s2; Sets the (default) array row height. For certain rows, this can be overriden by the two`-parameter version of this method.&] -[s7; [%-*C@3 cy]-|row height in pixels&] +[s7; [*C@3 cy]-|row height in pixels&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetLineCy`(int`,int`):%- [@(0.0.255) void]_[* SetLineCy]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) int]_[*@3 cy])&] +[s4; &] +[s5;:ArrayCtrl`:`:SetLineCy`(int`,int`): [@(0.0.255) void]_[* SetLineCy]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) int]_[*@3 cy])&] [s2; Sets row height for a given row. This overrides the default value set by the one`-parameter version of this method.&] -[s7; [%-*C@3 i]-|row index (zero based)&] -[s7; [%-*C@3 cy]-|row height in pixels, [* Null] `= use default row height&] +[s7; [*C@3 i]-|row index (zero based)&] +[s7; [*C@3 cy]-|row height in pixels, [* Null] `= use default row height&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetLineCy`(`)const:%- [@(0.0.255) int]_[* GetLineCy]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetLineCy`(`)const: [@(0.0.255) int]_[* GetLineCy]()_[@(0.0.255) const]&] [s2; Returns default array row height.&] [s7; [*/ Return value]-|row height in pixels&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetLineY`(int`)const:%- [@(0.0.255) int]_[* GetLineY]([@(0.0.255) int]_[*@3 i +[s4; &] +[s5;:ArrayCtrl`:`:GetLineY`(int`)const: [@(0.0.255) int]_[* GetLineY]([@(0.0.255) int]_[*@3 i ])_[@(0.0.255) const]&] [s2; Returns [/ y] position of given array row (the pixel distance between the top of first array row and [/ i]`-th row, i.e. sum of heights of all rows above this row).&] -[s7; [%-*C@3 i]-|row index (zero based)&] +[s7; [*C@3 i]-|row index (zero based)&] [s7; [*/ Return value]-|Vertical position of row top in pixels (relative to array beginning)&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetLineCy`(int`)const:%- [@(0.0.255) int]_[* GetLineCy]([@(0.0.255) int]_ -[*@3 i])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetLineCy`(int`)const: [@(0.0.255) int]_[* GetLineCy]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] [s2; Returns the height of a given row (either the row`-specific row height, or, when Null, the default row height).&] -[s7; [%-*C@3 i]-|row index (zero based)&] +[s7; [*C@3 i]-|row index (zero based)&] [s7; [*/ Return value]-|row height in pixels&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AppendLine`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AppendLi -ne]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:AppendLine`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AppendLine +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; The AppendLine property controls whether the array displays an additional `'append`' row after its last (real) row. &] -[s7; [%-*C@3 b]-|[* true] `= display appending row, [* false] `= hide it&] +[s7; [*C@3 b]-|[* true] `= display appending row, [* false] `= hide it&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoAppendLine`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAppendLi -ne]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoAppendLine`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAppendLine +]()&] [s2; Hide the appending line (identical to [* AppendLine(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsAppendLine`(`)const:%- [@(0.0.255) bool]_[* IsAppendLine]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:IsAppendLine`(`)const: [@(0.0.255) bool]_[* IsAppendLine]()_[@(0.0.255) c onst]&] [s2; Returns current state of the [* AppendLine] property.&] [s7; [*/ Return value]-|[* true] `= display appending pseudo`-row at the end of the array&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Inserting`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Inserting -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:Inserting`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Inserting]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enable / disable inserting new rows in the array (no matter which insertion mechanism is selected).&] -[s7; [%-*C@3 b]-|[* true] `= enable insertion, [* false] `= disable it&] +[s7; [*C@3 b]-|[* true] `= enable insertion, [* false] `= disable it&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoInserting`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoInserting -]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoInserting`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoInserting]( +)&] [s2; Disables row insertion (identical to [* Inserting(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsInserting`(`)const:%- [@(0.0.255) bool]_[* IsInserting]()_[@(0.0.255) c -onst]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsInserting`(`)const: [@(0.0.255) bool]_[* IsInserting]()_[@(0.0.255) con +st]&] [s2; Returns current state of the [* Inserting] property.&] [s7; [*/ Return value]-|[* true] `= row insertion is enabled, [* false] when not&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Appending`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Appending -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:Appending`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Appending]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enable / disable adding new rows at the table end.&] -[s7; [%-*C@3 b]-|[* true] `= enable row appending, [* false] `= disable -it&] +[s7; [*C@3 b]-|[* true] `= enable row appending, [* false] `= disable it&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsAppending`(`)const:%- [@(0.0.255) bool]_[* IsAppending]()_[@(0.0.255) c -onst]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsAppending`(`)const: [@(0.0.255) bool]_[* IsAppending]()_[@(0.0.255) con +st]&] [s2; Returns current state of the [* Appending] property.&] [s7; [*/ Return value]-|[* true] `= appending rows is enabled, [* false] when not.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AutoAppending`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoA -ppending]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:AutoAppending`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoApp +ending]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Same as [* Appending] but Enter pressed when editing a new row accepts it and adds another one at the table end.&] -[s7; [%-*C@3 b]-|[* true ]to enable the mode&] +[s7; [*C@3 b]-|[* true ]to enable the mode&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsAutoAppending`(`)const:%- [@(0.0.255) bool]_[* IsAutoAppending]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:IsAutoAppending`(`)const: [@(0.0.255) bool]_[* IsAutoAppending]()_[@(0.0.255) c onst]&] [s2; Returns current state of [* AutoAppending] property.&] [s7; [*/ Return value]-|[* true] `= [* AutoAppending ]is active&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:BeforeAfterInserting`(int`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_ -[* BeforeAfterInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 1])&] +[s4; &] +[s5;:ArrayCtrl`:`:BeforeAfterInserting`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* B +eforeAfterInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 1])&] [s2; Activate before / after row insertion mechanism ([* Insert] hotkey `= before).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AfterBeforeInserting`(int`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_ -[* AfterBeforeInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 2])&] +[s4; &] +[s5;:ArrayCtrl`:`:AfterBeforeInserting`(int`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* A +fterBeforeInserting]([@(0.0.255) int]_[*@3 q]_`=_[@3 2])&] [s2; Activate before / after row insertion mechanism ([* Insert] hotkey `= after)&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Duplicating`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Duplica -ting]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:Duplicating`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Duplicati +ng]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enable / disable row duplication. Note that this property only controls whether the `'Duplicate`' item should be present in the array local menu. Of course, nothing can prevent you from supporting duplication in some other way, or from calling the [* DoDuplicate] method as you see fit.&] -[s7; [%-*C@3 b]-|[* true] `= enable duplication, [* false] `= disable it&] +[s7; [*C@3 b]-|[* true] `= enable duplication, [* false] `= disable it&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoDuplicating`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoDuplica -ting]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoDuplicating`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoDuplicati +ng]()&] [s2; Disable row duplication (identical to [* Duplicating(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsDuplicating`(`)const:%- [@(0.0.255) bool]_[* IsDuplicating]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:IsDuplicating`(`)const: [@(0.0.255) bool]_[* IsDuplicating]()_[@(0.0.255) c onst]&] [s2; Returns the state of the [* Duplicating] property.&] [s7; [*/ Return value]-|[* true] `= local menu offers row duplication, [* false] when not&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoInsertAppend`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoIn -sertAppend]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:NoInsertAppend`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoInse +rtAppend]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enables / disables the auto`-append mechanism (see above section on inserting rows).&] -[s7; [%-*C@3 b]-|[* true] `= disable InsertAppend mechanism, [* false] `= +[s7; [*C@3 b]-|[* true] `= disable InsertAppend mechanism, [* false] `= enable it (the default)&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsEditing`(`)const:%- [@(0.0.255) bool]_[* IsEditing]()_[@(0.0.255) const -]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsEditing`(`)const: [@(0.0.255) bool]_[* IsEditing]()_[@(0.0.255) const]&] [s2; Checks whether at least one array column supports editing (whether it is possible to [/ open] a row for editing).&] [s7; [*/ Return value]-|[* true] `= row editing is possible, [* false] when not&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Removing`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Removing]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:Removing`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Removing]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enable / disable deleting rows from the table.&] -[s7; [%-*C@3 b]-|[* true] `= enable deletion, [* false] `= disable it&] +[s7; [*C@3 b]-|[* true] `= enable deletion, [* false] `= disable it&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoRemoving`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoRemoving]( -)&] +[s4; &] +[s5;:ArrayCtrl`:`:NoRemoving`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoRemoving]()&] [s2; Disable deleting table rows (identical to [* Removing(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsRemoving`(`)const:%- [@(0.0.255) bool]_[* IsRemoving]()_[@(0.0.255) con -st]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsRemoving`(`)const: [@(0.0.255) bool]_[* IsRemoving]()_[@(0.0.255) const +]&] [s2; Returns current state of the [* Removing] property.&] [s7; [*/ Return value]-|[* true] `= row deletion is enabled, [* false ]when not&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AskRemove`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AskRemove -]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:AskRemove`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AskRemove]( +[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Sets whether the user must manually confirm array row deletion. When set to [* true], every time a row is to be deleted, a confirmation dialog pops up. When set to [* false], rows are deleted automatically without any further confirmation.&] -[s7; [%-*C@3 b]-|[* true] `= prompt user to confirm row deletion, [* false] +[s7; [*C@3 b]-|[* true] `= prompt user to confirm row deletion, [* false] `= delete rows instantly&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoAskRemove`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAskRemove -]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoAskRemove`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAskRemove]( +)&] [s2; Disables user confirmation of row deletion (equivalent to [* AskRemove(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsAskRemove`(`)const:%- [@(0.0.255) bool]_[* IsAskRemove]()_[@(0.0.255) c -onst]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsAskRemove`(`)const: [@(0.0.255) bool]_[* IsAskRemove]()_[@(0.0.255) con +st]&] [s2; Returns current state of the [* AskRemove] property.&] [s7; [*/ Return value]-|[* true] `= user confirmation is needed to delete rows, [* false] `= rows are deleted immediately&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Moving`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Moving]([@(0.0.255) b +[s4; &] +[s5;:ArrayCtrl`:`:Moving`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Moving]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enable / disable row swapping. When set to [* true], it is possible to move an array row up and down by swapping it with the previous / next row. This can be used to reorder array rows in a visually straightforward manner.&] -[s7; [%-*C@3 b]-|[* true] `= offer row moving in the local menu, [* false] +[s7; [*C@3 b]-|[* true] `= offer row moving in the local menu, [* false] `= don`'t&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsMoving`(`)const:%- [@(0.0.255) bool]_[* IsMoving]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsMoving`(`)const: [@(0.0.255) bool]_[* IsMoving]()_[@(0.0.255) const]&] [s2; Returns current state of the [* Moving] property.&] [s7; [*/ Return value]-|[* true] `= local menu supports row swapping, [* false] `= it doesn`'t&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Header`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Header]([@(0.0.255) b +[s4; &] +[s5;:ArrayCtrl`:`:Header`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Header]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Show / hide the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us^ HeaderCtrl] object for this table.&] -[s7; [%-*C@3 b]-|[* true] `= show table header, [* false] `= hide it&] +[s7; [*C@3 b]-|[* true] `= show table header, [* false] `= hide it&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoHeader`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHeader]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoHeader`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHeader]()&] [s2; Hide table header (equivalent to [* Header(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Track`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Track]([@(0.0.255) b +[s4; &] +[s5;:ArrayCtrl`:`:Track`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Track]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Animate array column resizing. This is equivalent to setting the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Track`(bool`)^ T rack] property in the array HeaderCtrl.&] -[s7; [%-*C@3 b]-|[* true] `= repaint the array repeatedly while dragging +[s7; [*C@3 b]-|[* true] `= repaint the array repeatedly while dragging column widths, [* false] `= regenerate everything only after drag `& drop is finished.&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoTrack`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoTrack]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoTrack`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoTrack]()&] [s2; Do not animate array column resizing (equivalent to [* Track(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:VertGrid`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* VertGrid]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:VertGrid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* VertGrid]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Show / hide vertical array grid lines (separating array columns).&] -[s7; [%-*C@3 b]-|[* true] `= show vertical grid lines, [* false] `= hide -them&] +[s7; [*C@3 b]-|[* true] `= show vertical grid lines, [* false] `= hide them&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoVertGrid`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoVertGrid]( -)&] +[s4; &] +[s5;:ArrayCtrl`:`:NoVertGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoVertGrid]()&] [s2; Hide vertical grid lines (equivalent to [* VertGrid(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HorzGrid`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HorzGrid]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:HorzGrid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HorzGrid]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Show / hide horizontal grid lines (separating array rows).&] -[s7; [%-*C@3 b]-|[* true] `= show horizontal grid lines, [* false] `= hide +[s7; [*C@3 b]-|[* true] `= show horizontal grid lines, [* false] `= hide them&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoHorzGrid`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHorzGrid]( -)&] +[s4; &] +[s5;:ArrayCtrl`:`:NoHorzGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoHorzGrid]()&] [s2; Hide horizontal grid lines (equivalent to [* HorzGrid(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Grid`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Grid]([@(0.0.255) b +[s4; &] +[s5;:ArrayCtrl`:`:Grid`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Grid]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Show / hide both horizontal and vertical grid lines (equivalent to [* HorzGrid(b).VertGrid(b)]).&] -[s7; [%-*C@3 b]-|[* true] `= show grid line matrix, [* false] `= hide all +[s7; [*C@3 b]-|[* true] `= show grid line matrix, [* false] `= hide all grid lines&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoGrid`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoGrid]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoGrid`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoGrid]()&] [s2; Hide horizontal and vertical grid lines (equivalent to [* Grid(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GridColor`(Color`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* GridColo -r]([_^Color^ Color]_[*@3 c])&] +[s4; &] +[s5;:ArrayCtrl`:`:GridColor`(Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* GridColor]( +[_^Color^ Color]_[*@3 c])&] [s2; Sets the color for grid lines.&] -[s7; [%-*C@3 c]-|new grid line color&] +[s7; [*C@3 c]-|new grid line color&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:EvenRowColor`(Color`,Color`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_ -[* EvenRowColor]([_^Color^ Color]_[*@3 paper]_`=_Blend(SColorMark, -SColorPaper, [@3 220]), [_^Color^ Color]_[*@3 ink]_`=_SColorText)&] +[s4; &] +[s5;:ArrayCtrl`:`:EvenRowColor`(Color`,Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* E +venRowColor]([_^Color^ Color]_[*@3 paper]_`=_Blend(SColorMark, SColorPaper, +[@3 220]), [_^Color^ Color]_[*@3 ink]_`=_SColorText)&] [s2; Sets the paper and ink (background and foreground) color for even array rows. In certain cases setting a different background color for odd and even rows helps to simplify visual orientation @@ -873,276 +867,275 @@ in the arrays (especially when the array has many columns).&] array row numbering, so first array row is [/ odd] and the second is [/ even]. This is in contrast to the zero`-baesd integral row indexing, where the first array row has index 0.&] -[s7; [%-*C@3 paper]-|background color to use for second, fourth, sixth +[s7; [*C@3 paper]-|background color to use for second, fourth, sixth etc. array row&] -[s7; [%-*C@3 ink]-|foreground color for even rows&] +[s7; [*C@3 ink]-|foreground color for even rows&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:OddRowColor`(Color`,Color`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_ -[* OddRowColor]([_^Color^ Color]_[*@3 paper]_`=_SColorInfo, [_^Color^ Color]_[*@3 ink]_`=_S -ColorText)&] +[s4; &] +[s5;:ArrayCtrl`:`:OddRowColor`(Color`,Color`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* O +ddRowColor]([_^Color^ Color]_[*@3 paper]_`=_SColorInfo, [_^Color^ Color]_[*@3 ink]_`=_SCo +lorText)&] [s2; Sets the paper and ink (background and foreground) color for odd array rows.&] -[s7; [%-*C@3 paper]-|background color to use for first, third, fifth -etc. array row&] -[s7; [%-*C@3 ink]-|foreground color for odd rows&] +[s7; [*C@3 paper]-|background color to use for first, third, fifth etc. +array row&] +[s7; [*C@3 ink]-|foreground color for odd rows&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoCursor`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCursor]( -[@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:NoCursor`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCursor]([@(0.0.255) b +ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Turns on / off highlighting cursor row.&] -[s7; [%-*C@3 b]-|[* true] `= do not highlight cursor row, [* false] `= default +[s7; [*C@3 b]-|[* true] `= do not highlight cursor row, [* false] `= default behaviour (cursor row is shown in inverse colors)&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:MouseMoveCursor`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Mou -seMoveCursor]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:MouseMoveCursor`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Mouse +MoveCursor]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enables / disables automatical cursor row switching as the mouse cursor moves over the array rows.&] -[s7; [%-*C@3 b]-|[* true] `= automatically switch cursor row, [* false] -`= only upon clicks and keyboard navigation&] +[s7; [*C@3 b]-|[* true] `= automatically switch cursor row, [* false] `= +only upon clicks and keyboard navigation&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoMouseMoveCursor`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMou -seMoveCursor]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoMouseMoveCursor`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMouse +MoveCursor]()&] [s2; Disable automatical cursor row switching (equivalent to [* MouseMoveCursor(false)]) .&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AutoHideSb`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoHide -Sb]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:AutoHideSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoHideSb +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; When set to [* true], the vertical scrollbar at the right array edge is displayed only when the total row height exceeds the array view height. When set to [* false], the scrollbar is shown all the time.&] -[s7; [%-*C@3 b]-|[* true] `= show / hide the scrollbar as necessary, [* false] +[s7; [*C@3 b]-|[* true] `= show / hide the scrollbar as necessary, [* false] `= display it unconditionally&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoAutoHideSb`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAutoHide -Sb]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoAutoHideSb`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAutoHideSb +]()&] [s2; Display vertical scrollbar all the time (equivalent to [* AutoHideSb(false)]).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HideSb`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideSb]([@(0.0.255) b +[s4; &] +[s5;:ArrayCtrl`:`:HideSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideSb]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Hides vertical scrollbar (even if it would be needed).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AutoHideHorzSb`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Auto -HideHorzSb]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:AutoHideHorzSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AutoHi +deHorzSb]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Makes horizontal scroll bar (active if HeaderCtrl is in absolute mode only) to autohide. Default is on.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoAutoHideHorzSb`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAuto -HideHorzSb]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoAutoHideHorzSb`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoAutoHi +deHorzSb]()&] [s2; Same as AutoHideHorzSb(false).&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HideHorzSb`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideHorz -Sb]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:HideHorzSb`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* HideHorzSb +]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Unconditionally hides horizontal scrollbar (active if HeaderCtrl is in absolute mode only).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:MultiSelect`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* MultiSe -lect]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:MultiSelect`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* MultiSele +ct]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Enable / disable multiple row selection. &] -[s7; [%-*C@3 b]-|[* true] `= allow selecting multiple rows at the same -time, [* false] `= only one row at a time&] +[s7; [*C@3 b]-|[* true] `= allow selecting multiple rows at the same time, +[* false] `= only one row at a time&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsMultiSelect`(`)const:%- [@(0.0.255) bool]_[* IsMultiSelect]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:IsMultiSelect`(`)const: [@(0.0.255) bool]_[* IsMultiSelect]()_[@(0.0.255) c onst]&] [s2; Returns true if ArrayCtrl is in multiselect mode.&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoBackground`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoBack -ground]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoBackground`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoBackgr +ound]([@(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;:ArrayCtrl`:`:PopUpEx`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* PopUpEx]([@(0.0.255) b +[s4; &] +[s5;:ArrayCtrl`:`:PopUpEx`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* PopUpEx]([@(0.0.255) b ool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Activates showing small popup windows with cell content when mouse is over and cell is to big to fit current dimensions. Default is activated.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoPopUpEx`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoPopUpEx]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoPopUpEx`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoPopUpEx]()&] [s2; Same as PopUpEx(false).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoFocusSetCursor`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoFocu -sSetCursor]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoFocusSetCursor`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoFocusS +etCursor]()&] [s2; Normally, when ArrayCtrl gets a focus and no cursor is set (and cursor is allowed and there is at least one line), ArrayCtrl a sets the cursor to the first line. This modifier deactivates this feature.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:MovingHeader`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Moving -Header]([@(0.0.255) bool]_[*@3 b])&] +[s4; &] +[s5;:ArrayCtrl`:`:MovingHeader`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* MovingHe +ader]([@(0.0.255) bool]_[*@3 b])&] [s2; Activates dragging columns in header. Default is active.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoMovingHeader`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMoving -Header]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoMovingHeader`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoMovingHe +ader]()&] [s2; Same as MovingHeader(false).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnSortFindKey`(bool`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* C -olumnSortFindKey]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSortFindKey`(bool`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Col +umnSortFindKey]([@(0.0.255) bool]_[*@3 b]_`=_[@(0.0.255) true])&] [s2; Before ColumnSort orders the ArrayCtrl, the key of current row (with cursor) is stored and after sorting, it is restored.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AllSorting`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AllSorting]( -)&] +[s4; &] +[s5;:ArrayCtrl`:`:AllSorting`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* AllSorting]()&] [s2; If set, Sorting() is invoked for all columns (added either before or after this modifier is called).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnSortSecondary`(const ArrayCtrl`:`:Order`&`):%- [_^ArrayCtrl^ Ar -rayCtrl][@(0.0.255) `&]_[* ColumnSortSecondary]([@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ O +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSortSecondary`(const ArrayCtrl`:`:Order`&`): [_^ArrayCtrl^ Arra +yCtrl][@(0.0.255) `&]_[* ColumnSortSecondary]([@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ O rder][@(0.0.255) `&]_[*@3 order])&] [s2; Sets secondary sorting predicate for column sorts (see ColumnSort, Sorting) `- if two cells are equal when performing sort by column, they are ordered by this predicate.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoColumnSortSecondary`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* N -oColumnSortSecondary]()&] +[s4; &] +[s5;:ArrayCtrl`:`:NoColumnSortSecondary`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoC +olumnSortSecondary]()&] [s2; Same as ColumnSortSecondary(false).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnWidths`(const char`*`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_ -[* ColumnWidths]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnWidths`(const char`*`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* C +olumnWidths]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] [s2; Initializes column widths based on a text string containing blank`-separated decimal numbers, e.g. `"1 4 6 4 1`".&] -[s7; [%-*C@3 s]-|control string defining column widths&] +[s7; [*C@3 s]-|control string defining column widths&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetColumnWidths`(`):%- [_^String^ String]_[* GetColumnWidths]()&] +[s4; &] +[s5;:ArrayCtrl`:`:GetColumnWidths`(`): [_^String^ String]_[* GetColumnWidths]()&] [s2; Returns current column widths in format compatible with ColumnWidths.&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:CursorOverride`(const Image`&`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `& -]_[* CursorOverride]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 arrow])&] -[s2; Overrides mouse cursor to [%-*@3 arrow]. Setting Null ends override.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:NoCursorOverride`(`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCurs -orOverride]()&] +[s4; &] +[s5;:ArrayCtrl`:`:CursorOverride`(const Image`&`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `& +]_[* CursorOverride]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 arrow])&] +[s2; Overrides mouse cursor to [*@3 arrow]. Setting Null ends override.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:NoCursorOverride`(`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* NoCursor +Override]()&] [s2; Same as CursorOverride(Null).&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:RowFormat`(const char`*`):%- [_^String^ String]_[* RowFormat]([@(0.0.255) c +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:RowFormat`(const char`*`): [_^String^ String]_[* RowFormat]([@(0.0.255) c onst]_[@(0.0.255) char]_`*[*@3 s])&] [s2; Formats a text by substituting [* %s] with the array`-specific term for `'row`' (as set by the [* RowName] property). This is used for array local menu items.&] -[s7; [%-*C@3 s]-|[* Format]`-like string to substitute.&] +[s7; [*C@3 s]-|[* Format]`-like string to substitute.&] [s7; [*/ Return value]-|&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:RowName`(const char`*`):%- [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* Row -Name]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] +[s4; &] +[s5;:ArrayCtrl`:`:RowName`(const char`*`): [_^ArrayCtrl^ ArrayCtrl][@(0.0.255) `&]_[* RowNa +me]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])&] [s2; Sets the array`-specific term for `'row`'. This can be used to customize the local menu terminology according to the logical content of the array. For instance, when you have an array with the list of employees, you can call [* RowName(`"employee`")] and the menu items will then read [/ `'Insert new employee`', `'Delete employee`'] etc.&] -[s7; [%-*C@3 s]-|the term to substitute for `'array row`' in menu items&] +[s7; [*C@3 s]-|the term to substitute for `'array row`' in menu items&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] [s0;* &] [s0; [* Column structure programming]&] [s3; &] -[s0;%- &] -[s5;:ArrayCtrl`:`:IndexInfo`(int`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ind -exInfo]([@(0.0.255) int]_[*@3 ii])&] +[s0; &] +[s5;:ArrayCtrl`:`:IndexInfo`(int`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Index +Info]([@(0.0.255) int]_[*@3 ii])&] [s2; Returns a reference to the [* IdInfo] structure describing a given array index (column in the source data matrix).&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the array index&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the array index&] [s7; [*/ Return value]-|IdInfo reference for the given index&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IndexInfo`(const Id`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& -]_[* IndexInfo]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s4; &] +[s5;:ArrayCtrl`:`:IndexInfo`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_ +[* IndexInfo]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] [s2; Returns a reference to the [* IdInfo] structure describing a given array index.&] -[s7; [%-*C@3 id]-|the [* Id] index identifier&] +[s7; [*C@3 id]-|the [* Id] index identifier&] [s7; [*/ Return value]-|IdInfo reference for the given index&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddIndex`(const Id`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& -]_[* AddIndex]([@(0.0.255) const] [_^Id^ Id]`&_[*@3 id])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddIndex`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_ +[* AddIndex]([@(0.0.255) const] [_^Id^ Id]`&_[*@3 id])&] [s2; Adds a new index to the array and assign it a given [* Id] identifier.&] -[s7; [%-*C@3 id]-|new index identifier&] +[s7; [*C@3 id]-|new index identifier&] [s7; [*/ Return value]-|A reference to the [* IdInfo ]structure describing the newly added index. The reference can be used to set additional index properties.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddIndex`(`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddInde -x]()&] +[s4; &] +[s5;:ArrayCtrl`:`:AddIndex`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddIndex]( +)&] [s2; Adds a new index (without an identifier) to the array.&] [s7; [*/ Return value]-|A reference to the [* IdInfo] structure describing the newly added index.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetIndexCount`(`)const:%- [@(0.0.255) int]_[* GetIndexCount]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetIndexCount`(`)const: [@(0.0.255) int]_[* GetIndexCount]()_[@(0.0.255) c onst]&] [s2; Returns number of indices in the array.&] [s7; [*/ Return value]-|index count&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetId`(int`)const:%- [_^Id^ Id]_[* GetId]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetId`(int`)const: [_^Id^ Id]_[* GetId]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c onst]&] [s2; Returns the identifier of a given index (addresses by its zero`-based ordinal number).&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the queried index&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the queried index&] [s7; [*/ Return value]-|index identifier or [* Null] if the index has no identifier&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetPos`(const Id`&`)const:%- [@(0.0.255) int]_[* GetPos]([@(0.0.255) cons -t ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetPos`(const Id`&`)const: [@(0.0.255) int]_[* GetPos]([@(0.0.255) const +][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] [s2; Returns the zero`-based positional number of the array index with a given identifier.&] -[s7; [%-*C@3 id]-|array index identifier&] +[s7; [*C@3 id]-|array index identifier&] [s7; [*/ Return value]-|zero`-based index number, `-1 when not found&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetId`(int`,const Id`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:SetId`(int`,const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& ]_[* SetId]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] [s2; Sets the identifier for a given array index. This can be used to set or modify the identifier for a previously added index.&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the index to set the -identifier for&] -[s7; [%-*C@3 id]-|new index identifier ([* Null] when none)&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the index to set the identifier +for&] +[s7; [*C@3 id]-|new index identifier ([* Null] when none)&] [s7; [*/ Return value]-|A reference to the [* IdInfo] descriptive structure for the [/ ii]`-th index. The reference can be used to set additional properties of the altered index.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddKey`(const Id`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_ -[* AddKey]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddKey`(const Id`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* A +ddKey]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] [s2; Adds a [/ primary key] index to the table. The [/ primary key] is just another name for the first index (index with ordinal number 0). This is just a handy convention often used for SQL`-based @@ -1151,80 +1144,79 @@ or [* Reset] and before calling any other functions adding indices (like [* AddIndex], [* AddColumn] or [* AddCtrl]). When [* GetIndexCount() > 0 ]before the call to this function, this method fails with an [* ASSERT].&] -[s7; [%-*C@3 id]-|primary key identifier&] +[s7; [*C@3 id]-|primary key identifier&] [s7; [*/ Return value]-|A reference to the descriptive [* IdInfo] structure for the primary key index.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddKey`(`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddKey]() -&] +[s4; &] +[s5;:ArrayCtrl`:`:AddKey`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddKey]()&] [s2; Adds a primary key index without an identifier to the table. This is equivalent to [* AddKey(Null)].&] [s7; [*/ Return value]-|A reference to the [* IdInfo] structure describing the primary key index.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetKeyId`(`)const:%- [_^Id^ Id]_[* GetKeyId]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetKeyId`(`)const: [_^Id^ Id]_[* GetKeyId]()_[@(0.0.255) const]&] [s2; Returns primary key identifier for this table. This is equivalent to calling [* GetId(0)].&] [s7; [*/ Return value]-|primary key index identifier&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddColumn`(const char`*`,int`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:AddColumn`(const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& ]_[* AddColumn]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text]_`=_NULL, [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] [s2; Add a new column`-index pair to the table. The function adds a (source) index and an (output) column and sets the index as the data source for the column. This is the most common method for adding columns to the array.&] -[s7; [%-*C@3 text]-|column name (displayed in the array header)&] -[s7; [%-*C@3 w]-|logical relative column width&] +[s7; [*C@3 text]-|column name (displayed in the array header)&] +[s7; [*C@3 w]-|logical relative column width&] [s7; [*/ Return value]-|A reference to the [* Column] structure describing the newly added column. This can be used to set additional properties for the newly added column and the corresponding header tab.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddColumn`(const Id`&`,const char`*`,int`):%- [_^ArrayCtrl`:`:Column^ C +[s4; &] +[s5;:ArrayCtrl`:`:AddColumn`(const Id`&`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ C olumn][@(0.0.255) `&]_[* AddColumn]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] [s2; Adds a new column`-index pair to the table. This is equivalent to the above two`-parameter version but, in addition, the method sets the [* Id] identifier for the newly created index.&] -[s7; [%-*C@3 id]-|new index identifier&] -[s7; [%-*C@3 text]-|column name (displayed in the header)&] -[s7; [%-*C@3 w]-|logical relative column width&] +[s7; [*C@3 id]-|new index identifier&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] [s7; [*/ Return value]-|A reference to the [* Column] structure describing the newly added array column.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddColumnAt`(int`,const char`*`,int`):%- [_^ArrayCtrl`:`:Column^ Colu -mn][@(0.0.255) `&]_[* AddColumnAt]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddColumnAt`(int`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column +][@(0.0.255) `&]_[* AddColumnAt]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] [s2; Adds a new column to the table and binds it to a given source data index.&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the index to use as -source for this column&] -[s7; [%-*C@3 text]-|column name (displayed in the header)&] -[s7; [%-*C@3 w]-|logical relative column width&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the index to use as source +for this column&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] [s7; [*/ Return value]-|A reference to the [* Column] structure describing the newly added array column.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddColumnAt`(const Id`&`,const char`*`,int`):%- [_^ArrayCtrl`:`:Column^ C +[s4; &] +[s5;:ArrayCtrl`:`:AddColumnAt`(const Id`&`,const char`*`,int`): [_^ArrayCtrl`:`:Column^ C olumn][@(0.0.255) `&]_[* AddColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] [s2; Adds a new column to the table and binds it to a given source data index.&] -[s7; [%-*C@3 id]-|identifier of the index to use as source for the newly +[s7; [*C@3 id]-|identifier of the index to use as source for the newly added column&] -[s7; [%-*C@3 text]-|column name (displayed in the header)&] -[s7; [%-*C@3 w]-|logical relative column width&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] [s7; [*/ Return value]-|A reference to the [* Column] structure describing the newly added array column.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddRowNumColumn`(const char`*`,int`):%- [_^ArrayCtrl`:`:Column^ Colum -n][@(0.0.255) `&]_[* AddRowNumColumn]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], +[s4; &] +[s5;:ArrayCtrl`:`:AddRowNumColumn`(const char`*`,int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* AddRowNumColumn]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text], [@(0.0.255) int]_[*@3 w]_`=_[@3 0])&] [s2; Adds a new column to the table. The newly added column has no source index, it is assumed to have an external data source. @@ -1234,14 +1226,14 @@ This allows the host application to decode somehow the external data based on the row number. In the current U`+`+ version, the [/ RowNum columns] cannot be edited (using the standard array inline editing mechanism).&] -[s7; [%-*C@3 text]-|column name (displayed in the header)&] -[s7; [%-*C@3 w]-|logical relative column width&] +[s7; [*C@3 text]-|column name (displayed in the header)&] +[s7; [*C@3 w]-|logical relative column width&] [s7; [*/ Return value]-|A reference to the [* Column] structure describing the newly added array column.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddCtrl`(Ctrl`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ad -dCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrl`(Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* AddC +trl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] [s2; Adds a new index`-control pair to the table; the index keeps the source data and the external control is used to edit it. The ArrayCtrl handles data transfer between the source data matrix @@ -1259,51 +1251,51 @@ logic enabling some of the controls only depending on the circumstances; in such case, you have to use one of the notification callbacks (like [* WhenEnterRow]) to force your additional behaviour on the controls.&] -[s7; [%-*C@3 ctrl]-|control to attach to the given index&] +[s7; [*C@3 ctrl]-|control to attach to the given index&] [s7; [*/ Return value]-|a reference to the IdInfo structure describing the newly added index&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddCtrl`(const Id`&`,Ctrl`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrl`(const Id`&`,Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& ]_[* AddCtrl]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl ])&] [s2; Adds a new index`-control pair to the table. This is identical to the above version with the only difference that the newly added index is assigned an [* Id] identifier at the same time.&] -[s7; [%-*C@3 id]-|the identifier to assign to the newly created index&] -[s7; [%-*C@3 ctrl]-|freestanding control used to edit the given index&] +[s7; [*C@3 id]-|the identifier to assign to the newly created index&] +[s7; [*C@3 ctrl]-|freestanding control used to edit the given index&] [s7; [*/ Return value]-|a reference to the IdInfo structure describing the newly added index&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddIdCtrl`(Ctrl`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* A -ddIdCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddIdCtrl`(Ctrl`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ad +dIdCtrl]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] [s2; Same as AddCtrl(ctrl.GetLayoutId(), ctrl). Helpful when adding dialog widgets whose id is the same as widget`'s variable id.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddCtrlAt`(int`,Ctrl`&`):%- [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) i -nt]_[*@3 ii], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrlAt`(int`,Ctrl`&`): [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) int +]_[*@3 ii], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] [s2; Adds a new control to the table and binds it to the index with given ordinal number. You can use this method to create the binding between the control and an arbitrary source index.&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the index to bind to -this control&] -[s7; [%-*C@3 ctrl]-|freestanding control used to edit the [/ ii]`-th data +[s7; [*C@3 ii]-|zero`-based ordinal number of the index to bind to this +control&] +[s7; [*C@3 ctrl]-|freestanding control used to edit the [/ ii]`-th data index&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddCtrlAt`(const Id`&`,Ctrl`&`):%- [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:AddCtrlAt`(const Id`&`,Ctrl`&`): [@(0.0.255) void]_[* AddCtrlAt]([@(0.0.255) c onst ][_^Id^ Id]`&_[*@3 id], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl])&] [s2; Adds a new control to the table and binds it to the index with given identifier.&] -[s7; [%-*C@3 id]-|identifier of the index to bind to this control&] -[s7; [%-*C@3 ctrl]-|freestanding control used to edit the index with -identifier [/ id]&] +[s7; [*C@3 id]-|identifier of the index to bind to this control&] +[s7; [*C@3 ctrl]-|freestanding control used to edit the index with identifier +[/ id]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddRowNumCtrl`(Ctrl`&`):%- [@(0.0.255) void]_[* AddRowNumCtrl]([_^Ctrl^ C -trl][@(0.0.255) `&]_[*@3 ctrl])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddRowNumCtrl`(Ctrl`&`): [@(0.0.255) void]_[* AddRowNumCtrl]([_^Ctrl^ Ctr +l][@(0.0.255) `&]_[*@3 ctrl])&] [s2; Adds a new freestanding control to the table. The control is not bound to any source data index. During cursor movement in the array, array uses the control`'s [* SetData] method to set @@ -1312,115 +1304,115 @@ and it can use the row number value to decode some externally located data for display. In the current U`+`+ version, such controls cannot be used for editing (there is currently no clean way to store the edited data back to its external storage).&] -[s7; [%-*C@3 ctrl]-|[/ RowNum]`-based freestanding editor control&] +[s7; [*C@3 ctrl]-|[/ RowNum]`-based freestanding editor control&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetColumnCount`(`)const:%- [@(0.0.255) int]_[* GetColumnCount]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetColumnCount`(`)const: [@(0.0.255) int]_[* GetColumnCount]()_[@(0.0.255) c onst]&] [s2; Returns the current number of (output) columns in the array.&] [s7; [*/ Return value]-|number of columns&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:FindColumnWithPos`(int`)const:%- [@(0.0.255) int]_[* FindColumnWithPos]( -[@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:FindColumnWithPos`(int`)const: [@(0.0.255) int]_[* FindColumnWithPos]([@(0.0.255) i +nt]_[*@3 pos])_[@(0.0.255) const]&] [s2; Returns the zero`-based index of a column based on its source data index.&] -[s7; [%-*C@3 pos]-|ordinal number of the source index&] +[s7; [*C@3 pos]-|ordinal number of the source index&] [s7; [*/ Return value]-|ordinal number of the column having the given index as its source, `-1 when not found&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:FindColumnWithId`(const Id`&`)const:%- [@(0.0.255) int]_[* FindColumnWi -thId]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:FindColumnWithId`(const Id`&`)const: [@(0.0.255) int]_[* FindColumnWith +Id]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] [s2; Returns the zero`-based index of a column based on its source data index.&] -[s7; [%-*C@3 id]-|source index identifier&] +[s7; [*C@3 id]-|source index identifier&] [s7; [*/ Return value]-|ordinal number of the column having the given index as its source, `-1 when not found&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnAt`(int`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Colu -mnAt]([@(0.0.255) int]_[*@3 i])&] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Column +At]([@(0.0.255) int]_[*@3 i])&] [s2; Returns the [* Column] structure describing a given column.&] -[s7; [%-*C@3 i]-|zero`-based column index&] +[s7; [*C@3 i]-|zero`-based column index&] [s7; [*/ Return value]-|a reference to the [* Column] structure describing the given column&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* ColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ +[* ColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] [s2; Returns the [* Column] structure describing a given column.&] -[s7; [%-*C@3 i]-|zero`-based column index&] +[s7; [*C@3 i]-|zero`-based column index&] [s7; [*/ Return value]-|a constant reference to the [* Column] structure describing the given column&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnAt`(int`)const:%- [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ Colu -mn][@(0.0.255) `&]_[* ColumnAt]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(int`)const: [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ Column +][@(0.0.255) `&]_[* ColumnAt]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] [s2; Returns the [* Column] structure describing a column with given source index. This is merely the const version of the above method; it can be used to query properties for the column.&] -[s7; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] [s7; [*/ Return value]-|a reference to the [* Column] structure describing the given column&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`)const:%- [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ C +[s4; &] +[s5;:ArrayCtrl`:`:ColumnAt`(const Id`&`)const: [@(0.0.255) const]_[_^ArrayCtrl`:`:Column^ C olumn][@(0.0.255) `&]_[* ColumnAt]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) cons t]&] [s2; Returns a constant reference to the [* Column] structure describing a column with given source index. This is the constant version of the above method; it can be used to query properties for the column.&] -[s7; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] [s7; [*/ Return value]-|a constant reference to the [* Column] structure describing the given column&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HeaderTab`(int`):%- [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(int`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& ]_[* HeaderTab]([@(0.0.255) int]_[*@3 i])&] [s2; Returns the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Min`(int`)^ H eaderCtrl`::Column] descriptive structure for the given column. The correspondence between the array columns and the header tabs is 1:1, so that the indices of both are always the same ([* array.GetColumnCount() `=`= array.HeaderObject().GetCount()] holds all the time).&] -[s7; [%-*C@3 i]-|zero`-based column index&] +[s7; [*C@3 i]-|zero`-based column index&] [s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. This can be used to set additional properties of the header column (e.g. column width constraints, font and icon for the column title etc.)&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HeaderTab`(int`)const:%- [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ He -aderCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(int`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ Head +erCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] [s2; Returns a constant reference to the [* HeaderCtrl`::Column] structure for the given column.&] -[s7; [%-*C@3 i]-|zero`-based column index&] +[s7; [*C@3 i]-|zero`-based column index&] [s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure. This can be used to set additional properties of the header column (e.g. column width constraints, font and icon for the column title etc.)&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`):%- [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Colum -n][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& +]_[* HeaderTab]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])&] [s2; Returns the [* HeaderCtrl`::Column] descriptive structure for the column bound to a given source index.&] -[s7; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] [s7; [*/ Return value]-|a reference to the [* HeaderCtrl`::Column] structure&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`)const:%- [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H +[s4; &] +[s5;:ArrayCtrl`:`:HeaderTab`(const Id`&`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H eaderCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) c onst]&] [s2; Returns a constant reference to the [* HeaderCtrl`::Column] descriptive structure for the column bound to a given source index.&] -[s7; [%-*C@3 id]-|identifier of the index used as source for the column&] +[s7; [*C@3 id]-|identifier of the index used as source for the column&] [s7; [*/ Return value]-|a constant reference to the [* HeaderCtrl`::Column] structure&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HeaderObject`(`)const:%- [@(0.0.255) const]_[_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:HeaderObject`(`)const: [@(0.0.255) const]_[_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `& ]_[* HeaderObject]()_[@(0.0.255) const]&] [s2; Returns a non`-constant reference to the [* HeaderCtrl] object for this table. The reference can be further used to alter properties @@ -1429,9 +1421,9 @@ on).&] [s7; [*/ Return value]-|A non`-constant reference to the table HeaderCtrl object.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:HeaderObject`(`):%- [_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `&]_[* HeaderOb -ject]()&] +[s4; &] +[s5;:ArrayCtrl`:`:HeaderObject`(`): [_^HeaderCtrl^ HeaderCtrl][@(0.0.255) `&]_[* HeaderObje +ct]()&] [s2; This is just the constant version of the above method; when called on a constant [* ArrayCtrl] reference, it returns a constant reference to its underlying HeaderCtrl object which can be then @@ -1439,8 +1431,8 @@ used to query additional header information.&] [s7; [*/ Return value]-|A constant reference to the table HeaderCtrl object.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SerializeHeader`(Stream`&`):%- [@(0.0.255) void]_[* SerializeHeader]([_^Stream^ S +[s4; &] +[s5;:ArrayCtrl`:`:SerializeHeader`(Stream`&`): [@(0.0.255) void]_[* SerializeHeader]([_^Stream^ S tream][@(0.0.255) `&]_[*@3 s])&] [s2; Serializes all information pertaining to the array header (mainly the user`-set column widths). This is equivalent to calling [* HeaderObject().Seria @@ -1448,22 +1440,22 @@ lize(s)]. The main purpose of this function is to allow storing header configuration to be restored upon opening the dialog or the application for the next time. This function is now deprecated in favor of SerializeSettings.&] -[s7; [%-*C@3 s]-|the [*^topic`:`/`/Core`/src`/Stream`$en`-us^ Stream] -object to serialize the header to/from&] +[s7; [*C@3 s]-|the [*^topic`:`/`/Core`/src`/Stream`$en`-us^ Stream] object +to serialize the header to/from&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SerializeSettings`(Stream`&`):%- [@(0.0.255) void]_[* SerializeSettings -]([_^Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] +[s4; &] +[s5;:ArrayCtrl`:`:SerializeSettings`(Stream`&`): [@(0.0.255) void]_[* SerializeSettings]( +[_^Stream^ Stream][@(0.0.255) `&]_[*@3 s])&] [s2; Serializes all information pertaining to the array header (mainly the user`-set column widths) and the setting of sort column. The main purpose of this function is to allow storing configuration to be restored upon opening the dialog or the application for the next time.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`):%- [@(0.0.255) void]_[* SetDisp -lay]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col], [@(0.0.255) const]_[_^Display^ Dis -play][@(0.0.255) `&]_[*@3 d])&] +[s4; &] +[s5;:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`): [@(0.0.255) void]_[* SetDispla +y]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col], [@(0.0.255) const]_[_^Display^ Displ +ay][@(0.0.255) `&]_[*@3 d])&] [s2; Sets the [* Display] object for a given array cell.&] [s2;* &] [s2; [* Note:] the ownership to the Display object is not transferred @@ -1483,29 +1475,29 @@ zero size), but it is not a very wise practice and it can fail in very weird ways under special circumstances (like making screenshots or graphical exports from the array control).&] [s2; &] -[s7; [%-*C@3 i]-|zero`-based row index&] -[s7; [%-*C@3 j]-|zero`-based column index&] -[s7; [%-*C@3 d]-|display to use&] +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*C@3 j]-|zero`-based column index&] +[s7; [*C@3 d]-|display to use&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetDisplay`(int`,int`):%- [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:GetDisplay`(int`,int`): [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& ]_[* GetDisplay]([@(0.0.255) int]_[*@3 row], [@(0.0.255) int]_[*@3 col])&] [s2; Returns a reference to the Display object for the given array cell.&] -[s7; [%-*C@3 row]-|zero`-based row index&] -[s7; [%-*C@3 col]-|zero`-based column index&] +[s7; [*C@3 row]-|zero`-based row index&] +[s7; [*C@3 col]-|zero`-based column index&] [s7; [*/ Return value]-|a reference to the Display object.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetDisplay`(int`):%- [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `& -]_[* GetDisplay]([@(0.0.255) int]_[*@3 col])&] +[s4; &] +[s5;:ArrayCtrl`:`:GetDisplay`(int`): [@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_ +[* GetDisplay]([@(0.0.255) int]_[*@3 col])&] [s2; Returns a reference to the Display object for the given array column.&] -[s7; [%-*C@3 col]-|zero`-based column index&] +[s7; [*C@3 col]-|zero`-based column index&] [s7; [*/ Return value]-|constant reference to the column Display&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetCtrl`(int`,int`,Ctrl`&`,bool`):%- [@(0.0.255) void]_[* SetCtrl]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:SetCtrl`(int`,int`,Ctrl`&`,bool`): [@(0.0.255) void]_[* SetCtrl]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) int]_[*@3 col], [_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 ctrl], [@(0.0.255) bool]_[*@3 value]_`=_[@(0.0.255) true])&] [s2; Sets an external control to use as the editor for a single array @@ -1513,72 +1505,70 @@ cell. Naturally, the same Ctrl object cannot be used as the editor for multiple array cells. If the position of Ctrl is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default value, Ctrl is resized to fit the ArrayCtrl cell accurately, otherwise the -position represents the position within the cell. If [%-*@3 value] +position represents the position within the cell. If [*@3 value] is true, then the Ctrl represents the value of the cell, otherwise it is independent of it.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetCtrl`(int`,int`):%- [_^Ctrl^ Ctrl]_`*[* GetCtrl]([@(0.0.255) int]_[*@3 i -], [@(0.0.255) int]_[*@3 col])&] +[s4; &] +[s5;:ArrayCtrl`:`:GetCtrl`(int`,int`): [_^Ctrl^ Ctrl]_`*[* GetCtrl]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) int]_[*@3 col])&] [s2; Returns a pointer to ctrl if there is any, NULL otherwise.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:CreateCtrl`(int`,int`,bool`):%- [@(0.0.255) template]_<[@(0.0.255) clas -s]_[*@4 T]>_[*@4 T][@(0.0.255) `&]_[* CreateCtrl]([@(0.0.255) int]_[*@3 i], +[s4; &] +[s5;:ArrayCtrl`:`:CreateCtrl`(int`,int`,bool`): [@(0.0.255) template]_<[@(0.0.255) class]_ +[*@4 T]>_[*@4 T][@(0.0.255) `&]_[* CreateCtrl]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 col], [@(0.0.255) bool]_[*@3 value]_`=_[@(0.0.255) true])&] [s2; Creates an control (owned by ArrayCtrl) for a single array cell. -If [%-*@3 value] is true, then the Ctrl represents the value of -the cell, otherwise it is independent of it.&] +If [*@3 value] is true, then the Ctrl represents the value of the +cell, otherwise it is independent of it.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetTotalCy`(`)const:%- [@(0.0.255) int]_[* GetTotalCy]()_[@(0.0.255) cons -t]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetTotalCy`(`)const: [@(0.0.255) int]_[* GetTotalCy]()_[@(0.0.255) const]&] [s2; Returns total height of the array (sum of the individual line heights for all array rows)&] [s7; [*/ Return value]-|array height in pixels&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetLineAt`(int`)const:%- [@(0.0.255) int]_[* GetLineAt]([@(0.0.255) int]_ -[*@3 y])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetLineAt`(int`)const: [@(0.0.255) int]_[* GetLineAt]([@(0.0.255) int]_[*@3 y +])_[@(0.0.255) const]&] [s2; Locates the array row according to given [/ y] coordinate (such array row [/ r] for which [* GetLineY(r) <`= y `&`& GetLineY(r) `+ GetLineCy(r) > y]).&] -[s7; [%-*C@3 y]-|vertical pixel coordinate to locate&] +[s7; [*C@3 y]-|vertical pixel coordinate to locate&] [s7; [*/ Return value]-|zero`-based row number or `-1 when not found&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetClickColumn`(`)const:%- [@(0.0.255) int]_[* GetClickColumn]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetClickColumn`(`)const: [@(0.0.255) int]_[* GetClickColumn]()_[@(0.0.255) c onst]&] [s2; Returns column index of the last clicked column in the array. If the click happens past the last row of array, returns Null.&] [s7; [*/ Return value]-|zero`-based index of the relevant column&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetClickRow`(`)const:%- [@(0.0.255) int]_[* GetClickRow]()_[@(0.0.255) co -nst]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetClickRow`(`)const: [@(0.0.255) int]_[* GetClickRow]()_[@(0.0.255) cons +t]&] [s2; Returns column index of the last clicked row in the array. If the click happens past the last row of array, returns Null.&] [s7; [*/ Return value]-|zero`-based index of the relevant column&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetClickPos`(`)const:%- [_^Point^ Point]_[* GetClickPos]()_[@(0.0.255) co -nst]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetClickPos`(`)const: [_^Point^ Point]_[* GetClickPos]()_[@(0.0.255) cons +t]&] [s7; [*/ Return value]-|[* Point(GetClickColumn(), GetClickRow())].&] [s3; &] [s0;* &] [s0; [* Data setting and retrieval]&] [s3; &] -[s0;%- &] -[s5;:ArrayCtrl`:`:SetCount`(int`):%- [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 c]) -&] +[s0; &] +[s5;:ArrayCtrl`:`:SetCount`(int`): [@(0.0.255) void]_[* SetCount]([@(0.0.255) int]_[*@3 c])&] [s2; Sets the number of rows in the array. This extends or trims the source matrix as necessary. When using the Ctrl`-based individual cell editors, as a side`-effect of this call some controls can be constructed or destroyed.&] -[s7; [%-*C@3 c]-|new row count&] +[s7; [*C@3 c]-|new row count&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetVirtualCount`(int`):%- [@(0.0.255) void]_[* SetVirtualCount]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:SetVirtualCount`(int`): [@(0.0.255) void]_[* SetVirtualCount]([@(0.0.255) i nt]_[*@3 c])&] [s2; Sets the number of rows in an array with external data. This makes sense only when all the [/ Column`'s] and [/ Ctrl`'s] of the @@ -1592,10 +1582,10 @@ not very wise to use multiselection for arrays with external data, because as soon as the last row is selected, all row storage structures are allocated as a side effect to keep the selection flags.&] -[s7; [%-*C@3 c]-|new `'virtual`' number of rows&] +[s7; [*C@3 c]-|new `'virtual`' number of rows&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetCount`(`)const: [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] [s2; Returns the number of rows in the array. In fact, this returns the maximum of the number of `'real`' source matrix rows (as set by the SetCount / Add / Insert methods) and the `'virtual`' @@ -1608,37 +1598,37 @@ of this method, you can easily find that, simply,&] [s2; &] [s7; [*/ Return value]-|Number of rows in the array.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Clear`(`): [@(0.0.255) void]_[* Clear]()&] [s2; Clears the array source data matrix and sets the virtual row count to 0.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Shrink`(`): [@(0.0.255) void]_[* Shrink]()&] [s2; Shrinks the source data array, i.e. reallocates the data to the minimum required memory space.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Get`(int`,int`)const:%- [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i], +[s4; &] +[s5;:ArrayCtrl`:`:Get`(int`,int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i], [@(0.0.255) int]_[*@3 ii])_[@(0.0.255) const]&] [s2; Returns the value at a given location in the source data matrix.&] -[s7; [%-*C@3 i]-|zero`-based row number&] -[s7; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] [s7; [*/ Return value]-|value at the given location in the source data matrix&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Get`(int`,const Id`&`)const:%- [_^Value^ Value]_[* Get]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:Get`(int`,const Id`&`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] [s2; Returns the value at a given location in the source data matrix. In this version, the source indices are addressed by their identifiers.&] -[s7; [%-*C@3 i]-|zero`-based row number&] -[s7; [%-*C@3 id]-|source index identifier&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 id]-|source index identifier&] [s7; [*/ Return value]-|value at the given location in the source data matrix&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Get`(int`)const:%- [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:Get`(int`)const: [_^Value^ Value]_[* Get]([@(0.0.255) int]_[*@3 ii])_[@(0.0.255) c onst]&] [s2; Returns the value of a given source index at the currently active cursor row. This is equivalent to [* Get(GetCursor(), ii)]. When @@ -1647,44 +1637,44 @@ value (the current value of the respective editor control, i.e. potentially edited).&] [s2; [* Note:] when the cursor row is not set (when [* !IsCursor()]), the function fails with an [* ASSERT].&] -[s7; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] [s7; [*/ Return value]-|value at a given location in the cursor row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Get`(const Id`&`)const:%- [_^Value^ Value]_[* Get]([@(0.0.255) const +[s4; &] +[s5;:ArrayCtrl`:`:Get`(const Id`&`)const: [_^Value^ Value]_[* Get]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] [s2; Returns the value of a given source index at the currently active cursor row. This is equivalent to [* Get(GetCursor(), id)].&] -[s7; [%-*C@3 id]-|source index identifier&] +[s7; [*C@3 id]-|source index identifier&] [s7; [*/ Return value]-|value at the given location in the cursor row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetOriginal`(int`)const:%- [_^Value^ Value]_[* GetOriginal]([@(0.0.255) i -nt]_[*@3 ii])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetOriginal`(int`)const: [_^Value^ Value]_[* GetOriginal]([@(0.0.255) int +]_[*@3 ii])_[@(0.0.255) const]&] [s2; Returns the `'original`' value of a given source index at the currently active cursor row. When the row is open for editing, this function returns the `'old`' value before any editing took place.&] -[s7; [%-*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] [s7; [*/ Return value]-|value at the given location in the cursor row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetOriginal`(const Id`&`)const:%- [_^Value^ Value]_[* GetOriginal]([@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetOriginal`(const Id`&`)const: [_^Value^ Value]_[* GetOriginal]([@(0.0.255) c onst ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] [s2; Returns the `'original`' value (i.e., without any editing changed applied) of a given source index at the currently active cursor row.&] -[s7; [%-*C@3 id]-|source index identifier&] +[s7; [*C@3 id]-|source index identifier&] [s7; [*/ Return value]-|value at the given location in the cursor row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetKey`(`)const:%- [_^Value^ Value]_[* GetKey]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetKey`(`)const: [_^Value^ Value]_[* GetKey]()_[@(0.0.255) const]&] [s2; Returns the value of the current row`'s primary key. This is equivalent to [* Get(0)].&] [s7; [*/ Return value]-|value at the index #0 in the cursor row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetOriginalKey`(`)const:%- [_^Value^ Value]_[* GetOriginalKey]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetOriginalKey`(`)const: [_^Value^ Value]_[* GetOriginalKey]()_[@(0.0.255) c onst]&] [s2; Returns the original value of the current row`'s primary key. During editing, the function returns the value at the time of @@ -1692,46 +1682,46 @@ opening the row for editing, i.e. without any editing changes applied. This is equivalent to [* GetOriginal(0)].&] [s7; [*/ Return value]-|value at the index #0 in the cursor row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Set`(int`,int`,const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) i -nt]_[*@3 i], [@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,int`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) int +]_[*@3 i], [@(0.0.255) int]_[*@3 ii], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v ])&] [s2; Sets the value at a given location in the source data matrix.&] -[s7; [%-*C@3 i]-|zero`-based row number&] -[s7; [%-*C@3 ii]-|zero`-based index ordinal number&] -[s7; [%-*C@3 v]-|value to set to the given cell&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*C@3 v]-|value to set to the given cell&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Set`(int`,const Id`&`,const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const Id`&`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& ]_[*@3 v])&] [s2; Sets the value at a given location in the source data matrix. &] -[s7; [%-*C@3 i]-|zero`-based row number&] -[s7; [%-*C@3 id]-|source index identifier&] -[s7; [%-*C@3 v]-|value to set to the given cell&] +[s7; [*C@3 i]-|zero`-based row number&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*C@3 v]-|value to set to the given cell&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Set`(int`,const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] [s2; Modifies the value at a given location in the cursor row. When the row is open for editing, the function immediately changes the value in the appropriate editor control.&] -[s7; [%-*C@3 ii]-|zero`-based index ordinal number&] -[s7; [%-*C@3 v]-|value to set&] +[s7; [*C@3 ii]-|zero`-based index ordinal number&] +[s7; [*C@3 v]-|value to set&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Set`(const Id`&`,const Value`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:Set`(const Id`&`,const Value`&`): [@(0.0.255) void]_[* Set]([@(0.0.255) c onst ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&] [s2; Modifies the value at a given location in the cursor row. This overloaded version uses the [* Id] identifier to address the relevant index.&] -[s7; [%-*C@3 id]-|index identifier&] -[s7; [%-*C@3 v]-|value to set&] +[s7; [*C@3 id]-|index identifier&] +[s7; [*C@3 v]-|value to set&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetColumn`(int`,int`)const:%- [_^Value^ Value]_[* GetColumn]([@(0.0.255) i -nt]_[*@3 row], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetColumn`(int`,int`)const: [_^Value^ Value]_[* GetColumn]([@(0.0.255) in +t]_[*@3 row], [@(0.0.255) int]_[*@3 col])_[@(0.0.255) const]&] [s2; Returns the value of a given column. This depends on the column`-index mapping established when adding columns to the table. When the column is a [/ rownum] type (it is bound to no source indices), @@ -1740,13 +1730,13 @@ a single source index, the function returns the value of the mapped source index. For columns with multiple source indices, the function returns a [* ValueArray ]containing the values of its source indices.&] -[s7; [%-*C@3 row]-|zero`-based row index&] -[s7; [%-*C@3 col]-|zero`-based column index&] +[s7; [*C@3 row]-|zero`-based row index&] +[s7; [*C@3 col]-|zero`-based column index&] [s7; [*/ Return value]-|value of the given column&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetConvertedColumn`(int`,int`):%- [_^Value^ Value]_[* GetConvertedColum -n]([@(0.0.255) int]_[*@3 row], [@(0.0.255) int]_[*@3 col])&] +[s4; &] +[s5;:ArrayCtrl`:`:GetConvertedColumn`(int`,int`): [_^Value^ Value]_[* GetConvertedColumn]( +[@(0.0.255) int]_[*@3 row], [@(0.0.255) int]_[*@3 col])&] [s2; Returns the value of a given column after application of its [* Convert]. For performance reasons, the values obtained by calls to the [* Convert`::Format] methods are cached internally within @@ -1754,32 +1744,32 @@ the ArrayCtrl object. You can manipulate the conversion cache using the methods [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:ClearCache`(`)^ C learCache] and[* ][*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:InvalidateCache`(int`)^ I nvalidateCache].&] -[s7; [%-*C@3 row]-|zero`-based row index&] -[s7; [%-*C@3 col]-|zero`-based column index&] +[s7; [*C@3 row]-|zero`-based row index&] +[s7; [*C@3 col]-|zero`-based column index&] [s7; [*/ Return value]-|the converted cell value&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ReadRow`(int`)const:%- [_^Vector^ Vector]<[_^Value^ Value]>_[* ReadRow]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:ReadRow`(int`)const: [_^Vector^ Vector]<[_^Value^ Value]>_[* ReadRow]([@(0.0.255) i nt]_[*@3 i])_[@(0.0.255) const]&] [s2; Returns a [* Vector] containing the values of all source indices in the given row. Invariantly, the [* GetCount()] of the returned array is equal to the [* GetIndexCount()] of the source ArrayCtrl.&] -[s7; [%-*C@3 i]-|zero`-based row index&] +[s7; [*C@3 i]-|zero`-based row index&] [s7; [*/ Return value]-|an array of all source values in the given row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Set`(int`,const Vector``&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const Vector``&`): [@(0.0.255) void]_[* Set]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] [s2; Modifies a given row by setting all source index values to values passed in the parameter [/ v].&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetArray`(int`,const ValueArray`&`):%- [@(0.0.255) void]_[* SetArray]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:SetArray`(int`,const ValueArray`&`): [@(0.0.255) void]_[* SetArray]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) const]_[_^ValueArray^ ValueArray][@(0.0.255) `&]_[*@3 va])&] -[s2; Sets the row [%-*@3 i] to [%-*@3 va].&] +[s2; Sets the row [*@3 i] to [*@3 va].&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Add`(`):%- [@(0.0.255) void]_[* Add]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(`): [@(0.0.255) void]_[* Add]()&] [s2; Adds an empty row to the source data matrix.&] [s2; [* Note:] the [* InsertValue] property of the [* IdInfo] structure defines a method to generate / retrieve default values for newly @@ -1788,96 +1778,95 @@ GUI`-based [* DoInsert] method and do not apply to the [* Add] method. If you need to set the newly added source matrix row to some non`-null defaults, you have to modify the relevant cells manually.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Add`(const Vector``&`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) c -onst]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const Vector``&`): [@(0.0.255) void]_[* Add]([@(0.0.255) con +st]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] [s2; Adds a new row at the end of the source data matrix. The [*^topic`:`/`/Core`/src`/Vector`$en`-us^ V ector] parameter contains the values to be used to initialize the new row of the matrix.&] -[s7; [%-*C@3 v]-|new matrix row&] +[s7; [*C@3 v]-|new matrix row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddArray`(const ValueArray`&`):%- [@(0.0.255) void]_[* AddArray]([@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:AddArray`(const ValueArray`&`): [@(0.0.255) void]_[* AddArray]([@(0.0.255) c onst]_[_^ValueArray^ ValueArray][@(0.0.255) `&]_[*@3 va])&] -[s2; Adds a new row at the end of source with value [%-*@3 va].&] +[s2; Adds a new row at the end of source with value [*@3 va].&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetArray`(int`)const:%- [_^ValueArray^ ValueArray]_[* GetArray]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:GetArray`(int`)const: [_^ValueArray^ ValueArray]_[* GetArray]([@(0.0.255) i nt]_[*@3 i])_[@(0.0.255) const]&] [s2; Returns a row as ValueArray.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Set`(int`,const VectorMap``&`):%- [@(0.0.255) void]_[* S -et]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String -], [_^Value^ Value]>`&_[*@3 m])&] +[s4; &] +[s5;:ArrayCtrl`:`:Set`(int`,const VectorMap``&`): [@(0.0.255) void]_[* Se +t]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], + [_^Value^ Value]>`&_[*@3 m])&] [s2; Sets the row based on map. Keys are matched to row Ids, keys that are not found are ignored, those found are assigned correspoding map values.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Add`(const VectorMap``&`):%- [@(0.0.255) void]_[* Add]( -[@(0.0.255) const]_[_^VectorMap^ VectorMap]<[_^String^ String], [_^Value^ Value]>`&_[*@3 m]) -&] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const VectorMap``&`): [@(0.0.255) void]_[* Add]([@(0.0.255) c +onst]_[_^VectorMap^ VectorMap]<[_^String^ String], [_^Value^ Value]>`&_[*@3 m])&] [s2; Adds the row based on map. Keys are matched to row Ids, keys that are not found are ignored, those found are assigned correspoding map values.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetMap`(int`,const ValueMap`&`):%- [@(0.0.255) void]_[* SetMap]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:SetMap`(int`,const ValueMap`&`): [@(0.0.255) void]_[* SetMap]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) const]_[_^ValueMap^ ValueMap][@(0.0.255) `&]_[*@3 m])&] [s2; Sets the row based on map. Keys are matched to row Ids, keys that are not found are ignored, those found are assigned correspoding map values.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AddMap`(const ValueMap`&`):%- [@(0.0.255) void]_[* AddMap]([@(0.0.255) co -nst]_[_^ValueMap^ ValueMap][@(0.0.255) `&]_[*@3 m])&] +[s4; &] +[s5;:ArrayCtrl`:`:AddMap`(const ValueMap`&`): [@(0.0.255) void]_[* AddMap]([@(0.0.255) cons +t]_[_^ValueMap^ ValueMap][@(0.0.255) `&]_[*@3 m])&] [s2; Adds the row based on map. Keys are matched to row Ids, keys that are not found are ignored, those found are assigned correspoding map values.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetMap`(int`)const:%- [_^ValueMap^ ValueMap]_[* GetMap]([@(0.0.255) int]_ -[*@3 i])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetMap`(int`)const: [_^ValueMap^ ValueMap]_[* GetMap]([@(0.0.255) int]_[*@3 i +])_[@(0.0.255) const]&] [s2; Returns row as map of row Ids to row values. Only non`-empty row Ids are added.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Add`(const Value`&`[`,const Value`&`]`.`.`.`):%- [@(0.0.255) void]_[* A -dd]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_`[, [@(0.0.255) const]_[_^Value^ Val -ue][@(0.0.255) `&]_`]...)&] +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const Value`&`[`,const Value`&`]`.`.`.`): [@(0.0.255) void]_[* Add +]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_`[, [@(0.0.255) const]_[_^Value^ Value +][@(0.0.255) `&]_`]...)&] [s2; Adds a new row at the bottom of the source data matrix. This is in fact a series of functions (generated automatically using the [* Expand] macro) which takes an arbitrary number of arguments. Its arguments are used to initialize the source indices in the newly added row.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Add`(const Nuller`&`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) const]_[_^Nuller^ N +[s4; &] +[s5;:ArrayCtrl`:`:Add`(const Nuller`&`): [@(0.0.255) void]_[* Add]([@(0.0.255) const]_[_^Nuller^ N uller][@(0.0.255) `&]_[*@3 null])&] [s2; This is helper method required for correct overloading resolution of Add(Null).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Insert`(int`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 i])&] +[s4; &] +[s5;:ArrayCtrl`:`:Insert`(int`): [@(0.0.255) void]_[* Insert]([@(0.0.255) int]_[*@3 i])&] [s2; Inserts a new row into the source array. All indices are initialized to [* Null] values. The [* InsertValue] property doesn`'t apply; if you need to set the newly created row to some non`-trivial values, you have to do so manually.&] -[s7; [%-*C@3 i]-|zero`-based position of the newly created row&] +[s7; [*C@3 i]-|zero`-based position of the newly created row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Insert`(int`,const Vector``&`):%- [@(0.0.255) void]_[* Insert]( -[@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] +[s4; &] +[s5;:ArrayCtrl`:`:Insert`(int`,const Vector``&`): [@(0.0.255) void]_[* Insert]([@(0.0.255) i +nt]_[*@3 i], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 v])&] [s2; Inserts a new row into the array at a given position. The second parameter, [/ v], is used to initialize the source indices of the newly created row.&] -[s7; [%-*C@3 i]-|zero`-based row index&] -[s7; [%-*C@3 v]-|a vector of values used to initialize the source indices +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*C@3 v]-|a vector of values used to initialize the source indices of the given row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Remove`(int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] +[s4; &] +[s5;:ArrayCtrl`:`:Remove`(int`): [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&] [s2; Removes the given source data row.&] [s2; [* Note:] the [* AskRemove] property of the [* ArrayCtrl] object tells whether a confirmation dialog should pop up every time the user @@ -1885,31 +1874,31 @@ wants to remove a row. However, this method applies only to the GUI`-based row removal; the [* Remove] method always removes the requested row unconditionally without popping up any confirmation dialog.&] -[s7; [%-*C@3 i]-|zero`-based index of the row to remove&] +[s7; [*C@3 i]-|zero`-based index of the row to remove&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SwapUp`(`):%- [@(0.0.255) void]_[* SwapUp]()&] +[s4; &] +[s5;:ArrayCtrl`:`:SwapUp`(`): [@(0.0.255) void]_[* SwapUp]()&] [s2; Exchanges the cursor row with the preceding row, effectively moving it up.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SwapDown`(`):%- [@(0.0.255) void]_[* SwapDown]()&] +[s4; &] +[s5;:ArrayCtrl`:`:SwapDown`(`): [@(0.0.255) void]_[* SwapDown]()&] [s2; Exchanges the cursor row with following row, effectively moving it down.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Sort`(Gate2``):%- [@(0.0.255) void]_[* Sort]([_^Gate2^ Gate2]< -[@(0.0.255) int], [@(0.0.255) int]>_[*@3 order])&] -[s5;:ArrayCtrl`:`:Sort`(int`,int`,Gate2``):%- [@(0.0.255) void]_[* Sort]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(Gate2``): [@(0.0.255) void]_[* Sort]([_^Gate2^ Gate2]<[@(0.0.255) i +nt], [@(0.0.255) int]>_[*@3 order])&] +[s5;:ArrayCtrl`:`:Sort`(int`,int`,Gate2``): [@(0.0.255) void]_[* Sort]([@(0.0.255) i nt]_[*@3 from], [@(0.0.255) int]_[*@3 count], [_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 order])&] [s2; Sorts the array rows according to a given ordering predicate. -The [%-*@3 order] object defines the ordering predicate; two parameters +The [*@3 order] object defines the ordering predicate; two parameters are indicies of ArrayCtrl lines; it should returns true if they are in required ordering.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Sort`(const ArrayCtrl`:`:Order`&`):%- [@(0.0.255) void]_[* Sort]([@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(const ArrayCtrl`:`:Order`&`): [@(0.0.255) void]_[* Sort]([@(0.0.255) c onst]_[_^ArrayCtrl`:`:Order^ ArrayCtrl`::Order][@(0.0.255) `&]_[*@3 order])&] [s2; Sorts the array rows according to a given ordering predicate. The [* ArrayCtrl`::Order] object defines the ordering predicate; @@ -1918,21 +1907,21 @@ its [* operator ()] should return [* true] whenever its first parameter is less than its second parameter.&] [s7; &] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Sort`(int`,int`,const ArrayCtrl`:`:Order`&`):%- [@(0.0.255) void]_[* So -rt]([@(0.0.255) int]_[*@3 from], [@(0.0.255) int]_[*@3 count], [@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ A +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(int`,int`,const ArrayCtrl`:`:Order`&`): [@(0.0.255) void]_[* Sort +]([@(0.0.255) int]_[*@3 from], [@(0.0.255) int]_[*@3 count], [@(0.0.255) const]_[_^ArrayCtrl`:`:Order^ A rrayCtrl`::Order][@(0.0.255) `&]_[*@3 order])&] [s2; Sorts a portion of the array using a given ordering predicate.&] -[s7; [%-*C@3 from]-|zero`-based index of the first row to sort&] -[s7; [%-*C@3 count]-|number of rows to be sorted&] -[s7; [%-*C@3 order]-|the ordering predicate object. The object should +[s7; [*C@3 from]-|zero`-based index of the first row to sort&] +[s7; [*C@3 count]-|number of rows to be sorted&] +[s7; [*C@3 order]-|the ordering predicate object. The object should be derived from [* ArrayCtrl`::Order] and should override the [* operator ()] method. This method should return [* true ]whenever its first parameter (a vector containing all source index values for a certain row) is less than its second parameter.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Sort`(int`(`*`)`(const Vector``&v1`,const Vector``&v2`)`):%- [@(0.0.255) v +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(int`(`*`)`(const Vector``&v1`,const Vector``&v2`)`): [@(0.0.255) v oid]_[* Sort]([@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const]_Vector`&_v1, [@(0.0.255) const]_Vector`&_v2))&] [s2; Sorts the array rows according to the order defined by the specified @@ -1940,12 +1929,12 @@ ordering predicate [/ compare]. This is supposed to be a global function returning [* true] whenever its first parameter ([/ v1], an array consisting of all source indices within a row) is less than the second parameter [/ v2] (according to the desired ordering).&] -[s7; [%-*C@3 compare]-|the ordering predicate; _the function is supposed +[s7; [*C@3 compare]-|the ordering predicate; _the function is supposed to return [* true] whenever its first parameter ([/ v1]) is less than the second parameter ([/ v2]) according to the desired ordering.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`):%- [@(0.0.255) v +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(int`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v oid]_[* Sort]([@(0.0.255) int]_[*@3 ii], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) const ]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueCompa re)&] @@ -1953,15 +1942,15 @@ re)&] for the source index with a given ordinal number. When not explicitly specified, the [* StdValueCompare] function is used as the default comparison predicate.&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the source index used +[s7; [*C@3 ii]-|zero`-based ordinal number of the source index used for sorting&] -[s7; [%-*C@3 compare]-|the sorting predicate function: the function is +[s7; [*C@3 compare]-|the sorting predicate function: the function is supposed to return [* true] whenever its first parameter ([/ v1]) is less than the second parameter ([/ v2]) according to the desired ordering.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Sort`(const Id`&`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`):%- [@(0.0.255) v +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(const Id`&`,int`(`*`)`(const Value`&v1`,const Value`&v2`)`): [@(0.0.255) v oid]_[* Sort]([@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_(`*[*@3 compare])([@(0.0.255) c onst]_Value[@(0.0.255) `&]_v1, [@(0.0.255) const]_Value[@(0.0.255) `&]_v2)_`=_StdValueC ompare)&] @@ -1969,64 +1958,64 @@ ompare)&] for the source index with a given identifier. When not explicitly specified, the [* StdValueCompare] function is used as the default comparison predicate.&] -[s7; [%-*C@3 id]-|identifier of the source index used for sorting&] -[s7; [%-*C@3 compare]-|the sorting predicate function: the function is +[s7; [*C@3 id]-|identifier of the source index used for sorting&] +[s7; [*C@3 compare]-|the sorting predicate function: the function is supposed to return [* true] whenever its first parameter ([/ v1]) is less than the second parameter ([/ v2]) according to the desired ordering .&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Sort`(`):%- [@(0.0.255) void]_[* Sort]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Sort`(`): [@(0.0.255) void]_[* Sort]()&] [s2; Sorts the array according to the default ordering predicate for the first source index. This is equivalent to calling [* Sort(0)].&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnSort`(int`,Gate2``):%- [@(0.0.255) void]_[* ColumnSort -]([@(0.0.255) int]_[*@3 column], [_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 or -der])&] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSort`(int`,Gate2``): [@(0.0.255) void]_[* ColumnSort]( +[@(0.0.255) int]_[*@3 column], [_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 orde +r])&] [s2; Sorts by the column using ordering based on line indicies. This is almost the same as the plain Sort, except that it respects ColumnSortSecondary and ColumnSortFindKey flags.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ColumnSort`(int`,const ValueOrder`&`):%- [@(0.0.255) void]_[* ColumnSor -t]([@(0.0.255) int]_[*@3 column], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `& -]_[*@3 order])&] +[s4; &] +[s5;:ArrayCtrl`:`:ColumnSort`(int`,const ValueOrder`&`): [@(0.0.255) void]_[* ColumnSort]( +[@(0.0.255) int]_[*@3 column], [@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_ +[*@3 order])&] [s2; Sorts by the column. Note that this is different from Sort, because the final converted value of column is used (which can even be combination of more indexes).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetSortColumn`(int`,bool`):%- [@(0.0.255) void]_[* SetSortColumn]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:SetSortColumn`(int`,bool`): [@(0.0.255) void]_[* SetSortColumn]([@(0.0.255) i nt]_[*@3 ii], [@(0.0.255) bool]_[*@3 descending]_`=_[@(0.0.255) false])&] [s2; Sets the `"sorting`" column and calls DoColumnSort. This setting is used by DoColumnSort.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ToggleSortColumn`(int`):%- [@(0.0.255) void]_[* ToggleSortColumn]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:ToggleSortColumn`(int`): [@(0.0.255) void]_[* ToggleSortColumn]([@(0.0.255) i nt]_[*@3 ii])&] [s2; Similar to SetSortColumn, but if the column is already set, descending flag is inverted; otherwise descending flag is set to false (indicating ascending sort).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoColumnSort`(`):%- [@(0.0.255) void]_[* DoColumnSort]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoColumnSort`(`): [@(0.0.255) void]_[* DoColumnSort]()&] [s2; Sorts the array by sorting column and indicates it by setting an image in the header.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetSortColumn`(`)const:%- [@(0.0.255) int]_[* GetSortColumn]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetSortColumn`(`)const: [@(0.0.255) int]_[* GetSortColumn]()_[@(0.0.255) c onst]&] [s2; Returns the column that is sorting the ArrayCtrl (user clicked on it and it has up or down arrow displayed).&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsSortDescending`(`)const:%- [@(0.0.255) bool]_[* IsSortDescending]()_[@(0.0.255) c +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IsSortDescending`(`)const: [@(0.0.255) bool]_[* IsSortDescending]()_[@(0.0.255) c onst]&] [s2; Returns true if current column`-sort is descending.&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ClearCache`(`):%- [@(0.0.255) void]_[* ClearCache]()&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:ClearCache`(`): [@(0.0.255) void]_[* ClearCache]()&] [s2; Invalidates the whole [/ convert cache]. The convert cache keeps the results of the [* Convert`::Format] method applied to individual array data cells for performance reasons. Whenever you call the @@ -2035,8 +2024,8 @@ and the [* Convert]`'s [* Format] method will be called as soon as the converted value of a table cell is required (usually during the next [* Paint]).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:InvalidateCache`(int`):%- [@(0.0.255) void]_[* InvalidateCache]([@(0.0.255) i +[s4; &] +[s5;:ArrayCtrl`:`:InvalidateCache`(int`): [@(0.0.255) void]_[* InvalidateCache]([@(0.0.255) i nt]_[*@3 i])&] [s2; Invalidates a given row in the [/ convert cache]. For performance reasons, the results of the [* Convert`::Format] method applied @@ -2052,119 +2041,119 @@ output values.&] [s0; [* Cursor and selection management]&] [s3; &] [s0; &] -[s5;:ArrayCtrl`:`:ScrollUp`(`):%- [@(0.0.255) void]_[* ScrollUp]()&] -[s5;:ArrayCtrl`:`:ScrollDown`(`):%- [@(0.0.255) void]_[* ScrollDown]()&] -[s5;:ArrayCtrl`:`:ScrollPageUp`(`):%- [@(0.0.255) void]_[* ScrollPageUp]()&] -[s5;:ArrayCtrl`:`:ScrollPageDown`(`):%- [@(0.0.255) void]_[* ScrollPageDown]()&] -[s5;:ArrayCtrl`:`:ScrollEnd`(`):%- [@(0.0.255) void]_[* ScrollEnd]()&] -[s5;:ArrayCtrl`:`:ScrollBegin`(`):%- [@(0.0.255) void]_[* ScrollBegin]()&] +[s5;:ArrayCtrl`:`:ScrollUp`(`): [@(0.0.255) void]_[* ScrollUp]()&] +[s5;:ArrayCtrl`:`:ScrollDown`(`): [@(0.0.255) void]_[* ScrollDown]()&] +[s5;:ArrayCtrl`:`:ScrollPageUp`(`): [@(0.0.255) void]_[* ScrollPageUp]()&] +[s5;:ArrayCtrl`:`:ScrollPageDown`(`): [@(0.0.255) void]_[* ScrollPageDown]()&] +[s5;:ArrayCtrl`:`:ScrollEnd`(`): [@(0.0.255) void]_[* ScrollEnd]()&] +[s5;:ArrayCtrl`:`:ScrollBegin`(`): [@(0.0.255) void]_[* ScrollBegin]()&] [s2; Scrolls the content of ArrayCtrl.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetSelectCount`(`)const:%- [@(0.0.255) int]_[* GetSelectCount]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetSelectCount`(`)const: [@(0.0.255) int]_[* GetSelectCount]()_[@(0.0.255) c onst]&] [s2; Returns the number of selected row within the table.&] [s7; [*/ Return value]-|number of selected records (in the range [/ `[0 .. GetCount()`]])&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsSelection`(`)const:%- [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) c -onst]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsSelection`(`)const: [@(0.0.255) bool]_[* IsSelection]()_[@(0.0.255) con +st]&] [s2; Checks whether any rows are selected. Equivalent to [* GetSelectCount() > 0].&] [s7; [*/ Return value]-|[* true] `= there is at least one selected row, [* false] `= there is none.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Select`(int`,bool`):%- [@(0.0.255) void]_[* Select]([@(0.0.255) int]_[*@3 i -], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:Select`(int`,bool`): [@(0.0.255) void]_[* Select]([@(0.0.255) int]_[*@3 i], + [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] [s2; Selects / unselects a given row.&] -[s7; [%-*C@3 i]-|zero`-based row index&] -[s7; [%-*C@3 sel]-|[* true] `= add row to the current selection, [* false] +[s7; [*C@3 i]-|zero`-based row index&] +[s7; [*C@3 sel]-|[* true] `= add row to the current selection, [* false] `= remove row from selection&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Select`(int`,int`,bool`):%- [@(0.0.255) void]_[* Select]([@(0.0.255) int]_ -[*@3 i], [@(0.0.255) int]_[*@3 count], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] +[s4; &] +[s5;:ArrayCtrl`:`:Select`(int`,int`,bool`): [@(0.0.255) void]_[* Select]([@(0.0.255) int]_[*@3 i +], [@(0.0.255) int]_[*@3 count], [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) true])&] [s2; Selects / unselects a given row range.&] -[s7; [%-*C@3 i]-|zero`-based index of the first row to select / unselect&] -[s7; [%-*C@3 count]-|number of rows to select / unselect&] -[s7; [%-*C@3 sel]-|[* true] `= select the rows, [* false] `= unselect the +[s7; [*C@3 i]-|zero`-based index of the first row to select / unselect&] +[s7; [*C@3 count]-|number of rows to select / unselect&] +[s7; [*C@3 sel]-|[* true] `= select the rows, [* false] `= unselect the rows&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsSelected`(int`)const:%- [@(0.0.255) bool]_[* IsSelected]([@(0.0.255) in -t]_[*@3 i])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsSelected`(int`)const: [@(0.0.255) bool]_[* IsSelected]([@(0.0.255) int]_ +[*@3 i])_[@(0.0.255) const]&] [s7; Checks whether a given row is selected.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsSel`(int`)const:%- [@(0.0.255) bool]_[* IsSel]([@(0.0.255) int]_[*@3 i])_ -[@(0.0.255) const]&] -[s2; If there is selection in the widget, returns true if [%-*@3 i] -is selected, otherwise returns true if cursor is at [%-*@3 i].&] +[s4; &] +[s5;:ArrayCtrl`:`:IsSel`(int`)const: [@(0.0.255) bool]_[* IsSel]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) c +onst]&] +[s2; If there is selection in the widget, returns true if [*@3 i] is +selected, otherwise returns true if cursor is at [*@3 i].&] [s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:EnableLine`(int`,bool`):%- [@(0.0.255) void]_[* EnableLine]([@(0.0.255) i +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:EnableLine`(int`,bool`): [@(0.0.255) void]_[* EnableLine]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) bool]_[*@3 e])&] [s2; Enables line to be selected by cursor. Lines are enabled by default.&] [s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:DisableLine`(int`):%- [@(0.0.255) void]_[* DisableLine]([@(0.0.255) i +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:DisableLine`(int`): [@(0.0.255) void]_[* DisableLine]([@(0.0.255) i nt]_[*@3 i])&] [s2; Same as EnableLine(false).&] [s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:IsLineEnabled`(int`)const:%- [@(0.0.255) bool]_[* IsLineEnabled]( -[@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:IsLineEnabled`(int`)const: [@(0.0.255) bool]_[* IsLineEnabled]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] [s2; Returns true if line is enabled. Not that in addition to EnableLine method, callback WhenLineEnabled affects the status too.&] [s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:IsLineDisabled`(int`)const:%- [@(0.0.255) bool]_[* IsLineDisable -d]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] -[s2; Same as !IsLineEnabled([%-*@3 i]).&] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:IsLineDisabled`(int`)const: [@(0.0.255) bool]_[* IsLineDisabled]( +[@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s2; Same as !IsLineEnabled([*@3 i]).&] [s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:ShowLine`(int`,bool`):%- [@(0.0.255) void]_[* ShowLine]([@(0.0.255) i +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:ShowLine`(int`,bool`): [@(0.0.255) void]_[* ShowLine]([@(0.0.255) i nt]_[*@3 i], [@(0.0.255) bool]_[*@3 visible])&] [s2; Sets the visibility of line. Hidden lines are omitted from the list.&] [s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:HideLine`(int`):%- [@(0.0.255) void]_[* HideLine]([@(0.0.255) int]_ -[*@3 i])&] -[s2; Same as ShowLine([%-*@3 i], false).&] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:HideLine`(int`): [@(0.0.255) void]_[* HideLine]([@(0.0.255) int]_[*@3 i +])&] +[s2; Same as ShowLine([*@3 i], false).&] [s3; &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:IsLineVisible`(int`)const:%- [@(0.0.255) bool]_[* IsLineVisible]( -[@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:IsLineVisible`(int`)const: [@(0.0.255) bool]_[* IsLineVisible]([@(0.0.255) i +nt]_[*@3 i])_[@(0.0.255) const]&] [s2; Returns true if line is visible. Not that in addition to EnableLine method, callback WhenLineVisible affects the visibility too.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ClearSelection`(`):%- [@(0.0.255) void]_[* ClearSelection]()&] +[s4; &] +[s5;:ArrayCtrl`:`:ClearSelection`(`): [@(0.0.255) void]_[* ClearSelection]()&] [s2; Clears the current selection (unselects all selected rows).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsCursor`(`)const:%- [@(0.0.255) bool]_[* IsCursor]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsCursor`(`)const: [@(0.0.255) bool]_[* IsCursor]()_[@(0.0.255) const]&] [s2; Checks whether the cursor is within the table. This is equivalent to [* GetCursor()_>`=_0].&] [s7; [*/ Return value]-|&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetCursor`(int`):%- [@(0.0.255) bool]_[* SetCursor]([@(0.0.255) int]_[*@3 i -])&] +[s4; &] +[s5;:ArrayCtrl`:`:SetCursor`(int`): [@(0.0.255) bool]_[* SetCursor]([@(0.0.255) int]_[*@3 i]) +&] [s2; Sets the current cursor row. When an array row is open for editing, the function first commits the edited row, then moved the cursor to the new row. When the edited row cannot be commited, the function returns [* false] and doesn`'t change the cursor location.&] -[s7; [%-*C@3 i]-|zero`-based row index&] +[s7; [*C@3 i]-|zero`-based row index&] [s7; [*/ Return value]-|[* true] `= cursor has been moved, [* false ]when not (when committing the previously edited row failed)&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:KillCursor`(`):%- [@(0.0.255) bool]_[* KillCursor]()&] +[s4; &] +[s5;:ArrayCtrl`:`:KillCursor`(`): [@(0.0.255) bool]_[* KillCursor]()&] [s2; Moves the cursor away from the array. When an array row is open for editing, the function first commits the edited row, then moved the cursor away from the array. When the edited row cannot @@ -2174,30 +2163,30 @@ the cursor location.&] array, [* false] when not (when committing the previously edited row failed)&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:CancelCursor`(`):%- [@(0.0.255) void]_[* CancelCursor]()&] +[s4; &] +[s5;:ArrayCtrl`:`:CancelCursor`(`): [@(0.0.255) void]_[* CancelCursor]()&] [s2; Cancels editing of the row being currently edited. All changes made in the individual column editors are rejected.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetCursor`(`)const:%- [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] [s2; Returns the current cursor row, `-1 when none.&] [s7; [*/ Return value]-|zero`-based cursor row index, `-1 `= cursor is not in the array&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GoBegin`(`):%- [@(0.0.255) void]_[* GoBegin]()&] +[s4; &] +[s5;:ArrayCtrl`:`:GoBegin`(`): [@(0.0.255) void]_[* GoBegin]()&] [s2; Moves the cursor to the first row in the array (equivalent to [* SetCursor(0)]).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GoEnd`(`):%- [@(0.0.255) void]_[* GoEnd]()&] +[s4; &] +[s5;:ArrayCtrl`:`:GoEnd`(`): [@(0.0.255) void]_[* GoEnd]()&] [s2; Moves the cursor to the last array row (equivalent to [* SetCursor(GetCount() `- 1)]).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetCursorSc`(`)const:%- [@(0.0.255) int]_[* GetCursorSc]()_[@(0.0.255) co -nst]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetCursorSc`(`)const: [@(0.0.255) int]_[* GetCursorSc]()_[@(0.0.255) cons +t]&] [s2; Returns the visual vertical position of the cursor row relative to the current view. This method, in combination with [* ScCursor], can be used to reposition the cursor row while maintaining the @@ -2205,103 +2194,98 @@ same visual position of the row within the array view.&] [s7; [*/ Return value]-|an integer describing the vertical position of the cursor row relative to the array view&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ScCursor`(int`):%- [@(0.0.255) void]_[* ScCursor]([@(0.0.255) int]_[*@3 a]) -&] +[s4; &] +[s5;:ArrayCtrl`:`:ScCursor`(int`): [@(0.0.255) void]_[* ScCursor]([@(0.0.255) int]_[*@3 a])&] [s2; Modifies the scrollbar position so that the current cursor row appears at a given vertical position relative to the array view. By doing the following sequence of operations: [* GetCursorSc], then reposition the cursor row, then [* ScCursor], you can achieve cursor relocation while maintaining its visual location within the array view.&] -[s7; [%-*C@3 a]-|an integer describing the vertical position of the -cursor row (typically a number returned by a previous call to -[* GetCursorSc])&] +[s7; [*C@3 a]-|an integer describing the vertical position of the cursor +row (typically a number returned by a previous call to [* GetCursorSc])&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:CenterCursor`(`):%- [@(0.0.255) void]_[* CenterCursor]()&] +[s4; &] +[s5;:ArrayCtrl`:`:CenterCursor`(`): [@(0.0.255) void]_[* CenterCursor]()&] [s2; Modifies the scrollbar position so that the current cursor row appears in the middle of the array view.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ScrollInto`(int`):%- [@(0.0.255) void]_[* ScrollInto]([@(0.0.255) int]_[*@3 l +[s4; &] +[s5;:ArrayCtrl`:`:ScrollInto`(int`): [@(0.0.255) void]_[* ScrollInto]([@(0.0.255) int]_[*@3 l ine])&] [s2; Moves the scrollbar by the least possible amount in order to make the given array row visible. When the given array row is already visible, the function does nothing.&] -[s7; [%-*C@3 line]-|zero`-based row index of the array row to make visible&] +[s7; [*C@3 line]-|zero`-based row index of the array row to make visible&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ScrollIntoCursor`(`):%- [@(0.0.255) void]_[* ScrollIntoCursor]()&] +[s4; &] +[s5;:ArrayCtrl`:`:ScrollIntoCursor`(`): [@(0.0.255) void]_[* ScrollIntoCursor]()&] [s2; Moves the scrollbar by the least possible amount in order to make the cursor row visible. This is equivalent to [* ScrollInto(GetCursor())].&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetCursor`(`)const:%- [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:GetCursor`(`)const: [@(0.0.255) int]_[* GetCursor]()_[@(0.0.255) const]&] [s2; Returns the current vertical scrollbar position.&] [s7; [*/ Return value]-|Pixel position of the vertical scrollbar. Position 0 is at the very top (the top row of the array is fully visible).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:ScrollTo`(int`):%- [@(0.0.255) void]_[* ScrollTo]([@(0.0.255) int]_[*@3 sc]) -&] +[s4; &] +[s5;:ArrayCtrl`:`:ScrollTo`(int`): [@(0.0.255) void]_[* ScrollTo]([@(0.0.255) int]_[*@3 sc])&] [s2; Moves the vertical array scrollbar to a given position.&] -[s7; [%-*C@3 sc]-|Pixel position of the scrollbar. The visible portion +[s7; [*C@3 sc]-|Pixel position of the scrollbar. The visible portion of the array can be obtained conceptually by taking the stack of array rows with its top aligned at the top of the view and moving it [/ sc] pixels upwards.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Find`(const Value`&`,int`,int`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:Find`(const Value`&`,int`,int`)const: [@(0.0.255) int]_[* Find]([@(0.0.255) c onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) int]_[*@3 ii]_`=_[@3 0], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] -[s2; [%-*C@3 v]-|value to look for in the given source index&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the source index to -search&] -[s7; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s2; [*C@3 v]-|value to look for in the given source index&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the source index to search&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] [s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when none&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Find`(const Value`&`,const Id`&`,int`)const:%- [@(0.0.255) int]_[* Find -]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const +[s4; &] +[s5;:ArrayCtrl`:`:Find`(const Value`&`,const Id`&`,int`)const: [@(0.0.255) int]_[* Find]( +[@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])_[@(0.0.255) const]&] [s2; Locates the row (using linear search beginning at the row [/ from]) in which the source index value identified by [/ id] equals [/ val]. If such a row is found, the function returns its zero`-based index. When not matched, the function returns `-1.&] -[s7; [%-*C@3 v]-|value to look for in the given source index&] -[s7; [%-*C@3 id]-|source index identifier&] -[s7; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s7; [*C@3 v]-|value to look for in the given source index&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] [s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when none&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,int`,int`):%- [@(0.0.255) bool]_[* FindSe -tCursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], +[s4; &] +[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,int`,int`): [@(0.0.255) bool]_[* FindSetC +ursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) int]_[*@3 ii]_`=_[@3 0], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] [s2; Locates the row (using linear search beginning at the row [/ from]) in which the source index value identified by its ordinal number [/ ii] equals [/ val]. If such a row is found, the [* SetCursor] is called automatically to move the cursor to such a row.&] -[s7; [%-*C@3 val]-|value to look for in the given source index&] -[s7; [%-*C@3 ii]-|zero`-based ordinal number of the source index to -search&] -[s7; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s7; [*C@3 val]-|value to look for in the given source index&] +[s7; [*C@3 ii]-|zero`-based ordinal number of the source index to search&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] [s7; [*/ Return value]-|zero`-based number of the matched row, `-1 when none&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,const Id`&`,int`):%- [@(0.0.255) bool]_ -[* FindSetCursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], +[s4; &] +[s5;:ArrayCtrl`:`:FindSetCursor`(const Value`&`,const Id`&`,int`): [@(0.0.255) bool]_[* F +indSetCursor]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const ][_^Id^ Id]`&_[*@3 id], [@(0.0.255) int]_[*@3 from]_`=_[@3 0])&] [s2; Locates the row (using linear search beginning at the row [/ from]) in which the source index value identified by [/ id] equals [/ val]. If such a row is found, the [* SetCursor] is called automatically to move the cursor to such a row.&] -[s7; [%-*C@3 val]-|value to look for in the given source index&] -[s7; [%-*C@3 id]-|source index identifier&] -[s7; [%-*C@3 from]-|zero`-based row index to start the search from&] +[s7; [*C@3 val]-|value to look for in the given source index&] +[s7; [*C@3 id]-|source index identifier&] +[s7; [*C@3 from]-|zero`-based row index to start the search from&] [s7; [*/ Return value]-|[* true] `= the desired row was found (and the cursor set), [* false] when not&] [s3; &] @@ -2309,8 +2293,8 @@ cursor set), [* false] when not&] [s0; [* User interface elements]&] [s3; &] [s0; &] -[s5;:ArrayCtrl`:`:StdBar`(Bar`&`):%- [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_ -[*@3 menu])&] +[s5;:ArrayCtrl`:`:StdBar`(Bar`&`): [@(0.0.255) void]_[* StdBar]([_^Bar^ Bar][@(0.0.255) `&]_[*@3 m +enu])&] [s2; The default array local menu. The default local menu consists of the standard editing actions (inserting / appending / duplicating a row, editing a row, removing a row, moving a row, select all @@ -2318,64 +2302,64 @@ rows) filtered by the array properties enabling / disabling the various GUI elements (item insertion / deletion etc.). &] [s7; [*C@3 menu]-|the [* Bar] object representing the menu being generated&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsModified`(int`)const:%- [@(0.0.255) bool]_[* IsModified]([@(0.0.255) in -t]_[*@3 ii])_[@(0.0.255) const]&] +[s4; &] +[s5;:ArrayCtrl`:`:IsModified`(int`)const: [@(0.0.255) bool]_[* IsModified]([@(0.0.255) int]_ +[*@3 ii])_[@(0.0.255) const]&] [s2; Checks a source index in the currently edited row for changes.&] -[s7; [%-*C@3 ii]-|zero`-based row index&] +[s7; [*C@3 ii]-|zero`-based row index&] [s7; [*/ Return value]-|[* true] `= the index has been modified, [* false] `= the index is in its original state&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IsModified`(const Id`&`)const:%- [@(0.0.255) bool]_[* IsModified]([@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:IsModified`(const Id`&`)const: [@(0.0.255) bool]_[* IsModified]([@(0.0.255) c onst ][_^Id^ Id]`&_[*@3 id])_[@(0.0.255) const]&] [s2; Checks a source index in the currently edited array row for changes.&] -[s7; [%-*C@3 id]-|source index identifier&] +[s7; [*C@3 id]-|source index identifier&] [s7; [*/ Return value]-|[* true] `= the source index has been modified, [* false ]when not&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:StartEdit`(int`):%- [@(0.0.255) bool]_[* StartEdit]([@(0.0.255) int]_[*@3 d -]_`=_[@3 0])&] +[s4; &] +[s5;:ArrayCtrl`:`:StartEdit`(int`): [@(0.0.255) bool]_[* StartEdit]([@(0.0.255) int]_[*@3 d]_ +`=_[@3 0])&] [s2; Opens the current cursor row for editing and sets focus to the [/ d]`-th column.&] -[s7; [%-*C@3 d]-|zero`-based column index&] +[s7; [*C@3 d]-|zero`-based column index&] [s7; [*/ Return value]-|[* true] `= editing successfully initiated, [* false] when not (when the array is in [* ReadOnly] mode or it has no editable columns)&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:GetEditColumn`(`)const:%- [@(0.0.255) int]_[* GetEditColumn]()_[@(0.0.255) c +[s4; &] +[s5;:ArrayCtrl`:`:GetEditColumn`(`)const: [@(0.0.255) int]_[* GetEditColumn]()_[@(0.0.255) c onst]&] [s2; Returns the column being currently edited.&] [s7; [*/ Return value]-|zero`-based index of the column being edited, `-1 `= none&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoEdit`(`):%- [@(0.0.255) void]_[* DoEdit]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoEdit`(`): [@(0.0.255) void]_[* DoEdit]()&] [s2; Opens the current cursor row for editing.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoInsert`(int`):%- [@(0.0.255) void]_[* DoInsert]([@(0.0.255) int]_[*@3 cur -sor])&] +[s4; &] +[s5;:ArrayCtrl`:`:DoInsert`(int`): [@(0.0.255) void]_[* DoInsert]([@(0.0.255) int]_[*@3 curso +r])&] [s2; Begins the GUI insertion of a new row at a given location.&] -[s7; [%-*C@3 cursor]-|zero`-based location of the new row&] +[s7; [*C@3 cursor]-|zero`-based location of the new row&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoInsertBefore`(`):%- [@(0.0.255) void]_[* DoInsertBefore]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoInsertBefore`(`): [@(0.0.255) void]_[* DoInsertBefore]()&] [s2; Begins the GUI insertion of a new row above the current row.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoInsertAfter`(`):%- [@(0.0.255) void]_[* DoInsertAfter]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoInsertAfter`(`): [@(0.0.255) void]_[* DoInsertAfter]()&] [s2; Begins the GUI insertion of a new row below the current row.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoAppend`(`):%- [@(0.0.255) void]_[* DoAppend]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoAppend`(`): [@(0.0.255) void]_[* DoAppend]()&] [s2; Begins the GUI insertion of a new row at the end of the array.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoRemove`(`):%- [@(0.0.255) virtual] [@(0.0.255) bool]_[* DoRemove]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoRemove`(`): [@(0.0.255) virtual] [@(0.0.255) bool]_[* DoRemove]()&] [s2; Performs the GUI`-based removal of the current cursor row. When the [* AskRemove] property is set to [* true] and the user cancels the confirmation dialog, the function returns [* false] and the @@ -2383,16 +2367,16 @@ current row is not removed.&] [s7; [*/ Return value]-|[* true] `= row has been removed successfully, [* false] `= user has canceled the row removal&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoDuplicate`(`):%- [@(0.0.255) void]_[* DoDuplicate]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoDuplicate`(`): [@(0.0.255) void]_[* DoDuplicate]()&] [s2; Duplicates the current row and opens it for editing.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:DoSelectAll`(`):%- [@(0.0.255) void]_[* DoSelectAll]()&] +[s4; &] +[s5;:ArrayCtrl`:`:DoSelectAll`(`): [@(0.0.255) void]_[* DoSelectAll]()&] [s2; Marks all array row as selected.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AcceptEnter`(`):%- [@(0.0.255) bool]_[* AcceptEnter]()&] +[s4; &] +[s5;:ArrayCtrl`:`:AcceptEnter`(`): [@(0.0.255) bool]_[* AcceptEnter]()&] [s2; Performs all necessary GUI actions equivalent to when the user presses the [* Enter] key. The row being currently edited is committed and, in the case it was a newly appended line and the [* NoInsertAppend] @@ -2405,8 +2389,8 @@ committed, [* false] when not&] [s0; &] [s0; [* Content export]&] [s0;* &] -[s3;%- &] -[s5;:ArrayCtrl`:`:AsText`(String`(`*`)`(const Value`&`)`,bool`,const char`*`,const char`*`,const char`*`,const char`*`)const:%- [_^String^ S +[s3; &] +[s5;:ArrayCtrl`:`:AsText`(String`(`*`)`(const Value`&`)`,bool`,const char`*`,const char`*`,const char`*`,const char`*`)const: [_^String^ S tring]_[* AsText]([_^String^ String]_(`*[*@3 format])([@(0.0.255) const]_Value[@(0.0.255) `& ]), [@(0.0.255) bool]_[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) const]_[@(0.0.255) char]_ `*[*@3 tab]_`=_`"`\t`", [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 row]_`=_`"`\r`\n`", @@ -2415,77 +2399,82 @@ har]_`*[*@3 hdrrow]_`=_`"`\r`\n`")_[@(0.0.255) const]&] [s2; Generic function for conversion of ArrayCtrl content to text. The content visible on screen is exported (means, it exports columns defined using AddColumn, not indicies). Cells are converted -to output format using [%-*@3 format] function. If [%-*@3 sel] is -true, only rows with IsSel true are exported. [%-*@3 tab] represents -a separator text between cells in a row, [%-*@3 row] separator -of rows. [%-*@3 hdrtab] is separator of header cells (those are -texts of ArrayCtrl header) `- if NULL, no header is exported. -[%-*@3 hdrrow].is separator of header and data rows.&] +to output format using [*@3 format] function. If [*@3 sel] is true, +only rows with IsSel true are exported. [*@3 tab] represents a +separator text between cells in a row, [*@3 row] separator of rows. +[*@3 hdrtab] is separator of header cells (those are texts of ArrayCtrl +header) `- if NULL, no header is exported. [*@3 hdrrow].is separator +of header and data rows.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:SetClipboard`(bool`,bool`)const:%- [@(0.0.255) void]_[* SetClipboard]([@(0.0.255) b +[s4; &] +[s5;:ArrayCtrl`:`:SetClipboard`(bool`,bool`)const: [@(0.0.255) void]_[* SetClipboard]([@(0.0.255) b ool]_[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])_[@(0.0.255) c onst]&] [s2; Puts ArrayCtrl content to clipboard in text format, `"`\t`" -and `"`\r`\n`" as separators. If [%-*@3 sel] is true, only rows -with IsSel true are exported, [%-*@3 hdr] controls whether header -is exported.&] +and `"`\r`\n`" as separators. If [*@3 sel] is true, only rows with +IsSel true are exported, [*@3 hdr] controls whether header is exported.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AsQtf`(bool`,bool`):%- [_^String^ String]_[* AsQtf]([@(0.0.255) bool]_[*@3 s -el]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])&] -[s2; Returns ArrayCtrl content in QTF format. If [%-*@3 sel] is true, -only rows with IsSel true are exported, [%-*@3 hdr] controls whether +[s4; &] +[s5;:ArrayCtrl`:`:AsQtf`(bool`,bool`): [_^String^ String]_[* AsQtf]([@(0.0.255) bool]_[*@3 se +l]_`=_[@(0.0.255) false], [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])&] +[s2; Returns ArrayCtrl content in QTF format. If [*@3 sel] is true, +only rows with IsSel true are exported, [*@3 hdr] controls whether header is exported.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:AsCsv`(bool`,int`,bool`):%- [_^String^ String]_[* AsCsv]([@(0.0.255) bool -]_[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) int]_[*@3 sep]_`=_`';`', +[s4; &] +[s5;:ArrayCtrl`:`:AsCsv`(bool`,int`,bool`): [_^String^ String]_[* AsCsv]([@(0.0.255) bool]_ +[*@3 sel]_`=_[@(0.0.255) false], [@(0.0.255) int]_[*@3 sep]_`=_`';`', [@(0.0.255) bool]_[*@3 hdr]_`=_[@(0.0.255) true])&] -[s2; Returns ArrayCtrl content in csv format, using [%-*@3 sep] as -separator. If [%-*@3 sel] is true, only rows with IsSel true are -exported, [%-*@3 hdr] controls whether header is exported.&] +[s2; Returns ArrayCtrl content in csv format, using [*@3 sep] as separator. +If [*@3 sel] is true, only rows with IsSel true are exported, [*@3 hdr] +controls whether header is exported.&] [s0; &] [s0; &] [s0; [* Notification callbacks]&] [s3; &] -[s0; &] -[s5;:ArrayCtrl`:`:WhenLeftClick:%- [_^Callback^ Callback]_[* WhenLeftClick]&] +[s3; &] +[s5;:ArrayCtrl`:`:WhenSel: [_^Callback^ Callback]_[* WhenSel]&] +[s2; Called whenever cursor or selection changes. This probably the +most common ArrayCtrl callback. We recommend to start with this +one first and use others only if necessary.&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenLeftClick: [_^Callback^ Callback]_[* WhenLeftClick]&] [s2; This callback is called whenever the user clicks an array cell.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenLeftDouble:%- [_^Callback^ Callback]_[* WhenLeftDouble]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenLeftDouble: [_^Callback^ Callback]_[* WhenLeftDouble]&] [s2; This callback is called whenever the user doubleclicks an array cell.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenMouseMove:%- [_^Callback1^ Callback1]<[_^Point^ Point]>_[* WhenMouseM -ove]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenMouseMove: [_^Callback1^ Callback1]<[_^Point^ Point]>_[* WhenMouseMov +e]&] [s2; Called when mouse moves over the ArrayCtrl or moves out of ArrayCtrl. The Point`::y is the line number, Point`::x column index. If mouse moves out of ArrayCtrl, parameter is Null.&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenEnterKey:%- [_^Callback^ Callback]_[* WhenEnterKey]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenEnterKey: [_^Callback^ Callback]_[* WhenEnterKey]&] [s2; Called when user presses Enter key while focus is in ArrayCtrl, some line of ArrayCtrl has cursor and Enter key is not `'eaten`' by another action like accepting the input. When this Callback is not empty, Enter key is never passed to parent.&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenBar:%- [_^Callback1^ Callback1]_[* WhenBar]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenBar: [_^Callback1^ Callback1]_[* WhenBar]&] [s2; This callback is called whenever the local array menu has to be regenerated. By setting this callback to a different function / method you can supply a custom local menu for the array. The [* Bar`&] argument is a reference to the menu to be generated.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenEnterRow:%- [_^Callback^ Callback]_[* WhenEnterRow]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenEnterRow: [_^Callback^ Callback]_[* WhenEnterRow]&] [s2; This callback is called every time the cursor location changes to a different row of the array.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenAcceptRow:%- [_^Gate^ Gate]_[* WhenAcceptRow]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenAcceptRow: [_^Gate^ Gate]_[* WhenAcceptRow]&] [s2; This gate is called every time an array row (open for editing) needs to be validated. When the gate returns [* false], the validation process is assumed to have failed, when it returns [* true], it @@ -2493,14 +2482,14 @@ is assumed to have succeeded. You can use this callback to add your own validation algorithms relevant to the array context within your application.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenUpdateRow:%- [_^Callback^ Callback]_[* WhenUpdateRow]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenUpdateRow: [_^Callback^ Callback]_[* WhenUpdateRow]&] [s2; This callback is called whenever an array row has been updated. You can use this callback e.g. to project the changes to a database or generally to an external data source.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenKillCursor:%- [_^Callback^ Callback]_[* WhenKillCursor]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenKillCursor: [_^Callback^ Callback]_[* WhenKillCursor]&] [s2; This callback is called whenever the cursor is moved away from the table.&] [s2; [* Note:] internally, when moving the cursor (e.g. by calling the @@ -2509,125 +2498,121 @@ is removed from the table using [* KillCursor] and placed to the new location afterwards. Therefore every time the cursor is moved, the [* WhenKillCursor] callback is called as a by`-product.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenCursor:%- [_^Callback^ Callback]_[* WhenCursor]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenCursor: [_^Callback^ Callback]_[* WhenCursor]&] [s2; This callback is called every time the cursor row number changes (either when the cursor is removed from the table, or when it has been moved to a different row).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenArrayAction:%- [_^Callback^ Callback]_[* WhenArrayAction]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenArrayAction: [_^Callback^ Callback]_[* WhenArrayAction]&] [s2; This callback is called every time the source array data changes (typically after accepting changes to a certain row or after deleting a row).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenStartEdit:%- [_^Callback^ Callback]_[* WhenStartEdit]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenStartEdit: [_^Callback^ Callback]_[* WhenStartEdit]&] [s2; This callback is called whenever the array row editing process is initiated. It can be used e.g. to set up some additional properties of the column editor objects, to fill in drop`-down lists pertaining to certain column editors etc.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenAcceptEdit:%- [_^Callback^ Callback]_[* WhenAcceptEdit]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenAcceptEdit: [_^Callback^ Callback]_[* WhenAcceptEdit]&] [s2; This callback is called whenever the currently edited line has been committed.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenSelection:%- [_^Callback^ Callback]_[* WhenSelection]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenSelection: [_^Callback^ Callback]_[* WhenSelection]&] [s2; This callback is called whenever the current array selection changes. This includes changes to the cursor location as the cursor is automatically considered part of the selection.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenCtrlsAction:%- [_^Callback^ Callback]_[* WhenCtrlsAction]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenCtrlsAction: [_^Callback^ Callback]_[* WhenCtrlsAction]&] [s2; This callback is called whenever some of the editor controls constructed automatically via the column editing [/ factory] calls its [* WhenAction] method. It can be used to watch out for changes in the cell editors and react to specific situations accordingly.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenSel:%- [_^Callback^ Callback]_[* WhenSel]&] -[s2; Called whenever cursor or selection changes.&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenScroll:%- [_^Callback^ Callback]_[* WhenScroll]&] +[s4; &] +[s5;:ArrayCtrl`:`:WhenScroll: [_^Callback^ Callback]_[* WhenScroll]&] [s2; Called when scrolling of ArrayCtrl content happened.&] -[s3;%- &] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenHeaderLayout:%- [_^Callback^ Callback]_[* WhenHeaderLayout]&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:WhenHeaderLayout: [_^Callback^ Callback]_[* WhenHeaderLayout]&] [s2; Called when header changes.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:WhenLineEnabled:%- [_^Callback2^ Callback2]<[@(0.0.255) int], +[s4; &] +[s5;:ArrayCtrl`:`:WhenLineEnabled: [_^Callback2^ Callback2]<[@(0.0.255) int], [@(0.0.255) bool`&]>_[* WhenLineEnabled]&] [s2; Provides additional means to enable/disable lines in addition to `"EnableLine`" interface. This is especially useful when using SetVirtualCount. First parameter is the line number, second is reference to enable status.&] -[s3;%- &] -[s4;%- &] -[s5;:Upp`:`:ArrayCtrl`:`:WhenLineVisible:%- [_^Upp`:`:Callback2^ Callback2]<[@(0.0.255) i -nt], [@(0.0.255) bool`&]>_[* WhenLineVisible]&] +[s3; &] +[s4; &] +[s5;:Upp`:`:ArrayCtrl`:`:WhenLineVisible: [_^Upp`:`:Callback2^ Callback2]<[@(0.0.255) int +], [@(0.0.255) bool`&]>_[* WhenLineVisible]&] [s2; Provides additional means to show/hide lines in addition to `"ShowLine`" interface. This is especially useful when using SetVirtualCount. First parameter is the line number, second is reference to visibility status.&] [s3; &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 ArrayCtrl`::IdInfo]]}}&] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::IdInfo]]}}&] [s3; &] -[s1;:ArrayCtrl`:`:IdInfo`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 IdInfo]&] +[s1;:ArrayCtrl`:`:IdInfo`:`:struct: [@(0.0.255)3 struct][3 _][*3 IdInfo]&] [s9; The [* IdInfo] structure contains properties of all source array indices. It can be used to set additional properties pertaining to source array data.&] [s3; &] -[s0;%- &] +[s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(const Value`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdI -nfo][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v -])&] +[s3; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(const Value`&`): [_^ArrayCtrl`:`:IdInfo^ IdInf +o][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v]) +&] [s2; The method sets up the default source index value for newly created rows. This is used only when the row insertion is GUI`-based (like using the [* DoInsert] method for instance). When a row is added to the array programmatically (e.g. using [* Add] or [* Insert]), these default values are not used.&] -[s7; [%-*C@3 v]-|default source index value&] +[s7; [*C@3 v]-|default source index value&] [s7; [*/ Return value]-|[* `*this]&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(ValueGen`&`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo -][@(0.0.255) `&]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] +[s3; &] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:InsertValue`(ValueGen`&`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] [s2; The method sets up a factory for generating default index values for newly created rows. This is used only when the row insertion is GUI`-based (like using the [* DoInsert] method for instance). When a row is added to the array programmatically (e.g. using [* Add] or [* Insert]), the [* InserValue] property is not consulted.&] -[s7; [%-*C@3 g]-|a reference to the value generation factory. The ownership +[s7; [*C@3 g]-|a reference to the value generation factory. The ownership to the factory is not passed by this call; the caller must insure the existence of the factory object throughout the array duration.&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(int`(`*`)`(int`)`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo -][@(0.0.255) `&]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(int`(`*`)`(int`)`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `& +]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] [s2; This method sets up the source index accelerator function. The accelerator is used to quickly locate rows using the keyboard key presses.&] -[s7; [%-*C@3 filter]-|a [* CharFilter ]function for keypress filtering&] +[s7; [*C@3 filter]-|a [* CharFilter ]function for keypress filtering&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(`):%- [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* A -ccel]()&] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:Accel`(`): [_^ArrayCtrl`:`:IdInfo^ IdInfo][@(0.0.255) `&]_[* Ac +cel]()&] [s2; This method sets up keyboard acceleration for the given source index. The `'trivial`' [/ CharConvert] is used for character translation.&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:IdInfo`:`:GetInsertValue`(`):%- [_^Value^ Value]_[* GetInsertValue]()&] +[s4; &] +[s5;:ArrayCtrl`:`:IdInfo`:`:GetInsertValue`(`): [_^Value^ Value]_[* GetInsertValue]()&] [s2; Uses the [* InsertValue] property to generate a new source index value (either using a fixed default value or the value creation factory).&] @@ -2636,57 +2621,57 @@ for the newly inserted row.&] [s3; &] [s0; &] [s0; &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 ArrayCtrl`::Column]]}}&] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::Column]]}}&] [s3; &] -[s1;:ArrayCtrl`:`:Column`:`:class:%- [@(0.0.255)3 class][3 _][*3 Column][3 _:_][@(0.0.255)3 priv -ate][3 _][*@3;3 FormatConvert]&] +[s1;:ArrayCtrl`:`:Column`:`:class: [@(0.0.255)3 class][3 _][*3 Column][3 _:_][@(0.0.255)3 privat +e][3 _][*@3;3 FormatConvert]&] [s2; &] -[s0;%- [%%/ Derived from][%% ]FormatConvert&] +[s0; [/ Derived from] FormatConvert&] [s0;3 &] -[s0;%- The [* ArrayCtrl`::Column] structure describes an output array +[s0; The [* ArrayCtrl`::Column] structure describes an output array column. Its methods can be used to set or query its properties, some of which are also settable via ArrayCtrl methods.&] -[s3;%- &] -[s0;%- &] +[s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Add`(int`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ -[* Add]([@(0.0.255) int]_[*@3 `_pos])&] +[s3; &] +[s5;:ArrayCtrl`:`:Column`:`:Add`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* A +dd]([@(0.0.255) int]_[*@3 `_pos])&] [s2; Adds another source data index to the list of source indices used as the data for the given output column.&] -[s7; [%-*C@3 `_pos]-|zero`-based ordinal number of the source index&] +[s7; [*C@3 `_pos]-|zero`-based ordinal number of the source index&] [s7; [*/ Return value]-|[* `*this].&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Add`(const Id`&`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Add`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& ]_[* Add](const [_^Id^ Id]`&_[*@3 id])&] [s2; Adds another source data index to the list of source indices used as the data for the given output column.&] -[s7; [%-*C@3 id]-|the [* Id] identifier of the source index&] +[s7; [*C@3 id]-|the [* Id] identifier of the source index&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(const Id`&`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(const Id`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& ]_[* AddIndex]([@(0.0.255) const]_[_^Id^ Id][@(0.0.255) `&]_[*@3 id])&] [s2; Adds another source index to the array and adds it to the list of source indices bound to this output column. The newly created index is assigned the given identifier.&] -[s7; [%-*C@3 id]-|the identifier for the newly created index&] +[s7; [*C@3 id]-|the identifier for the newly created index&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* AddIndex]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:AddIndex`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ +[* AddIndex]()&] [s2; Adds another source index to the array and adds it to the list of source indices bound to this output column.&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:SetConvert`(const Convert`&`):%- [_^ArrayCtrl`:`:Column^ Co -lumn][@(0.0.255) `&]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_ -[*@3 c])&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SetConvert`(const Convert`&`): [_^ArrayCtrl`:`:Column^ Colu +mn][@(0.0.255) `&]_[* SetConvert]([@(0.0.255) const]_[_^Convert^ Convert][@(0.0.255) `&]_[*@3 c +])&] [s2; Sets the [* Convert] object for the given column. This object is used to convert the source values (obtained from the source data matrix) to the values displayable and/or editable by the @@ -2700,25 +2685,25 @@ by new calls to the [* SetConvert] method). In any case, most Convert`-based object do not support copying at all; moreover, as the Convert`-based objects are mostly derived from the basic class, their copying is normally prone to slicing.&] -[s7; [%-*C@3 c]-|a constant reference to the Convert object to use for +[s7; [*C@3 c]-|a constant reference to the Convert object to use for the given column&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:SetFormat`(const char`*`):%- [@(0.0.255) virtual] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SetFormat`(const char`*`): [@(0.0.255) virtual] [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* SetFormat]([@(0.0.255) const]_[@(0.0.255) c har]_`*[*@3 fmt])&] [s2; Sets the format string to use for the default value formatting. When no Convert object is set for the column, the source value is normally passed to the [* NFormat] function where the [/ fmt] argument defines the desired formatting pattern.&] -[s7; [%-*C@3 fmt]-|a [* NFormat]`-compatible formatting pattern&] +[s7; [*C@3 fmt]-|a [* NFormat]`-compatible formatting pattern&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:SetDisplay`(const Display`&`):%- [_^ArrayCtrl`:`:Column^ Co -lumn][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_ -[*@3 d])&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SetDisplay`(const Display`&`): [_^ArrayCtrl`:`:Column^ Colu +mn][@(0.0.255) `&]_[* SetDisplay]([@(0.0.255) const]_[_^Display^ Display][@(0.0.255) `&]_[*@3 d +])&] [s2; Sets the default Display to use for this column. The column Display can be overridden for certain array cells by calls to the [*^topic`:`/`/CtrlLib`/src`/ArrayCtrl`$en`-us`#`:`:ArrayCtrl`:`:SetDisplay`(int`,int`,const Display`&`)^ A @@ -2727,19 +2712,19 @@ rrayCtrl`::SetDisplay] method.&] by this function. The array merely stores a pointer to the Display; it is up to the host application to keep the Display object alive as long as necessary.&] -[s7; [%-*C@3 d]-|a reference to the Display object&] +[s7; [*C@3 d]-|a reference to the Display object&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Edit`(Ctrl`&`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Edit`(Ctrl`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& ]_[* Edit]([_^Ctrl^ Ctrl][@(0.0.255) `&]_[*@3 e])&] [s2; Sets up the Ctrl`-based object to use for inline array column editing.&] -[s7; [%-*C@3 e]-|a reference to the editor control object&] +[s7; [*C@3 e]-|a reference to the editor control object&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(Callback1``&`>`):%- [_^ArrayCtrl`:`:Column^ C +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(Callback1``&`>`): [_^ArrayCtrl`:`:Column^ C olumn][@(0.0.255) `&]_[* Ctrls]([_^Callback1^ Callback1]<[_^One^ One]<[_^Ctrl^ Ctrl]>`&>_[*@3 f actory])&] [s2; The methods sets up a factory which the ArrayCtrl uses as necessary @@ -2750,11 +2735,11 @@ object and set it to its argument. If the position of Ctrl is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default value, Ctrl is resized to fit the ArrayCtrl cell accurately, otherwise the position represents the position within the cell.&] -[s7; [%-*C@3 factory]-|callback used for new control creation&] +[s7; [*C@3 factory]-|callback used for new control creation&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(void`(`*`)`(One``&`)`):%- [_^ArrayCtrl`:`:Column^ C +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(void`(`*`)`(One``&`)`): [_^ArrayCtrl`:`:Column^ C olumn][@(0.0.255) `&]_[* Ctrls]([@(0.0.255) void]_(`*[*@3 factory])(One`&))&] [s2; This method sets up a factory which the ArrayCtrl uses as necessary to create new Ctrl`'s for editing a given column. The argument, @@ -2767,12 +2752,12 @@ within the cell. If the position of Ctrl is equivalent to `'SetRect(0, 0, 0, 0)`', which is the default value, Ctrl is resized to fit the ArrayCtrl cell accurately, otherwise the position represents the position within the cell.&] -[s7; [%-*C@3 factory]-|a global function used for editor control creation&] +[s7; [*C@3 factory]-|a global function used for editor control creation&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(`):%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]> -_[_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Ctrls]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Ctrls`(`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T]>_[_^ArrayCtrl`:`:Column^ C +olumn][@(0.0.255) `&]_[* Ctrls]()&] [s2; This member template sets up a default factory for creating editor controls of a given type. Every time the ArrayCtrl needs to create a new editor control, an object of the type [* T] is @@ -2783,41 +2768,40 @@ otherwise the position represents the position within the cell.&] [s7; [*C@4 T]-|the desired object editor type &] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(const Value`&`):%- [_^ArrayCtrl`:`:Column^ Col -umn][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v -])&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(const Value`&`): [_^ArrayCtrl`:`:Column^ Colum +n][@(0.0.255) `&]_[* InsertValue]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v]) +&] [s2; Instructs the ArrayCtrl object to initialize this column in newly created rows to the given value [/ v]. (This applies only to GUI`-based row insertion using methods like [* DoInsert] etc., the low`-level, programmer`-controlled row insertion methods like [* Add] or [* Insert] always initialize the source data matrix with [* Null]`'s).&] -[s7; [%-*C@3 v]-|the value to use as the default for newly inserted -rows&] +[s7; [*C@3 v]-|the value to use as the default for newly inserted rows&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(ValueGen`&`):%- [_^ArrayCtrl`:`:Column^ Column -][@(0.0.255) `&]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:InsertValue`(ValueGen`&`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* InsertValue]([_^ValueGen^ ValueGen][@(0.0.255) `&]_[*@3 g])&] [s2; Programs the ArrayCtrl object to use the given [* ValueGen] factory for default value generation for newly created rows. This can be used e.g. to generate unique UUID`'s or primary keys using an Oracle SEQUENCE object for a primary key column.&] -[s7; [%-*C@3 g]-|a reference to the ValueGen object used for default -value generation&] +[s7; [*C@3 g]-|a reference to the ValueGen object used for default value +generation&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:NoClickEdit`(`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:NoClickEdit`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& ]_[* NoClickEdit]()&] [s2; Disables entering the editing mode when clicking the respective column.&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Cache`(`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* C -ache]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Cache`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Ca +che]()&] [s2; Enables using the cache to store the converted values of this column. By default, converted value caching is turned off to make cell value conversion entirely dynamic; however, very often @@ -2826,48 +2810,48 @@ conversion is relatively slow (for instance, when the conversion queries a database connection to convert the value).&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Accel`(int`(`*`)`(int`)`):%- [_^ArrayCtrl`:`:Column^ Column -][@(0.0.255) `&]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Accel`(int`(`*`)`(int`)`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* Accel]([@(0.0.255) int]_(`*[*@3 filter])([@(0.0.255) int]))&] [s2; Sets up the accelerator for the given column. A given filtering function is used to convert keystrokes before acceleration.&] -[s7; [%-*C@3 filter]-|a [* CharConvert]`-style function to use for keystroke +[s7; [*C@3 filter]-|a [* CharConvert]`-style function to use for keystroke conversion&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Accel`(`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* A -ccel]()&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Accel`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* Ac +cel]()&] [s2; Sets up the accelerator for the given column. No keystroke conversion is performed.&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Margin`(int`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* Margin]([@(0.0.255) int]_[*@3 m])&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Margin`(int`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ +[* Margin]([@(0.0.255) int]_[*@3 m])&] [s2; Sets up the margin width for the given column. This is equivalent to calling the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:SetMargin`(int`)^ S etMargin] method of the underlying [* HeaderTab].&] -[s7; [%-*C@3 m]-|&] +[s7; [*C@3 m]-|&] [s7; [*/ Return value]-|[* `*this]&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Sorting`(const ValueOrder`&`):%- [_^ArrayCtrl`:`:Column^ Co -lumn][@(0.0.255) `&]_[* Sorting]([@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `& -]_[*@3 o])&] -[s5;:ArrayCtrl`:`:Column`:`:Sorting`(int`(`*`)`(const Value`&a`,const Value`&b`)`):%- [_^ArrayCtrl`:`:Column^ C +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Sorting`(const ValueOrder`&`): [_^ArrayCtrl`:`:Column^ Colu +mn][@(0.0.255) `&]_[* Sorting]([@(0.0.255) const]_[_^ValueOrder^ ValueOrder][@(0.0.255) `&]_ +[*@3 o])&] +[s5;:ArrayCtrl`:`:Column`:`:Sorting`(int`(`*`)`(const Value`&a`,const Value`&b`)`): [_^ArrayCtrl`:`:Column^ C olumn][@(0.0.255) `&]_[* Sorting]([@(0.0.255) int]_(`*[*@3 c])([@(0.0.255) const]_Value[@(0.0.255) `& ]_a, [@(0.0.255) const]_Value[@(0.0.255) `&]_b))&] -[s5;:ArrayCtrl`:`:Column`:`:Sorting`(`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_ -[* Sorting]()&] +[s5;:ArrayCtrl`:`:Column`:`:Sorting`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `&]_[* S +orting]()&] [s2; Activates sorting of ArrayCtrl column by clicking on its header tab. Parameterless version uses default Value ordering using StdValueCompare.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Sorting`(Gate2``):%- [_^ArrayCtrl`:`:Column^ Col -umn][@(0.0.255) `&]_[* Sorting]([_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 ord -er])&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Sorting`(Gate2``): [_^ArrayCtrl`:`:Column^ Colum +n][@(0.0.255) `&]_[* Sorting]([_^Gate2^ Gate2]<[@(0.0.255) int], [@(0.0.255) int]>_[*@3 order +])&] [s2; Activates sorting of ArrayCtrl column by clicking on its header tab. This variant uses a Gate2 predicate that is supposed to compare two lines (it has indicies as parameters). Note that @@ -2875,49 +2859,49 @@ this variant ignores ascending/descending order, it has to be implemented in predicated, using ArrayCtrl`::IsSortDescending to determine the order.&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:SortDefault`(`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:SortDefault`(`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& ]_[* SortDefault]()&] [s2; Sets this column to be initial sorting column (calls SetSortColumn of ArrayCtrl).&] [s3; &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`):%- [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Colum -n][@(0.0.255) `&]_[* HeaderTab]()&] -[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`)const:%- [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`): [_^HeaderCtrl`:`:Column^ HeaderCtrl`::Column][@(0.0.255) `& +]_[* HeaderTab]()&] +[s5;:ArrayCtrl`:`:Column`:`:HeaderTab`(`)const: [@(0.0.255) const]_[_^HeaderCtrl`:`:Column^ H eaderCtrl`::Column][@(0.0.255) `&]_[* HeaderTab]()_[@(0.0.255) const]&] [s2; Returns the [* HeaderCtrl`::Column] object describing the given column. This object can be used to set up additional column properties (like column width constraints or the [*^topic`:`/`/CtrlLib`/src`/HeaderCtrl`$en`-us`#`:`:HeaderCtrl`:`:Column`:`:Callback WhenAction^ W henAction] callback).&] -[s3;%- &] -[s4;%- &] -[s5;:ArrayCtrl`:`:Column`:`:Tip`(const char`*`):%- [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& -]_[* Tip]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 tip])&] -[s2; Assigns a [%-*@3 tip] to header tab column.&] -[s3;%- &] -[s0;%- &] -[ {{10000t/25b/25@3 [s0;%- [*@(229)4 ArrayCtrl`::Order]]}}&] [s3; &] -[s1;:ArrayCtrl`:`:Order`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Order]&] +[s4; &] +[s5;:ArrayCtrl`:`:Column`:`:Tip`(const char`*`): [_^ArrayCtrl`:`:Column^ Column][@(0.0.255) `& +]_[* Tip]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 tip])&] +[s2; Assigns a [*@3 tip] to header tab column.&] +[s3; &] +[s0; &] +[ {{10000t/25b/25@3 [s0; [*@(229)4 ArrayCtrl`::Order]]}}&] +[s3; &] +[s1;:ArrayCtrl`:`:Order`:`:struct: [@(0.0.255)3 struct][3 _][*3 Order]&] [s9; The [* Order] object is used for array row sorting. The overloaded [* operator ()] acts as the sorting predicate, which is consulted within the sorting method to determine which of a given pair of row is `'less`' according to the desired sorting.&] -[s3;%- &] -[s0;%- &] +[s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:ArrayCtrl`:`:Order`:`:operator`(`)`(const Vector``&`,const Vector``&`)const:%- [@(0.0.255) v +[s3; &] +[s5;:ArrayCtrl`:`:Order`:`:operator`(`)`(const Vector``&`,const Vector``&`)const: [@(0.0.255) v irtual] [@(0.0.255) bool]_[* operator()]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Va lue]>`&_[*@3 row1], [@(0.0.255) const]_[_^Vector^ Vector]<[_^Value^ Value]>`&_[*@3 row2])_[@(0.0.255) c onst]_`=_[@3 0]&] [s2; The sorting predicate. This method should return [* true] when its first argument ([/ row1]) is less than the second argument ([/ row2]) according to the desired ordering.&] -[s7; [%-*C@3 row1]-|an array of source data index values for the first +[s7; [*C@3 row1]-|an array of source data index values for the first of the rows to compare&] -[s7; [%-*C@3 row2]-|an array of source data index values for the other +[s7; [*C@3 row2]-|an array of source data index values for the other row to compare&] [s7; [*/ Return value]-|[* true] `= row1 < row2, [* false] `= row1 >`= row2&] [s3; &]