Documentation update

git-svn-id: svn://ultimatepp.org/upp/trunk@1986 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cbpporter 2010-01-30 10:27:43 +00:00
parent 4775471c45
commit 8264fa0f0c
28 changed files with 1397 additions and 1156 deletions

View file

@ -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; ]
[s3;%% &]
[s0;%% ]

View file

@ -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; ]

View file

@ -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<Foo> `{....]&]
[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) >]_>_

View file

@ -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; ]

View file

@ -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; &]

View file

@ -81,7 +81,7 @@ _[@(0.0.255) false])&]
XML entities (like `'[@(128.0.255) `&lt;]`') 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]`",

View file

@ -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;%% ]
[s0; ]

View file

@ -104,7 +104,7 @@ Style]()&]
Returns `*this for chaining.&]
[s3;%- &]
[s0; &]
[s3;%- &]
[s0;%- &]
[s0;%- &]
[ {{10000@3 [s0; [*@(229)4 ButtonOption`::Style]]}}&]
[s3; &]

View file

@ -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;

View file

@ -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; ]
[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;%- ]

View file

@ -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]]}}&]

View file

@ -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]&]

View file

@ -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; ]

View file

@ -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`<Point`>`&`,const Vector`<int`>`&`,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`<Point`>`&`,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`<Point`>`&`,const Vector`<int`>`&`,const Vector`<int`>`&`,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`<Point`>`&`,const Vector`<int`>`&`,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`<Point`>`&`,const Vector`<int`>`&`,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`<Point`>`&`,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; ]

View file

@ -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; ]

View file

@ -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; ]

View file

@ -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 <Font, FONT`_V, ][_^Moveable^@0 Moveable][@0 <Font>_>]&]
[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]<Fo
nt, FONT`_V, [_^Moveable^ Moveable]<Font>_>&]
[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; ]

View file

@ -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])&]

View file

@ -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 <Image>_>_]&]
[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]<Image>_>_&]
[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; ]

View file

@ -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; ]

View file

@ -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; ]

View file

@ -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; ]

View file

@ -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; ]

View file

@ -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; ]

View file

@ -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; ]

View file

@ -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; &]

View file

@ -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]()&]

View file

@ -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; ]