diff --git a/uppsrc/Core/src.tpp/CParser$en-us.tpp b/uppsrc/Core/src.tpp/CParser$en-us.tpp index 8a9816132..e8f34e8c0 100644 --- a/uppsrc/Core/src.tpp/CParser$en-us.tpp +++ b/uppsrc/Core/src.tpp/CParser$en-us.tpp @@ -9,451 +9,445 @@ topic "CParser"; [l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 CParser]]}}&] -[s3;%- &] -[s1;:CParser`:`:class:%- [@(0.0.255) class]_[* CParser]&] -[s0; &] -[s0; CParser is simple yet very useful lexical analyzer suitable +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser]]}}&] +[s3; &] +[s1;:CParser`:`:class: [@(0.0.255) class]_[* CParser]&] +[s9;%% CParser is simple yet very useful lexical analyzer suitable for building descent parsers of languages with C`-like syntax.&] -[s0; &] -[s0; CParser works on `'`\0`' terminated text in memory (not Stream), +[s9;%% CParser works on `'`\0`' terminated text in memory (not Stream), so to parse the file you have to load it into the memory first. Text has to exist during the time it is processed by CParser (no copy is made).&] -[s0; &] -[s0; Many CParser methods can throw CParser`::Error exception to indicate -the failure to parse required symbol. When using CParser to build -concrete parser, it is common to use this exception (preferably -via ThrowError method) to indicate errors as well.&] -[s0; &] -[s0; CParser objects cannot be transfered (copied).&] +[s9;%% Many CParser methods can throw CParser`::Error exception to +indicate the failure to parse required symbol. When using CParser +to build concrete parser, it is common to use this exception +(preferably via ThrowError method) to indicate errors as well.&] +[s9;%% CParser objects cannot be transfered (copied).&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] +[s3; &] +[s5;:CParser`:`:CParser`(const char`*`): [* CParser]([@(0.0.255) const]_[@(0.0.255) char]_`* +[*@3 ptr])&] +[s2; [%% Constructs the ][%%* CParser ][%% which can parse input buffer +][*@3 ptr].&] +[s3; &] +[s4; &] +[s5;:CParser`:`:CParser`(const char`*`,const char`*`,int`): [* CParser]([@(0.0.255) const +]_[@(0.0.255) char]_`*[*@3 ptr], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fn], +[@(0.0.255) int]_[*@3 line]_`=_[@3 1])&] +[s2;%% Constructs the [* CParser], with additional information for +the text. The additional info can be used when reporting error.&] +[s7;%% [%-*C@3 ptr]-|Pointer to the input text.&] +[s7;%% [%-*C@3 fn]-|The name of file (in fact, can be anything, value +is just stored).&] +[s7;%% [%-*C@3 line]-|First line number.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:CParser`(`): [* CParser]()&] +[s2;%% Constructs the [* CParser]. Input text has to be assigned using +the [* SetPos ]method.&] [s3; &] [s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:CParser`:`:CParser`(const char`*`):%- [* CParser]([@(0.0.255) const]_[@(0.0.255) char]_ -`*[*@3 ptr])&] -[s2;%- [%% Constructs the ][%%* CParser ][%% which can parse input buffer -][*@3 ptr].&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:CParser`(const char`*`,const char`*`,int`):%- [* CParser]([@(0.0.255) con -st]_[@(0.0.255) char]_`*[*@3 ptr], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 fn], -[@(0.0.255) int]_[*@3 line]_`=_[@3 1])&] -[s2; Constructs the [* CParser], with additional information for the -text. The additional info can be used when reporting error.&] -[s7; [%-*C@3 ptr]-|Pointer to the input text.&] -[s7; [%-*C@3 fn]-|The name of file (in fact, can be anything, value -is just stored).&] -[s7; [%-*C@3 line]-|First line number.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:CParser`(`):%- [* CParser]()&] -[s2; Constructs the [* CParser]. Input text has to be assigned using -the [* SetPos ]method.&] -[s3;%- &] -[s0;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:CParser`:`:ThrowError`(const char`*`):%- [@(0.0.255) void]_[* ThrowError]([@(0.0.255) c -onst]_[@(0.0.255) char]_`*[*@3 s])&] -[s2; Throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CParse -r`::Error] with the error message [%-*@3 s].&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:NoSkipSpaces`(`):%- [@(0.0.255) void]_[* NoSkipSpaces]()&] -[s2; Sets [* CParser ]to the mode where white`-spaces are not automatically +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:CParser`:`:ThrowError`(const char`*`): [@(0.0.255) void]_[* ThrowError]([@(0.0.255) co +nst]_[@(0.0.255) char]_`*[*@3 s])&] +[s2;%% Throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CPar +ser`::Error] with the error message [%-*@3 s].&] +[s3; &] +[s4; &] +[s5;:CParser`:`:NoSkipSpaces`(`): [@(0.0.255) void]_[* NoSkipSpaces]()&] +[s2;%% Sets [* CParser ]to the mode where white`-spaces are not automatically skipped, but have to be skipped by [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Spaces`(`)^ S paces][* ]method.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:SkipSpaces`(`):%- [@(0.0.255) void]_[* SkipSpaces]()&] -[s2; Sets [* CParser ]to the mode where white`-spaces are automatically +[s3; &] +[s4; &] +[s5;:CParser`:`:SkipSpaces`(`): [@(0.0.255) void]_[* SkipSpaces]()&] +[s2;%% Sets [* CParser ]to the mode where white`-spaces are automatically skipped. First skip is performed when position in input text is assigned via constructor or [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:SetPos`(const CParser`:`:Pos`&`)^ S etPos], then the skip is performed after any symbol.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:Spaces`(`):%- [@(0.0.255) bool]_[* Spaces]()&] -[s2; Skips white`-spaces. Returns [* true] if there were white`-space +[s3; &] +[s4; &] +[s5;:CParser`:`:Spaces`(`): [@(0.0.255) bool]_[* Spaces]()&] +[s2;%% Skips white`-spaces. Returns [* true] if there were white`-space to skip, [* false] otherwise.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:PeekChar`(`):%- [@(0.0.255) char]_[* PeekChar]()&] -[s2; Returns the current single character.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:GetChar`(`):%- [@(0.0.255) char]_[* GetChar]()&] -[s2; Advances the position in the input text by one character and +[s3; &] +[s4; &] +[s5;:CParser`:`:PeekChar`(`): [@(0.0.255) char]_[* PeekChar]()&] +[s2;%% Returns the current single character.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetChar`(`): [@(0.0.255) char]_[* GetChar]()&] +[s2;%% Advances the position in the input text by one character and returns the character at the position before advancing.&] -[s7; [*/ Return value]-|Character at position before advancing it.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsChar`(char`):%- [@(0.0.255) bool]_[* IsChar]([@(0.0.255) char]_[*@3 c])&] -[s2; Tests whether there is a specific character [%-*@3 c ]at the current -position.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsChar2`(char`,char`):%- [@(0.0.255) bool]_[* IsChar2]([@(0.0.255) char]_[*@3 c +[s7;%% [*/ Return value]-|Character at position before advancing it.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsChar`(char`): [@(0.0.255) bool]_[* IsChar]([@(0.0.255) char]_[*@3 c])&] +[s2;%% Tests whether there is a specific character [%-*@3 c ]at the +current position.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsChar2`(char`,char`): [@(0.0.255) bool]_[* IsChar2]([@(0.0.255) char]_[*@3 c 1], [@(0.0.255) char]_[*@3 c2])&] -[s2; Tests whether there is a specific character pair ([%-*@3 c1], +[s2;%% Tests whether there is a specific character pair ([%-*@3 c1], [%-*@3 c2]) at the current position.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsChar3`(char`,char`,char`):%- [@(0.0.255) bool]_[* IsChar3]([@(0.0.255) ch -ar]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] -[s2; Test for a specific character triplet ([%-*@3 c1], [%-*@3 c2], [%-*@3 c3]) -at the current position.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:Char`(char`):%- [@(0.0.255) bool]_[* Char]([@(0.0.255) char]_[*@3 c])&] -[s2; Tests for a single character [%-*@3 c] at the current position. +[s3; &] +[s4; &] +[s5;:CParser`:`:IsChar3`(char`,char`,char`): [@(0.0.255) bool]_[* IsChar3]([@(0.0.255) char +]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] +[s2;%% Test for a specific character triplet ([%-*@3 c1], [%-*@3 c2], +[%-*@3 c3]) at the current position.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Char`(char`): [@(0.0.255) bool]_[* Char]([@(0.0.255) char]_[*@3 c])&] +[s2;%% Tests for a single character [%-*@3 c] at the current position. If there is match, position is advanced and [* true] is returned. If no match is found position remains unmodified and [* false] is returned.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:Char2`(char`,char`):%- [@(0.0.255) bool]_[* Char2]([@(0.0.255) char]_[*@3 c1], - [@(0.0.255) char]_[*@3 c2])&] -[s2; Tests for a character pair ([%-*@3 c1], [%-*@3 c2]) at the current +[s3; &] +[s4; &] +[s5;:CParser`:`:Char2`(char`,char`): [@(0.0.255) bool]_[* Char2]([@(0.0.255) char]_[*@3 c1], +[@(0.0.255) char]_[*@3 c2])&] +[s2;%% Tests for a character pair ([%-*@3 c1], [%-*@3 c2]) at the current position. If there is match, position is advanced by two characters and [* true] is returned. If no match is found position remains unmodified and [* false] is returned.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:Char3`(char`,char`,char`):%- [@(0.0.255) bool]_[* Char3]([@(0.0.255) char]_ -[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] -[s2; Tests for a character triplet ([%-*@3 c1], [%-*@3 c2], [%-*@3 c3]) +[s3; &] +[s4; &] +[s5;:CParser`:`:Char3`(char`,char`,char`): [@(0.0.255) bool]_[* Char3]([@(0.0.255) char]_[*@3 c +1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])&] +[s2;%% Tests for a character triplet ([%-*@3 c1], [%-*@3 c2], [%-*@3 c3]) at the current position. If there is match, position is advanced by three characters and [* true] is returned. If no match is found position remains unmodified and [* false] is returned.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:PassChar`(char`)throw`(CParser`:`:Error`):%- [@(0.0.255) void]_[* PassCha -r]([@(0.0.255) char]_[*@3 c])_[@(0.0.255) throw](Error)&] -[s2; Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char`(char`)^ Char](c). -If it returns false, throws error.&] -[s7; [%-*C@3 c]-|Character to test.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:PassChar2`(char`,char`)throw`(CParser`:`:Error`):%- [@(0.0.255) void]_[* P -assChar2]([@(0.0.255) char]_[*@3 c1], [@(0.0.255) char]_[*@3 c2])_[@(0.0.255) throw](Error) -&] -[s2; Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char2`(char`,char`)^ Cha -r2](c1, c2). If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +[s3; &] +[s4; &] +[s5;:CParser`:`:PassChar`(char`)throw`(CParser`:`:Error`): [@(0.0.255) void]_[* PassChar]( +[@(0.0.255) char]_[*@3 c])_[@(0.0.255) throw](Error)&] +[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char`(char`)^ Char](c) +. If it returns false, throws error.&] +[s7;%% [%-*C@3 c]-|Character to test.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:PassChar2`(char`,char`)throw`(CParser`:`:Error`): [@(0.0.255) void]_[* Pa +ssChar2]([@(0.0.255) char]_[*@3 c1], [@(0.0.255) char]_[*@3 c2])_[@(0.0.255) throw](Error)&] +[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char2`(char`,char`)^ C +har2](c1, c2). If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C Parser`::Error].&] -[s7; [%-*C@3 c1]-|First character of pair.&] -[s7; [%-*C@3 c2]-|Second character of pair.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:PassChar3`(char`,char`,char`)throw`(CParser`:`:Error`):%- [@(0.0.255) v -oid]_[* PassChar3]([@(0.0.255) char]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], +[s7;%% [%-*C@3 c1]-|First character of pair.&] +[s7;%% [%-*C@3 c2]-|Second character of pair.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:PassChar3`(char`,char`,char`)throw`(CParser`:`:Error`): [@(0.0.255) voi +d]_[* PassChar3]([@(0.0.255) char]_[*@3 c1], [@(0.0.255) char]_[*@3 c2], [@(0.0.255) char]_[*@3 c3])_[@(0.0.255) throw](Error)&] -[s2; Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char3`(char`,char`,char`)^ C +[s2;%% Calls [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Char3`(char`,char`,char`)^ C har3](c1, c2, c3). If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C Parser`::Error].&] -[s7; [%-*C@3 c1]-|First character of triplet.&] -[s7; [%-*C@3 c2]-|Second character of triplet.&] -[s7; [%-*C@3 c3]-|Third character of triplet.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:Id`(const char`*`):%- [@(0.0.255) bool]_[* Id]([@(0.0.255) const]_[@(0.0.255) c +[s7;%% [%-*C@3 c1]-|First character of triplet.&] +[s7;%% [%-*C@3 c2]-|Second character of triplet.&] +[s7;%% [%-*C@3 c3]-|Third character of triplet.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:Id`(const char`*`): [@(0.0.255) bool]_[* Id]([@(0.0.255) const]_[@(0.0.255) c har]_`*[*@3 s])&] -[s2; Tests for given C`-like identifier [%-*@3 s]. If there is match, +[s2;%% Tests for given C`-like identifier [%-*@3 s]. If there is match, advances position by [* strlen](s) characters. Returns [* true] on match and [* false] otherwise.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:PassId`(const char`*`)throw`(CParser`:`:Error`):%- [@(0.0.255) void]_[* P -assId]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])_[@(0.0.255) throw](Error)&] -[s2; Invokes the [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Id`(const char`*`)^ I +[s3; &] +[s4; &] +[s5;:CParser`:`:PassId`(const char`*`)throw`(CParser`:`:Error`): [@(0.0.255) void]_[* Pas +sId]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s])_[@(0.0.255) throw](Error)&] +[s2;%% Invokes the [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Id`(const char`*`)^ I d] method with [%-*@3 s] as parameter. If it returns [* false], throws [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CParser`::Error ].&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsId`(`):%- [@(0.0.255) bool]_[* IsId]()&] -[s2; Tests whether there is any C`-like identifier at the current +[s3; &] +[s4; &] +[s5;:CParser`:`:IsId`(`): [@(0.0.255) bool]_[* IsId]()&] +[s2;%% Tests whether there is any C`-like identifier at the current position.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadId`(`)throw`(CParser`:`:Error`):%- [_^String^ String]_[* ReadId]()_[@(0.0.255) t +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadId`(`)throw`(CParser`:`:Error`): [_^String^ String]_[* ReadId]()_[@(0.0.255) t hrow](Error)&] -[s2; Reads C`-like identifier from the current position. If there +[s2;%% Reads C`-like identifier from the current position. If there is none, a [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CPa rser`::Error] is thrown.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadIdt`(`)throw`(CParser`:`:Error`):%- [_^String^ String]_[* ReadIdt]()_ -[@(0.0.255) throw](Error)&] -[s2; Special variant of [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:ReadId`(`)throw`(CParser`:`:Error`)^ R +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadIdt`(`)throw`(CParser`:`:Error`): [_^String^ String]_[* ReadIdt]()_[@(0.0.255) t +hrow](Error)&] +[s2;%% Special variant of [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:ReadId`(`)throw`(CParser`:`:Error`)^ R eadId] that considers different non`-alphanumeric characters to be the part of identifier as long as they form C`+`+ normal or template based type.&] -[s7; [*/ Return value]-|Identifier.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsInt`(`):%- [@(0.0.255) bool]_[* IsInt]()&] -[s2; Test for integer at current position `- there either must be -digit, or `'`+`' or `'`-`' sign followed by any number of spaces -and digit.&] -[s7; [*/ Return value]-|true if there is integer.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadInt`(`)throw`(CParser`:`:Error`):%- [@(0.0.255) int]_[* ReadInt]()_[@(0.0.255) t +[s7;%% [*/ Return value]-|Identifier.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsInt`(`): [@(0.0.255) bool]_[* IsInt]()&] +[s2;%% Test for integer at current position `- there either must +be digit, or `'`+`' or `'`-`' sign followed by any number of +spaces and digit.&] +[s7;%% [*/ Return value]-|true if there is integer.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadInt`(`)throw`(CParser`:`:Error`): [@(0.0.255) int]_[* ReadInt]()_[@(0.0.255) t hrow](Error)&] -[s2; Reads the integer from the current position. If [* IsInt ]is false, -throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ CPar -ser`::Error].&] -[s7; [*/ Return value]-|Integer.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsNumber`(`):%- [@(0.0.255) bool]_[* IsNumber]()&] -[s2; Tests for sign`-less number at current position `- there must +[s2;%% Reads the integer from the current position. If [* IsInt ]is +false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C +Parser`::Error].&] +[s7;%% [*/ Return value]-|Integer.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsNumber`(`): [@(0.0.255) bool]_[* IsNumber]()&] +[s2;%% Tests for sign`-less number at current position `- there must be digit at current position.&] -[s7; [*/ Return value]-|true if there is number.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsNumber`(int`):%- [@(0.0.255) bool]_[* IsNumber]([@(0.0.255) int]_[*@3 base]) -&] -[s2; Tests for sign`-less number with given base `- there must be -digit or letter `'A`' `- `'Z`' or `'a`' `- `'z`', where range +[s7;%% [*/ Return value]-|true if there is number.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsNumber`(int`): [@(0.0.255) bool]_[* IsNumber]([@(0.0.255) int]_[*@3 base])&] +[s2;%% Tests for sign`-less number with given base `- there must +be digit or letter `'A`' `- `'Z`' or `'a`' `- `'z`', where range is limit by actual base (e.g. for base 12 letters `'a`' `'A`' `'b`' `'B`' are allowed).&] -[s7; [%-*C@3 base]-|Numeric base.&] -[s7; [*/ Return value]-|true if there is number with given numeric base.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadNumber`(int`)throw`(CParser`:`:Error`):%- [_^uint32^ uint32]_[* ReadN -umber]([@(0.0.255) int]_[*@3 base]_`=_[@3 10])_[@(0.0.255) throw](Error)&] -[s2; Reads a number with the given numeric base. If [* IsNumber]([%-*@3 base]) +[s7;%% [%-*C@3 base]-|Numeric base.&] +[s7;%% [*/ Return value]-|true if there is number with given numeric +base.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadNumber`(int`)throw`(CParser`:`:Error`): [_^uint32^ uint32]_[* ReadNum +ber]([@(0.0.255) int]_[*@3 base]_`=_[@3 10])_[@(0.0.255) throw](Error)&] +[s2;%% Reads a number with the given numeric base. If [* IsNumber]([%-*@3 base]) is false, throws an [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Error`:`:struct^ C Parser`::Error.]&] -[s7; [%-*C@3 base]-|Numeric base.&] -[s7; [*/ Return value]-|Number.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsDouble`(`):%- [@(0.0.255) bool]_[* IsDouble]()&] -[s2; Test for floating point number at current position `- there +[s7;%% [%-*C@3 base]-|Numeric base.&] +[s7;%% [*/ Return value]-|Number.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsDouble`(`): [@(0.0.255) bool]_[* IsDouble]()&] +[s2;%% Test for floating point number at current position `- there either must be digit, or `'`+`' or `'`-`' sign followed by any number of spaces and digit.&] -[s7; [*/ Return value]-|true if there is the floating point number.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadDouble`(`)throw`(CParser`:`:Error`):%- [@(0.0.255) double]_[* ReadDou -ble]()_[@(0.0.255) throw](Error)&] -[s2; Reads a floating point number with C based lexical rules.&] -[s7; [*/ Return value]-|Floating point number.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsString`(`):%- [@(0.0.255) bool]_[* IsString]()&] -[s2; Tests for C`-like string literal at the current position. Same -as [* IsChar](`'`\`"`');&] -[s7; [*/ Return value]-|true when there is string literal.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadOneString`(bool`)throw`(CParser`:`:Error`):%- [_^String^ String]_[* R -eadOneString]([@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) false])_[@(0.0.255) throw](Er -ror)&] -[s2; Reads C`-like string literal from current position (follow C -lexical rules, including escape codes). Literals on different +[s7;%% [*/ Return value]-|true if there is the floating point number.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadDouble`(`)throw`(CParser`:`:Error`): [@(0.0.255) double]_[* ReadDoubl +e]()_[@(0.0.255) throw](Error)&] +[s2;%% Reads a floating point number with C based lexical rules.&] +[s7;%% [*/ Return value]-|Floating point number.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:IsString`(`): [@(0.0.255) bool]_[* IsString]()&] +[s2;%% Tests for C`-like string literal at the current position. +Same as [* IsChar](`'`\`"`');&] +[s7;%% [*/ Return value]-|true when there is string literal.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadOneString`(bool`)throw`(CParser`:`:Error`): [_^String^ String]_[* Rea +dOneString]([@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) false])_[@(0.0.255) throw](Erro +r)&] +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes). Literals on different lines are not concatenated (unlike C).&] -[s7; [%-*C@3 chkend]-|When [* false], [* ReadOneString ]is more permissive +[s7;%% [%-*C@3 chkend]-|When [* false], [* ReadOneString ]is more permissive as it allows unterminated string literals `- string is then also delimited by end of line or text.&] -[s7; [*/ Return value]-|String literal.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadString`(bool`)throw`(CParser`:`:Error`):%- [_^String^ String]_[* Read -String]([@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) false])_[@(0.0.255) throw](Error)&] -[s2; Reads C`-like string literal from current position (follow C -lexical rules, including escape codes). Literals on different +[s7;%% [*/ Return value]-|String literal.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadString`(bool`)throw`(CParser`:`:Error`): [_^String^ String]_[* ReadSt +ring]([@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) false])_[@(0.0.255) throw](Error)&] +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes). Literals on different lines are concatenated (as in C).&] -[s7; [%-*C@3 chkend]-|When [* false], [* ReadOneString ]is more permissive +[s7;%% [%-*C@3 chkend]-|When [* false], [* ReadOneString ]is more permissive as it allows unterminated string literals `- string is then also delimited by end of line or text.&] -[s7; [*/ Return value]-|String literal.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadOneString`(int`,bool`)throw`(CParser`:`:Error`):%- [_^String^ Strin -g]_[* ReadOneString]([@(0.0.255) int]_[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) f +[s7;%% [*/ Return value]-|String literal.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadOneString`(int`,bool`)throw`(CParser`:`:Error`): [_^String^ String]_ +[* ReadOneString]([@(0.0.255) int]_[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) f alse])_[@(0.0.255) throw](Error)&] -[s2; Reads C`-like string literal from current position (follow C -lexical rules, including escape codes) with different delimiter +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes) with different delimiter than `'`\`"`'. Literals on different lines are not concatenated (unlike C).&] -[s7; [%-*C@3 delim]-|Delimiter.&] -[s7; [%-*C@3 chkend]-|When false, [* ReadOneString ]is more permissive +[s7;%% [%-*C@3 delim]-|Delimiter.&] +[s7;%% [%-*C@3 chkend]-|When false, [* ReadOneString ]is more permissive as it allows unterminated string literals `- string is then also delimited by end of line or text.&] -[s7; [*/ Return value]-|String literal.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:ReadString`(int`,bool`)throw`(CParser`:`:Error`):%- [_^String^ String]_ -[* ReadString]([@(0.0.255) int]_[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) fa -lse])_[@(0.0.255) throw](Error)&] -[s2; Reads C`-like string literal from current position (follow C -lexical rules, including escape codes). with different delimiter +[s7;%% [*/ Return value]-|String literal.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:ReadString`(int`,bool`)throw`(CParser`:`:Error`): [_^String^ String]_[* R +eadString]([@(0.0.255) int]_[*@3 delim], [@(0.0.255) bool]_[*@3 chkend]_`=_[@(0.0.255) fals +e])_[@(0.0.255) throw](Error)&] +[s2;%% Reads C`-like string literal from current position (follow +C lexical rules, including escape codes). with different delimiter than `'`\`"`'. Literals on different lines are concatenated (as in C).&] -[s7; [%-*C@3 delim]-|Delimiter.&] -[s7; [%-*C@3 chkend]-|When false, [* ReadOneString ]is more permissive +[s7;%% [%-*C@3 delim]-|Delimiter.&] +[s7;%% [%-*C@3 chkend]-|When false, [* ReadOneString ]is more permissive as it allows unterminated string literals `- string is then also delimited by end of line or text.&] -[s7; [*/ Return value]-|String literal.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:SkipTerm`(`):%- [@(0.0.255) void]_[* SkipTerm]()&] -[s2; Skips a single symbol. Decimal numbers, identifiers and string +[s7;%% [*/ Return value]-|String literal.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:SkipTerm`(`): [@(0.0.255) void]_[* SkipTerm]()&] +[s2;%% Skips a single symbol. Decimal numbers, identifiers and string literals are skipped as whole symbols, otherwise input position is advanced by 1 character.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:GetPtr`(`):%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* GetPtr]()&] -[s2; Returns a pointer to the current position.&] -[s7; [*/ Return value]-|Pointer to current position.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:GetPos`(`):%- [_^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Pos`:`:struct^ C +[s3; &] +[s4; &] +[s5;:CParser`:`:GetPtr`(`): [@(0.0.255) const]_[@(0.0.255) char]_`*[* GetPtr]()&] +[s2;%% Returns a pointer to the current position.&] +[s7;%% [*/ Return value]-|Pointer to current position.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetPos`(`): [_^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Pos`:`:struct^ C Parser`::Pos]_[* GetPos]()&] -[s2; Gets the current position,.&] -[s7; [*/ Return value]-|Current position. It contains the pointer as -well as the line number and the filename.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:SetPos`(const CParser`:`:Pos`&`):%- [@(0.0.255) void]_[* SetPos]([@(0.0.255) c +[s2;%% Gets the current position,.&] +[s7;%% [*/ Return value]-|Current position. It contains the pointer +as well as the line number and the filename.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:SetPos`(const CParser`:`:Pos`&`): [@(0.0.255) void]_[* SetPos]([@(0.0.255) c onst]_[_^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:Pos`:`:struct^ CParser`: :Pos][@(0.0.255) `&]_[*@3 p])&] -[s2;%- [%% Sets the current position to ][*@3 p][%% . ][*@3 p ]can be from +[s2; [%% Sets the current position to ][*@3 p][%% . ][*@3 p ]can be from a different [* CParser].&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:IsEof`(`)const:%- [@(0.0.255) bool]_[* IsEof]()_[@(0.0.255) const]&] -[s2; Test for the end of input text.&] -[s7; [*/ Return value]-|true when current position is a the end of input -text (`'`\0`' character).&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] -[s2;%- Returns [* true ]if end of file has not been reached, [* false -]otherwise.&] -[s7; &] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:GetLine`(`)const:%- [@(0.0.255) int]_[* GetLine]()_[@(0.0.255) const]&] -[s2;%- Returns the current line number.&] -[s7; [*/ Return value]-|Current line.&] -[s3;%- &] -[s4;%- &] -[s5;:CParser`:`:GetFileName`(`)const:%- [_^String^ String]_[* GetFileName]()_[@(0.0.255) co -nst]&] -[s2;%- Returns the actual filename.&] [s3; &] +[s4; &] +[s5;:CParser`:`:IsEof`(`)const: [@(0.0.255) bool]_[* IsEof]()_[@(0.0.255) const]&] +[s2;%% Test for the end of input text.&] +[s7;%% [*/ Return value]-|true when current position is a the end of +input text (`'`\0`' character).&] +[s3; &] +[s4; &] +[s5;:CParser`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] +[s2; Returns [* true ]if end of file has not been reached, [* false ]otherwise.&] +[s7;%% &] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetLine`(`)const: [@(0.0.255) int]_[* GetLine]()_[@(0.0.255) const]&] +[s2; Returns the current line number.&] +[s7;%% [*/ Return value]-|Current line.&] +[s3; &] +[s4; &] +[s5;:CParser`:`:GetFileName`(`)const: [_^String^ String]_[* GetFileName]()_[@(0.0.255) cons +t]&] +[s2; Returns the actual filename.&] +[s3;%% &] +[s0;%% &] +[s0;%% &] +[s0;%% &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser`::Error]]}}&] +[s3; &] +[s1;:CParser`:`:Error`:`:struct: [@(0.0.255)3 struct][3 _][*3 Error][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Exc]&] [s0; &] -[s0; &] -[s0; &] -[ {{10000@(113.42.0) [s0; [*@7;4 CParser`::Error]]}}&] -[s3;%- &] -[s1;:CParser`:`:Error`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Error][3 _:_][@(0.0.255)3 public -][3 _][*@3;3 Exc]&] -[s0;%- &] -[s0; Type used as [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser] +[s0;%% Type used as [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser] exception. Contains single [^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S tring] with error description.&] -[s0;/ &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Exc`$en`-us`#Exc`:`:class^ Exc]&] +[s0;/%% &] +[s0; [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Exc`$en`-us`#Exc`:`:class^ Exc]&] +[s3;%% &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] [s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:Exc`:`:Exc`(`):%- [* Exc]()&] -[s2; Default constructor. Error message is empty.&] -[s3;%- &] -[s4;%- &] -[s5;:Exc`:`:Exc`(const String`&`):%- [* Exc]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `& +[s5;:Exc`:`:Exc`(`): [* Exc]()&] +[s2;%% Default constructor. Error message is empty.&] +[s3; &] +[s4; &] +[s5;:Exc`:`:Exc`(const String`&`): [* Exc]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `& ]_[*@3 desc])&] -[s2;%- [%% Construct an ][%%* Error][%% with ][*@3 desc] as an error message.&] +[s2; [%% Construct an ][%%* Error][%% with ][*@3 desc] as an error message.&] +[s3;%% &] +[s0;%% &] +[s0;%% &] +[s0;%% &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 CParser`::Pos]]}}&] +[s3;%% &] +[s1;:CParser`:`:Pos`:`:struct: [@(0.0.255)3 struct][3 _][*3 Pos]&] [s3; &] -[s0; &] -[s0; &] -[s0; &] -[ {{10000@(113.42.0) [s0; [*@7;4 CParser`::Pos]]}}&] +[s5;:`:`:CParser`:`:Pos`:`:struct:%% Position in parsed text.&] +[s3;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] [s3; &] -[s1;:CParser`:`:Pos`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Pos]&] -[s3;%- &] -[s5;:`:`:CParser`:`:Pos`:`:struct: Position in parsed text.&] -[s3; &] -[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] -[s3;%- &] -[s5;:CParser`:`:Pos`:`:Pos`(const char`*`,int`,String`):%- [* Pos]([@(0.0.255) const]_[@(0.0.255) c +[s5;:CParser`:`:Pos`:`:Pos`(const char`*`,int`,String`): [* Pos]([@(0.0.255) const]_[@(0.0.255) c har]_`*[*@3 ptr]_`=_NULL, [@(0.0.255) int]_[*@3 line]_`=_[@3 1], [_^String^ String]_[*@3 fn]_ `=_Null)&] -[s2;%- Constrcuts a [* Pos ]based on pointer in input buffer, line -number and anme of the file.&] -[s7; [%-*@3 ptr]-|Pointer to the position in the input text &] -[s7; [%-*@3 line]-|Line number.&] -[s7; [%-*@3 fn]-|Filename.&] -[s3;%- &] -[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] -[s3;%- &] -[s5;:CParser`:`:Pos`:`:ptr:%- [@(0.0.255) const]_[@(0.0.255) char]_`*[* ptr]&] -[s2; Pointer to the position in the input text &] +[s2; Constrcuts a [* Pos ]based on pointer in input buffer, line number +and anme of the file.&] +[s7;%% [%-*@3 ptr]-|Pointer to the position in the input text &] +[s7;%% [%-*@3 line]-|Line number.&] +[s7;%% [%-*@3 fn]-|Filename.&] [s3; &] -[s4;%- &] -[s5;:CParser`:`:Pos`:`:line:%- [@(0.0.255) int]_[* line]&] -[s2; Line number.&] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] [s3; &] -[s4;%- &] -[s5;:CParser`:`:Pos`:`:fn:%- [_^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S -tring]_[* fn]&] -[s2; Filename.&] -[s3; &] -[s0; &] -[s0; &] -[s0; &] -[ {{10000@(113.42.0) [s0; [*@7;4 C`-like string literal formatting]]}}&] -[s3; &] -[s0; [* AsCString] routines produce C`-like literals (compatible with -[^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser]) +[s5;:CParser`:`:Pos`:`:ptr: [@(0.0.255) const]_[@(0.0.255) char]_`*[* ptr]&] +[s2;%% Pointer to the position in the input text &] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:Pos`:`:line: [@(0.0.255) int]_[* line]&] +[s2;%% Line number.&] +[s3;%% &] +[s4; &] +[s5;:CParser`:`:Pos`:`:fn: [_^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ St +ring]_[* fn]&] +[s2;%% Filename.&] +[s3;%% &] +[s0;%% &] +[s0;%% &] +[s0;%% &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 C`-like string literal formatting]]}}&] +[s3;%% &] +[s0;%% [* AsCString] routines produce C`-like literals (compatible +with [^topic`:`/`/Core`/src`/CParser`$en`-us`#CParser`:`:class^ CParser]) from character data:&] -[s0; &] -[s5;:AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`):%- [_^String^ St -ring]_[* AsCString]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) c +[s0;%% &] +[s5;:AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`): [_^String^ Stri +ng]_[* AsCString]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) const]_[@(0.0.255) c har]_`*[*@3 end], [@(0.0.255) int]_[*@3 linemax]_`=_INT`_MAX, [@(0.0.255) const]_[@(0.0.255) c har]_`*[*@3 linepfx]_`=_NULL, [_^dword^ dword]_[*@3 flags]_`=_[@3 0])&] -[s2; Creates C`-like literal.&] -[s7; [%-*@3 s]-|Pointer to characters.&] -[s7; [%-*@3 end] -|End of characters array (`'`\0`' characters are allowed -inside data).&] -[s7; [%-*@3 linemax] -|Maximal length of line. If this is exceeded, +[s2;%% Creates C`-like literal.&] +[s7;%% [%-*@3 s]-|Pointer to characters.&] +[s7;%% [%-*@3 end] -|End of characters array (`'`\0`' characters are +allowed inside data).&] +[s7;%% [%-*@3 linemax] -|Maximal length of line. If this is exceeded, ending `"`\`"`\n`" and [@3 linepfx] is inserted and literal continues on the new line.&] -[s7; [%-*@3 linepfx]-|Pointer to zero`-terminated text to be inserted +[s7;%% [%-*@3 linepfx]-|Pointer to zero`-terminated text to be inserted at the beginning of the line when the line length is exceeded.&] -[s7; [%-*@3 flags]-|true activates smarter breaking into lines `- breaks -at spaces are preferred.&] -[s7; [*/ Return value]-|C`-like literal.&] -[s3; &] -[s4;%- &] -[s5;:AsCString`(const char`*`,int`,const char`*`,dword`):%- [_^String^ String]_[* AsCStri -ng]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) int]_[*@3 linemax]_`=_INT`_ -MAX, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, -[_^dword^ dword]_[*@3 flags]_`=_[@3 0])&] -[s2; Creates C`-like literal from zero terminated character data. +[s7;%% [%-*@3 flags]-|true activates smarter breaking into lines `- +breaks at spaces are preferred.&] +[s7;%% [*/ Return value]-|C`-like literal.&] +[s3;%% &] +[s4; &] +[s5;:AsCString`(const char`*`,int`,const char`*`,dword`): [_^String^ String]_[* AsCString +]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 s], [@(0.0.255) int]_[*@3 linemax]_`=_INT`_MA +X, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, [_^dword^ dword]_[*@3 flag +s]_`=_[@3 0])&] +[s2;%% Creates C`-like literal from zero terminated character data. Same as [^topic`:`/`/Core`/src`/CParser`$en`-us`#AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`)^ A sCString]([%-*@3 s],[%- _][%-*@3 s][%- _]`+[%- _][* strlen]([%-*@3 s]),[%- _][%-*@3 linemax],[%- _][%-*@3 l inepfx],[%- _][%-*@3 flags]).&] -[s3; &] -[s4;%- &] -[s5;:AsCString`(const String`&`,int`,const char`*`,dword`):%- [_^String^ String]_[* AsCSt -ring]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int]_[*@3 lin -emax]_`=_INT`_MAX, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, +[s3;%% &] +[s4; &] +[s5;:AsCString`(const String`&`,int`,const char`*`,dword`): [_^String^ String]_[* AsCStri +ng]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 s], [@(0.0.255) int]_[*@3 linem +ax]_`=_INT`_MAX, [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 linepfx]_`=_NULL, [_^dword^ dword]_[*@3 flags]_`=_[@3 0])&] -[s2; Creates C`-like literal from [^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S +[s2;%% Creates C`-like literal from [^topic`:`/`/Core`/src`/String`$en`-us`#String`:`:class^ S tring]. String can contain zero characters. Same as [^topic`:`/`/Core`/src`/CParser`$en`-us`#AsCString`(const char`*`,const char`*`,int`,const char`*`,dword`)^ A sCString]([%-*@3 s].[^topic`:`/`/Core`/src`/String`$en`-us`#String0`:`:Begin`(`)const^ B egin](),[%- _][%-*@3 s].[^topic`:`/`/Core`/src`/String`$en`-us`#String0`:`:End`(`)const^ E nd](),[%- _][%-*@3 linemax],[%- _][%-*@3 linepfx],[%- _][%-*@3 flags]).&] -[s3; &] -[s0; ] \ No newline at end of file +[s3;%% &] +[s0;%% ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/DateTime$en-us.tpp b/uppsrc/Core/src.tpp/DateTime$en-us.tpp new file mode 100644 index 000000000..7e8b808ec --- /dev/null +++ b/uppsrc/Core/src.tpp/DateTime$en-us.tpp @@ -0,0 +1,136 @@ +topic ""; +[2 $$0,0#00000000000000000000000000000000:Default] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] +[{_} +[ {{10000@(113.42.0) [s0;%% [*@7;4 Date]]}}&] +[s3;%% &] +[s1;:Date`:`:struct: [@(0.0.255)3 struct][3 _][*3 Date][3 _:_][@(0.0.255)3 public][3 _][*@3;3 RelOps +][3 <_][*3 Date][3 , ][_^Moveable^3 Moveable][3 <][*3 Date][3 >_>_]&] +[s9;%% A simple date object with up to a day precision.&] +[s3; &] +[s0;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] +[s3; &] +[s5;:Date`:`:Date`(`): [* Date]()&] +[s2;%% Default constructor.&] +[s3; &] +[s4; &] +[s5;:Date`:`:Date`(const Nuller`&`): [* Date]([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& +])&] +[s2;%% Construct an empty date.&] +[s3; &] +[s4; &] +[s5;:Date`:`:Date`(int`,int`,int`): [* Date]([@(0.0.255) int]_[*@3 y], +[@(0.0.255) int]_[*@3 m], [@(0.0.255) int]_[*@3 d])&] +[s2;%% Constructs a date based on [%-*@3 y] [%-*@3 m] [%-*@3 d].&] +[s3;%% &] +[s3;%% &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:Date`:`:day: [_^byte^ byte]_[* day]&] +[s2;%% Day.&] +[s3;%% &] +[s4; &] +[s5;:Date`:`:month: [_^byte^ byte]_[* month]&] +[s2;%% Month.&] +[s3; &] +[s4; &] +[s5;:Date`:`:year: [_^int16^ int16]_[* year]&] +[s2;%% Year.&] +[s3; &] +[s4; &] +[s5;:Date`:`:IsValid`(`)const: [@(0.0.255) bool]_[* IsValid]()_[@(0.0.255) const]&] +[s2;%% Returns true if the date is valid.&] +[s3; &] +[s4; &] +[s5;:Date`:`:Set`(int`): [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 scalar])&] +[s2;%% Assign a date that is stored in the numeric [%-*@3 scalar].&] +[s3;%% &] +[s4; &] +[s5;:Date`:`:Get`(`)const: [@(0.0.255) int]_[* Get]()_[@(0.0.255) const]&] +[s2;%% Converts the time into a numeric value.&] +[s3; &] +[s4; &] +[s5;:Date`:`:Low`(`): [@(0.0.255) static] [_^Date^ Date]_[* Low]()&] +[s2;%% Returns the lowest possible date (year 4000).&] +[s3; &] +[s4; &] +[s5;:Date`:`:High`(`): [@(0.0.255) static] [_^Date^ Date]_[* High]()&] +[s2;%% Returns the highest possible date (year 4000).&] +[s3; &] +[s0; &] +[s0; &] +[s0; &] +[ {{10000@(113.42.0) [s0;%% [*@7;4 Time]]}}&] +[s3; &] +[s1;:Time`:`:struct: [@(0.0.255)3 struct][3 _][*3 Time][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Date][3 , + ][@(0.0.255)3 public][3 _][*@3;3 RelOps][3 <_][*3 Time][3 , ][_^Moveable^3 Moveable][3 <][*3 Time][3 > +_>_]&] +[s9;%% A simple date time object with up to a second precision.&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] +[s3; &] +[s5;:Time`:`:Time`(`): [* Time]()&] +[s2;%% Default constructor.&] +[s3; &] +[s4; &] +[s5;:Time`:`:Time`(const Nuller`&`): [* Time]([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& +])&] +[s2;%% Construcs an empty time.&] +[s3;%% &] +[s4; &] +[s5;:Time`:`:Time`(int`,int`,int`,int`,int`,int`): [* Time]([@(0.0.255) int]_[*@3 y], +[@(0.0.255) int]_[*@3 m], [@(0.0.255) int]_[*@3 d], [@(0.0.255) int]_[*@3 h]_`=_[@3 0], +[@(0.0.255) int]_[*@3 n]_`=_[@3 0], [@(0.0.255) int]_[*@3 s]_`=_[@3 0])&] +[s2;%% Constructs a time based on [%-*@3 y] [%-*@3 m] [%-*@3 d] [%-*@3 h] +[%-*@3 n] [%-*@3 s].&] +[s3;%% &] +[s4; &] +[s5;:Time`:`:Time`(FileTime`): [* Time]([_^FileTime^ FileTime]_[*@3 filetime])&] +[s2;%% Constructs based on a platform specific [%-*@3 filetime].&] +[s3;%% &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] +[s3; &] +[s5;:Time`:`:hour: [_^byte^ byte]_[* hour]&] +[s2;%% Hour.&] +[s3; &] +[s4; &] +[s5;:Time`:`:minute: [_^byte^ byte]_[* minute]&] +[s2;%% Minute.&] +[s3; &] +[s4; &] +[s5;:Time`:`:second: [_^byte^ byte]_[* second]&] +[s2;%% Second.&] +[s3; &] +[s4; &] +[s5;:Time`:`:High`(`): [@(0.0.255) virtual] [@(0.0.255) static] [_^Time^ Time]_[* High]()&] +[s2;%% Returns the highest possible time (year 4000).&] +[s3; &] +[s4; &] +[s5;:Time`:`:Low`(`): [@(0.0.255) virtual] [@(0.0.255) static] [_^Time^ Time]_[* Low]()&] +[s2;%% Returns the lowest possible time (year `-4000).&] +[s3; &] +[s4; &] +[s5;:Time`:`:Set`(int64`): [@(0.0.255) void]_[* Set]([_^int64^ int64]_[*@3 scalar])&] +[s2;%% Assign a time that is stored in the numeric [%-*@3 scalar].&] +[s3;%% &] +[s4; &] +[s5;:Time`:`:Get`(`)const: [@(0.0.255) virtual] [_^int64^ int64]_[* Get]()_[@(0.0.255) const]&] +[s2;%% Converts the time into a numeric value.&] +[s3; &] +[s4; &] +[s5;:Time`:`:AsFileTime`(`)const: [_^FileTime^ FileTime]_[* AsFileTime]()_[@(0.0.255) const +]&] +[s2;%% Converst the time into a system specific value.&] +[s3; &] +[s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp b/uppsrc/Core/src.tpp/PtePtr$en-us.tpp index 70003c865..b21cde72c 100644 --- a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp +++ b/uppsrc/Core/src.tpp/PtePtr$en-us.tpp @@ -11,7 +11,6 @@ topic "Ptr and Pte"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&] -[s3; &] [s9; Ptr and Pte class templates provide a smart pointer system that cleared (assigned NULL) when pointed object is destructed. That makes it useful in situations where life`-time of object cannot @@ -24,7 +23,10 @@ class bases, with the derived class as its parameter, e.g.:&] [s0; [C+75 struct Foo : Pte `{....]&] [s3; &] [s0; &] +[s0; &] +[s0; &] [ {{10000@(113.42.0) [s0; [*@7;4 Pte]]}}&] +[s3;%- &] [s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] [s1;:Pte`:`:class:%- [@(0.0.255) class]_[* Pte]_:_[@(0.0.255) public]_[*@3 PteBase]&] [s0; &] @@ -36,7 +38,10 @@ pointed object. &] teBase]&] [s3; &] [s0;%- &] +[s0;%- &] +[s0;%- &] [ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&] +[s3;%- &] [s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] [s1;:Ptr`:`:class:%- [@(0.0.255) class]_[* Ptr]_:_[@(0.0.255) public]_[*@3 PtrBase], [@(0.0.255) private]_[*@3 Moveable][@(0.0.255) <]_[* Ptr][@(0.0.255) <][*@4 T][@(0.0.255) >]_>_ diff --git a/uppsrc/Core/src.tpp/Stream$en-us.tpp b/uppsrc/Core/src.tpp/Stream$en-us.tpp index 96f8335f9..d36aede4e 100644 --- a/uppsrc/Core/src.tpp/Stream$en-us.tpp +++ b/uppsrc/Core/src.tpp/Stream$en-us.tpp @@ -1159,128 +1159,188 @@ and specific POSIX access rights.&] [s3; &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s5;K%- [@(0.0.255) class][@(64) _]FileIn[@(64) _:_][@(0.0.255) public][@(64) _][^`:`:FileStream^@(64) F +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 FileIn]]}}&] +[s3; &] +[s1;:FileIn`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileIn][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Fi +leStream]&] +[s9; Simple helper class that represents FileStream in read mode.&] +[s0; &] +[s9;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F ileStream]&] -[s2; &] -[s2; Simple helper class that represents FileStream in read mode.&] -[s2; &] -[s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F -ileStream]&] -[s0;3 &] -[s0;:`:`:FileIn`:`:FileIn`(const char`*`):%- [* FileIn](const_char_`*[*@3 fn])&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:FileIn`:`:FileIn`(const char`*`):%- [* FileIn]([@(0.0.255) const]_[@(0.0.255) char]_`* +[*@3 fn])&] [s2; Opens file for reading.&] [s7; [%-*C@3 fn]-|File name.&] -[s0;3 &] -[s0;:`:`:FileIn`:`:FileIn`(`):%- [* FileIn]()&] +[s3; &] +[s4;%- &] +[s5;:FileIn`:`:FileIn`(`):%- [* FileIn]()&] [s2; Constructs empty FileStream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]Open[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _ -`*][@3 fn][@(64) )]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:FileIn`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] [s2; Opens file for reading.&] [s7; [%-*C@3 fn]-|File name.&] [s7; [*/ Return value]-|True if open was successful.&] +[s3; &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0;3 &] -[s5;K%- [@(0.0.255) class][@(64) _]FileOut[@(64) _:_][@(0.0.255) public][@(64) _][^`:`:FileStream^@(64) F +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 FileOut]]}}&] +[s3; &] +[s1;:FileOut`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileOut][3 _:_][@(0.0.255)3 public][3 _][*@3;3 F ileStream]&] -[s2; &] -[s2; Simple helper class that represents FileStream in write mode.&] +[s9; Simple helper class that represents FileStream in write mode.&] [s2; &] [s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:FileStream`:`:class FileStream^ F ileStream]&] -[s0;3 &] -[s0;:`:`:FileOut`:`:FileOut`(const char`*`):%- [* FileOut](const_char_`*[*@3 fn])&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3;%- &] +[s5;:FileOut`:`:FileOut`(const char`*`):%- [* FileOut]([@(0.0.255) const]_[@(0.0.255) char]_ +`*[*@3 fn])&] [s2; Opens file for writing.&] [s7; [%-*C@3 fn]-|File name.&] -[s0;3 &] -[s0;:`:`:FileOut`:`:FileOut`(`):%- [* FileOut]()&] +[s3; &] +[s4;%- &] +[s5;:FileOut`:`:FileOut`(`):%- [* FileOut]()&] [s2;%- Constructs non`-opened FileStream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]Open[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _ -`*][@3 fn][@(64) , ][^mode`_t^@(64) mode`_t][@(64) _][@3 acm][@(64) _`=_][@3 0644][@(64) )]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:FileOut`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] [s2; Opens file for writing.&] [s7; [%-*C@3 fn]-|File name.&] [s7; [*/ Return value]-|True if open was successful.&] +[s3; &] +[s4;%- &] +[s5;:FileOut`:`:Open`(const char`*`,mode`_t`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) con +st]_[@(0.0.255) char]_`*[*@3 fn], mode`_t_[*@3 acm]_`=_[@3 0644])&] +[s2; Opens file for writing.&] +[s6; POSIX specific&] +[s7; [%-*C@3 fn]-|File name.&] +[s7;%- [*@3 acm][@3 -|]File mode&] +[s2; [*/ Return value]-|True if open was successful.&] +[s3; &] +[s0; &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0;3 &] -[s5;K%- [@(0.0.255) class][@(64) _]FileAppend[@(64) _:_][@(0.0.255) public][@(64) _][^`:`:FileStream^@(64) F -ileStream]&] -[s2; &] -[s2; Simple helper class that represents FileStream in append mode +[ {{10000@(113.42.0) [s0; [*@7;4 FileAppend]]}}&] +[s3; &] +[s1;:FileAppend`:`:class:%- [@(0.0.255)3 class][3 _][*3 FileAppend][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 FileStream]&] +[s9; Simple helper class that represents FileStream in append mode `- that in fact means in write mode with current position at the end of the file.&] [s2; &] [s0;%- [%%/ Derived from][%% ]FileStream&] -[s0;3 &] -[s0;:`:`:FileAppend`:`:FileAppend`(const char`*`):%- [* FileAppend](const_char_`*[*@3 fn]) -&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s5;:FileAppend`:`:FileAppend`(const char`*`):%- [* FileAppend]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] [s2; Opens file in append mode.&] [s7; [%-*C@3 fn]-|File name.&] -[s0;3 &] -[s0;:`:`:FileAppend`:`:FileAppend`(`):%- [* FileAppend]()&] +[s3; &] +[s4;%- &] +[s5;:FileAppend`:`:FileAppend`(`):%- [* FileAppend]()&] [s2; Constructs empty FileStream.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]Open[@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _ -`*][@3 fn][@(64) )]&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:FileAppend`:`:Open`(const char`*`):%- [@(0.0.255) bool]_[* Open]([@(0.0.255) const]_[@(0.0.255) c +har]_`*[*@3 fn])&] [s2; Opens file in append mode.&] [s7; [%-*C@3 fn]-|File name.&] [s7; [*/ Return value]-|true when Open was successful.&] +[s3; &] [s0;3 &] [s0;3 &] -[s0;3 &] -[s0;3 &] -[s5;K%- [@(0.0.255) class][@(64) _]SizeStream[@(64) _:_][@(0.0.255) public][@(64) _][^`:`:Stream^@(64) S -tream]&] -[s2; &] -[s2; Special output stream that in fact does not store output data, +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 SizeStream]]}}&] +[s3; &] +[s1;:SizeStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 SizeStream][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Stream]&] +[s9; Special output stream that in fact does not store output data, only counts the total number of bytes written.&] [s2; &] [s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B ufferStream]&] -[s0;3 &] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] [s0;:`:`:SizeStream`:`:SizeStream`(`):%- [* SizeStream]()&] -[s2; Constructor `- co&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]`_Put[@(64) (][@(0.0.255) int][@(64) _][@3 w][@(64) )]&] -[s7; [*/ Return value]-|Current number of bytes written.&] -[s0;3 &] -[s5;K%- [@(0.0.255) void][@(64) _]Open[@(64) ()]&] +[s2; Default constructor.&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:SizeStream`:`:`_Put`(int`):%- [@(0.0.255) virtual] [@(0.0.255) void]_[* `_Put]([@(0.0.255) i +nt]_[*@3 w])&] +[s7; Return value-|Current number of bytes written.&] +[s3; &] +[s4;%- &] +[s5;:SizeStream`:`:Open`(`):%- [@(0.0.255) void]_[* Open]()&] [s2; Reopens data `- resets the counter of output bytes.&] +[s3; &] +[s4;%- &] +[s5;:SizeStream`:`:operator int64`(`)const:%- [* operator_int64]()_[@(0.0.255) const]&] +[s2; Returns current number of bytes written.&] +[s3;%- &] +[s0; &] [s0;3 &] -[s0;3 &] -[s0;3 &] -[s0;3 &] -[s5;K%- [@(0.0.255) class][@(64) _]CompareStream[@(64) _:_][@(0.0.255) public][@(64) _][^`:`:Stream^@(64) S -tream]&] -[s2; &] -[s2; Special output stream that instead of storing data performs +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 CompareStream]]}}&] +[s3; &] +[s1;:CompareStream`:`:class:%- [@(0.0.255)3 class][3 _][*3 CompareStream][3 _:_][@(0.0.255)3 pub +lic][3 _][*@3;3 Stream]&] +[s9; Special output stream that instead of storing data performs their comparison to the data of another stream.&] [s2; &] [s0;%- [%%/ Derived from][%% ][^topic`:`/`/Core`/src`/Stream`$en`-us`#`:`:BufferStream`:`:class BufferStream^ B ufferStream]&] -[s0;3 &] -[s0;:`:`:CompareStream`:`:CompareStream`(`):%- [* CompareStream]()&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&] +[s3; &] +[s0;:CompareStream`:`:CompareStream`(`):%- [* CompareStream]()&] [s2; Constructs closed CompareStream.&] -[s0;3 &] -[s0;:`:`:CompareStream`:`:CompareStream`(`:`:Stream`&`):%- [* CompareStream](Stream`&_[*@3 a -Stream])&] +[s3; &] +[s4;%- &] +[s5;:CompareStream`:`:CompareStream`(Stream`&`):%- [* CompareStream]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 aStream])&] [s2; Constructors CompareStream opened for comparison with specified stream.&] [s7; [%-*C@3 aStream]-|Stream to compare with.&] -[s0;3 &] -[s5;K%- virtual [@(0.0.255) void][@(64) _]`_Put[@(64) (][@(0.0.255) int][@(64) _][@3 w][@(64) )]&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3; &] +[s5;:CompareStream`:`:Open`(Stream`&`):%- [@(0.0.255) void]_[* Open]([_^Stream^ Stream][@(0.0.255) `& +]_[*@3 aStream])&] [s2; Opens CompareStream for comparison with the specified stream.&] [s7; [%-*C@3 aStream]-|Stream to compare with.&] -[s0;3 &] -[s5;K%- [@(0.0.255) bool][@(64) _]IsEqual[@(64) ()]&] -[s7; [*/ Return value]-|true if all bytes written so far match those -in comparison stream.&] -[s0;3 &] -[s5;K%- operator_[@(0.0.255) bool][@(64) ()]&] -[s7; [*/ Return value]-|IsEqual().&] +[s3; &] +[s4;%- &] +[s5;:CompareStream`:`:IsEqual`(`):%- [@(0.0.255) bool]_[* IsEqual]()&] +[s7; Return value-|true if all bytes written so far match those in +comparison stream.&] +[s3; &] +[s4;%- &] +[s5;:CompareStream`:`:operator bool`(`):%- [* operator_bool]()&] +[s7; Return value-|IsEqual().&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/StringBuffer$en-us.tpp b/uppsrc/Core/src.tpp/StringBuffer$en-us.tpp index 3b59997c7..c6d40ced6 100644 --- a/uppsrc/Core/src.tpp/StringBuffer$en-us.tpp +++ b/uppsrc/Core/src.tpp/StringBuffer$en-us.tpp @@ -10,10 +10,13 @@ topic "StringBuffer and WStringBuffer"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s1;%% [@3;4 StringBuffer]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 StringBuffer]]}}&] +[s3;%% &] [s1;:StringBuffer`:`:class: [@(0.0.255)3 class][3 _][*3 StringBuffer][3 _:_][@(0.0.255)3 private ][3 _][*@3;3 NoCopy]&] -[s0;%% &] +[s9;%% A class useful when working with code that expects a character +buffer, like C code. It supports constant time pick assignment +to and from [* String].&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] @@ -114,11 +117,14 @@ Clears [%-*@3 s].&] [s0; &] [s0; &] [s0; &] -[s1;%% [@3;4 WStringBuffer]&] +[ {{10000@(113.42.0) [s0;%% [*@7;4 WStringBuffer]]}}&] +[s3; &] [s1;:WStringBuffer`:`:class: [@(0.0.255)3 class][3 _][*3 WStringBuffer][3 _:_][@(0.0.255)3 priva te][3 _][*@3;3 NoCopy]&] -[s3;%% &] -[s0; &] +[s9;%% A class useful when working with code that expects a wide +character buffer, like C code. It supports constant time pick +assignment to and from W[* String].&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&] [s3; &] diff --git a/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp b/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp index ac654a7d8..c99b748c7 100644 --- a/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp +++ b/uppsrc/Core/src.tpp/XmlOutput$en-us.tpp @@ -81,7 +81,7 @@ _[@(0.0.255) false])&] XML entities (like `'[@(128.0.255) `<]`') while converting it to UTF`-8. If [*@3 escapelf].is true, `'`\n`' is escaped as `'[@(128.0.255) `&#x%0a;]`' .&] -[s0;i448;a25;kKO9;_ &] +[s3; &] [s4; &] [s5;:XmlHeader`(const char`*`,const char`*`,const char`*`): [_^String^ String]_[* XmlHead er]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 encoding]_`=_`"UTF[@(0.0.255) `-][@3 8]`", diff --git a/uppsrc/CtrlLib/src.tpp/BarCtrl$en-us.tpp b/uppsrc/CtrlLib/src.tpp/BarCtrl$en-us.tpp index 9ad23dfe0..841396c03 100644 --- a/uppsrc/CtrlLib/src.tpp/BarCtrl$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/BarCtrl$en-us.tpp @@ -89,4 +89,4 @@ wrap mode is active, 0 `- wrap is active for frame BarCtrl, `-1 [s5;:BarCtrl`:`:NoWrap`(`): [_^BarCtrl^ BarCtrl][@(0.0.255) `&]_[* NoWrap]()&] [s2;%% Same as Wrap(`-1).&] [s3;%% &] -[s0;%% ] \ No newline at end of file +[s0; ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/ButtonOption$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ButtonOption$en-us.tpp index c0c83ca28..0ea142df3 100644 --- a/uppsrc/CtrlLib/src.tpp/ButtonOption$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ButtonOption$en-us.tpp @@ -104,7 +104,7 @@ Style]()&] Returns `*this for chaining.&] [s3;%- &] [s0; &] -[s3;%- &] +[s0;%- &] [s0;%- &] [ {{10000@3 [s0; [*@(229)4 ButtonOption`::Style]]}}&] [s3; &] diff --git a/uppsrc/CtrlLib/src.tpp/ColorPopUp$en-us.tpp b/uppsrc/CtrlLib/src.tpp/ColorPopUp$en-us.tpp index df31df32c..402aeb581 100644 --- a/uppsrc/CtrlLib/src.tpp/ColorPopUp$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/ColorPopUp$en-us.tpp @@ -12,6 +12,8 @@ topic "Color widgets"; [{_}%EN-US [ {{10000@3 [s0; [*@(229)4 ColorPopUp]]}}&] [s3;%- &] +[s1;:ColorPopUp`:`:class:%- [@(0.0.255)3 class][3 _][*3 ColorPopUp][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 Ctrl]&] [s9; This class implements pop`-up window for color`-selection.&] [s0; &] [s2; diff --git a/uppsrc/CtrlLib/src.tpp/FileSelUtil$en-us.tpp b/uppsrc/CtrlLib/src.tpp/FileSelUtil$en-us.tpp index 057aa7d39..b7524388d 100644 --- a/uppsrc/CtrlLib/src.tpp/FileSelUtil$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/FileSelUtil$en-us.tpp @@ -9,65 +9,71 @@ topic "FileSel utilities"; [l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 FileSel based utility functions]]}}&] -[s0;i448;a25;kKO9;@(0.0.255) &] -[s0;%% These functions simplify opening files using single global -file`-selector. The configuration of file`-selector is stored -into [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us^ global -configuration].&] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Function List]]}}&] -[s4;H0; &] -[s5;:SelectFileOpen`(const char`*`): [_^String^ String]_[* SelectFileOpen]([@(0.0.255) cons -t]_[@(0.0.255) char]_`*[*@3 types])&] -[s2;%% Selects file for opening, [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 FileSel based utility functions]]}}&] +[s9; These functions simplify opening files using single global file`-selector. +The configuration of file`-selector is stored into [^topic`:`/`/Core`/src`/SerializationUtils`$en`-us^ g +lobal configuration].&] +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Function List]]}}&] +[s3;%- &] +[s5;:SelectFileOpen`(const char`*`):%- [_^String^ String]_[* SelectFileOpen]([@(0.0.255) co +nst]_[@(0.0.255) char]_`*[*@3 types])&] +[s2; Selects file for opening, [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T ypes] method of FileSel. If selections is canceled, returns empty String.&] -[s3;%% &] -[s4;%% &] -[s5;:SelectFileSaveAs`(const char`*`): [_^String^ String]_[* SelectFileSaveAs]([@(0.0.255) c +[s3; &] +[s4; &] +[s5;:SelectFileSaveAs`(const char`*`):%- [_^String^ String]_[* SelectFileSaveAs]([@(0.0.255) c onst]_[@(0.0.255) char]_`*[*@3 types])&] -[s2;%% Selects file for saving, [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T +[s2; Selects file for saving, [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T ypes] method of FileSel. If selections is canceled, returns empty String.&] -[s3;%% &] -[s4;%% &] -[s5;:SelectLoadFile`(const char`*`): [_^String^ String]_[* SelectLoadFile]([@(0.0.255) cons -t]_[@(0.0.255) char]_`*[*@3 types])&] -[s2;%% Selects file and loads it, [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T +[s3; &] +[s4; &] +[s5;:SelectLoadFile`(const char`*`):%- [_^String^ String]_[* SelectLoadFile]([@(0.0.255) co +nst]_[@(0.0.255) char]_`*[*@3 types])&] +[s2; Selects file and loads it, [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T ypes] method of FileSel. If selections is canceled or file cannot be opened, returns empty String`::GetVoid().&] -[s3;%% &] -[s4;%% &] -[s5;:SelectSaveFile`(const char`*`,const String`&`): [@(0.0.255) bool]_[* SelectSaveFile]( -[@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 types], [@(0.0.255) const]_[_^String^ String][@(0.0.255) `& -]_[*@3 data])&] -[s2;%% Selects file and saves [%-*@3 data] to it, [%-*@3 types] follow +[s3; &] +[s4; &] +[s5;:SelectSaveFile`(const char`*`,const String`&`):%- [@(0.0.255) bool]_[* SelectSaveFil +e]([@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 types], [@(0.0.255) const]_[_^String^ String +][@(0.0.255) `&]_[*@3 data])&] +[s2; Selects file and saves [%-*@3 data] to it, [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T ypes] method of FileSel. Returns true on success.&] -[s0; &] -[ {{10000@(113.42.0) [s0;%% [*@2 SelectFileIn class]]}}&] -[s0; &] -[s0; This class inherits FileIn. Its constructor invokes global FileSel -and opens selected file for reading:&] -[s4;H0; &] -[s5;:SelectFileIn`:`:SelectFileIn`(const char`*`): [* SelectFileIn]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 types])&] -[s2;%% [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T -ypes] method of FileSel. In case of any failure (selection is -canceled, open fails), the resulting object is not in opened -state (can be tested using operator bool).&] -[s0; &] -[ {{10000@(113.42.0) [s0;%% [*@2 SelectFileOut class]]}}&] -[s0; &] -[s0; This class inherits FileOut. Its constructor invokes global -FileSel and opens selected file for writing:&] -[s0; &] -[s5;:SelectFileOut`:`:SelectFileOut`(const char`*`): [* SelectFileOut]([@(0.0.255) const]_ +[s3;%- &] +[s0;%- &] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@2 SelectFileIn class]]}}&] +[s9;%- This class inherits FileIn. Its constructor invokes global +FileSel and opens selected file for reading:&] +[s3;%- &] +[s0;%- &] +[s5;:SelectFileIn`:`:SelectFileIn`(const char`*`):%- [* SelectFileIn]([@(0.0.255) const]_ [@(0.0.255) char]_`*[*@3 types])&] -[s2;%% [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T +[s2; [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T ypes] method of FileSel. In case of any failure (selection is canceled, open fails), the resulting object is not in opened state (can be tested using operator bool).&] -[s0; ] \ No newline at end of file +[s3;%- &] +[s0;%- &] +[s0;%- &] +[s0;%- &] +[ {{10000@(113.42.0) [s0; [*@2 SelectFileOut class]]}}&] +[s9;%- This class inherits FileOut. Its constructor invokes global +FileSel and opens selected file for writing:&] +[s3;%- &] +[s0;%- &] +[s5;:SelectFileOut`:`:SelectFileOut`(const char`*`):%- [* SelectFileOut]([@(0.0.255) cons +t]_[@(0.0.255) char]_`*[*@3 types])&] +[s2; [%-*@3 types] follow rules of [^topic`:`/`/CtrlLib`/src`/FileSel`$en`-us`#FileSel`:`:Types`(const char`*`)^ T +ypes] method of FileSel. In case of any failure (selection is +canceled, open fails), the resulting object is not in opened +state (can be tested using operator bool).&] +[s3;%- &] +[s0;%- ] \ No newline at end of file diff --git a/uppsrc/CtrlLib/src.tpp/LineEdit$en-us.tpp b/uppsrc/CtrlLib/src.tpp/LineEdit$en-us.tpp index 4f0b18f38..c94379905 100644 --- a/uppsrc/CtrlLib/src.tpp/LineEdit$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/LineEdit$en-us.tpp @@ -14,7 +14,7 @@ topic "LineEdit"; [s3; &] [s1;:LineEdit`:`:class: [@(0.0.255)3 class][3 _][*3 LineEdit][3 _:_][@(0.0.255)3 public][3 _][*@3;3 T extCtrl]&] -[s9;%% &] +[s9;%% A widget used to edit a line of a document one at a time.&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Protected Method List]]}}&] diff --git a/uppsrc/Draw/src.tpp/DataDrawer$en-us.tpp b/uppsrc/Draw/src.tpp/DataDrawer$en-us.tpp index a7dc53ff0..0c9087538 100644 --- a/uppsrc/Draw/src.tpp/DataDrawer$en-us.tpp +++ b/uppsrc/Draw/src.tpp/DataDrawer$en-us.tpp @@ -11,23 +11,23 @@ topic "DataDrawer"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0;%- [*@7;4 DataDrawer]]}}&] -[s0;i448;a25;kKO9;@(0.0.255)%- &] +[s3;%- &] [s1;:DataDrawer`:`:class:%- [@(0.0.255)3 class][3 _][*3 DataDrawer]&] -[s2; This abstract class provides the ability to render the binary +[s9; This abstract class provides the ability to render the binary data of specific type into Draw output. Each type of binary data has assigned id, which is used in the call to Draw`::DrawData method, to this id there is corresponding registered (using DataDrawer`::Register) class of DataDrawer. Draw`::DrawData creates and instance of this class and uses it to render the binary data as one or more ImageBuffer pixel arrays.&] -[s2; &] -[s2; Draw package predefines DataDrawer registered with id `"image`_data`". +[s9; Draw package predefines DataDrawer registered with id `"image`_data`". This represents Image binary encoded with any encoding supported by actually included image format plugins like plugin/bmp or plugin/jpg.&] -[s2; &] +[s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s4;H0;%- &] +[s3;%- &] [s5;:DataDrawer`:`:Open`(const String`&`,int`,int`):%- [*@(0.0.255) virtual][* ][*@(0.0.255) void][* _Open]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 data], [@(0.0.255) int]_[*@3 cx], [@(0.0.255) int]_[*@3 cy])_`=_[@3 0]&] diff --git a/uppsrc/Draw/src.tpp/Display$en-us.tpp b/uppsrc/Draw/src.tpp/Display$en-us.tpp index 22489450f..72546d81f 100644 --- a/uppsrc/Draw/src.tpp/Display$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Display$en-us.tpp @@ -1,23 +1,25 @@ topic "Display"; [2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[0 $$7,0#96390100711032703541132217272105:end] -[H6;0 $$8,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0; [*@7;4 Display]]}}&] -[s8;H0;%- &] -[s1;:Display`:`:class:%- [@(0.0.255) class][@0 _Display]&] -[s2; Display and Display`-derived classes render Value into the specified +[s3;%- &] +[s1;:Display`:`:class:%- [@(0.0.255) class]_Display&] +[s9; Display and Display`-derived classes render Value into the specified rectangular area. References to Displays are used in many widgets as attributes affecting the rendering of widget Values. Default implementation uses StdDisplay to perform all actions (see below for StdDisplay description).&] -[s2; &] +[s3; &] +[s0; &] [s0; [* Visual style constants ]are used as `"style`" parameter bit flags of rendering methods and provide additional information about required visual appearance:&] @@ -28,32 +30,32 @@ focus.&] [s0;l288;:Display`:`:SELECT:~~~.1408;%- [* SELECT]-|Gui element is selected.&] [s0;l288;:Display`:`:READONLY:~~~.1408;%- [* READONLY]-|Gui element is read`-only.&] -[s7;%- &] -[s8;%- &] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] [s5;:Display`:`:Paint`(Draw`&`,const Rect`&`,const Value`&`,Color`,Color`,dword`)const:%- [@(0.0.255) v -irtual][@0 ][@(0.0.255) void][@0 _Paint(][_^Draw^@0 Draw][@(0.0.255) `&][@0 _][@3 w][@0 , -][@(0.0.255) const][@0 _][_^Rect^@0 Rect][@(0.0.255) `&][@0 _][@3 r][@0 , ][@(0.0.255) const][@0 _][_^Value^@0 V -alue][@(0.0.255) `&][@0 _][@3 q][@0 , ][_^Color^@0 Color][@0 _][@3 ink][@0 , -][_^Color^@0 Color][@0 _][@3 paper][@0 , ][_^dword^@0 dword][@0 _][@3 style][@0 )_][@(0.0.255) cons -t]&] +irtual] [@(0.0.255) void]_Paint([_^Draw^ Draw][@(0.0.255) `&]_[@3 w], +[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[@3 r], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& +]_[@3 q], [_^Color^ Color]_[@3 ink], [_^Color^ Color]_[@3 paper], [_^dword^ dword]_[@3 style])_ +[@(0.0.255) const]&] [s2; This virtual method is used to paint rectangle content according to specified Value. Note that it is OK for derived class to understand just Value types it was designed for (and crash otherwise) `- it is client code responsibility to use the correct Display.&] -[s4; [%-*C@3 w]-|Draw.&] -[s4; [%-*C@3 r]-|Target rectangle.&] -[s4; [%-*C@3 q]-|Value to be painted.&] -[s4; [%-*C@3 ink]-|Suggested foreground color.&] -[s4; [%-*C@3 paper]-|Suggested background color.&] -[s4; [%-*C@3 style]-|Visual style.&] -[s7;%- &] -[s8;%- &] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 r]-|Target rectangle.&] +[s7; [%-*C@3 q]-|Value to be painted.&] +[s7; [%-*C@3 ink]-|Suggested foreground color.&] +[s7; [%-*C@3 paper]-|Suggested background color.&] +[s7; [%-*C@3 style]-|Visual style.&] +[s3;%- &] +[s4;%- &] [s5;:Display`:`:PaintBackground`(Draw`&`,const Rect`&`,const Value`&`,Color`,Color`,dword`)const:%- [@(0.0.255) v -irtual][@0 ][@(0.0.255) void][@0 _PaintBackground(][_^Draw^@0 Draw][@(0.0.255) `&][@0 _][@3 w][@0 , - ][@(0.0.255) const][@0 _][_^Rect^@0 Rect][@(0.0.255) `&][@0 _][@3 r][@0 , -][@(0.0.255) const][@0 _][_^Value^@0 Value][@(0.0.255) `&][@0 _][@3 q][@0 , -][_^Color^@0 Color][@0 _][@3 ink][@0 , ][_^Color^@0 Color][@0 _][@3 paper][@0 , -][_^dword^@0 dword][@0 _][@3 style][@0 )_][@(0.0.255) const]&] +irtual] [@(0.0.255) void]_PaintBackground([_^Draw^ Draw][@(0.0.255) `&]_[@3 w], +[@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `&]_[@3 r], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& +]_[@3 q], [_^Color^ Color]_[@3 ink], [_^Color^ Color]_[@3 paper], [_^dword^ dword]_[@3 style])_ +[@(0.0.255) const]&] [s2; This virtual method is used to paint areas of GUI element that are outside of rectangle specified in Paint method, but should have color related somewhat to current Display class `- usually @@ -61,168 +63,172 @@ this color is the same as background painted in Paint. (Note that Paint method must clear the background separately, although base Display class is defined to use PaintBackground for this task).&] -[s4; [%-*C@3 w]-|Draw.&] -[s4; [%-*C@3 r]-|Target rectangle.&] -[s4; [%-*C@3 q]-|Value to be painted.&] -[s4; [%-*C@3 ink]-|Suggested foreground color.&] -[s4; [%-*C@3 paper]-|Suggested background color.&] -[s4; [%-*C@3 style]-|Visual style.&] -[s7;%- &] -[s8;%- &] -[s5;:Display`:`:GetStdSize`(const Value`&`)const:%- [@(0.0.255) virtual][@0 -][_^Size^@0 Size][@0 _GetStdSize(][@(0.0.255) const][@0 _][_^Value^@0 Value][@(0.0.255) `&][@0 _ -][@3 q][@0 )_][@(0.0.255) const]&] +[s7; [%-*C@3 w]-|Draw.&] +[s7; [%-*C@3 r]-|Target rectangle.&] +[s7; [%-*C@3 q]-|Value to be painted.&] +[s7; [%-*C@3 ink]-|Suggested foreground color.&] +[s7; [%-*C@3 paper]-|Suggested background color.&] +[s7; [%-*C@3 style]-|Visual style.&] +[s3;%- &] +[s4;%- &] +[s5;:Display`:`:GetStdSize`(const Value`&`)const:%- [@(0.0.255) virtual] +[_^Size^ Size]_GetStdSize([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[@3 q])_[@(0.0.255) c +onst]&] [s2; Should return standard size for given value and Display. E.g. if Display is rendering Images, it should return the Size of the Image in pixels. Base Display returns the size of textual representation of the Value.&] -[s4; [%-*C@3 q]-|Value.&] -[s4; [*/ Return value]-|Size of Value for Display.&] -[s7;%- &] -[s8;%- &] -[s5;:Display`:`:RatioSize`(const Value`&`,int`,int`)const:%- [@(0.0.255) virtual][@0 -][_^Size^@0 Size][@0 _RatioSize(][@(0.0.255) const][@0 _][_^Value^@0 Value][@(0.0.255) `&][@0 _ -][@3 q][@0 , ][@(0.0.255) int][@0 _][@3 cx][@0 , ][@(0.0.255) int][@0 _][@3 cy][@0 )_][@(0.0.255) const -]&] +[s7; [%-*C@3 q]-|Value.&] +[s7; [*/ Return value]-|Size of Value for Display.&] +[s3;%- &] +[s4;%- &] +[s5;:Display`:`:RatioSize`(const Value`&`,int`,int`)const:%- [@(0.0.255) virtual] +[_^Size^ Size]_RatioSize([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[@3 q], +[@(0.0.255) int]_[@3 cx], [@(0.0.255) int]_[@3 cy])_[@(0.0.255) const]&] [s2; Returns size for defined value keeping the aspect ratio.&] -[s4; [%-*C@3 q]-|Value.&] -[s4; [%-*C@3 cx]-|Required width. If zero, it should be computed to +[s7; [%-*C@3 q]-|Value.&] +[s7; [%-*C@3 cx]-|Required width. If zero, it should be computed to keep aspect ratio with cy.&] -[s4; [%-*C@3 cy]-|Required height. If zero, it should be computed to +[s7; [%-*C@3 cy]-|Required height. If zero, it should be computed to keep aspect ratio with cx.&] -[s4; [*/ Return value]-|Size of Value for Display.&] +[s7; [*/ Return value]-|Size of Value for Display.&] +[s3; &] +[s0; &] [s0; &] [s0;%- &] [ {{10000t/25b/25@3 [s0;%- [*@(229)4 AttrText]]}}&] -[s0; &] -[s8;H0;%- &] -[s1;:AttrText`:`:struct:%- [@(0.0.255) struct][@0 _AttrText]&] -[s2; Simple helper class convertible to the Value. StdDisplay, StdRightDisplay +[s3; &] +[s1;:AttrText`:`:struct:%- [@(0.0.255) struct]_AttrText&] +[s9; Simple helper class convertible to the Value. StdDisplay, StdRightDisplay and StdCenterDisplay detect whether Value passed in is of AttrText type and handle it differently by adopting non`-null attributes for the text painted.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:text:%- [_^WString^@0 WString][@0 _text]&] +[s3;%- &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Member List]]}}&] +[s3;%- &] +[s5;:AttrText`:`:text:%- [_^WString^ WString]_text&] [s2; Text to be displayed.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:font:%- [_^Font^@0 Font][@0 _font]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:font:%- [_^Font^ Font]_font&] [s2; Font of text.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:ink:%- [_^Color^@0 Color][@0 _ink]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:ink:%- [_^Color^ Color]_ink&] [s2; Text color.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:paper:%- [_^Color^@0 Color][@0 _paper]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:paper:%- [_^Color^ Color]_paper&] [s2; Background color&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:align:%- [@(0.0.255) int][@0 _align]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:align:%- [@(0.0.255) int]_align&] [s2; Current alignment. Can be one of ALIGN`_LEFT, ALIGN`_RIGHT, ALIGN`_CENTER.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:img:%- [_^Image^@0 Image][@0 _img]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:img:%- [_^Image^ Image]_img&] [s2; Icon aligned to the left side.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:imgspc:%- [@(0.0.255) int][@0 _imgspc]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:imgspc:%- [@(0.0.255) int]_imgspc&] [s2; Space between icon and text.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:Set`(const char`*`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Set(][@(0.0.255) c -onst][@0 _][@(0.0.255) char][@0 _`*][@3 s][@0 )]&] -[s5;:AttrText`:`:Set`(const wchar`*`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Set(][@(0.0.255) c -onst][@0 _][_^wchar^@0 wchar][@0 _`*][@3 s][@0 )]&] -[s5;:AttrText`:`:Set`(const WString`&`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Set( -][@(0.0.255) const][@0 _][_^WString^@0 WString][@(0.0.255) `&][@0 _][@3 s][@0 )]&] -[s5;:AttrText`:`:operator`=`(const char`*`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _ -operator`=(][@(0.0.255) const][@0 _][@(0.0.255) char][@0 _`*][@3 s][@0 )]&] -[s5;:AttrText`:`:operator`=`(const wchar`*`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _ -operator`=(][@(0.0.255) const][@0 _][_^wchar^@0 wchar][@0 _`*][@3 s][@0 )]&] -[s5;:AttrText`:`:operator`=`(const WString`&`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _ -operator`=(][@(0.0.255) const][@0 _][_^WString^@0 WString][@(0.0.255) `&][@0 _][@3 s][@0 )]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:Set`(const char`*`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Set([@(0.0.255) c +onst]_[@(0.0.255) char]_`*[@3 s])&] +[s5;:AttrText`:`:Set`(const wchar`*`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Set([@(0.0.255) c +onst]_[_^wchar^ wchar]_`*[@3 s])&] +[s5;:AttrText`:`:Set`(const WString`&`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Set([@(0.0.255) c +onst]_[_^WString^ WString][@(0.0.255) `&]_[@3 s])&] +[s5;:AttrText`:`:operator`=`(const char`*`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_oper +ator`=([@(0.0.255) const]_[@(0.0.255) char]_`*[@3 s])&] +[s5;:AttrText`:`:operator`=`(const wchar`*`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_ope +rator`=([@(0.0.255) const]_[_^wchar^ wchar]_`*[@3 s])&] +[s5;:AttrText`:`:operator`=`(const WString`&`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_o +perator`=([@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[@3 s])&] [s2; Sets the text to [%-*@3 s].&] -[s7; &] -[s8;%- &] -[s5;:AttrText`:`:Ink`(Color`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Ink(][_^Color^@0 C -olor][@0 _][@3 c][@0 )]&] +[s3; &] +[s4;%- &] +[s5;:AttrText`:`:Ink`(Color`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Ink([_^Color^ Color]_ +[@3 c])&] [s2; Sets the text color.&] -[s4; [%-*C@3 c]-|The color.&] -[s4; [*/ Return value]-|`*this.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:Paper`(Color`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Paper(][_^Color^@0 C -olor][@0 _][@3 c][@0 )]&] +[s7; [%-*C@3 c]-|The color.&] +[s7; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:Paper`(Color`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Paper([_^Color^ Co +lor]_[@3 c])&] [s2; Sets the paper color.&] -[s4; [%-*C@3 c]-|The color.&] -[s4; [*/ Return value]-|`*this.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:SetFont`(Font`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _SetFont(][_^Font^@0 F -ont][@0 _][@3 f][@0 )]&] +[s7; [%-*C@3 c]-|The color.&] +[s7; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:SetFont`(Font`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_SetFont([_^Font^ F +ont]_[@3 f])&] [s2; Sets the font.&] -[s4; [%-*C@3 f]-|The font.&] -[s4; [*/ Return value]-|`*this.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:Align`(int`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Align(][@(0.0.255) i -nt][@0 _][@3 a][@0 )]&] +[s7; [%-*C@3 f]-|The font.&] +[s7; [*/ Return value]-|`*this.&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:Align`(int`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Align([@(0.0.255) in +t]_[@3 a])&] [s2; Sets the text horizontal alignment. Approved values are ALIGN`_LEFT, ALIGN`_CENTER and ALIGN`_RIGHT.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:Left`(`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Left()]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:Left`(`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Left()&] [s2; Aligns the text left.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:Center`(`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Center()]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:Center`(`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Center()&] [s2; Aligns the text to the center.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:Right`(`):%- [_^AttrText^@0 AttrText][@(0.0.255) `&][@0 _Right()]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:Right`(`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_Right()&] [s2; Aligns the text right.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:SetImage`(const Image`&`,int`):%- [_^AttrText^@0 AttrText][@(0.0.255) `& -][@0 _SetImage(][@(0.0.255) const][@0 _][_^Image^@0 Image][@(0.0.255) `&][@0 _][@3 m][@0 , -][@(0.0.255) int][@0 _][@3 spc][@0 _`=_][@3 4][@0 )]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:SetImage`(const Image`&`,int`):%- [_^AttrText^ AttrText][@(0.0.255) `&]_ +SetImage([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[@3 m], [@(0.0.255) int]_[@3 spc]_ +`=_[@3 4])&] [s2; Sets the icon and space between the icon and text.&] -[s7; &] -[s8;%- &] -[s5;:AttrText`:`:operator Value`(`)const:%- [@0 operator_Value()_][@(0.0.255) const]&] -[s4; [*/ Return value]-|AttrText as raw Value.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:AttrText`(const char`*`):%- [@0 AttrText(][@(0.0.255) const][@0 _][@(0.0.255) c -har][@0 _`*][@3 text][@0 )]&] +[s3; &] +[s4;%- &] +[s5;:AttrText`:`:operator Value`(`)const:%- operator_Value()_[@(0.0.255) const]&] +[s7; [*/ Return value]-|AttrText as raw Value.&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:AttrText`(const char`*`):%- AttrText([@(0.0.255) const]_[@(0.0.255) char +]_`*[@3 text])&] [s2; Constructs AttrText, assigning the text attribute and all other attributes to zero.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:AttrText`(const wchar`*`):%- [@0 AttrText(][@(0.0.255) const][@0 _][_^wchar^@0 w -char][@0 _`*][@3 text][@0 )]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:AttrText`(const wchar`*`):%- AttrText([@(0.0.255) const]_[_^wchar^ wchar +]_`*[@3 text])&] [s2; Constructs AttrText, assigning the text attribute and all other attributes to zero.&] -[s7;%- &] -[s8;%- &] -[s5;:AttrText`:`:AttrText`(const WString`&`):%- [@0 AttrText(][@(0.0.255) const][@0 _][_^WString^@0 W -String][@(0.0.255) `&][@0 _][@3 text][@0 )]&] +[s3;%- &] +[s4;%- &] +[s5;:AttrText`:`:AttrText`(const WString`&`):%- AttrText([@(0.0.255) const]_[_^WString^ W +String][@(0.0.255) `&]_[@3 text])&] [s2; Constructs AttrText, assigning the text attribute and all other attributes to zero.&] -[s7; &] -[s8;%- &] -[s5;:AttrText`:`:AttrText`(`):%- [@0 AttrText()]&] +[s3; &] +[s4;%- &] +[s5;:AttrText`:`:AttrText`(`):%- AttrText()&] [s2; Default constructor.&] +[s3; &] +[s0; &] [s0; &] [s0;%- &] [ {{10000t/25b/25@3 [s0;%- [*@(229)4 Standard displays]]}}&] -[s0; &] -[s0; Standard Displays are implemented as `"functional globals`" +[s9; Standard Displays are implemented as `"functional globals`" `- functions returning constant reference to single global Display instance.&] +[s3; &] [s0; &] [ {{3530:6470h1;@(204) [s0; Display name] :: [s0; Description] @@ -253,8 +259,5 @@ corner.] border.] ::^ [s0;:DrawingDisplay: [* DrawingDisplay]] ::= [s0; Displays Drawing scaled to fit the rectangle.]}}&] -[s0; &] -[s0; &] -[s0; &] -[s0; &] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/Draw$en-us.tpp b/uppsrc/Draw/src.tpp/Draw$en-us.tpp index 25406b322..b4915684a 100644 --- a/uppsrc/Draw/src.tpp/Draw$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Draw$en-us.tpp @@ -11,9 +11,9 @@ topic "Draw"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000t/25b/25@3 [s0; [*@(229)4 Draw]]}}&] -[s0;3 &] +[s3; &] [s1;:Draw`:`:class: [@(0.0.255)3 class][3 _][*3 Draw][3 _:_][@(0.0.255)3 private][3 _][*@3;3 NoCopy]&] -[s2;%% The class provides an abstract interface to basic graphical +[s9;%% The class provides an abstract interface to basic graphical output, possibly HW accelerated. Whenever you need to paint something in a window, you need a Draw object for it. The standard Paint method of the Ctrl class takes a Draw`& parameter as well. In @@ -25,29 +25,26 @@ Drawings (vector metafiles used for serialization of graphical operations) or to perform printer output. You can also use a Draw to query some graphics`-related properties, like the size of output area or native resolution.&] -[s2;%% &] -[s2;%% When Draw represents screen output, all metrics are always +[s9;%% When Draw represents screen output, all metrics are always in pixels. If Draw represents any physical device (like printer), it uses artificial unit, `"dot`", by default, which is equivalent to 1/600 of inch. In other words, it is the same as pixels size of 600dpi printer (standard printer resolution).&] -[s2;%% &] -[s2;%% However, it is also possible to switch to `"Native`" mode +[s9;%% However, it is also possible to switch to `"Native`" mode in some cases. In that case, Draw works in `"native`" pixels, for example 1/720 inch for some printers. Draw provides necessary metrics information to adjust graphic output.&] -[s2;%% &] -[s2;%% Some methods have several overloaded variants, for example +[s9;%% Some methods have several overloaded variants, for example DrawRect has variants that specify the rectangle using Rect type or x, y, cx, cy coordinates. In that case, implementation is provided by single abstract virtual backend method ending with Op (DrawRectOp) and non`-virtual frontend methods are then used to provide overloading (via parameter translation to backend method parameters).&] -[s2;%% &] -[s2;%% Painting outside the output size is always legal `- necessary +[s9;%% Painting outside the output size is always legal `- necessary clipping is performed in that case.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] [s3; &] [s5;:Draw`:`:GetInfo`(`)const: [@(0.0.255) virtual] [_^dword^ dword]_[* GetInfo]()_[@(0.0.255) c @@ -595,28 +592,23 @@ oid]_[* DrawPolyPolyline]([@(0.0.255) const]_[_^Point^ Point]_`*[*@3 vertices], [@(0.0.255) int]_[*@3 vertex`_count], [@(0.0.255) const]_[@(0.0.255) int]_`*[*@3 counts], [@(0.0.255) int]_[*@3 count`_count], [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 vertex`_count] [%-*@3 counts] [%-*@3 count`_count] -[%-*@3 width] [%-*@3 color] [%-*@3 doxor].&] [s5;:Draw`:`:DrawPolyPolyline`(const Vector``&`,const Vector``&`,int`,Color`,Color`): [@(0.0.255) v oid]_[* DrawPolyPolyline]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Point^ Point]>`&_[*@3 ve rtices], [@(0.0.255) const]_[_^Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 counts], [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 counts] [%-*@3 width] [%-*@3 color] [%-*@3 doxor].&] +[s2;%% Draws multiple polylines (polygon without filling).&] [s3;%% &] [s4;%% &] [s5;:Draw`:`:DrawPolyline`(const Point`*`,int`,int`,Color`,Color`): [@(0.0.255) void]_[* D rawPolyline]([@(0.0.255) const]_[_^Point^ Point]_`*[*@3 vertices], [@(0.0.255) int]_[*@3 count], [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 col or]_`=_DefaultInk, [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 count] [%-*@3 width] [%-*@3 color] [%-*@3 doxor].&] -[s3;%% &] -[s4;%% &] [s5;:Draw`:`:DrawPolyline`(const Vector``&`,int`,Color`,Color`): [@(0.0.255) vo id]_[* DrawPolyline]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Point^ Point]>`&_[*@3 vertice s], [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 width] [%-*@3 color] [%-*@3 doxor].&] +[s2;%% Draws a polyline (polygon without filling).&] [s3;%% &] [s4;%% &] [s5;:Draw`:`:DrawPolyPolyPolygon`(const Point`*`,int`,const int`*`,int`,const int`*`,int`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v @@ -627,10 +619,6 @@ nt]_`*[*@3 disjunct`_polygon`_counts], [@(0.0.255) int]_[*@3 disjunct`_polygon`_ count], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Null, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 vertex`_count] [%-*@3 subpolygon`_counts] -[%-*@3 subpolygon`_count`_count] [%-*@3 disjunct`_polygon`_counts] -[%-*@3 disjunct`_polygon`_count`_count] [%-*@3 color] [%-*@3 width] -[%-*@3 outline] [%-*@3 pattern] [%-*@3 doxor].&] [s5;:Draw`:`:DrawPolyPolyPolygon`(const Vector``&`,const Vector``&`,const Vector``&`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v oid]_[* DrawPolyPolyPolygon]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Point^ Point]>`&_[*@3 v ertices], [@(0.0.255) const]_[_^Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 subpolygon`_coun @@ -638,25 +626,22 @@ ts], [@(0.0.255) const]_[_^Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 disjunct`_po unts], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Null, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 subpolygon`_counts] [%-*@3 disjunct`_polygon`_counts] -[%-*@3 color] [%-*@3 width] [%-*@3 outline] [%-*@3 pattern] [%-*@3 doxor].&] +[s2; Draws poly`-poly`-polygon.&] +[s3; &] +[s4; &] [s5;:Draw`:`:DrawPolyPolygon`(const Point`*`,int`,const int`*`,int`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v oid]_[* DrawPolyPolygon]([@(0.0.255) const]_[_^Point^ Point]_`*[*@3 vertices], [@(0.0.255) int]_[*@3 vertex`_count], [@(0.0.255) const]_[@(0.0.255) int]_`*[*@3 subpolygon `_counts], [@(0.0.255) int]_[*@3 subpolygon`_count`_count], [_^Color^ Color]_[*@3 color]_ `=_DefaultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Nu ll, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 vertex`_count] [%-*@3 subpolygon`_counts] -[%-*@3 subpolygon`_count`_count] [%-*@3 color] [%-*@3 width] [%-*@3 outline] -[%-*@3 pattern] [%-*@3 doxor].&] [s5;:Draw`:`:DrawPolyPolygon`(const Vector``&`,const Vector``&`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v oid]_[* DrawPolyPolygon]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Point^ Point]>`&_[*@3 ver tices], [@(0.0.255) const]_[_^Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 subpolygon`_counts ], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Null, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 subpolygon`_counts] [%-*@3 color] [%-*@3 width] -[%-*@3 outline] [%-*@3 pattern] [%-*@3 doxor].&] +[s2;%% Draws poly`-polygon.&] [s3;%% &] [s4;%% &] [s5;:Draw`:`:DrawPolygons`(const Point`*`,int`,const int`*`,int`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v @@ -665,32 +650,26 @@ oid]_[* DrawPolygons]([@(0.0.255) const]_[_^Point^ Point]_`*[*@3 vertices], ounts], [@(0.0.255) int]_[*@3 polygon`_count`_count], [_^Color^ Color]_[*@3 color]_`=_Def aultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Null, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 vertex`_count] [%-*@3 polygon`_counts] -[%-*@3 polygon`_count`_count] [%-*@3 color] [%-*@3 width] [%-*@3 outline] -[%-*@3 pattern] [%-*@3 doxor].&] [s5;:Draw`:`:DrawPolygons`(const Vector``&`,const Vector``&`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v oid]_[* DrawPolygons]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Point^ Point]>`&_[*@3 vertic es], [@(0.0.255) const]_[_^Vector^ Vector]<[@(0.0.255) int]>`&_[*@3 polygon`_counts], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Null, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 polygon`_counts] [%-*@3 color] [%-*@3 width] -[%-*@3 outline] [%-*@3 pattern] [%-*@3 doxor].&] +[s2;%% Draws multiple polygons.&] +[s3;%% &] [s4;%% &] [s5;:Draw`:`:DrawPolygon`(const Point`*`,int`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v oid]_[* DrawPolygon]([@(0.0.255) const]_[_^Point^ Point]_`*[*@3 vertices], [@(0.0.255) int]_[*@3 vertex`_count], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Null, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 vertex`_count] [%-*@3 color] [%-*@3 width] -[%-*@3 outline] [%-*@3 pattern] [%-*@3 doxor].&] [s5;:Draw`:`:DrawPolygon`(const Vector``&`,Color`,int`,Color`,uint64`,Color`): [@(0.0.255) v oid]_[* DrawPolygon]([@(0.0.255) const]_[_^Vector^ Vector]<[_^Point^ Point]>`&_[*@3 vertice s], [_^Color^ Color]_[*@3 color]_`=_DefaultInk, [@(0.0.255) int]_[*@3 width]_`=_[@3 0], [_^Color^ Color]_[*@3 outline]_`=_Null, [_^uint64^ uint64]_[*@3 pattern]_`=_[@3 0], [_^Color^ Color]_[*@3 doxor]_`=_Null)&] -[s2;%% [%-*@3 vertices] [%-*@3 color] [%-*@3 width] [%-*@3 outline] [%-*@3 pattern] -[%-*@3 doxor].&] +[s2;%% Draws a polygon.&] [s3;%% &] [s4;%% &] [s5;:Draw`:`:DrawDrawing`(const Rect`&`,const Drawing`&`): [@(0.0.255) void]_[* DrawDrawi @@ -787,4 +766,5 @@ default charset is used. Implemented using DrawTextOp.&] [@(0.0.255) double`&]_[*@3 cosa])&] [s2;%% This simple utility function computes sin(angle) and cos(angle), where the full angle (2[%- π) ]is 3600.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/Drawing$en-us.tpp b/uppsrc/Draw/src.tpp/Drawing$en-us.tpp index 03548fee0..46153a7b7 100644 --- a/uppsrc/Draw/src.tpp/Drawing$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Drawing$en-us.tpp @@ -15,17 +15,18 @@ topic "Drawing"; [s1;:Drawing`:`:class: [@(0.0.255)3 class][3 _][*3 Drawing][3 _:_][@(0.0.255)3 private][3 _][*@3;3 A ssignValueTypeNo][3 <][*3 Drawing][3 , ][@3;3 49][3 , ][_^Moveable^3 Moveable][3 <][*3 Drawing][3 > _>_]&] -[s2;%% This concrete class, with full value semantics (with fast +[s9;%% This concrete class, with full value semantics (with fast deep copy) represents a record of Draw drawing operations that can be replayed at any time. In other words, Drawing is a sort of vector format. To create Drawing, use [^DrawingDraw^ DrawingDraw] class.&] -[s2;%% Drawing is Value compatible with `"rich`" feature set `- as +[s9;%% Drawing is Value compatible with `"rich`" feature set `- as Value it supports equality comparisons, serialization, Null compatibility and hash`-value support.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:Drawing`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] [s2;%% True if Drawing is non`-empty.&] [s3; &] @@ -87,9 +88,10 @@ onst]&] [s5;:Drawing`:`:operator Value`(`)const: [* operator_Value]()_[@(0.0.255) const]&] [s2;%% Returns Drawing as Value `- Drawing is `"rich`" Value, supporting operator`=`=, hashing, Null and serialization.&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] -[s0; &] +[s3; &] [s5;:Drawing`:`:Drawing`(const Value`&`): [* Drawing]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& ]_[*@3 src])&] [s2;%% Deep copy constructor.&] @@ -102,4 +104,5 @@ operator`=`=, hashing, Null and serialization.&] [s5;:Drawing`:`:Drawing`(const Nuller`&`): [* Drawing]([@(0.0.255) const]_[_^Nuller^ Nuller ][@(0.0.255) `&])&] [s2; Null constructor (provides Drawing Null).&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/DrawingDraw$en-us.tpp b/uppsrc/Draw/src.tpp/DrawingDraw$en-us.tpp index 99c87f2a1..04d67dddd 100644 --- a/uppsrc/Draw/src.tpp/DrawingDraw$en-us.tpp +++ b/uppsrc/Draw/src.tpp/DrawingDraw$en-us.tpp @@ -14,11 +14,12 @@ topic "DrawingDraw"; [s3;%- &] [s1;:DrawingDraw`:`:class:%- [@(0.0.255)3 class][3 _][*3 DrawingDraw][3 _:_][@(0.0.255)3 public][3 _ ][*@3;3 Draw]&] -[s2; DrawingDraw is a Draw able to store drawing operations of Draw +[s9; DrawingDraw is a Draw able to store drawing operations of Draw and to create Drawing value that can be replayed using Draw`::DrawDrawing.&] [s3;%- &] +[s0;%- &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s4;H0;%- &] +[s3;%- &] [s5;:DrawingDraw`:`:Create`(int`,int`,bool`):%- [@(0.0.255) void]_[* Create]([@(0.0.255) in t]_[*@3 cx], [@(0.0.255) int]_[*@3 cy], [@(0.0.255) bool]_[*@3 dots]_`=_[@(0.0.255) true])&] [s5;:DrawingDraw`:`:Create`(Size`,bool`):%- [@(0.0.255) void]_[* Create]([_^Size^ Size]_[*@3 s @@ -39,9 +40,10 @@ already any records stored in DrawingDraw, they are cleaned.&] [s4; &] [s5;:DrawingDraw`:`:operator Drawing`(`):%- [* operator_Drawing]()&] [s2; Returns GetResult().&] +[s3;%- &] [s0;%- &] [ {{10000F(128)G(128)@1 [s0; [* Constructor detail]]}}&] -[s4;H0; &] +[s3; &] [s5;:DrawingDraw`:`:DrawingDraw`(`):%- [* DrawingDraw]()&] [s2; Default constructor. Create has to be explicitly called on default constructed DrawingDraw.&] @@ -52,4 +54,5 @@ x], [@(0.0.255) int]_[*@3 cy], [@(0.0.255) bool]_[*@3 dots]_`=_[@(0.0.255) true] [s5;:DrawingDraw`:`:DrawingDraw`(Size`,bool`):%- [* DrawingDraw]([_^Size^ Size]_[*@3 sz], [@(0.0.255) bool]_[*@3 dots]_`=_[@(0.0.255) true])&] [s2; Calls Create to start a recording session.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/Font$en-us.tpp b/uppsrc/Draw/src.tpp/Font$en-us.tpp index 6d68768bf..7fc437859 100644 --- a/uppsrc/Draw/src.tpp/Font$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Font$en-us.tpp @@ -1,27 +1,28 @@ topic "Font"; [2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] -[l288;2 $$2,0#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[0 $$7,0#96390100711032703541132217272105:end] -[H6;0 $$8,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] +[l288;2 $$2,2#27521748481378242620020725143825:desc] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000t/25b/25@3 [s0; [*@(229)4 Font]]}}&] -[s7; &] -[s1;:Font`:`:class: [@(0.0.255) class][@0 _Font_:_][@(0.0.255) private][@0 _][@3 AssignValueType -No][@0 _>]&] -[s2;%% Font is a concrete class that describes the appearance of +[s3; &] +[s1;:Font`:`:class: [@(0.0.255) class]_Font_:_[@(0.0.255) private]_[@3 AssignValueTypeNo]_>&] +[s9;%% Font is a concrete class that describes the appearance of text. It is Moveable, has cheap copy operation and is Value convertible with rich`-Value abilities.&] -[s2;%% It is storing several attributes to describe the text. The +[s9;%% It is storing several attributes to describe the text. The corresponding system font is stored in the form of face index `- each system font has specific index value. There are some predefined indexes for common fonts:&] [s0;%% &] -[ {{2595:7405<256;^ [s2;l0; [* Font`::STDFONT]] +[ {{2595:7405<256;>256;^ [s2;l0; [* Font`::STDFONT]] ::= [s2;l0;%% Standard GUI font defined by platform. Can be altered by Draw`::SetStdFont.] ::^ [s2;l0; [* Font`::SERIF]] @@ -31,28 +32,28 @@ Draw`::SetStdFont.] ::^ [s2;l0; [* Font`::MONOSPACE]] ::= [s2;l0;%% Standard fixed pitch font.]}}&] [s2;%% &] -[s2;%% Font also provides text metrics services.&] -[s7; &] +[s9;%% Font also provides text metrics services.&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s7; &] -[s5;:Font`:`:GetFaceCount`(`): [@(0.0.255) static][@0 ][@(0.0.255) int][@0 _GetFaceCount()]&] +[s3; &] +[s5;:Font`:`:GetFaceCount`(`): [@(0.0.255) static] [@(0.0.255) int]_GetFaceCount()&] [s2;%% Returns the number of face`-names available.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetFaceName`(int`): [@(0.0.255) static][@0 ][_^String^@0 String][@0 _GetFaceNam -e(][@(0.0.255) int][@0 _][@3 index][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetFaceName`(int`): [@(0.0.255) static] [_^String^ String]_GetFaceName([@(0.0.255) i +nt]_[@3 index])&] [s2;%% Returns the name of face [%-*@3 index].&] -[s7; &] -[s8; &] -[s5;:Font`:`:FindFaceNameIndex`(const String`&`): [@(0.0.255) static][@0 -][@(0.0.255) int][@0 _FindFaceNameIndex(][@(0.0.255) const][@0 _][_^String^@0 String][@(0.0.255) `& -][@0 _][@3 name][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:FindFaceNameIndex`(const String`&`): [@(0.0.255) static] +[@(0.0.255) int]_FindFaceNameIndex([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[@3 n +ame])&] [s2;%% Finds the face index of face`-[%-*@3 name].&] -[s7;%% &] -[s8; &] -[s5;:Font`:`:GetFaceInfo`(int`): [@(0.0.255) static][@0 ][_^dword^@0 dword][@0 _GetFaceInfo( -][@(0.0.255) int][@0 _][@3 index][@0 )]&] +[s3;%% &] +[s4; &] +[s5;:Font`:`:GetFaceInfo`(int`): [@(0.0.255) static] [_^dword^ dword]_GetFaceInfo([@(0.0.255) i +nt]_[@3 index])&] [s2;%% Returns the information about face [%-*@3 index] as combination of binary flags:&] [ {{2587:7413<256;^ [s0; [* Font`::FIXEDPITCH]] @@ -63,280 +64,274 @@ Truetype).] ::^ [s0; [* Font`::SPECIAL]] ::= [s0;%% Font does not use Unicode encoding (typical for some symbol fonts).]}}&] -[s7; &] -[s8; &] -[s5;:Font`:`:SetStdFont`(Font`): [@(0.0.255) static][@0 ][@(0.0.255) void][@0 _SetStdFont(][_^Font^@0 F -ont][@0 _][@3 font][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:SetStdFont`(Font`): [@(0.0.255) static] [@(0.0.255) void]_SetStdFont([_^Font^ F +ont]_[@3 font])&] [s2;%% Sets the standard font. U`+`+ sets the standard font to match host platform standard. This method can be used to change this default setting.&] -[s7;%% &] -[s8; &] -[s5;:Font`:`:GetStdFont`(`): [@(0.0.255) static][@0 ][_^Font^@0 Font][@0 _GetStdFont()]&] +[s3;%% &] +[s4; &] +[s5;:Font`:`:GetStdFont`(`): [@(0.0.255) static] [_^Font^ Font]_GetStdFont()&] [s2;%% Returns the standard font.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetStdFontSize`(`): [@(0.0.255) static][@0 ][_^Size^@0 Size][@0 _GetStdFontSize -()]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetStdFontSize`(`): [@(0.0.255) static] [_^Size^ Size]_GetStdFontSize()&] [s2;%% Returns metrics of standard font `- height and average width of glyphs.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetFace`(`)const: [@(0.0.255) int][@0 _GetFace()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetFace`(`)const: [@(0.0.255) int]_GetFace()_[@(0.0.255) const]&] [s2;%% Face index of Font.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetHeight`(`)const: [@(0.0.255) int][@0 _GetHeight()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetHeight`(`)const: [@(0.0.255) int]_GetHeight()_[@(0.0.255) const]&] [s2;%% Returns the requested height of font.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetWidth`(`)const: [@(0.0.255) int][@0 _GetWidth()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetWidth`(`)const: [@(0.0.255) int]_GetWidth()_[@(0.0.255) const]&] [s2;%% Return the width of font or 0 for default width.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetFaceName`(`)const: [_^String^@0 String][@0 _GetFaceName()]_[@(0.0.255) cons -t]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetFaceName`(`)const: [_^String^ String]_GetFaceName()[@(64) _][@(0.0.255) con +st]&] [s2;%% Returns the face`-name text for current instance.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetFaceInfo`(`)const: [_^dword^@0 dword][@0 _GetFaceInfo()]_[@(0.0.255) const]&] -[s2;%% Same as GetFaceInfo(GetFace()).&] -[s7; &] -[s8; &] -[s5;:Font`:`:AsInt64`(`)const: [_^int64^@0 int64][@0 _AsInt64()]_[@(0.0.255) const]&] -[s2;%% Returns 64`-bit number representing the font.&] -[s7; &] -[s8; &] -[s5;:Font`:`:Face`(int`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Face(][@(0.0.255) int][@0 _][@3 n][@0 ) +[s3; &] +[s4; &] +[s5;:Font`:`:GetFaceInfo`(`)const: [_^dword^ dword]_GetFaceInfo()[@(64) _][@(0.0.255) const ]&] +[s2;%% Same as GetFaceInfo(GetFace()).&] +[s3; &] +[s4; &] +[s5;:Font`:`:AsInt64`(`)const: [_^int64^ int64]_AsInt64()[@(64) _][@(0.0.255) const]&] +[s2;%% Returns 64`-bit number representing the font.&] +[s3; &] +[s4; &] +[s5;:Font`:`:Face`(int`): [_^Font^ Font][@(0.0.255) `&]_Face([@(0.0.255) int]_[@3 n])&] [s2;%% Sets the face index.&] -[s7; &] -[s8; &] -[s5;:Font`:`:Height`(int`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Height(][@(0.0.255) int][@0 _][@3 n -][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:Height`(int`): [_^Font^ Font][@(0.0.255) `&]_Height([@(0.0.255) int]_[@3 n])&] [s2;%% Sets the font height (in pixels/dots).&] -[s7; &] -[s8; &] -[s5;:Font`:`:Width`(int`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Width(][@(0.0.255) int][@0 _][@3 n -][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:Width`(int`): [_^Font^ Font][@(0.0.255) `&]_Width([@(0.0.255) int]_[@3 n])&] [s2;%% Sets the font width. Use 0 for default width (in pixels/dots).&] -[s7; &] -[s8; &] -[s5;:Font`:`:Bold`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Bold()]&] -[s5;:Font`:`:NoBold`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _NoBold()]&] -[s5;:Font`:`:Bold`(bool`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Bold(][@(0.0.255) bool][@0 _][@3 b -][@0 )]&] -[s5;:Font`:`:Italic`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Italic()]&] -[s5;:Font`:`:NoItalic`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _NoItalic()]&] -[s5;:Font`:`:Italic`(bool`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Italic(][@(0.0.255) bool][@0 _ -][@3 b][@0 )]&] -[s5;:Font`:`:Underline`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Underline()]&] -[s5;:Font`:`:NoUnderline`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _NoUnderline()]&] -[s5;:Font`:`:Underline`(bool`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Underline(][@(0.0.255) bo -ol][@0 _][@3 b][@0 )]&] -[s5;:Font`:`:Strikeout`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Strikeout()]&] -[s5;:Font`:`:NoStrikeout`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _NoStrikeout()]&] -[s5;:Font`:`:Strikeout`(bool`): [_^Font^@0 Font][@(0.0.255) `&][@0 _Strikeout(][@(0.0.255) bo -ol][@0 _][@3 b][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:Bold`(`): [_^Font^ Font][@(0.0.255) `&]_Bold()&] +[s5;:Font`:`:NoBold`(`): [_^Font^ Font][@(0.0.255) `&]_NoBold()&] +[s5;:Font`:`:Bold`(bool`): [_^Font^ Font][@(0.0.255) `&]_Bold([@(0.0.255) bool]_[@3 b])&] +[s5;:Font`:`:Italic`(`): [_^Font^ Font][@(0.0.255) `&]_Italic()&] +[s5;:Font`:`:NoItalic`(`): [_^Font^ Font][@(0.0.255) `&]_NoItalic()&] +[s5;:Font`:`:Italic`(bool`): [_^Font^ Font][@(0.0.255) `&]_Italic([@(0.0.255) bool]_[@3 b])&] +[s5;:Font`:`:Underline`(`): [_^Font^ Font][@(0.0.255) `&]_Underline()&] +[s5;:Font`:`:NoUnderline`(`): [_^Font^ Font][@(0.0.255) `&]_NoUnderline()&] +[s5;:Font`:`:Underline`(bool`): [_^Font^ Font][@(0.0.255) `&]_Underline([@(0.0.255) bool]_[@3 b +])&] +[s5;:Font`:`:Strikeout`(`): [_^Font^ Font][@(0.0.255) `&]_Strikeout()&] +[s5;:Font`:`:NoStrikeout`(`): [_^Font^ Font][@(0.0.255) `&]_NoStrikeout()&] +[s5;:Font`:`:Strikeout`(bool`): [_^Font^ Font][@(0.0.255) `&]_Strikeout([@(0.0.255) bool]_[@3 b +])&] [s2; Sets or unsets bold/italic/undeline/strikeout modes.&] -[s7; &] -[s8; &] -[s5;:Font`:`:NonAntiAliased`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _NonAntiAliased()]&] -[s5;:Font`:`:NoNonAntiAliased`(`): [_^Font^@0 Font][@(0.0.255) `&][@0 _NoNonAntiAliased()]&] -[s5;:Font`:`:NonAntiAliased`(bool`): [_^Font^@0 Font][@(0.0.255) `&][@0 _NonAntiAliased(][@(0.0.255) b -ool][@0 _][@3 b][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:NonAntiAliased`(`): [_^Font^ Font][@(0.0.255) `&]_NonAntiAliased()&] +[s5;:Font`:`:NoNonAntiAliased`(`): [_^Font^ Font][@(0.0.255) `&]_NoNonAntiAliased()&] +[s5;:Font`:`:NonAntiAliased`(bool`): [_^Font^ Font][@(0.0.255) `&]_NonAntiAliased([@(0.0.255) b +ool]_[@3 b])&] [s2;%% Sets/unsets non`-anti`-aliased flag. This indicates that anti`-aliasing should not be used when painting the font.&] -[s7; &] -[s8; &] -[s5;:Font`:`:IsBold`(`)const: [@(0.0.255) bool][@0 _IsBold()_][@(0.0.255) const]&] -[s5;:Font`:`:IsItalic`(`)const: [@(0.0.255) bool][@0 _IsItalic()_][@(0.0.255) const]&] -[s5;:Font`:`:IsUnderline`(`)const: [@(0.0.255) bool][@0 _IsUnderline()_][@(0.0.255) const]&] -[s5;:Font`:`:IsStrikeout`(`)const: [@(0.0.255) bool][@0 _IsStrikeout()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:IsBold`(`)const: [@(0.0.255) bool]_IsBold()_[@(0.0.255) const]&] +[s5;:Font`:`:IsItalic`(`)const: [@(0.0.255) bool]_IsItalic()_[@(0.0.255) const]&] +[s5;:Font`:`:IsUnderline`(`)const: [@(0.0.255) bool]_IsUnderline()_[@(0.0.255) const]&] +[s5;:Font`:`:IsStrikeout`(`)const: [@(0.0.255) bool]_IsStrikeout()_[@(0.0.255) const]&] [s2; Tests whether bold/italic/underline/strikeout is active.&] -[s7; &] -[s8; &] -[s5;:Font`:`:IsNonAntiAliased`(`)const: [@(0.0.255) bool][@0 _IsNonAntiAliased()_][@(0.0.255) c +[s3; &] +[s4; &] +[s5;:Font`:`:IsNonAntiAliased`(`)const: [@(0.0.255) bool]_IsNonAntiAliased()_[@(0.0.255) c onst]&] [s2;%% True if NonAntiAliased is active.&] -[s7; &] -[s8; &] -[s5;:Font`:`:FaceName`(const String`&`): [_^Font^@0 Font][@(0.0.255) `&][@0 _FaceName(][@(0.0.255) c -onst][@0 _][_^String^@0 String][@(0.0.255) `&][@0 _][@3 name][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:FaceName`(const String`&`): [_^Font^ Font][@(0.0.255) `&]_FaceName([@(0.0.255) c +onst]_[_^String^ String][@(0.0.255) `&]_[@3 name])&] [s2;%% Sets the face to [%-*@3 name]. If name is not valid face`-name, Font is set to Null.&] -[s7; &] -[s8; &] -[s5;:Font`:`:operator`(`)`(`)const: [_^Font^@0 Font]_[@(0.0.255) operator][@0 ()()]_[@(0.0.255) c +[s3; &] +[s4; &] +[s5;:Font`:`:operator`(`)`(`)const: [_^Font^ Font][@(64) _][@(0.0.255) operator]()()[@(64) _][@(0.0.255) c onst]&] [s2;%% Returns a copy of Font. Useful to simplify notation when altering existing Font values.&] -[s7; &] -[s8; &] -[s5;:Font`:`:operator`(`)`(int`)const: [_^Font^@0 Font]_[@(0.0.255) operator][@0 ()(][@(0.0.255) i -nt][@0 _][@3 n][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:operator`(`)`(int`)const: [_^Font^ Font][@(64) _][@(0.0.255) operator]()([@(0.0.255) i +nt]_[@3 n])_[@(0.0.255) const]&] [s2;%% Returns a copy of Font, with height changed to [%-*@3 n].&] -[s7; &] -[s8; &] -[s5;:Font`:`:Serialize`(Stream`&`): [@(0.0.255) void][@0 _Serialize(][_^Stream^@0 Stream][@(0.0.255) `& -][@0 _][@3 s][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:Serialize`(Stream`&`): [@(0.0.255) void]_Serialize([_^Stream^ Stream][@(0.0.255) `& +]_[@3 s])&] [s2;%% Serializes the font value (face index is stored as face`-name text).&] -[s7; &] -[s8; &] -[s5;:Font`:`:operator`=`=`(Font`)const: [@(0.0.255) bool][@0 _operator`=`=(][_^Font^@0 Font -][@0 _][@3 f][@0 )_][@(0.0.255) const]&] -[s7; &] -[s8; &] -[s5;:Font`:`:operator`!`=`(Font`)const: [@(0.0.255) bool][@0 _operator!`=(][_^Font^@0 Font][@0 _ -][@3 f][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:operator`=`=`(Font`)const: [@(0.0.255) bool]_operator`=`=([_^Font^ Font]_[@3 f +])_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:operator`!`=`(Font`)const: [@(0.0.255) bool]_operator!`=([_^Font^ Font]_[@3 f]) +_[@(0.0.255) const]&] [s2;%% Compares two Font instances.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetHashValue`(`)const: [_^dword^@0 dword][@0 _GetHashValue()]_[@(0.0.255) cons -t]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetHashValue`(`)const: [_^dword^ dword]_GetHashValue()[@(64) _][@(0.0.255) con +st]&] [s2;%% Returns the font hash value.&] -[s7; &] -[s8; &] -[s5;:Font`:`:IsNull`(`)const: [@(0.0.255) bool][@0 _IsNull()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:IsNull`(`)const: [@(0.0.255) bool]_IsNull()_[@(0.0.255) const]&] [s2;%% True if Font is Null.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetAscent`(`)const: [@(0.0.255) int][@0 _GetAscent()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetAscent`(`)const: [@(0.0.255) int]_GetAscent()_[@(0.0.255) const]&] [s2;%% Returns the character cell extend above the baseline.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetDescent`(`)const: [@(0.0.255) int][@0 _GetDescent()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetDescent`(`)const: [@(0.0.255) int]_GetDescent()_[@(0.0.255) const]&] [s2;%% Returns the character cell extend below the baseline.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetCy`(`)const: [@(0.0.255) int][@0 _GetCy()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetCy`(`)const: [@(0.0.255) int]_GetCy()_[@(0.0.255) const]&] [s2;%% Same as GetDescent() `+ GetAscent().&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetExternal`(`)const: [@(0.0.255) int][@0 _GetExternal()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetExternal`(`)const: [@(0.0.255) int]_GetExternal()_[@(0.0.255) const]&] [s2;%% Returns the additional space that font description recommends to insert between two lines of text. Rarely used.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetInternal`(`)const: [@(0.0.255) int][@0 _GetInternal()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetInternal`(`)const: [@(0.0.255) int]_GetInternal()_[@(0.0.255) const]&] [s2;%% Returns the mostly free space inside GetAscent value. Rarely used.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetHeight`(`)const: [@(0.0.255) int][@0 _GetHeight()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetHeight`(`)const: [@(0.0.255) int]_GetHeight()_[@(0.0.255) const]&] [s2;%% Returns GetAscent() `+ GetDescent() `- the height of the line of text.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetLineHeight`(`)const: [@(0.0.255) int][@0 _GetLineHeight()_][@(0.0.255) cons -t]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetLineHeight`(`)const: [@(0.0.255) int]_GetLineHeight()_[@(0.0.255) const]&] [s2;%% Returns GetHeight() `+ GetExternal().&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetOverhang`(`)const: [@(0.0.255) int][@0 _GetOverhang()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetOverhang`(`)const: [@(0.0.255) int]_GetOverhang()_[@(0.0.255) const]&] [s2;%% Returns overhang of font.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetAveWidth`(`)const: [@(0.0.255) int][@0 _GetAveWidth()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetAveWidth`(`)const: [@(0.0.255) int]_GetAveWidth()_[@(0.0.255) const]&] [s2;%% Returns the average width of character.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetMaxWidth`(`)const: [@(0.0.255) int][@0 _GetMaxWidth()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetMaxWidth`(`)const: [@(0.0.255) int]_GetMaxWidth()_[@(0.0.255) const]&] [s2;%% Returns the maximal width of character.&] -[s7; &] -[s8; &] -[s5;:Font`:`:IsNormal`(int`)const: [@(0.0.255) bool][@0 _IsNormal(][@(0.0.255) int][@0 _][@3 ch -][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:IsNormal`(int`)const: [@(0.0.255) bool]_IsNormal([@(0.0.255) int]_[@3 ch])_[@(0.0.255) c +onst]&] [s2;%% Returns true if [%-*@3 ch] exists as regular glyph in the font.&] -[s7;%% &] -[s8; &] -[s5;:Font`:`:IsComposed`(int`)const: [@(0.0.255) bool][@0 _IsComposed(][@(0.0.255) int][@0 _][@3 c -h][@0 )_][@(0.0.255) const]&] +[s3;%% &] +[s4; &] +[s5;:Font`:`:IsComposed`(int`)const: [@(0.0.255) bool]_IsComposed([@(0.0.255) int]_[@3 ch]) +_[@(0.0.255) const]&] [s2;%% Returns true if [%-*@3 ch].is to be rendered as composition of 2 other glyphs (ASCII letter and diacritical mark).&] -[s7;%% &] -[s8; &] -[s5;:Font`:`:IsReplaced`(int`)const: [@(0.0.255) bool][@0 _IsReplaced(][@(0.0.255) int][@0 _][@3 c -h][@0 )_][@(0.0.255) const]&] +[s3;%% &] +[s4; &] +[s5;:Font`:`:IsReplaced`(int`)const: [@(0.0.255) bool]_IsReplaced([@(0.0.255) int]_[@3 ch]) +_[@(0.0.255) const]&] [s2;%% Returns true [%-*@3 ch] is to be rendered using character from some other font.&] -[s7;%% &] -[s8; &] -[s5;:Font`:`:IsMissing`(int`)const: [@(0.0.255) bool][@0 _IsMissing(][@(0.0.255) int][@0 _][@3 c -h][@0 )_][@(0.0.255) const]&] +[s3;%% &] +[s4; &] +[s5;:Font`:`:IsMissing`(int`)const: [@(0.0.255) bool]_IsMissing([@(0.0.255) int]_[@3 ch])_[@(0.0.255) c +onst]&] [s2;%% Returns true if [%-*@3 ch] cannot be rendered.&] -[s7;%% &] -[s8; &] -[s5;:Font`:`:HasChar`(int`)const: [@(0.0.255) int][@0 _HasChar(][@(0.0.255) int][@0 _][@3 ch][@0 ) -_][@(0.0.255) const]&] +[s3;%% &] +[s4; &] +[s5;:Font`:`:HasChar`(int`)const: [@(0.0.255) int]_HasChar([@(0.0.255) int]_[@3 ch])_[@(0.0.255) c +onst]&] [s2;%% Returns true if [%-*@3 ch] can be rendered (in any way).&] -[s7;%% &] -[s8; &] -[s5;:Font`:`:GetWidth`(int`)const: [@(0.0.255) int][@0 _GetWidth(][@(0.0.255) int][@0 _][@3 c][@0 ) -_][@(0.0.255) const]&] +[s3;%% &] +[s4; &] +[s5;:Font`:`:GetWidth`(int`)const: [@(0.0.255) int]_GetWidth([@(0.0.255) int]_[@3 c])_[@(0.0.255) c +onst]&] [s2;%% Returns the total advance with of character [%-*@3 c] (encoded in unicode).&] -[s7; &] -[s8; &] -[s5;:Font`:`:operator`[`]`(int`)const: [@(0.0.255) int][@0 _operator`[`](][@(0.0.255) int][@0 _ -][@3 c][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:operator`[`]`(int`)const: [@(0.0.255) int]_operator`[`]([@(0.0.255) int]_[@3 c +])_[@(0.0.255) const]&] [s2;%% Same as GetWidth([%-*@3 c]).&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetLeftSpace`(int`)const: [@(0.0.255) int][@0 _GetLeftSpace(][@(0.0.255) int][@0 _ -][@3 c][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetLeftSpace`(int`)const: [@(0.0.255) int]_GetLeftSpace([@(0.0.255) int]_[@3 c +])_[@(0.0.255) const]&] [s2;%% Describes the relation of left side of character cell and leftmost area painted for character [%-*@3 c]. Negative value means that character extends character cell, positive value means that there is a space inside the cell not used for glyph.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetRightSpace`(int`)const: [@(0.0.255) int][@0 _GetRightSpace(][@(0.0.255) int -][@0 _][@3 c][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetRightSpace`(int`)const: [@(0.0.255) int]_GetRightSpace([@(0.0.255) int]_[@3 c +])_[@(0.0.255) const]&] [s2;%% Similar to GetLeftSpace for the right edge of character cell.&] -[s7; &] -[s8; &] -[s5;:Font`:`:IsFixedPitch`(`)const: [@(0.0.255) bool][@0 _IsFixedPitch()_][@(0.0.255) const -]&] +[s3; &] +[s4; &] +[s5;:Font`:`:IsFixedPitch`(`)const: [@(0.0.255) bool]_IsFixedPitch()_[@(0.0.255) const]&] [s2;%% True if font is mono`-spaced.&] -[s7; &] -[s8; &] -[s5;:Font`:`:IsScaleable`(`)const: [@(0.0.255) bool][@0 _IsScaleable()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:IsScaleable`(`)const: [@(0.0.255) bool]_IsScaleable()_[@(0.0.255) const]&] [s2;%% True if font is freely scaleable.&] -[s7; &] -[s8; &] -[s5;:Font`:`:IsSpecial`(`)const: [@(0.0.255) bool][@0 _IsSpecial()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:IsSpecial`(`)const: [@(0.0.255) bool]_IsSpecial()_[@(0.0.255) const]&] [s2;%% Returns true if font does not use unicode placement of glyphs, for example some symbol fonts have this issue.&] -[s7; &] -[s8; &] -[s5;:Font`:`:GetPath`(`)const: [_^String^@0 String][@0 _GetPath()]_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:GetPath`(`)const: [_^String^ String]_GetPath()[@(64) _][@(0.0.255) const]&] [s2;%% [/ POSIX specific:] Returns the path of font file.&] +[s3; &] [s0; &] [ {{10000t/25b/25@1 [s0; [* Constructor Detail]]}}&] -[s7; &] -[s8;H0; &] -[s5;:Font`:`:Font`(`): [@0 Font()]&] +[s3; &] +[s5;:Font`:`:Font`(`): Font()&] [s2;%% Initializes Font to STDFONT, default height, all attributes not active.&] -[s7; &] -[s8; &] -[s5;:Font`:`:Font`(int`,int`): [@0 Font(][@(0.0.255) int][@0 _][@3 face][@0 , -][@(0.0.255) int][@0 _][@3 height][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:Font`(int`,int`): Font([@(0.0.255) int]_[@3 face], [@(0.0.255) int]_[@3 height]) +&] [s2;%% Initializes font to [%-*@3 face] index and [%-*@3 height].&] -[s7; &] -[s8; &] -[s5;:Font`:`:Font`(const Nuller`&`): [@0 Font(][@(0.0.255) const][@0 _][_^Nuller^@0 Nuller][@(0.0.255) `& -][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:Font`(const Nuller`&`): Font([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& +])&] [s2;%% Sets the font Null.&] -[s7; &] -[s8; &] -[s5;:Font`:`:operator Value`(`)const: [@0 operator_Value()]_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Font`:`:operator Value`(`)const: operator_Value()[@(64) _][@(0.0.255) const]&] [s2;%% Converts the Font to the Value (font is rich Value).&] -[s7; &] -[s8; &] -[s5;:Font`:`:Font`(const Value`&`): [@0 Font(][@(0.0.255) const][@0 _][_^Value^@0 Value][@(0.0.255) `& -][@0 _][@3 q][@0 )]&] +[s3; &] +[s4; &] +[s5;:Font`:`:Font`(const Value`&`): Font([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_ +[@3 q])&] [s2;%% Converts the Value to the Font.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/FontTextUtils$en-us.tpp b/uppsrc/Draw/src.tpp/FontTextUtils$en-us.tpp index 500ff4fee..88060562f 100644 --- a/uppsrc/Draw/src.tpp/FontTextUtils$en-us.tpp +++ b/uppsrc/Draw/src.tpp/FontTextUtils$en-us.tpp @@ -11,7 +11,7 @@ topic "Font and Text Routines"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 Font and Text Routines]]}}&] -[s4;H0; &] +[s3; &] [s5;:GetTextSize`(const wchar`*`,Font`,int`): [_^Size^ Size]_[* GetTextSize]([@(0.0.255) co nst]_[_^wchar^ wchar]_`*[*@3 text], [_^Font^ Font]_[*@3 font], [@(0.0.255) int]_[*@3 n]_`=_`- [@3 1])&] diff --git a/uppsrc/Draw/src.tpp/Image$en-us.tpp b/uppsrc/Draw/src.tpp/Image$en-us.tpp index 49c73f710..4752931a4 100644 --- a/uppsrc/Draw/src.tpp/Image$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Image$en-us.tpp @@ -1,184 +1,183 @@ topic "Image and ImageBuffer"; [2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,2#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[0 $$7,0#96390100711032703541132217272105:end] -[H6;0 $$8,0#05600065144404261032431302351956:begin] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 Image]]}}&] -[s1;@(0.0.255) &] -[s1;:Image`:`:class: [@(0.0.255) class][@0 _Image_:_][@(0.0.255) public][@0 _][@3 AssignValueTyp -eNo][@0 <_Image, ][@3 150][@0 , ][_^Moveable^@0 Moveable][@0 _>_]&] -[s2;%% Image represents an immutable image value. Image can be directly +[s3; &] +[s1;:Image`:`:class: [@(0.0.255) class]_Image_:_[@(0.0.255) public]_[@3 AssignValueTypeNo]<_ +Image, [@3 150], [_^Moveable^ Moveable]_>_&] +[s9;%% Image represents an immutable image value. Image can be directly painted to Draw. To create or change Image, use [^`:`:ImageBuffer^ ImageBuffer].&] -[s2;%% Image has low`-cost constant time deep copy. It is moveable +[s9;%% Image has low`-cost constant time deep copy. It is moveable and Rich`-Value compatible type.&] -[s2;%% U`+`+ expects pixels to be in premultiplied alpha format.&] +[s9;%% U`+`+ expects pixels to be in premultiplied alpha format.&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s0; &] -[s5;:Image`:`:operator`~`(`)const: [@(0.0.255) const][@0 _][_^RGBA^@0 RGBA][@(0.0.255) `*][@0 _ -operator`~()_][@(0.0.255) const]&] -[s7; &] -[s8; &] +[s3; &] +[s5;:Image`:`:operator`~`(`)const: [@(0.0.255) const]_[_^RGBA^ RGBA][@(0.0.255) `*]_operato +r`~()_[@(0.0.255) const]&] [s5;:Image`:`:operator const RGBA`*`(`)const: operator_const_RGBA`*()_[@(0.0.255) const ]&] [s2;%% Returns a pointer to Image pixels.&] -[s7; &] -[s8; &] -[s5;:Image`:`:operator`[`]`(int`)const: [@(0.0.255) const][@0 _][_^RGBA^@0 RGBA][@(0.0.255) `* -][@0 _operator`[`](][@(0.0.255) int][@0 _][@3 i][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:operator`[`]`(int`)const: [@(0.0.255) const]_[_^RGBA^ RGBA][@(0.0.255) `*]_op +erator`[`]([@(0.0.255) int]_[@3 i])_[@(0.0.255) const]&] [s2;%% Returns a pointer to the first pixel in the line [%-*@3 i].&] -[s7; &] -[s8; &] +[s3; &] +[s4; &] [s5;:Image`:`:GetSize`(`)const: [_^Size^ Size]_GetSize()_[@(0.0.255) const]&] [s2;%% Returns the dimension of Image.&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetWidth`(`)const: [@(0.0.255) int][@0 _GetWidth()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetWidth`(`)const: [@(0.0.255) int]_GetWidth()_[@(0.0.255) const]&] [s2;%% Same as GetSize().cx.&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetHeight`(`)const: [@(0.0.255) int][@0 _GetHeight()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetHeight`(`)const: [@(0.0.255) int]_GetHeight()_[@(0.0.255) const]&] [s2;%% Same as GetSize().cy.&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetLength`(`)const: [@(0.0.255) int][@0 _GetLength()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetLength`(`)const: [@(0.0.255) int]_GetLength()_[@(0.0.255) const]&] [s2;%% Number of pixels in Image `- GetWidth() `* GetHeight().&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetHotSpot`(`)const: [_^Point^@0 Point][@0 _GetHotSpot()]_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetHotSpot`(`)const: [_^Point^ Point]_GetHotSpot()[@(64) _][@(0.0.255) const]&] [s2;%% Returns the reference point.&] -[s7; &] -[s8; &] +[s3; &] +[s4; &] [s5;:Image`:`:Get2ndSpot`(`)const: [_^Point^ Point]_Get2ndSpot()_[@(0.0.255) const]&] [s2;%% Returns secondary reference point.&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetDots`(`)const: [_^Size^@0 Size][@0 _GetDots()]_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetDots`(`)const: [_^Size^ Size]_GetDots()[@(64) _][@(0.0.255) const]&] [s2;%% Gets the physical size of Image. If physical size is not set, returns Size(0, 0).&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetKindNoScan`(`)const: [@(0.0.255) int][@0 _GetKindNoScan()_][@(0.0.255) con -st]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetKindNoScan`(`)const: [@(0.0.255) int]_GetKindNoScan()_[@(0.0.255) const]&] [s2;%% Returns the kind of image. Unlike GetKind(), it does not perform the scan of image if the kind it not know, therefore it can return IMAGE`_UNKNOWN.&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetKind`(`)const: [@(0.0.255) int][@0 _GetKind()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetKind`(`)const: [@(0.0.255) int]_GetKind()_[@(0.0.255) const]&] [s2;%% Returns the kind of image, either set by ImageBuffer`::SetKind or (if it is IMAGE`_UNKNOWN) resolved by scanning pixels. If the kind is IMAGE`_UNKNOWN, the pixels are scanned and the type is determined, it is then stored (in private Image instance variable) for future use and returned.&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetSerialId`(`)const: [_^int64^@0 int64][@0 _GetSerialId()]_[@(0.0.255) const -]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetSerialId`(`)const: [_^int64^ int64]_GetSerialId()[@(64) _][@(0.0.255) cons +t]&] [s2;%% Returns the unique, per application run, identifier of Image. All Images with the same serial id can be considered equal (this is useful for caching images).&] -[s7; &] -[s8; &] -[s5;:Image`:`:IsSame`(const Image`&`)const: [@(0.0.255) bool][@0 _IsSame(][@(0.0.255) const -][@0 _][_^Image^@0 Image][@(0.0.255) `&][@0 _][@3 img][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:IsSame`(const Image`&`)const: [@(0.0.255) bool]_IsSame([@(0.0.255) const]_[_^Image^ I +mage][@(0.0.255) `&]_[@3 img])_[@(0.0.255) const]&] [s2;%% Same as GetSerialId() `=`= img.GetSerialId().&] -[s7; &] -[s8; &] -[s5;:Image`:`:operator`=`=`(const Image`&`)const: [@(0.0.255) bool][@0 _operator`=`=(][@(0.0.255) c -onst][@0 _][_^Image^@0 Image][@(0.0.255) `&][@0 _][@3 img][@0 )_][@(0.0.255) const]&] -[s7; &] -[s8; &] -[s5;:Image`:`:operator`!`=`(const Image`&`)const: [@(0.0.255) bool][@0 _operator!`=(][@(0.0.255) c -onst][@0 _][_^Image^@0 Image][@(0.0.255) `&][@0 _][@3 img][@0 )_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:operator`=`=`(const Image`&`)const: [@(0.0.255) bool]_operator`=`=([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[@3 img])_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:operator`!`=`(const Image`&`)const: [@(0.0.255) bool]_operator!`=([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[@3 img])_[@(0.0.255) const]&] [s2;%% Tests whether two Images are equal (or not equal). Dimensions, hot`-spot, dots and all pixels are compared. Note that the comparison can be slow.&] -[s7; &] -[s8; &] -[s5;:Image`:`:GetHashValue`(`)const: [_^dword^@0 dword][@0 _GetHashValue()]_[@(0.0.255) con -st]&] +[s3; &] +[s4; &] +[s5;:Image`:`:GetHashValue`(`)const: [_^dword^ dword]_GetHashValue()[@(64) _][@(0.0.255) co +nst]&] [s2;%% Returns the hash`-value for image. All pixels combined into hash value (potentially slow).&] -[s7; &] -[s8; &] -[s5;:Image`:`:ToString`(`)const: [_^String^@0 String][@0 _ToString()]_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:ToString`(`)const: [_^String^ String]_ToString()[@(64) _][@(0.0.255) const]&] [s2;%% Returns the basic Image informations as String.&] -[s7; &] -[s8; &] -[s5;:Image`:`:Serialize`(Stream`&`): [@(0.0.255) void][@0 _Serialize(][_^Stream^@0 Stream][@(0.0.255) `& -][@0 _][@3 s][@0 )]&] +[s3; &] +[s4; &] +[s5;:Image`:`:Serialize`(Stream`&`): [@(0.0.255) void]_Serialize([_^Stream^ Stream][@(0.0.255) `& +]_[@3 s])&] [s2;%% Serializes Image.&] -[s7; &] -[s8; &] -[s5;:Image`:`:Clear`(`): [@(0.0.255) void][@0 _Clear()]&] +[s3; &] +[s4; &] +[s5;:Image`:`:Clear`(`): [@(0.0.255) void]_Clear()&] [s2;%% Assigns an empty Image.&] -[s7; &] -[s8; &] -[s5;:Image`:`:operator`=`(const Image`&`): [_^Image^@0 Image][@(0.0.255) `&][@0 _operator`= -(][@(0.0.255) const][@0 _][_^Image^@0 Image][@(0.0.255) `&][@0 _][@3 img][@0 )]&] +[s3; &] +[s4; &] +[s5;:Image`:`:operator`=`(const Image`&`): [_^Image^ Image][@(0.0.255) `&]_operator`=([@(0.0.255) c +onst]_[_^Image^ Image][@(0.0.255) `&]_[@3 img])&] [s2;%% Assigns another Image.&] -[s7; &] -[s8; &] -[s5;:Image`:`:operator`=`(ImageBuffer`&`): [_^Image^@0 Image][@(0.0.255) `&][@0 _operator`= -(][_^ImageBuffer^@0 ImageBuffer][@(0.0.255) `&][@0 _][@3 img][@0 )]&] +[s3; &] +[s4; &] +[s5;:Image`:`:operator`=`(ImageBuffer`&`): [_^Image^ Image][@(0.0.255) `&]_operator`=([_^ImageBuffer^ I +mageBuffer][@(0.0.255) `&]_[@3 img])&] [s2;%% Assigns Image created in ImageBuffer. ImageBuffer is emptied by this operation.&] -[s7; &] -[s8; &] -[s5;:Image`:`:IsNullInstance`(`)const: [@(0.0.255) bool][@0 _IsNullInstance()_][@(0.0.255) c -onst]&] +[s3; &] +[s4; &] +[s5;:Image`:`:IsNullInstance`(`)const: [@(0.0.255) bool]_IsNullInstance()_[@(0.0.255) con +st]&] [s2;%% Test whether Image has nonzero dimension.&] -[s7; &] -[s8; &] -[s5;:Image`:`:IsEmpty`(`)const: [@(0.0.255) bool][@0 _IsEmpty()_][@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:IsEmpty`(`)const: [@(0.0.255) bool]_IsEmpty()_[@(0.0.255) const]&] [s2;%% Same as IsNullInstance.&] -[s7; &] -[s8; &] -[s5;:Image`:`:operator Value`(`)const: [@0 operator_Value()]_[@(0.0.255) const]&] +[s3; &] +[s4; &] +[s5;:Image`:`:operator Value`(`)const: operator_Value()[@(64) _][@(0.0.255) const]&] [s2;%% Converts Image to Value.&] -[s7; &] +[s3; &] +[s0; &] [ {{10000t/25b/25@1 [s0; [* Constructor Detail]]}}&] -[s7; &] -[s5;:Image`:`:Image`(`): [@0 Image()]&] -[s7; &] -[s8; &] -[s5;:Image`:`:Image`(const Nuller`&`): [@0 Image(][@(0.0.255) const][@0 _][_^Nuller^@0 Nuller -][@(0.0.255) `&][@0 )]&] +[s3; &] +[s5;:Image`:`:Image`(`): Image()&] +[s3; &] +[s4; &] +[s5;:Image`:`:Image`(const Nuller`&`): Image([@(0.0.255) const]_[_^Nuller^ Nuller][@(0.0.255) `& +])&] [s2;%% Constructs empty Image.&] -[s7; &] -[s8; &] -[s5;:Image`:`:Image`(const Value`&`): [@0 Image(][@(0.0.255) const][@0 _][_^Value^@0 Value][@(0.0.255) `& -][@0 _][@3 src][@0 )]&] +[s3; &] +[s4; &] +[s5;:Image`:`:Image`(const Value`&`): Image([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `& +]_[@3 src])&] [s2;%% Converts Image from Value.&] -[s7; &] -[s8; &] -[s5;:Image`:`:Image`(const Image`&`): [@0 Image(][@(0.0.255) const][@0 _Image][@(0.0.255) `&][@0 _ -][@3 img][@0 )]&] +[s3; &] +[s4; &] +[s5;:Image`:`:Image`(const Image`&`): Image([@(0.0.255) const]_Image[@(0.0.255) `&]_[@3 img +])&] [s2;%% Copy constructor.&] -[s7; &] -[s8; &] -[s5;:Image`:`:Image`(Image`(`*`)`(`)`): [@0 Image(Image_(`*fn)())]&] +[s3; &] +[s4; &] +[s5;:Image`:`:Image`(Image`(`*`)`(`)`): Image(Image_(`*fn)())&] [s2;%% This function allow Image to be directly constructed from pointer to function returning the Image. This allows omitting parenthesis when passing Iml image constants as arguments.&] -[s7; &] -[s8; &] -[s5;:Image`:`:Image`(ImageBuffer`&`): [@0 Image(][_^ImageBuffer^@0 ImageBuffer][@(0.0.255) `& -][@0 _][@3 b][@0 )]&] +[s3; &] +[s4; &] +[s5;:Image`:`:Image`(ImageBuffer`&`): Image([_^ImageBuffer^ ImageBuffer][@(0.0.255) `&]_[@3 b +])&] [s2;%% Uses Image created in ImageBuffer. ImageBuffer is emptied by this operation.&] -[s2;%% &] -[s7; &] -[ {{10000t/25b/25@1 [s0;%% [* Standard cursors]]}}&] +[s3;%% &] [s0;%% &] -[s0;%% Image class contains several standard mouse cursor Images +[ {{10000t/25b/25@1 [s0;%% [* Standard cursors]]}}&] +[s9;%% Image class contains several standard mouse cursor Images as static member methods:&] [s0;%% &] [ {{3333:3333:3334f0;g0; [ {{10000>274; [s0; Arrow] @@ -196,4 +195,5 @@ as static member methods:&] :: [s0; SizeBottomLeft] :: [s0; SizeBottom] :: [s0; SizeBottomRight]}}]}}&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/ImageBuffer$en-us.tpp b/uppsrc/Draw/src.tpp/ImageBuffer$en-us.tpp index 780fb9f26..d62fad861 100644 --- a/uppsrc/Draw/src.tpp/ImageBuffer$en-us.tpp +++ b/uppsrc/Draw/src.tpp/ImageBuffer$en-us.tpp @@ -11,17 +11,17 @@ topic "ImageBuffer"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 ImageBuffer]]}}&] -[s0;i448;a25;kKO9;@(0.0.255) &] +[s3; &] [s1;:ImageBuffer`:`:class: [*@(0.0.255) class][* _ImageBuffer_:_][*@(0.0.255) private][* _][*@3 N oCopy]&] -[s2;%% ImageBuffer represents a writable Image `- an array of RGBA +[s9;%% ImageBuffer represents a writable Image `- an array of RGBA pixels. ImageBuffer can be converted to Image in low`-const constant time while loosing its content and vice versa, Image can be converted to ImageBuffer again loosing its content.&] -[s2;%% Content of Image / ImageBuffer can be classified to optimize +[s9;%% Content of Image / ImageBuffer can be classified to optimize drawing. Possible classifications are&] [s2;%% &] -[ {{2913:7087<288;>640; [s0;%% [* IMAGE`_UNKNOWN]] +[ {{2913:7087<288;>416; [s0;%% [* IMAGE`_UNKNOWN]] :: [s0;%% The image kind is unknown.] :: [s0;%% [* IMAGE`_EMPTY]] :: [s0;%% The image is empty (all alpha values are 0).] @@ -32,16 +32,16 @@ drawing. Possible classifications are&] :: [s0;%% [* IMAGE`_OPAQUE]] :: [s0;%% The image has all alpha values 255.]}}&] [s2;%% &] -[s2;%% Note that is the kind of image is unknown, painting routine +[s9;%% Note that is the kind of image is unknown, painting routine determines it automatically by scanning pixels and stores the result.&] -[s2;%% &] -[s2;%% Pixels of image are organized in simple continual POD array, +[s9;%% Pixels of image are organized in simple continual POD array, first pixel being top`-left.&] -[s2;%% U`+`+ expects pixels to be in premultiplied alpha format.&] +[s9;%% U`+`+ expects pixels to be in premultiplied alpha format.&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Member List]]}}&] -[s4;H0; &] +[s3; &] [s5;:ImageBuffer`:`:SetKind`(int`): [*@(0.0.255) void][* _SetKind(][*@(0.0.255) int][* _][*@3 k ][* )]&] [s2;%% Sets the kind of image. You can use this to avoid automatic @@ -155,8 +155,9 @@ mageBuffer][*@(0.0.255) `&][* _][*@3 img][* )]&] and empty after this operation, price paid for low`-cost constant time operation.&] [s3; &] +[s0; &] [ {{10000t/25b/25@1 [s0; [* Constructor Detail]]}}&] -[s4;H0; &] +[s3; &] [s5;:ImageBuffer`:`:ImageBuffer`(`): [* ImageBuffer]()&] [s2;%% Constructs empty ImageBuffer.&] [s3; &] @@ -175,4 +176,5 @@ is undefined.&] [s2;%% Assigns pixels of [%-*@3 img] to ImageBuffer. [%-*@3 img] is cleared and empty after this operation, price paid for low`-cost constant time operation.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/ImageEncoder$en-us.tpp b/uppsrc/Draw/src.tpp/ImageEncoder$en-us.tpp index 98eaab340..3bdbb30b0 100644 --- a/uppsrc/Draw/src.tpp/ImageEncoder$en-us.tpp +++ b/uppsrc/Draw/src.tpp/ImageEncoder$en-us.tpp @@ -11,15 +11,15 @@ topic "ImageEncoder"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 ImageEncoder]]}}&] -[s4;H0; &] -[s0;a25; [@(0.0.255)3 class][3 _][*3 ImageEncoder][3 _:_][@(0.0.255)3 public][3 _][*_^RasterEncoder^3 R -asterEncoder]&] -[s0;l288;%% This RasterEncoder derived class encodes scanlines to -produce regular Image as result.&] -[s0;l288;%% &] [s3; &] +[s1;:ImageEncoder`:`:class: [@(0.0.255)3 class][3 _][*3 ImageEncoder][3 _:_][@(0.0.255)3 public][3 _ +][*@3;3 RasterEncoder]&] +[s9;%% This RasterEncoder derived class encodes scanlines to produce +regular Image as result.&] +[s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:ImageEncoder`:`:operator const RGBA`*`(`): [@(0.0.255) operator]_[@(0.0.255) const]_ [_^RGBA^ RGBA]_`*()&] [s2;%% Returns a pointer to the array of pixels of Image.&] @@ -28,4 +28,5 @@ produce regular Image as result.&] [s5;:ImageEncoder`:`:operator Image`(`): [* operator_Image]()&] [s2;%% Returns the resulting Image. Should only be called after all scanlines (according to requested Image size) are completed.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/Iml$en-us.tpp b/uppsrc/Draw/src.tpp/Iml$en-us.tpp index bdd613146..058957289 100644 --- a/uppsrc/Draw/src.tpp/Iml$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Iml$en-us.tpp @@ -1,80 +1,104 @@ topic "Iml and image list class methods"; [2 $$0,0#00000000000000000000000000000000:Default] -[i448;a25;kKO9;*@(64)2 $$1,0#37138531426314131252341829483380:class] +[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,2#27521748481378242620020725143825:desc] -[a83;*R6 $$3,0#31310162474203024125188417583966:caption] -[l288;i1121;b17;O9;~~~.1408;2 $$4,0#10431211400427159095818037425705:param] -[i448;a25;kKO9;*@(64)2 $$5,0#37138531426314131252341829483370:item] -[*+117 $$6,6#14700283458701402223321329925657:header] -[0 $$7,0#96390100711032703541132217272105:end] -[H6;0 $$8,0#05600065144404261032431302351956:begin] +[0 $$3,0#96390100711032703541132217272105:end] +[H6;0 $$4,0#05600065144404261032431302351956:begin] +[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item] +[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement] +[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] +[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] +[b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s3; Iml and image list class methods&] +[s0; [*@3+150 Iml and image list class methods]&] +[s3; &] [s0; &] -[s1;K:`:`:Iml`:`:class:%- [@(0.0.255) class]_[@0 Iml]&] -[s2; Single global instance of Iml class is associated with each +[ {{10000@(113.42.0) [s0; [*@7;4 Iml]]}}&] +[s3; &] +[s1;K:`:`:Iml`:`:class:%- [@(0.0.255) class][@(64) _]Iml&] +[s9; Single global instance of Iml class is associated with each image list class which represents content of .iml file designed by image designer. Class provides array`-like access to the list of Images. To acquire Iml instance for particular image list class, call its Iml class method.&] -[s0; &] -[s5;K:`:`:Iml`:`:Reset`(`):%- [@(0.0.255) void]_[@0 Reset]()&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3; &] +[s5;:Iml`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&] [s2; Resets image list class to the content designed in Image designer.&] -[s0; &] -[s5;K:`:`:Iml`:`:GetCount`(`)const:%- [@(0.0.255) int]_[@0 GetCount]()_[@(0.0.255) const]&] +[s3; &] +[s4;%- &] +[s5;:Iml`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&] [s2; Returns the number of Images in the list.&] -[s0; &] -[s5;K:`:`:Iml`:`:GetId`(int`):%- [^`:`:String^ String]_[@0 GetId]([@(0.0.255) int]_[@3 i])&] +[s3; &] +[s4;%- &] +[s5;:Iml`:`:GetId`(int`):%- [_^String^ String]_[* GetId]([@(0.0.255) int]_[*@3 i])&] [s2;%- [%% Returns the identifier of Image at ][*@3 i].&] -[s0; &] -[s5;K:`:`:Iml`:`:Get`(int`):%- [^`:`:Image^ Image]_[@0 Get]([@(0.0.255) int]_[@3 i])&] +[s3; &] +[s4;%- &] +[s5;:Iml`:`:Get`(int`):%- [_^Image^ Image]_[* Get]([@(0.0.255) int]_[*@3 i])&] [s2; Returns the Image at [%-*@3 i].&] -[s0; &] -[s5;K:`:`:Iml`:`:Find`(const`:`:String`&`)const:%- [@(0.0.255) int]_[@0 Find]([@(0.0.255) c -onst]_[^`:`:String^ String]`&_[@3 id])_[@(0.0.255) const]&] +[s3; &] +[s4;%- &] +[s5;:Iml`:`:Find`(const String`&`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[_^String^ S +tring][@(0.0.255) `&]_[*@3 s])_[@(0.0.255) const]&] [s2; Finds the position of Image with given [%-*@3 id]. Returns negative value if not found.&] -[s0; &] -[s5;K:`:`:Iml`:`:Set`(int`,const`:`:Image`&`):%- [@(0.0.255) void]_[@0 Set]([@(0.0.255) int -]_[@3 i], [@(0.0.255) const]_[^`:`:Image^ Image]`&_[@3 img])&] +[s3; &] +[s4;%- &] +[s5;:Iml`:`:Set`(int`,const Image`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i], +[@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] [s2;%- [%% Overwrites the Image at ][*@3 i].&] +[s3; &] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Image list class methods]]}}&] +[s9; These class methods are defined in each Image list class:&] +[s3; &] [s0; &] -[s0; &] -[s6; Image list class methods&] -[s0; &] -[s0; These class methods are defined in each Image list class:&] -[s0; &] -[s5; static `::[^`:`:Iml^ Iml]`& [@0 Iml]();&] +[s5; static `::[^`:`:Iml^ Iml]`& Iml[@(64) ();]&] [s2; Return reference to Iml object for given image list class.&] -[s0; &] -[s5; static [@(0.0.255) int] [@0 Find]([@(0.0.255) const] [^`:`:String^ String]`& -[@3 id])&] -[s5; static [@(0.0.255) int] [@0 Find]([@(0.0.255) const char] `*[@3 id])&] +[s3; &] +[s4; &] +[s5; static [@(0.0.255) int][@(64) ]Find[@(64) (][@(0.0.255) const][@(64) +][^`:`:String^@(64) String][@(64) `& ][@3 id][@(64) )]&] +[s5; static [@(0.0.255) int][@(64) ]Find[@(64) (][@(0.0.255) const char][@(64) +`*][@3 id][@(64) )]&] [s2; Same as Iml().Find([*@3 id]).&] -[s0; &] -[s5; static [@(0.0.255) int] [@0 GetCount]()&] +[s3; &] +[s4; &] +[s5; static [@(0.0.255) int][@(64) ]GetCount[@(64) ()]&] [s2; Same as Iml().GetCount().&] -[s0; &] -[s5; static [^`:`:String^ String] [@0 GetId]([@(0.0.255) int] [@3 i])&] +[s3; &] +[s4; &] +[s5; static [^`:`:String^ String] GetId[@(64) (][@(0.0.255) int][@(64) ][@3 i][@(64) )]&] [s2; Same as Iml().GetId([*@3 i]).&] -[s0; &] -[s5; static [^`:`:Image^ Image] [@0 Get]([@(0.0.255) int] [@3 i])&] +[s3; &] +[s4; &] +[s5; static [^`:`:Image^ Image] Get[@(64) (][@(0.0.255) int][@(64) ][@3 i][@(64) )]&] [s2; Same as Iml().Get([*@3 i]).&] -[s0; &] -[s5; static [^`:`:Image^ Image] [@0 Get]([@(0.0.255) const char] `*[@3 id])&] -[s5; static [^`:`:Image^ Image] [@0 Get]([@(0.0.255) const] [^`:`:String^ String]`& -[@3 id])&] +[s3; &] +[s4; &] +[s5; static [^`:`:Image^ Image] Get[@(64) (][@(0.0.255) const char][@(64) +`*][@3 id][@(64) )]&] +[s5; static [^`:`:Image^ Image] Get[@(64) (][@(0.0.255) const][@(64) ][^`:`:String^@(64) Strin +g][@(64) `& ][@3 id][@(64) )]&] [s2; Same as Iml().Get(Find([*@3 id])). Image with required [*@3 id ]must exist in image list.&] -[s0; &] -[s5; static [@(0.0.255) void] [@0 Set]([@(0.0.255) int] [@3 i], [@(0.0.255) const] -[^`:`:Image^ Image]`& [@3 m])&] +[s3; &] +[s4; &] +[s5; static [@(0.0.255) void][@(64) ]Set[@(64) (][@(0.0.255) int][@(64) ][@3 i][@(64) , +][@(0.0.255) const][@(64) ][^`:`:Image^@(64) Image][@(64) `& ][@3 m][@(64) )]&] [s2; Same as Iml().Set([*@3 i], [*@3 m]).&] -[s0; &] -[s5; static [@(0.0.255) void] [@0 Set]([@(0.0.255) const char] `*[@3 s], -[@(0.0.255) const] [^`:`:Image^ Image]`& [@3 m])&] +[s3; &] +[s4; &] +[s5; static [@(0.0.255) void][@(64) ]Set[@(64) (][@(0.0.255) const char][@(64) +`*][@3 s][@(64) , ][@(0.0.255) const][@(64) ][^`:`:Image^@(64) Image][@(64) `& +][@3 m][@(64) )]&] [s2; Same as Iml().Set([*@3 s], [*@3 m]).&] -[s0; &] -[s5; static [@(0.0.255) void] [@0 Reset]()&] +[s3; &] +[s4; &] +[s5; static [@(0.0.255) void][@(64) ]Reset[@(64) ()]&] [s2; Same as Iml().Reset.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/PaintRect$en-us.tpp b/uppsrc/Draw/src.tpp/PaintRect$en-us.tpp index 3bc337233..445016a6c 100644 --- a/uppsrc/Draw/src.tpp/PaintRect$en-us.tpp +++ b/uppsrc/Draw/src.tpp/PaintRect$en-us.tpp @@ -11,15 +11,16 @@ topic "PaintRect"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0; [*@7;4 PaintRect]]}}&] -[s4;H0;%- &] +[s3;%- &] [s1;:PaintRect`:`:class:%- [@(0.0.255) class]_[* PaintRect]_:_[@(0.0.255) private]_[*@3 Moveab le]<[* PaintRect]>_&] -[s2; PaintRect is a simple helper class that combines Value and a +[s9; PaintRect is a simple helper class that combines Value and a reference to the Display to provide `"visual content`" of rectangle. It is [%-*@(0.0.255) Moveable].&] [s3;%- &] +[s0;%- &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s4;H0;%- &] +[s3;%- &] [s5;:PaintRect`:`:Paint`(Draw`&`,const Rect`&`,Color`,Color`,dword`)const:%- [@(0.0.255) v oid]_[* Paint]([_^Draw^ Draw][@(0.0.255) `&]_[*@3 w], [@(0.0.255) const]_[_^Rect^ Rect][@(0.0.255) `& ]_[*@3 r], [_^Color^ Color]_[*@3 ink]_`=_SColorText, [_^Color^ Color]_[*@3 paper]_`=_SColor @@ -108,7 +109,7 @@ etValue]()_[@(0.0.255) const]&] [s3;%- &] [s0;* &] [ {{10000F(128)G(128)@1 [s0; [* Constructor detail]]}}&] -[s4;H0;%- &] +[s3;%- &] [s5;:PaintRect`:`:PaintRect`(`):%- [* PaintRect]()&] [s2; Constructs empty PaintRect, with no Display assigned.&] [s3;%- &] @@ -125,4 +126,5 @@ onst]_[_^Display^ Display][@(0.0.255) `&]_[*@3 display], [@(0.0.255) const]_[_^V [s2; Constructs PaintRext with specified Display and Value.&] [s7; [%-*C@3 display]-|Display.&] [s7; [%-*C@3 val]-|Value.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/Raster$en-us.tpp b/uppsrc/Draw/src.tpp/Raster$en-us.tpp index a808c6e6f..c5ea0331f 100644 --- a/uppsrc/Draw/src.tpp/Raster$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Raster$en-us.tpp @@ -11,19 +11,19 @@ topic "Raster"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 Raster]]}}&] -[s4;H0; &] +[s3; &] [s1;:Raster`:`:class: [@(0.0.255)3 class][3 _][*3 Raster]&] -[s2;%% Raster is an abstract class representing raster image. Example +[s9;%% Raster is an abstract class representing raster image. Example of Raster derived classes is PngRaster, that serves as .png image file decoder or MemoryRaster, that represent image in memory that can be in specific format (not RGBA).&] -[s2;%% &] -[s2;%% Raster provides basic information about image (GetSize and +[s9;%% Raster provides basic information about image (GetSize and GetInfo returning Raster`::Info) and is a source of image scanlines. Scanlines are returned as Raster`::Line objects. If possible, Raster derived classes should attempt to minimize memory requirements. For example, PngRaster only fetches individual scanline from the file at time, if possible.&] +[s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Raster`::Line]]}}&] [s3; &] @@ -41,8 +41,9 @@ exists.&] [s2;%% &] [s2;%% For convenience, this class is also typedefed as RasterLine.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Raster`::Line Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:Raster`:`:Line`:`:GetRGBA`(`)const: [@(0.0.255) const]_[_^RGBA^ RGBA]_`*[* GetRGBA]()_ [@(0.0.255) const]&] [s2;%% Returns a pointer to array with scanline pixels. Conversion @@ -65,7 +66,7 @@ onst]_[_^RGBA^ RGBA]_`*()_[@(0.0.255) const]&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Raster`::Line Constructor detail]]}}&] -[s4;H0; &] +[s3; &] [s5;:Raster`:`:Line`:`:Line`(const RGBA`*`,bool`): [* Line]([@(0.0.255) const]_[_^RGBA^ RGB A]_`*[*@3 data], [@(0.0.255) bool]_[*@3 free])&] [s2;%% Constructs Line from RGBA data. If [%-*@3 free] is true, Line @@ -96,13 +97,14 @@ or`=]([@(0.128.128) pick`_]_[_^Raster`:`:Line^ Line][@(0.0.255) `&]_[*@3 b])&] [s3;%% &] [s1;@(0.0.255)3 &] [ {{10000F(128)G(128)@1 [s0;%% [* Raster`::Info]]}}&] -[s4;H0; &] +[s3; &] [s1;:Raster`:`:Info`:`:struct: [@(0.0.255)3 struct][3 _][*3 Raster`::Info]&] [s2;%% This structure is used to provide the information about Raster. For convenience, this class is also typedefed as RasterInfo.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Raster`::Line Member Variables]]}}&] -[s4;H0; &] +[s3; &] [s5;:Raster`:`:Info`:`:bpp: [@(0.0.255) int]_[* bpp]&] [s2;%% Number of bits per pixel. Default value is 24.&] [s3; &] @@ -127,7 +129,7 @@ For convenience, this class is also typedefed as RasterInfo.&] [s3; &] [s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Raster public methods]]}}&] -[s4;H0; &] +[s3; &] [s5;:Raster`:`:SeekPage`(int`): [@(0.0.255) virtual] [@(0.0.255) void]_[* SeekPage]([@(0.0.255) i nt]_[*@3 page])&] [s2;%% Provides Raster with ability to handle sources that contain @@ -209,4 +211,5 @@ the progress of operation (first int is current step, second is number of step to do) and also to cancel the operation (if it returns true; empty Image is returned in that case). Default value for the parameter means no progress feedback is provided.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/RasterEncoder$en-us.tpp b/uppsrc/Draw/src.tpp/RasterEncoder$en-us.tpp index fd37ec6ae..b8d22368f 100644 --- a/uppsrc/Draw/src.tpp/RasterEncoder$en-us.tpp +++ b/uppsrc/Draw/src.tpp/RasterEncoder$en-us.tpp @@ -11,9 +11,9 @@ topic "RasterEncoder"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0; [*@7;4 RasterEncoder]]}}&] -[s4;H0;%- &] +[s3;%- &] [s1;:RasterEncoder`:`:class:%- [@(0.0.255)3 class][3 _][*3 RasterEncoder]&] -[s2; RasterEncoder serves as consumer of RGBA scanline data. Typical +[s9; RasterEncoder serves as consumer of RGBA scanline data. Typical use is as encoder into one of common image file formats, like PNG. RasterEncoder provides an output buffer for client code (producer) to store the output RGBA scanline, when scanline is @@ -22,19 +22,20 @@ the RGBA scanline into specific format, according to [* format] protected member variable, then calls WriteLineRaw virtual method which performs the final processing (e.g. PNGEncoder stores it into PNG output stream).&] -[s2; [*/ RGBA optimization: ]There is a specific need to avoid redundant +[s9; RGBA optimization: There is a specific need to avoid redundant conversions and copies when the target is normal Image (with ImageEncoder). SetLine method can replace the default scanline buffer provided by RasterEncoder; that way it can use a pointer to ImageBuffer data and data are then can be stored directly into ImageBuffer (ImageEncoder calls SetLine in Start and WriteLineRaw -methods). WriteLineRaw can then check whether [%-*@3 data] points +methods). WriteLineRaw can then check whether [%-@3 data] points to suggested buffer (it is not guaranteed, because producer can provide yet another scanline buffer in WriteLine) and in that case, copying into target scanline can be completely skipped.&] +[s3; &] [s3;%- &] [ {{10000F(128)G(128)@1 [s0; [* Protected Members List]]}}&] -[s4;H0;%- &] +[s3;%- &] [s5;:RasterEncoder`:`:format:%- [_^RasterFormat^ RasterFormat]_[* format]&] [s2; Derived encoder should store the required conversion format here in Start method.&] @@ -45,8 +46,9 @@ line])&] [s2; Replaces the default scanline buffer to optimize storing RGBA data to direct targets..&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:RasterEncoder`:`:GetPaletteCount`(`):%- [@(0.0.255) virtual] [@(0.0.255) int]_[* GetPa letteCount]()&] [s2; Returns the number of colors in the palette (or zero).&] @@ -158,4 +160,5 @@ nt]_[*@3 cx], [@(0.0.255) int]_[*@3 cy], [_^Raster^ Raster][@(0.0.255) `&]_[*@3 &] [s2; Initializes encoder for output of image of specified size, optionally setting the palette.&] +[s3; &] [s0; ] \ No newline at end of file diff --git a/uppsrc/Draw/src.tpp/RasterFormat$en-us.tpp b/uppsrc/Draw/src.tpp/RasterFormat$en-us.tpp index d7d95973d..c479e8572 100644 --- a/uppsrc/Draw/src.tpp/RasterFormat$en-us.tpp +++ b/uppsrc/Draw/src.tpp/RasterFormat$en-us.tpp @@ -11,16 +11,16 @@ topic "RasterFormat"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 RasterFormat]]}}&] -[s4;H0; &] +[s3; &] [s1;:RasterFormat`:`:struct: [@(0.0.255)3 class][3 _][*3 RasterFormat]&] -[s2;%% This class serves as description and converter of various +[s9;%% This class serves as description and converter of various pixel formats. U`+`+ normally uses fixed 32`-bit RGBA format for all processing, but special formats are required e.g. to deal with image files or to reduce memory requirements.&] [s3; &] [s0;i448;a25;kKO9;@(0.0.255) &] [ {{10000F(128)G(128)@1 [s0;%% [* Raster Types]]}}&] -[s0;i448;a25;kKO9; &] +[s3; &] [ {{3523:6477^ [s0; RASTER`_1] :: [s0; 1 bit per pixel (2 colors, with palette)] :: [s0; RASTER`_2] @@ -56,9 +56,10 @@ with&] [s0;i448;a25;kKO9;@(0.0.255) &] [s0;i448;a25;kKO9; RASTER`_MSBFIRST-|-|Indicates that bytes or nibbles are in reversed order (in big endian).&] -[s0;i448;a25;kKO9;@(0.0.255) &] +[s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:RasterFormat`:`:Set1lf`(`): [@(0.0.255) void]_[* Set1lf]()&] [s2; Sets 1 bit per pixel format (RASTER`_1).&] [s3; &] diff --git a/uppsrc/Draw/src.tpp/Rasters$en-us.tpp b/uppsrc/Draw/src.tpp/Rasters$en-us.tpp index 3f83aa748..2b0d827ba 100644 --- a/uppsrc/Draw/src.tpp/Rasters$en-us.tpp +++ b/uppsrc/Draw/src.tpp/Rasters$en-us.tpp @@ -11,27 +11,31 @@ topic "Common Raster classes"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 ImageRaster]]}}&] -[s4;H0; &] +[s3; &] [s1;:ImageRaster`:`:class: [@(0.0.255)3 class][3 _][*3 ImageRaster][3 _:_][@(0.0.255)3 public][3 _ ][*@3;3 Raster]&] -[s2;%% This class provides the Raster interface to existing Image.&] -[s3; &] +[s9;%% This class provides the Raster interface to existing Image.&] +[s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] -[s4;H0; &] +[s3; &] [s5;:ImageRaster`:`:ImageRaster`(const Image`&`): [* ImageRaster]([@(0.0.255) const]_[_^Image^ I mage][@(0.0.255) `&]_[*@3 img])&] [s2;%% Creates Raster of [%-*@3 img].&] [s3; &] [s0; &] +[s0; &] +[s0; &] [ {{10000@(113.42.0) [s0;%% [*@7;4 MemoryRaster]]}}&] [s3;%% &] [s1;:MemoryRaster`:`:class: [@(0.0.255)3 class][3 _][*3 MemoryRaster][3 _:_][@(0.0.255)3 public][3 _ ][*@3;3 Raster]&] -[s2;%% This class represents an image in specific format stored in +[s9;%% This class represents an image in specific format stored in memory. It has implicit pick transfer.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:MemoryRaster`:`:Load`(Raster`&`): [@(0.0.255) void]_[* Load]([_^Raster^ Raster][@(0.0.255) `& ]_[*@3 raster])&] [s2;%% Loads [%-*@3 raster] into MemoryRaster. Keeps the format of @@ -42,8 +46,9 @@ source.&] ]&] [s2;%% Returns the number of bytes used to store scanlines of MemoryRaster.&] [s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] -[s4;H0; &] +[s3; &] [s5;:MemoryRaster`:`:MemoryRaster`(`): [* MemoryRaster]()&] [s2;%% Constructs empty MemoryRaster.&] [s3; &] @@ -53,18 +58,22 @@ source.&] [s2;%% Loads [%-*@3 raster] into MemoryRaster. Keeps the format of source.&] [s3;%% &] +[s0;%% &] +[s0;%% &] +[s0;%% &] [ {{10000@(113.42.0) [s0;%% [*@7;4 StreamRaster]]}}&] [s3;%% &] [s1;:StreamRaster`:`:class: [@(0.0.255)3 class][3 _][*3 StreamRaster][3 _:_][@(0.0.255)3 public][3 _ ][*@3;3 Raster]&] -[s2;%% Represents an image stored in Stream, usually used as base`-class +[s9;%% Represents an image stored in Stream, usually used as base`-class for image decoders, e.g. PNGRaster. StreamRaster derived classes can be registered, in that case a class factory of such class is stored in an array and attempted to load the file of unknown format type.&] -[s3; &] +[s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s4;H0; &] +[s3; &] [s5;:StreamRaster`:`:GetStream`(`): [_^Stream^ Stream][@(0.0.255) `&]_[* GetStream]()&] [s2;%% Returns the associated Stream.&] [s3; &] @@ -101,6 +110,7 @@ alse])&] or string. [%-*@3 progress] can be used to track the progress and to cancel loading (by returning true).&] [s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Registered Decoders and multi`-format support]]}}&] [s4;H0; &] [s5;:StreamRaster`:`:Register`(`): [@(0.0.255) static] [@(0.0.255) template]_<[@(0.0.255) c @@ -134,6 +144,7 @@ alse])&] all registered decoders. [%-*@3 progress] can be used to track progress of operation or to cancel it by returning true.&] [s3;%% &] +[s0;%% &] [ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] [s4;H0; &] [s5;:StreamRaster`:`:StreamRaster`(`): [* StreamRaster]()&] diff --git a/uppsrc/Draw/src.tpp/StreamRasterEncoder$en-us.tpp b/uppsrc/Draw/src.tpp/StreamRasterEncoder$en-us.tpp index d8c0eeea7..0a9aa90ef 100644 --- a/uppsrc/Draw/src.tpp/StreamRasterEncoder$en-us.tpp +++ b/uppsrc/Draw/src.tpp/StreamRasterEncoder$en-us.tpp @@ -11,15 +11,15 @@ topic "StreamRasterEncoder"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0; [*@7;4 StreamRasterEncoder]]}}&] -[s4;H0;%- &] +[s3;%- &] [s1;:StreamRasterEncoder`:`:class:%- [@(0.0.255)3 class][3 _][*3 StreamRasterEncoder][3 _:_][@(0.0.255)3 p ublic][3 _][*@3;3 RasterEncoder]&] -[s2; This class adds methods useful for working with image streams +[s9; This class adds methods useful for working with image streams to RasterEncoder.&] -[s2; &] -[s3;%- &] +[s3; &] +[s0; &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] -[s4;H0;%- &] +[s3;%- &] [s5;:StreamRasterEncoder`:`:SetStream`(Stream`&`):%- [@(0.0.255) void]_[* SetStream]([_^Stream^ S tream][@(0.0.255) `&]_[*@3 `_s])&] [s2; Sets the Stream to be used as source of image data. Derived @@ -64,4 +64,5 @@ mage][@(0.0.255) `&]_[*@3 img])&] ng]([@(0.0.255) const]_[_^Image^ Image][@(0.0.255) `&]_[*@3 img])&] [s2; Stores [%-*@3 img] to memory and returns resulting binary data as String.&] +[s3; &] [s0; ] \ No newline at end of file