mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
reorganizing repo
git-svn-id: svn://ultimatepp.org/upp/trunk@9206 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
7d17505cfe
commit
e3e8d627f5
3840 changed files with 0 additions and 1161578 deletions
|
|
@ -1,562 +0,0 @@
|
|||
topic "template <class T, class V, class HashFn> class AIndex";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9; $$1,0#37138531426314131252341829483380:class]
|
||||
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
||||
[0 $$3,0#96390100711032703541132217272105:end]
|
||||
[H6;0 $$4,0#05600065144404261032431302351956:begin]
|
||||
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
|
||||
[l288;a17;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
|
||||
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
|
||||
[{_}%EN-US
|
||||
[s5;%- [*@(64) template_<][*@(0.0.255) class][*@(64) _][*@4 T][*@(64) , ][*@(0.0.255) class][*@(64) _
|
||||
][*@4 V][*@(64) , ][*@(0.0.255) class][*@(64) _][*@4 HashFn][*@(64) >__][*@(0.0.255) class][*@(64) _
|
||||
][* AIndex]&]
|
||||
[s0;:`:`:AbortExc`:`:`:`:AbortExc`(`): [t class ][*t AIndex]&]
|
||||
[s0; &]
|
||||
[s0; [*C@4 T]-|Type of [^topic`:`/`/CoreTopics`/src`/AIndex`$en`-us^ elements]
|
||||
to store. T must satisfy requirements for container flavor identified
|
||||
by parameter V and must have [*C operator`=`=] defined.&]
|
||||
[s0; [*C@4 V]-|Basic random access container.&]
|
||||
[s0; [*C@4 HashFn]-|Hashing class. Must have defined [*C unsigned operator()(const
|
||||
T`& x)] method returning hash value for elements.&]
|
||||
[s0; This template class adds associative capabilities to basic random
|
||||
access containers, forming flavors of Index. It is used as base
|
||||
class for concrete index flavors, [* Index] and [* ArrayIndex].&]
|
||||
[s0; It allows adding elements at the end of sequence in constant
|
||||
amortized time like basic random container. Additionally, it
|
||||
also allows fast retrieval of a position of the element with
|
||||
specified value. Hashing is used for this operation. AIndex stores
|
||||
hash`-values of elements, so it has no sense to cache them externally.&]
|
||||
[s0; Building of internal hash maps of AIndex is always deferred
|
||||
till search operation. This effectively avoids unneeded remapping
|
||||
if large number of elements is added.&]
|
||||
[s0; Removing elements from an AIndex causes an interesting problem.
|
||||
While it is possible to simply remove (or insert) an element
|
||||
at a specified position, such operation has to move a lot of
|
||||
elements and also scratches internal hash maps. Thus removing
|
||||
elements this way is slow, especially when combined with searching.&]
|
||||
[s0; The solution for this problem is [*/ unlinking] of elements. Unlinked
|
||||
elements are not removed from index, but they are [*/ ignored][/
|
||||
]by search operations. Unlinking is a simple, constant time,
|
||||
fast operation. Further, it is possible to place an element at
|
||||
the first available unlinked position (rather than to the end
|
||||
of sequence) using the [* Put] method, reusing unlinked position
|
||||
in short constant time.&]
|
||||
[s0; The only problem of unlinking is that it breaks the so`-called
|
||||
[* multi`-key ordering]. This term means that if there are more
|
||||
elements with the same value in the index and they are iterated
|
||||
through using the FindNext method, their positions (got as the
|
||||
result of Find and subsequent FindNext methods) are in ascending
|
||||
order. The problem is that it is impossible to implement placing
|
||||
elements at unlinked positions in short time while preserving
|
||||
this ordering. On the other hand, usage scenarios for indexes
|
||||
show that need for unlinking elements and multi`-key ordering
|
||||
is almost always disjunct. For the rest of the cases, it is always
|
||||
possible to restore ordering by the [* Reindex] or the [* Sweep]
|
||||
method.&]
|
||||
[s0; Like any other NTL container, AIndex is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m
|
||||
oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ pick
|
||||
and optional deep copy] transfer semantics, although these features
|
||||
are more important in derived concrete index flavors.&]
|
||||
[s0; Members&]
|
||||
[s0; &]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Add`(const T`&`,unsigned`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) cons
|
||||
t]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Adds a new element with a precomputed hash value.The precomputed
|
||||
hash value must be the same as the hash value that would be the
|
||||
result of HashFn. The benefit of this variant is that sometimes
|
||||
you can compute hash`-value as the part of an other process,
|
||||
like fetching strings from an input stream.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 x]-|Element to add.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Add`(const T`&`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) const]_[*@4 T]`&
|
||||
_[*@3 x])&]
|
||||
[s2; Adds a new element to AIndex.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 x]-|Element to add.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Find`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex, using a precomputed hash value. The precomputed
|
||||
hash value must be the same as the hash value that would be result
|
||||
of HashFn. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AIndex, the lowest
|
||||
position is retrieved. If the specified value does not exist
|
||||
in AIndex, a negative number is returned. Unlinked elements are
|
||||
ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative value if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Find`(const T`&`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[*@4 T
|
||||
]`&_[*@3 x])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AIndex, lowest
|
||||
position is retrieved. If the specified value does not exist
|
||||
in AIndex, a negative number is returned. Unlinked elements are
|
||||
ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative value if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindNext`(int`)const:%- [@(0.0.255) int]_[* FindNext]([@(0.0.255) int]_[*@3 i
|
||||
])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the next element with the same value
|
||||
as the element at specified position. If multi`-key ordering
|
||||
is not broken and more than one element with that value exists
|
||||
in AIndex, the lowest position greater than specified one is
|
||||
retrieved, so positions returned by subsequent calls to FindNext
|
||||
are in ascending order. When there are no more elements with
|
||||
the required value, a negative number is returned. Unlinked elements
|
||||
are ignored.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*/ Return value]-|Position of the next element with same value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindLast`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* FindLast](
|
||||
[@(0.0.255) const]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the last element with specified value
|
||||
in AIndex, using a precomputed hash value. The precomputed hash
|
||||
value must be the same as the hash value that would be the result
|
||||
of HashFn. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AIndex, the greatest
|
||||
position is retrieved. If the specified value does not exist
|
||||
in AIndex, a negative number is returned. Unlinked elements are
|
||||
ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative number if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindLast`(const T`&`)const:%- [@(0.0.255) int]_[* FindLast]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 x])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the last element with specified value
|
||||
in AIndex. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AIndex, the greatest
|
||||
position is retrieved. If element does not exist in AIndex, a
|
||||
negative number is returned. Unlinked elements are ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative number if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindPrev`(int`)const:%- [@(0.0.255) int]_[* FindPrev]([@(0.0.255) int]_[*@3 i
|
||||
])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the previous element with the same
|
||||
value as the element at the specified position. If multi`-key
|
||||
ordering is not broken and more than one element with that value
|
||||
exists in AIndex, the greatest position lower than specified
|
||||
one is retrieved (so that positions got by subsequent calls to
|
||||
FindNext are in descending order). When there are no more elements
|
||||
with required value, negative number is returned. Unlinked elements
|
||||
are ignored.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*/ Return value]-|Position of the previous element with same value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindAdd`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Retrieves position of first element with specified value in
|
||||
AIndex, using a precomputed hash value. Precomputed hash value
|
||||
must be same as hash value that would be result of HashFn. If
|
||||
multi`-key ordering is not broken and more than one element with
|
||||
the same value exists in AIndex, the lowest position is retrieved.
|
||||
If element does not exist in AIndex, it is added to AIndex and
|
||||
position of this newly added element is returned. Unlinked elements
|
||||
are ignored.&]
|
||||
[s7; [*C@3 key]-|Element to find or add.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the found or added element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindAdd`(const T`&`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) const]_
|
||||
[*@4 T]`&_[*@3 key])&]
|
||||
[s2; Retrieves position of first element with specified value in
|
||||
AIndex. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AIndex, lowest position
|
||||
is retrieved. If element does not exist in AIndex, it is added
|
||||
to AIndex and position of this newly added element is returned.
|
||||
Unlinked elements are ignored.&]
|
||||
[s7; [*C@3 key]-|Element to find or add.&]
|
||||
[s7; [*/ Return value]-|Position of the found or added element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`<`<`(const T`&`):%- [_^`:`:AIndex^ AIndex]`&_[* operator<<]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 x])&]
|
||||
[s2; Operator replacement of [* void Add(const T`& x)]. By returning
|
||||
reference to AIndex it allows adding multiple elements in a single
|
||||
expression, thus e.g. allowing to construct a temporary Index
|
||||
as part of an expression like Foo((Index<int>() << 1 << 2)).&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 newt]-|Element to be added.&]
|
||||
[s7; [*/ Return value]-|Reference to AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Unlink`(int`):%- [@(0.0.255) void]_[* Unlink]([@(0.0.255) int]_[*@3 i])&]
|
||||
[s2; Unlinks the element at the specified position. The unlinked
|
||||
item stays in AIndex but is ignored by any Find operation.&]
|
||||
[s7; [*C@3 i]-|Position of item to unlink.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Put`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const
|
||||
]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; If there are any unlinked elements in AIndex, one of them is
|
||||
replaced by specified value. If there are no unlinked elements,
|
||||
the element with the specified value is appended to the end of
|
||||
AIndex using [* Add]. The precomputed hash should be same as the
|
||||
result of HashFn. The position of the placed element is returned.&]
|
||||
[s6; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 x]-|Element to put into AIndex.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position where the element was placed.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Put`(const T`&`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const]_[*@4 T]`&_
|
||||
[*@3 x])&]
|
||||
[s2; If there are any unlinked elements in AIndex, one of them is
|
||||
replaced by specified value. If there are no unlinked elements,
|
||||
the element with the specified value is appended to the end of
|
||||
AIndex using [* Add]. The position of the placed element is returned.&]
|
||||
[s6; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s7; [*C@3 x]-|Element to put into AIndex.&]
|
||||
[s7; [*/ Return value]-|Position where element is placed.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindPut`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex, using a precomputed hash value. The precomputed
|
||||
hash value must be the same as the hash value that would be the
|
||||
result of HashFn. If the specified value does not exist in the
|
||||
AIndex, it is placed to it using [* Put(const T`& x, unsigned `_hash).]
|
||||
The position of the found or placed element is returned.&]
|
||||
[s6;~~~.992; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 key]-|Element to find or put.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the found or placed element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindPut`(const T`&`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) const]_
|
||||
[*@4 T]`&_[*@3 key])&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex. If the element does not exist in the AIndex,
|
||||
it is placed to it using [* Put(const T`& x).] The position of
|
||||
the found or placed element is returned.&]
|
||||
[s6; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 key]-|Element to find or put.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the found or placed element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Set`(int`,const T`&`,unsigned`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) i
|
||||
nt]_[*@3 i], [@(0.0.255) const]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Replaces the element at the specified position with a new element
|
||||
with the specified value, using a precomputed hash`-value. Speed
|
||||
of this operation depends on the total number of elements with
|
||||
the same value as the specified one.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*C@3 x]-|Value to set.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Set`(int`,const T`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i
|
||||
], [@(0.0.255) const]_[*@4 T]`&_[*@3 x])&]
|
||||
[s2; Replaces the element at the specified position with a new element
|
||||
with the specified value. Speed of this operation depends on
|
||||
total number of elements with the same value as specified the
|
||||
specified one.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*C@3 x]-|Value to set.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T]`&_[* operator`[`]
|
||||
]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Returns the element at the specified position.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*/ Return value]-|Constant reference to element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&]
|
||||
[s2; Returns number of elements in AIndex.&]
|
||||
[s7; [*/ Return value]-|Actual number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&]
|
||||
[s2; Tests whether AIndex is empty. Same as GetCount() `=`= 0.&]
|
||||
[s7; [*/ Return value]-|true if AIndex is empty, false otherwise.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&]
|
||||
[s2; Removes all elements from AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:ClearIndex`(`):%- [@(0.0.255) void]_[* ClearIndex]()&]
|
||||
[s2; Restores multi`-key ordering.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:UnlinkKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&]
|
||||
[s2; Unlinks all elements with specified value using precomputed
|
||||
hash`-value. Unlinked elements stay in AIndex but are ignored
|
||||
by any Find operations. Precomputed hash value must be same as
|
||||
hash value that would be result of HashFn. &]
|
||||
[s7; [*C@3 k]-|Value of elements to unlink.&]
|
||||
[s7; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Number of elements unlinked.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:UnlinkKey`(const T`&`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) con
|
||||
st]_[*@4 T]`&_[*@3 k])&]
|
||||
[s2; Unlinks all elements with specified value. Unlinked elements
|
||||
remain in the AIndex but are ignored by any Find operations.&]
|
||||
[s7; [*C@3 k]-|Value of elements to unlink.&]
|
||||
[s7; [*/ Return value]-|Number of elements unlinked.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:IsUnlinked`(int`)const:%- [@(0.0.255) bool]_[* IsUnlinked]([@(0.0.255) i
|
||||
nt]_[*@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Tests whether the element at the specified position is unlinked.&]
|
||||
[s7; [*C@3 i]-|Position.&]
|
||||
[s7; [*/ Return value]-|true if element is unlinked.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Sweep`(`):%- [@(0.0.255) void]_[* Sweep]()&]
|
||||
[s2; Removes all unlinked elements from AIndex. Complexity of the
|
||||
operation depends on the number of elements in AIndex, not on
|
||||
the number of unlinked elements. Also restores multi`-key ordering.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Insert`(int`,const T`&`,unsigned`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i
|
||||
nt]_[*@3 i], [@(0.0.255) const]_[*@4 T]`&_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&]
|
||||
[s2; Inserts an element with the specified value at the specified
|
||||
position, using a precomputed hash value. The precomputed hash
|
||||
value must be the same as the hash value that would be the result
|
||||
of HashFn. This is a slow operation, especially when combined
|
||||
with any search operations.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Insert position.&]
|
||||
[s7; [*C@3 k]-|Element to insert.&]
|
||||
[s7; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Insert`(int`,const T`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int
|
||||
]_[*@3 i], [@(0.0.255) const]_[*@4 T]`&_[*@3 k])&]
|
||||
[s2; Inserts an element with the specified value at the specified
|
||||
position. This is a slow operation, especially when combined
|
||||
with any search operations.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Insert position.&]
|
||||
[s7; [*C@3 k]-|Element to insert.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Remove`(int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&]
|
||||
[s2; Removes the element at the specified position. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Position of the element to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c
|
||||
onst]_[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 count])&]
|
||||
[s2; Removes multiple elements from AIndex. Time of operation only
|
||||
slightly depends on the number of removed elements. This is a
|
||||
slow operation, especially when combined with any search operations.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 sorted`_list]-|Pointer to array of positions to remove, in
|
||||
ascending order.&]
|
||||
[s7; [*C@3 count]-|Number of elements to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Remove`(const`:`:Vector`<int`>`&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c
|
||||
onst]_[_^`:`:Vector^ Vector]<int>`&_[*@3 sorted`_list])&]
|
||||
[s2; Removes multiple elements from AIndex. Same as Remove(sorted`_list,
|
||||
sorted`_list.GetCount()).&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 sorted`_list]-|Sorted Vector of positions to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:RemoveKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&]
|
||||
[s2; Removes all elements with the specified value using a precomputed
|
||||
hash`-value. The precomputed hash value must be the same as the
|
||||
hash value that would be the result of HashFn. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s7; [*C@3 k]-|Value of the elements to remove.&]
|
||||
[s7; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:RemoveKey`(const T`&`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) con
|
||||
st]_[*@4 T]`&_[*@3 k])&]
|
||||
[s2; Removes all elements with the specified value. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s7; [*C@3 k]-|Value of the elements to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&]
|
||||
[s2; Reduces the number of elements in AIndex to the specified number.
|
||||
Requested number must be less than or equal to actual number
|
||||
of elements in AIndex.&]
|
||||
[s7; [*C@3 n]-|Requested number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])
|
||||
&]
|
||||
[s2; Drops the specified number of elements from the end of the AIndex
|
||||
(same as Trim(GetCount() `- n)).&]
|
||||
[s7; [*C@3 n]-|Number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T]`&_[* Top]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a reference to the last element in the AIndex.&]
|
||||
[s7; [*/ Return value]-|Reference of thr last element in the AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&]
|
||||
[s2; Reserves capacity. If the requested capacity is greater than
|
||||
current capacity, capacity is increased to the requested value.&]
|
||||
[s7; [*C@3 n]-|Requested capacity.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&]
|
||||
[s2; Minimizes the memory consumption of AIndex by decreasing the
|
||||
capacity to the number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&]
|
||||
[s2; Returns the current capacity of AIndex.&]
|
||||
[s7; [*/ Return value]-|Capacity of AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Serialize`(`:`:Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^`:`:Stream^ S
|
||||
tream]`&_[*@3 s])&]
|
||||
[s2; Serializes content of AIndex to/from Stream. Works only if NTL
|
||||
is used as part of UPP.&]
|
||||
[s6; Requires T to have serialization operator defined.&]
|
||||
[s7; [*C@3 s]-|Target/source stream.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:PickKeys`(`)pick`_:%- [*@4 V]_[* PickKeys]()_pick`_&]
|
||||
[s2; Returns a basic random access container of elements. Destroys
|
||||
AIndex by picking.&]
|
||||
[s7; [*/ Return value]-|Basic random access container of elements in
|
||||
AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetKeys`(`)const:%- [@(0.0.255) const]_[*@4 V]`&_[* GetKeys]()_[@(0.0.255) c
|
||||
onst]&]
|
||||
[s2; Returns a constant reference to basic random access container
|
||||
of elements.&]
|
||||
[s7; [*/ Return value]-|Constant reference to a basic random access
|
||||
container of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`=`(pick`_ V`&`):%- [_^`:`:AIndex^ AIndex]`&_[* operator`=](pi
|
||||
ck`__[*@4 V]`&_[*@3 s])&]
|
||||
[s2; Assigns basic random access container to AIndex. Transfers the
|
||||
source container in short constant time, but destroys it by picking.&]
|
||||
[s7; [*C@3 s]-|Source container.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`<`<`=`(const V`&`):%- [_^`:`:AIndex^ AIndex]`&_[* operator<<`=
|
||||
]([@(0.0.255) const]_[*@4 V]`&_[*@3 s])&]
|
||||
[s2; Assigns the basic random access container to AIndex, while preserving
|
||||
the value of the source container.&]
|
||||
[s6; Requires T to have deep copy constructor or optional deep copy.&]
|
||||
[s7; [*C@3 s]-|Source container.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(pick`_ V`&`):%- [* AIndex](pick`__[*@4 V]`&_[*@3 s])&]
|
||||
[s2; Pick`-constructs AIndex from a basic random access container.
|
||||
Transfers the source container in short constant time, but destroys
|
||||
it by picking.&]
|
||||
[s7; [*C@3 s]-|Source basic random access container.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(const V`&`,int`):%- [* AIndex]([@(0.0.255) const]_[*@4 V]`&_[*@3 s
|
||||
], [@(0.0.255) int])&]
|
||||
[s2; Deep`-copy constructs AIndex from basic random access container.&]
|
||||
[s6; Requires T to have deep copy constructor or optional deep copy
|
||||
constructor.&]
|
||||
[s7; [*C@3 s]-|Source AIndex.&]
|
||||
[s5;K%- typedef_T_ValueType&]
|
||||
[s2; Typedef of T for use in templated algorithms.&]
|
||||
[s5;K%- typedef_typename_[^V`:`:ConstIterator^ V`::ConstIterator]_ConstIterator&]
|
||||
[s2; Constant iterator type.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Begin`(`)const:%- [_^`:`:AIndex`:`:ConstIterator^ ConstIterator]_[* Be
|
||||
gin]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the first element in AIndex.&]
|
||||
[s7; [*/ Return value]-|Iterator.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:End`(`)const:%- [_^`:`:AIndex`:`:ConstIterator^ ConstIterator]_[* End](
|
||||
)_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the position just beyond the
|
||||
last element in AIndex.&]
|
||||
[s7; [*/ Return value]-|Iterator.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetIter`(int`)const:%- [_^`:`:AIndex`:`:ConstIterator^ ConstIterator
|
||||
]_[* GetIter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the element at specified position.
|
||||
Same as [* Begin() `+ i]. The benefit of this method is that [* pos]
|
||||
is range checked in debug mode.&]
|
||||
[s7; [*C@3 pos]-|Required position.&]
|
||||
[s7; [*/ Return value]-|Iterator.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(`):%- [* AIndex]()&]
|
||||
[s2; Constructor. Constructs an empty AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(const`:`:AIndex`&`,int`):%- [* AIndex]([@(0.0.255) const]_[* AIn
|
||||
dex]`&_[*@3 s], [@(0.0.255) int])&]
|
||||
[s2; Optional deep copy constructor.&]
|
||||
[s6; Requires T to have deep copy constructor or optional deep copy
|
||||
constructor.&]
|
||||
[s7; [*C s]-|Source AIndex.&]
|
||||
[s0; ]
|
||||
|
|
@ -1,123 +0,0 @@
|
|||
topic "Heap implementation";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483370:item]
|
||||
[{_}%EN-US
|
||||
[s0;2%- &]
|
||||
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
|
||||
[s0; &]
|
||||
[s1;K:`:`:Size`_`:`:`:`:Size`_`(`):%- &]
|
||||
[ {{10000F(128)G(128)@1 [s0; [* Public Field Detail]]}}&]
|
||||
[s0; &]
|
||||
[s1;K:`:`:Size`_`:`:cx:* &]
|
||||
[ {{10000F(128)G(128)@1 [s0; [* Method Detail]]}}&]
|
||||
[s0; &]
|
||||
[s0; Heap implementation&]
|
||||
[s0; U`+`+ heap is divided into 3 categories based on the block size
|
||||
`- small, medium and big.&]
|
||||
[s0; &]
|
||||
[s0; Small blocks&]
|
||||
[s0; Blocks <`= 256 bytes. Such blocks are 16 bytes rounded, so there
|
||||
is 16 possible sizes there. According to our research, blocks
|
||||
<`= 256 represent the majority of blocks used in C`+`+/U`+`+
|
||||
applications (>98% of all blocks).&]
|
||||
[s0; &]
|
||||
[s0; Small blocks are allocated in 4KB pages. U`+`+ always expects
|
||||
to get any memory from the system 4KB aligned (this is provided
|
||||
by platform specific SysAllocRaw and SysFreeRaw functions).&]
|
||||
[s0; &]
|
||||
[s0; Each 4KB pages is dedicated to single block size. Therefore
|
||||
there is no need to store any per`-block information; instead
|
||||
informations about the whole block is stored in the 32 bytes
|
||||
header at the beginning of 4KB page. This header stores pointer
|
||||
to the list of free blocks in the page, double`-link pointers
|
||||
for the block so that it can be stored in allocator structures,
|
||||
total number of blocks in the 4KB page and number of free blocks
|
||||
in 4KB page.&]
|
||||
[s0; &]
|
||||
[s0; Allocator keeps the list of 4KB page is that are completely
|
||||
used (no free blocks) in 16 element (one element per block size)
|
||||
sFull array of lists, using double`-linked pointers. It stores
|
||||
partially used pages in sWork 16 elements array of litst and
|
||||
unused pages in sFree list.&]
|
||||
[s0; &]
|
||||
[s0; Allocator also uses per`-thread cache of small blocks. In this
|
||||
cache, up to 32 blocks for each of 16 block sizes is cached (linked)
|
||||
without being really deallocated (deallocation requires costly
|
||||
serialization using critical section). If there is no block available
|
||||
in the cache for allocation, 16 blocks are allocated and put
|
||||
into the cache at once (means that serialization is only used
|
||||
once per 16 allocations in the worst case). If block is deallocated
|
||||
and there is already 32 blocks in the cache, 16 blocks from the
|
||||
cache are deallocated within single serialization event (means
|
||||
that serialization is only used once per 16 deallocations in
|
||||
the worst case).&]
|
||||
[s0; &]
|
||||
[s0; Now the critical implementation detail is how, given the pointer
|
||||
to the block in the Free, the header of 4KB page and that way
|
||||
the size of block is decided. More specifically, how is small
|
||||
block determined, because if we know we have small block, we
|
||||
can look at the start of 4KB page. The trick is that larger than
|
||||
256 bytes block are always placed at the address that ends with
|
||||
8 in hex (is 8 bytes aligned and 16 bytes misaligned), while
|
||||
small blocks are always 16 bytes aligned. That makes test simple
|
||||
`- blocks whose address `& 8 is nonzero are >256, if `&8 is zero
|
||||
we have small block and can look at the beginning of 4KB page
|
||||
to get more info.&]
|
||||
[s0; &]
|
||||
[s0; If allocation/deallocation runs out of cache, the real work
|
||||
has to be done:&]
|
||||
[s0; &]
|
||||
[s0; When allocating small block, first sWork list is checked for
|
||||
the block. If no available, sFree list is checked to get free
|
||||
block, if even that is empty, new block is obtained from the
|
||||
system (using SysAllocRaw). Note that allocator keeps the number
|
||||
of free blocks in the header. Implementation detail: there are
|
||||
two possibilities how free blocks can be recorded in the block
|
||||
header. First, there is a single`-linked list of free blocks.
|
||||
Second, for blocks that are initially free (got from sFree or
|
||||
system), portion of free blocks in the 4KB page is left out of
|
||||
free list and managed by `'free`' member `- the offset of last
|
||||
such free block in page. If this offset is >32, free block is
|
||||
obtained using it (subtracting the block size). This is used
|
||||
to avoid the need to link all free blocks in the page when getting
|
||||
new free page.&]
|
||||
[s0; &]
|
||||
[s0; When freeing, number of free blocks in 4KB page is incremented.
|
||||
If it is now 1, it means block has to be moved from sFull to
|
||||
sWork. If it now equals the total number of blocks in page, 4KB
|
||||
page moves to sFree.&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Medium blocks &]
|
||||
[s0; Blocks >256 and < 65504 bytes. Approximate best`-fit allocator
|
||||
is used for these blocks. Memory is organized in 64KB chunks
|
||||
(obtained using SysAllocRaw). Each allocated block has header
|
||||
with its size and the size of previous block.&]
|
||||
[s0; &]
|
||||
[s0; Allocator keeps an array of lists of free blocks of particular
|
||||
sizes. Size distribution is mostly exponential, blocks lower
|
||||
than 2048 are rounded up to 32 bytes, between 2048 and about
|
||||
35000, rounding exponentially grows up to 2048 and then stays
|
||||
at this value. Each such size has its index in the array of free
|
||||
blocks.&]
|
||||
[s0; &]
|
||||
[s0; When allocating, index is decided based on the size and array
|
||||
is searched starting with that index to obtain the smallest free
|
||||
block (best`-fit) greater than required size. Bigger blocks are
|
||||
divided.&]
|
||||
[s0; &]
|
||||
[s0; When freeing, allocator merges the freed block with previous
|
||||
or next free block if any.&]
|
||||
[s0; &]
|
||||
[s0; Note that master header of 64KB blocks and all operations are
|
||||
designed so that resulting pointers are NOT 16 byte aligned (see
|
||||
description of small blocks).&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Big blocks&]
|
||||
[s0; For blocks bigger than 65504 bytes, allocator simply uses SysAllocRaw
|
||||
to directly obtain virtual memory. It stores information about
|
||||
the block in the header at the beginning of block, also makeing
|
||||
block 16`-bytes unaligned in the process. Free then returns virtual
|
||||
memory back to the system.&]
|
||||
[s0; ]
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
TITLE("This is test template!")
|
||||
COMPRESSED
|
||||
120,156,139,86,80,81,49,208,49,80,54,32,0,172,92,82,211,18,75,115,74,98,163,171,227,107,85,93,253,116,67,131,21,162,139,13,172,21,66,50,50,139,21,128,168,36,181,184,4,72,228,22,228,36,150,164,42,198,2,0,142,132,23,245,
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
test.iml,
|
||||
srcdoc.tpp,
|
||||
Upscale.cpp,
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI SSE2";
|
||||
|
||||
|
|
@ -1,405 +0,0 @@
|
|||
#include <Draw/Draw.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
int sqr(int x)
|
||||
{
|
||||
return x * x;
|
||||
}
|
||||
|
||||
RGBA Blend(RGBA a, RGBA b)
|
||||
{
|
||||
RGBA r;
|
||||
r.a = ((int)a.a + b.a) >> 1;
|
||||
r.r = ((int)a.r + b.r) >> 1;
|
||||
r.g = ((int)a.g + b.g) >> 1;
|
||||
r.b = ((int)a.b + b.b) >> 1;
|
||||
return r;
|
||||
}
|
||||
|
||||
RGBA Get(const Image& img, int x, int y)
|
||||
{
|
||||
return Rect(img.GetSize()).Contains(x, y) ? img[y][x] : White();
|
||||
}
|
||||
|
||||
int SqrDistance(RGBA a, RGBA b)
|
||||
{
|
||||
return sqr(77 * ((int)a.r - b.r)) + sqr(151 * ((int)a.g - b.g)) + sqr(28 * ((int)a.b - b.b));
|
||||
}
|
||||
|
||||
bool IsSimilar(RGBA a, RGBA b, int max)
|
||||
{
|
||||
return SqrDistance(a, b) <= sqr(max);
|
||||
}
|
||||
|
||||
int GetColorIndex(Vector<RGBA>& colors, Color c, int max_distance)
|
||||
{
|
||||
for(int i = 0; i < colors.GetCount(); i++)
|
||||
if(IsSimilar(colors[i], c, max_distance))
|
||||
return i;
|
||||
colors.Add(c);
|
||||
return colors.GetCount() - 1;
|
||||
}
|
||||
|
||||
struct Colors : Vector<RGBA> {
|
||||
const Image& m;
|
||||
int x, y;
|
||||
|
||||
int DX(int r) {
|
||||
r &= 7;
|
||||
return findarg(r, 0, 7, 6) >= 0 ? -1 : findarg(r, 2, 3, 4) >= 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
int DY(int r) {
|
||||
r &= 7;
|
||||
return findarg(r, 0, 1, 2) >= 0 ? -1 : findarg(r, 4, 5, 6) >= 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
RGBA Get(int dx, int dy) {
|
||||
return ::Get(m, x + dx, y + dy);
|
||||
}
|
||||
|
||||
RGBA Get(int r) {
|
||||
return ::Get(m, x + DX(r), y + DY(r));
|
||||
}
|
||||
|
||||
int GetCI(Color c)
|
||||
{
|
||||
return GetColorIndex(*this, c, 500);
|
||||
}
|
||||
|
||||
int GetCI(int r) {
|
||||
return GetCI(Get(r));
|
||||
}
|
||||
|
||||
int GetCI(int dx, int dy) {
|
||||
return GetColorIndex(*this, Get(dx, dy), 500);
|
||||
}
|
||||
|
||||
Colors(const Image& m, int x, int y) : m(m), x(x), y(y) {}
|
||||
};
|
||||
|
||||
Image Upscale(const Image& simg)
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
Image lan = RescaleFilter(simg, 2 * isz, FILTER_BILINEAR);
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int x = 0; x < isz.cx; x++)
|
||||
for(int y = 0; y < isz.cy; y++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
RGBA c = simg[y][x];
|
||||
int p[16];
|
||||
// 0 1 2
|
||||
// 7 c 3
|
||||
// 6 5 4
|
||||
Colors colors(simg, x, y);
|
||||
for(int i = 0; i < 8; i++) {
|
||||
p[i] = p[i + 8] = colors.GetCI(i);
|
||||
DLOG(i << ": " << p[i]);
|
||||
}
|
||||
int ci = colors.GetCI(c);
|
||||
DDUMP(colors);
|
||||
// 0 1
|
||||
// 3 2
|
||||
int *pp = p;
|
||||
/* Index<int> in;
|
||||
in.FindAdd(p[1]);
|
||||
in.FindAdd(p[3]);
|
||||
in.FindAdd(p[5]);
|
||||
in.FindAdd(p[7]);
|
||||
DDUMP(in.GetCount()); */
|
||||
bool cq = (x ^ y) & 1;
|
||||
|
||||
for(int r = 0; r < 4; r++) {
|
||||
int ix = 2 * x + (r == 1 || r == 2);
|
||||
int iy = 2 * y + (r >= 2);
|
||||
RGBA& t = ib[iy][ix];
|
||||
t = c;
|
||||
bool mrule = ci == pp[4] && ci == pp[3] && ci == pp[5] && ci != pp[0];
|
||||
if(pp[1] == pp[7] && pp[0] == pp[1] &&
|
||||
(!mrule || (Grayscale(colors.Get(2 * r + 0)) > Grayscale(c)))
|
||||
// && pp[1] != pp[3] && pp[1] != pp[4] && pp[1] != pp[5]
|
||||
// && !(pp[0] == pp[7] && pp[0] == pp[6] && pp[0] == pp[1] && pp[0] == pp[2]) // Box rule
|
||||
// && ((cq/* && (r == 0 || r == 2)*/) || (pp[1] != pp[0]))
|
||||
) {
|
||||
t = Blend(colors.Get(2 * r + 7), colors.Get(2 * r + 1));
|
||||
}
|
||||
pp += 2;
|
||||
}
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
|
||||
bool TryAA(int m, int d, RGBA a, RGBA b, RGBA c)
|
||||
{
|
||||
DDUMP(m);
|
||||
DDUMP(d);
|
||||
DDUMP(abs(m * (c.r - a.r) / d + a.r - b.r));
|
||||
DDUMP(abs(m * (c.g - a.g) / d + a.g - b.g));
|
||||
DDUMP(abs(m * (c.b - a.b) / d + a.b - b.b));
|
||||
if(abs(m) > abs(d) || m * d < 0 || abs(m) < 10)
|
||||
return false;
|
||||
return (abs(m * (b.r - a.r) / d + a.r - b.r) < 4 &&
|
||||
abs(m * (c.g - a.g) / d + a.g - b.g) < 4 &&
|
||||
abs(m * (c.b - a.b) / d + a.b - b.b) < 4);
|
||||
}
|
||||
|
||||
int AADetected(RGBA a, RGBA b, RGBA c)
|
||||
{
|
||||
DLOG("AADetect " << a << ", " << b << ", " << c);
|
||||
|
||||
if(IsSimilar(a, c, 500) || IsSimilar(b, c, 500) || IsSimilar(a, b, 500))
|
||||
return false;
|
||||
|
||||
return TryAA(b.g - a.g, c.g - a.g, a, b, c) ||
|
||||
TryAA(b.r - a.r, c.r - a.r, a, b, c) ||
|
||||
TryAA(b.g - a.g, c.g - a.g, a, b, c);
|
||||
}
|
||||
|
||||
Image UpscaleA(const Image& simg)
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int x = 0; x < isz.cx; x++)
|
||||
for(int y = 0; y < isz.cy; y++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
RGBA c = simg[y][x];
|
||||
int p[16];
|
||||
// 0 1 2
|
||||
// 7 c 3
|
||||
// 6 5 4
|
||||
Colors m(simg, x, y);
|
||||
for(int i = 0; i < 8; i++) {
|
||||
p[i] = p[i + 8] = m.GetCI(i);
|
||||
DLOG(i << ": " << p[i]);
|
||||
}
|
||||
int ci = m.GetCI(c);
|
||||
|
||||
RGBA t[4];
|
||||
t[0] = t[1] = t[2] = t[3] = c;
|
||||
bool hl = p[0] == p[1] && p[1] == p[2] ||
|
||||
p[6] == p[5] && p[5] == p[4];
|
||||
bool vl = p[0] == p[7] && p[7] == p[6] ||
|
||||
p[2] == p[3] && p[3] == p[4];
|
||||
bool dia = !hl && !vl;
|
||||
dia = true;
|
||||
int horz = AADetected(m.Get(7), c, m.Get(3)) * 1;
|
||||
int vert = AADetected(m.Get(1), c, m.Get(5)) * 1;
|
||||
int dia1 = AADetected(m.Get(0), c, m.Get(4)) * 1 * dia;
|
||||
int dia2 = AADetected(m.Get(2), c, m.Get(6)) * 1 * dia;
|
||||
const int *pp = p;
|
||||
if(horz || vert || dia1 || dia2) {
|
||||
if(horz && !vert)
|
||||
t[1] = t[3] = m.Get(3);
|
||||
else
|
||||
if(vert && !horz)
|
||||
t[2] = t[3] = m.Get(5);
|
||||
else
|
||||
const int *pp = p;
|
||||
for(int i = 0; i < 4; i++) {
|
||||
if(pp[0] == pp[1] && pp[1] == pp[7])
|
||||
t[decode(i, 2, 3, 3, 2, i)] = m.Get(i * 2);
|
||||
pp += 2;
|
||||
}
|
||||
}
|
||||
|
||||
ib[2 * y + 0][2 * x + 0] = t[0];
|
||||
ib[2 * y + 0][2 * x + 1] = t[1];
|
||||
ib[2 * y + 1][2 * x + 0] = t[2];
|
||||
ib[2 * y + 1][2 * x + 1] = t[3];
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
|
||||
Image UpscaleA2(const Image& simg)
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int y = 0; y < isz.cy; y++)
|
||||
for(int x = 0; x < isz.cx; x++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
RGBA c = simg[y][x];
|
||||
int p[16];
|
||||
// 0 1 2
|
||||
// 7 c 3
|
||||
// 6 5 4
|
||||
Colors m(simg, x, y);
|
||||
for(int i = 0; i < 8; i++) {
|
||||
p[i] = p[i + 8] = m.GetCI(i);
|
||||
DLOG(i << ": " << p[i]);
|
||||
}
|
||||
int ci = m.GetCI(c);
|
||||
|
||||
RGBA t[4];
|
||||
t[0] = t[1] = t[2] = t[3] = c;
|
||||
bool h = AADetected(m.Get(7), c, m.Get(3));
|
||||
bool v = AADetected(m.Get(1), c, m.Get(5));
|
||||
if(h && v) {
|
||||
const int *pp = p;
|
||||
for(int i = 0; i < 4; i++) {
|
||||
if(pp[0] == pp[1] && pp[1] == pp[7])
|
||||
t[decode(i, 2, 3, 3, 2, i)] = m.Get(i * 2);
|
||||
pp += 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
if(h)
|
||||
t[1] = t[3] = m.Get(3);
|
||||
else
|
||||
if(v)
|
||||
t[2] = t[3] = m.Get(5);
|
||||
|
||||
ib[2 * y + 0][2 * x + 0] = t[0];
|
||||
ib[2 * y + 0][2 * x + 1] = t[1];
|
||||
ib[2 * y + 1][2 * x + 0] = t[2];
|
||||
ib[2 * y + 1][2 * x + 1] = t[3];
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
/* int best = max(horz, vert, dia1, dia2);
|
||||
if(best == horz) t[1] = t[3] = m.Get(3);
|
||||
else
|
||||
if(best == vert) t[2] = t[3] = m.Get(5);
|
||||
else
|
||||
if(best == dia1) t[3] = m.Get(4);
|
||||
else
|
||||
if(best == dia2) t[2] = m.Get(6);*/
|
||||
|
||||
static inline int GetResult(uint32 A, uint32 B, uint32 C, uint32 D)
|
||||
{
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int r = 0;
|
||||
if (A == C) x++; else if (B == C) y++;
|
||||
if (A == D) x++; else if (B == D) y++;
|
||||
if (x <= 1) r++;
|
||||
if (y <= 1) r--;
|
||||
return r;
|
||||
}
|
||||
|
||||
RGBA Blend(RGBA a, RGBA b, RGBA c, RGBA d)
|
||||
{
|
||||
return Blend(Blend(a, b), Blend(c, d));
|
||||
}
|
||||
|
||||
Image Upscale2(const Image& simg) // Super SAI
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int x = 0; x < isz.cx; x++)
|
||||
for(int y = 0; y < isz.cy; y++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
|
||||
Colors m(simg, x, y);
|
||||
|
||||
int colorB0 = m.GetCI(-1, -1);
|
||||
int colorB1 = m.GetCI(0, -1);
|
||||
int colorB2 = m.GetCI(1, -1);
|
||||
int colorB3 = m.GetCI(2, -1);
|
||||
|
||||
int color4 = m.GetCI(-1, 0);
|
||||
int color5 = m.GetCI(0, 0);
|
||||
int color6 = m.GetCI(1, 0);
|
||||
int colorS2 = m.GetCI(2, 0);
|
||||
|
||||
int color1 = m.GetCI(-1, 1);
|
||||
int color2 = m.GetCI(0, 1);
|
||||
int color3 = m.GetCI(1, 1);
|
||||
int colorS1 = m.GetCI(2, 1);
|
||||
|
||||
int colorA0 = m.GetCI(-1, 2);
|
||||
int colorA1 = m.GetCI(0, 2);
|
||||
int colorA2 = m.GetCI(1, 2);
|
||||
int colorA3 = m.GetCI(2, 2);
|
||||
|
||||
RGBA product1a, product1b, product2a, product2b;
|
||||
|
||||
RGBA c2 = m.Get(0, 1);
|
||||
RGBA c3 = m.Get(1, 1);
|
||||
RGBA c5 = m.Get(0, 0);
|
||||
RGBA c6 = m.Get(1, 0);
|
||||
|
||||
if(color2 == color6 && color5 != color3)
|
||||
product2b = product1b = c2;
|
||||
else
|
||||
if(color5 == color3 && color2 != color6)
|
||||
product2b = product1b = c5;
|
||||
else
|
||||
if(color5 == color3 && color2 == color6) {
|
||||
int r = 0;
|
||||
|
||||
r += GetResult (color6, color5, color1, colorA1);
|
||||
r += GetResult (color6, color5, color4, colorB1);
|
||||
r += GetResult (color6, color5, colorA2, colorS1);
|
||||
r += GetResult (color6, color5, colorB2, colorS2);
|
||||
|
||||
if(r > 0)
|
||||
product2b = product1b = c6;
|
||||
else
|
||||
if(r < 0)
|
||||
product2b = product1b = c5;
|
||||
else
|
||||
product2b = product1b = Blend(c5, c6);
|
||||
}
|
||||
else {
|
||||
if(color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
|
||||
product2b = Blend(c3, c3, c3, c2);
|
||||
else
|
||||
if(color5 == color2 && color2 == colorA2 && colorA1 != color3 && color2 != colorA3)
|
||||
product2b = Blend(c2, c2, c2, c3);
|
||||
else
|
||||
product2b = Blend(c2, c3);
|
||||
|
||||
if(color6 == color3 && color6 == colorB1 && color5 != colorB2 && color6 != colorB0)
|
||||
product1b = Blend(c6, c6, c6, c5);
|
||||
else
|
||||
if(color5 == color2 && color5 == colorB2 && colorB1 != color6 && color5 != colorB3)
|
||||
product1b = Blend(c6, c5, c5, c5);
|
||||
else
|
||||
product1b = Blend(c5, c6);
|
||||
}
|
||||
|
||||
if (color5 == color3 && color2 != color6 && color4 == color5 && color5 != colorA2)
|
||||
product2a = Blend(c2, c5);
|
||||
else
|
||||
if (color5 == color1 && color6 == color5 && color4 != color2 && color5 != colorA0)
|
||||
product2a = Blend(c2, c5);
|
||||
else
|
||||
product2a = c2;
|
||||
|
||||
if (color2 == color6 && color5 != color3 && color1 == color2 && color2 != colorB2)
|
||||
product1a = Blend(c2, c5);
|
||||
else
|
||||
if (color4 == color2 && color3 == color2 && color1 != color5 && color2 != colorB0)
|
||||
product1a = Blend(c2, c5);
|
||||
else
|
||||
product1a = c5;
|
||||
|
||||
ib[2 * y][2 * x] = product1a;
|
||||
ib[2 * y][2 * x + 1] = product1b;
|
||||
ib[2 * y + 1][2 * x] = product2a;
|
||||
ib[2 * y + 1][2 * x + 1] = product2b;
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#ifndef _AAA_icpp_init_stub
|
||||
#define _AAA_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#define IMAGECLASS TestImg
|
||||
#define IMAGEFILE <AAA/test.iml>
|
||||
#include <Draw/iml_header.h>
|
||||
|
||||
#define IMAGECLASS TestImg
|
||||
#define IMAGEFILE <AAA/test.iml>
|
||||
#include <Draw/iml_source.h>
|
||||
Image Upscale(const Image& simg);
|
||||
Image Upscale2(const Image& simg);
|
||||
Image UpscaleA(const Image& simg);
|
||||
Image UpscaleA2(const Image& simg);
|
||||
|
||||
struct Test : TopWindow {
|
||||
virtual void Paint(Draw& w);
|
||||
|
||||
EditIntSpin passes, amount;
|
||||
|
||||
void DoRefresh() { Refresh(); }
|
||||
|
||||
void PutImage(Draw& w, int& y, const Image& m)
|
||||
{
|
||||
w.DrawImage(20, y, m);
|
||||
y += m.GetSize().cy + 10;
|
||||
}
|
||||
|
||||
typedef Test CLASSNAME;
|
||||
|
||||
Test();
|
||||
};
|
||||
|
||||
void Test::Paint(Draw& w)
|
||||
{
|
||||
w.DrawRect(GetSize(), SColorFace());
|
||||
Image simg = TestImg::test2();
|
||||
int y = 10;
|
||||
PutImage(w, y, simg);
|
||||
|
||||
Size isz = simg.GetSize();
|
||||
w.DrawImage(10, 150 + 12 * isz.cy, Magnify(simg, 8, 8));
|
||||
|
||||
simg = Unmultiply(simg);
|
||||
|
||||
|
||||
Image r = Upscale(simg);
|
||||
w.DrawImage(10, 100, r);
|
||||
|
||||
w.DrawImage(10, 150 + 2 * isz.cy, Magnify(r, 4, 4));
|
||||
|
||||
#if 0
|
||||
for(int i = FILTER_NEAREST; i <= FILTER_LANCZOS5; i++) {
|
||||
Image img = RescaleFilter(simg, 2 * simg.GetSize(), i);
|
||||
w.DrawImage(10, y, img);
|
||||
img = Unmultiply(img);
|
||||
for(int j = 0; j < (int)~passes; j++)
|
||||
img = Sharpen(img, ~amount);
|
||||
w.DrawImage(300, y, Premultiply(img));
|
||||
w.DrawText(600, y + 10, AsString(i));
|
||||
|
||||
y += img.GetSize().cy + 20;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Test::Test()
|
||||
{
|
||||
amount <<= 50;
|
||||
passes <<= 2;
|
||||
Add(amount.BottomPos(2, 20).LeftPos(2, 50));
|
||||
Add(passes.BottomPos(2, 20).LeftPos(60, 50));
|
||||
|
||||
// amount <<= THISBACK(Amount);
|
||||
// passes <<= THISBACK(Passes);
|
||||
Zoomable().Sizeable();
|
||||
}
|
||||
|
||||
using namespace std;
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
Test().Run();
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
topic "TheIDE";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}%EN-US
|
||||
[s0; Ahoj Jášo,&]
|
||||
[s0; &]
|
||||
[s0; Posílám pozdravy ze Suchdola.&]
|
||||
[s0; &]
|
||||
[s0; Moc jsi nás pobavil že si necháváš dopisy psát za sebe.
|
||||
Papírové (nebo Papyrové ?) zlaťáky vypadají dobře, díky
|
||||
za ukázku.&]
|
||||
[s0; &]
|
||||
[s0; Doma se máme dobře. Maminka s Ellou byly většinu času na
|
||||
chatě, já pořád dokola (a na kole) jezdím do práce a programuje.&]
|
||||
[s0; &]
|
||||
[s0; Maminka Elle sehnala (koupila od Aniny) domeček na zahradu,
|
||||
tak ho dneska budeme asi stavět. Snad se jí to bude líbit.&]
|
||||
[s0; &]
|
||||
[s0; K narozeninám jsem ti definitivně koupil Arduino `- a sám
|
||||
sobě jsem hned koupil takovou jednodušší víc hard`-core
|
||||
verzi. Už se těším až to přijde, vypadá to jak dost šikovná
|
||||
věcička. Ten tvůj nápad na zařízení které zahraje zvuk
|
||||
když někdo vejde se s tím úplně přesně dá udělat.&]
|
||||
[s0; &]
|
||||
[s0; Přeju příjemnou poslední třetinu tábora, uvidíme se cca
|
||||
za týden.&]
|
||||
[s0; &]
|
||||
[s0; Ahoj,&]
|
||||
[s0; &]
|
||||
[s0; Táta]]
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
topic "Ahoj Klárko,";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}%EN-US
|
||||
[s0; Ahoj Klárko,&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Posílám pozdravy ze Suchdola.&]
|
||||
[s0; &]
|
||||
[s0; Doma se máme dobře. Maminka s Ellou byly většinu času na
|
||||
chatě, já pořád dokola (a na kole) jezdím do práce a programuju.
|
||||
Trochu ješte také uklízíme sklep. Snad už zase budu mít
|
||||
dílnu...&]
|
||||
[s0; &]
|
||||
[s0; Maminka Elle sehnala (koupila od Aniny) domeček na zahradu,
|
||||
tak ho dneska budeme asi stavět. Snad se jí to bude líbit.&]
|
||||
[s0; &]
|
||||
[s0; Elle v poslední době zažila několik večerních akcí `-
|
||||
s maminkou byla na večirku u Aniny a včera byla s námi v hospodě.
|
||||
Začalo se jí to líbit chodit spát v devět večer...&]
|
||||
[s0; &]
|
||||
[s0; Rybu jsem poctivě krmil, vypadá fit.&]
|
||||
[s0; &]
|
||||
[s0; Přeju příjemnou poslední třetinu tábora, uvidíme se cca
|
||||
za týden.&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Ahoj,&]
|
||||
[s0; &]
|
||||
[s0; Táta]]
|
||||
|
|
@ -1,452 +0,0 @@
|
|||
PREMULTIPLIED
|
||||
IMAGE_ID(test)
|
||||
IMAGE_ID(test1)
|
||||
IMAGE_ID(t)
|
||||
IMAGE_ID(test3)
|
||||
IMAGE_ID(test2)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,157,9,84,20,87,22,134,27,212,49,57,232,57,153,100,36,78,22,199,153,152,196,144,68,147,81,140,30,53)
|
||||
IMAGE_DATA(81,81,92,136,38,140,98,196,40,110,113,67,209,16,137,130,168,20,42,202,166,128,162,2,34,130,40,72,43,173,70,84)
|
||||
IMAGE_DATA(80,217,26,68,16,100,223,87,217,65,246,29,90,224,159,122,21,219,211,52,221,77,3,182,168,169,255,156,123,124,85,117)
|
||||
IMAGE_DATA(235,213,19,222,119,239,125,175,23,56,28,165,209,28,5,73,121,250,151,28,234,188,9,39,193,217,144,243,128,62,30,42)
|
||||
IMAGE_DATA(238,160,164,196,121,151,92,63,245,43,39,106,200,96,206,167,253,121,216,112,14,71,135,226,112,32,203,136,79,127,158,49)
|
||||
IMAGE_DATA(97,194,6,244,214,250,243,60,86,172,94,81,13,209,156,192,177,14,243,152,87,36,168,12,70,148,207,247,229,59,55,125)
|
||||
IMAGE_DATA(25,62,83,255,72,200,58,143,180,42,98,164,189,99,195,56,126,220,85,221,202,36,127,253,42,199,173,156,168,65,202,156)
|
||||
IMAGE_DATA(15,123,243,16,81,230,185,180,149,211,6,41,86,254,212,135,234,71,44,32,60,167,166,166,50,150,158,158,142,204,204,76)
|
||||
IMAGE_DATA(198,114,115,115,145,159,159,143,194,194,194,103,86,94,94,222,43,254,33,69,189,29,35,43,86,3,45,245,79,56,166,124)
|
||||
IMAGE_DATA(143,5,197,109,101,55,16,203,91,82,227,239,50,177,193,50,188,18,142,209,229,56,19,95,202,24,105,31,229,231,34,216)
|
||||
IMAGE_DATA(117,92,83,14,127,103,83,12,111,245,227,147,91,56,15,233,219,135,200,243,12,194,111,79,204,247,20,11,122,27,3,228)
|
||||
IMAGE_DATA(225,159,112,95,90,90,218,39,254,57,34,97,64,216,238,205,248,88,177,234,143,168,75,143,33,201,246,248,148,97,215,249)
|
||||
IMAGE_DATA(18,252,234,94,128,45,167,11,176,246,84,62,116,237,115,240,63,155,12,204,183,72,199,183,84,42,212,119,37,62,155,171)
|
||||
IMAGE_DATA(52,255,123,227,253,244,171,162,185,75,106,130,220,38,63,57,118,191,0,62,9,37,240,226,63,194,73,94,10,142,93,74)
|
||||
IMAGE_DATA(129,123,96,46,188,226,138,224,22,26,140,36,222,156,142,218,28,175,118,239,125,31,100,12,25,36,123,29,32,204,249,132)
|
||||
IMAGE_DATA(223,228,62,176,47,180,100,145,122,64,222,56,64,120,38,220,11,217,207,206,206,238,150,251,9,251,44,255,172,94,69,17)
|
||||
IMAGE_DATA(214,111,197,55,136,88,61,174,199,214,225,106,116,45,46,71,213,224,98,68,53,60,249,85,112,11,169,128,243,157,199,112)
|
||||
IMAGE_DATA(188,85,6,59,191,18,88,93,45,194,71,219,30,62,155,171,195,222,224,76,63,189,253,111,25,55,236,212,154,172,131,115)
|
||||
IMAGE_DATA(225,29,85,0,94,112,30,178,11,235,80,89,215,128,138,186,70,100,20,212,193,243,118,54,220,194,242,224,115,205,22,247)
|
||||
IMAGE_DATA(92,39,182,218,252,242,70,172,44,254,251,147,243,159,71,45,64,120,22,230,124,33,251,162,53,191,40,251,21,21,21,44)
|
||||
IMAGE_DATA(255,172,94,41,9,249,247,137,168,129,87,120,13,206,241,171,225,22,92,9,167,187,21,56,238,79,215,235,126,101,176,188)
|
||||
IMAGE_DATA(90,2,243,203,133,48,245,46,128,145,231,35,108,115,203,5,197,45,192,123,107,163,186,204,213,255,140,83,183,217,229,155)
|
||||
IMAGE_DATA(4,151,240,60,112,233,92,79,84,93,91,139,204,226,82,180,208,109,98,13,157,128,147,95,54,78,134,100,97,31,151,143)
|
||||
IMAGE_DATA(15,62,87,183,144,57,190,231,204,190,104,12,32,125,247,244,243,33,60,19,238,9,223,196,164,177,79,172,150,254,191,202)
|
||||
IMAGE_DATA(226,95,156,109,121,248,103,227,1,43,69,138,240,127,35,174,30,213,141,237,56,75,115,95,213,240,4,141,173,29,104,108)
|
||||
IMAGE_DATA(233,64,67,75,59,162,178,26,233,24,80,138,204,146,22,28,240,45,68,106,81,51,189,22,200,194,78,207,60,140,212,13)
|
||||
IMAGE_DATA(239,50,55,39,44,53,10,249,253,114,18,156,110,101,32,149,206,251,77,79,58,209,208,212,132,19,110,103,81,78,179,81)
|
||||
IMAGE_DATA(223,218,10,223,128,32,240,51,107,113,152,155,8,226,75,238,145,54,54,97,238,127,222,236,11,141,244,109,166,163,131,225)
|
||||
IMAGE_DATA(195,135,75,173,3,8,207,36,231,139,179,47,92,247,139,154,44,254,37,237,237,201,203,63,27,3,88,41,74,38,222,37)
|
||||
IMAGE_DATA(76,173,223,68,51,239,116,251,49,195,190,237,245,82,230,152,226,22,162,184,186,13,126,15,171,153,227,163,215,139,209,220)
|
||||
IMAGE_DATA(214,129,159,236,210,97,224,150,3,213,69,33,93,230,229,60,83,239,42,67,175,88,88,93,72,64,121,179,0,213,244,61)
|
||||
IMAGE_DATA(109,244,220,53,161,204,113,158,119,13,187,204,204,113,59,34,10,73,181,2,252,118,50,10,196,151,220,35,105,92,66,246)
|
||||
IMAGE_DATA(37,174,247,105,102,193,229,254,249,111,79,156,203,240,37,125,59,142,24,193,196,0,105,63,31,194,179,248,62,191,104,206)
|
||||
IMAGE_DATA(39,53,63,225,190,190,190,158,49,73,252,247,144,219,229,201,255,108,12,96,165,16,109,115,47,192,197,251,213,104,239,160)
|
||||
IMAGE_DATA(115,53,157,243,91,5,157,76,173,223,72,231,126,82,235,23,86,182,161,162,94,192,196,133,67,188,66,60,174,19,96,161)
|
||||
IMAGE_DATA(85,10,54,56,103,98,132,70,96,151,57,57,203,200,173,106,131,107,20,168,179,113,40,104,16,208,49,160,3,133,181,245)
|
||||
IMAGE_DATA(56,104,123,132,97,159,31,151,136,138,39,64,76,165,0,6,246,247,65,124,201,61,146,198,69,73,171,251,133,60,19,245)
|
||||
IMAGE_DATA(20,3,228,240,237,105,29,64,120,150,197,62,49,194,125,99,99,35,99,226,252,11,249,229,136,112,46,42,142,4,254,37)
|
||||
IMAGE_DATA(249,112,216,24,192,74,1,34,251,250,30,161,149,76,173,127,208,183,24,245,205,237,216,117,62,159,57,222,124,58,7,143)
|
||||
IMAGE_DATA(42,90,17,148,84,139,216,220,6,152,249,60,162,235,120,1,102,31,72,132,158,99,6,222,153,118,171,203,124,28,171,185)
|
||||
IMAGE_DATA(38,100,153,93,48,204,61,31,34,52,171,22,244,146,1,133,116,236,184,25,114,15,185,85,117,40,107,7,242,154,128,43)
|
||||
IMAGE_DATA(201,53,248,205,57,18,196,151,220,35,105,92,148,52,166,133,60,11,37,45,6,136,178,47,234,43,161,79,242,44,138,162)
|
||||
IMAGE_DATA(36,174,3,132,252,23,23,23,119,217,231,19,103,191,185,185,153,49,81,254,69,217,149,101,226,156,247,228,219,175,95,56)
|
||||
IMAGE_DATA(43,86,34,90,124,52,139,217,215,39,220,155,120,229,163,174,169,29,91,206,228,48,199,122,142,153,200,45,111,129,182,109)
|
||||
IMAGE_DATA(42,110,39,212,208,113,33,23,45,130,14,228,148,181,64,215,46,13,111,171,223,236,50,23,223,250,112,44,181,128,186,138)
|
||||
IMAGE_DATA(237,167,35,96,201,205,64,69,39,80,45,0,234,59,104,163,219,53,52,255,21,116,123,183,103,6,182,58,243,65,124,201)
|
||||
IMAGE_DATA(61,226,99,146,185,238,151,198,181,104,12,144,199,71,124,31,64,95,31,102,102,102,221,216,34,60,139,239,243,137,214,252)
|
||||
IMAGE_DATA(66,246,91,91,91,25,99,243,63,171,87,73,26,7,83,97,127,163,244,217,190,254,70,151,108,172,62,145,133,229,14,25)
|
||||
IMAGE_DATA(88,124,36,141,169,245,231,89,36,65,195,60,17,223,238,139,199,20,211,56,168,155,196,98,201,145,20,188,61,193,175,203)
|
||||
IMAGE_DATA(124,84,30,252,183,137,99,191,223,148,162,185,247,58,12,105,190,173,184,233,136,203,171,65,67,179,0,13,77,2,36,208)
|
||||
IMAGE_DATA(109,11,239,52,108,117,12,2,241,33,190,228,30,241,49,81,210,106,255,158,248,86,83,251,211,122,193,190,112,13,96,70)
|
||||
IMAGE_DATA(223,71,106,0,241,177,136,243,79,216,175,174,174,150,155,127,34,81,182,165,157,151,199,167,79,191,96,86,172,100,136,188)
|
||||
IMAGE_DATA(135,231,240,149,34,152,95,42,132,233,197,124,102,95,223,208,35,23,6,103,178,177,201,57,11,235,78,101,50,181,254,207)
|
||||
IMAGE_DATA(14,105,248,137,206,249,132,251,197,182,127,154,56,255,68,111,188,165,186,113,245,158,19,77,179,141,175,64,207,246,14,12)
|
||||
IMAGE_DATA(143,243,97,228,16,14,67,187,48,108,181,15,198,74,107,127,232,30,242,195,138,221,199,155,136,175,164,49,81,61,237,233)
|
||||
IMAGE_DATA(73,139,1,146,36,231,62,33,37,101,13,240,188,222,255,47,194,120,151,115,28,57,248,103,217,103,165,40,145,247,240,188)
|
||||
IMAGE_DATA(191,62,10,239,173,142,196,72,221,8,188,187,152,207,236,235,143,152,27,136,17,51,239,224,31,223,6,224,157,41,183,152)
|
||||
IMAGE_DATA(90,159,240,46,110,226,253,13,27,54,108,102,82,82,18,110,5,220,109,159,186,197,21,234,91,189,240,205,118,30,99,164)
|
||||
IMAGE_DATA(189,96,167,7,66,249,97,157,97,225,225,157,42,42,42,223,74,26,19,37,15,255,242,196,0,121,95,35,120,202,63,169)
|
||||
IMAGE_DATA(255,37,173,1,158,151,250,145,255,89,177,122,233,165,164,164,52,226,220,185,115,13,89,89,89,112,118,113,169,82,81,253)
|
||||
IMAGE_DATA(151,249,200,175,231,132,124,172,181,185,138,24,105,171,168,142,162,206,186,187,215,103,100,100,128,199,227,61,25,52,104,208)
|
||||
IMAGE_DATA(71,226,253,80,242,242,79,140,212,251,210,68,174,201,217,15,245,2,248,23,151,60,252,179,98,245,10,105,152,145,145,81)
|
||||
IMAGE_DATA(186,139,139,75,219,224,193,131,63,151,230,164,172,172,60,218,206,206,174,118,255,254,253,197,116,204,24,41,126,157,98,249)
|
||||
IMAGE_DATA(103,197,106,32,164,178,240,208,156,202,129,30,4,245,154,214,255,226,98,249,103,245,50,105,149,151,78,219,150,219,171,58)
|
||||
IMAGE_DATA(251,122,255,37,51,221,162,100,87,3,36,186,232,35,238,212,6,196,56,174,65,164,253,10,132,219,46,69,136,165,54,238)
|
||||
IMAGE_DATA(30,212,194,45,179,57,208,155,49,58,64,86,63,212,0,237,255,245,129,255,126,177,42,109,200,34,46,111,250,219,205,122)
|
||||
IMAGE_DATA(28,97,183,168,35,210,126,17,220,119,125,148,167,172,196,249,103,127,158,201,138,149,36,45,119,213,110,182,121,72,225,112)
|
||||
IMAGE_DATA(212,30,108,242,95,137,181,215,150,97,133,207,98,44,245,88,136,31,156,231,98,190,195,76,204,178,156,138,169,148,58,212)
|
||||
IMAGE_DATA(141,199,99,252,175,106,221,230,62,97,255,113,218,77,148,167,94,71,89,210,53,148,38,248,162,56,142,139,162,24,47,20)
|
||||
IMAGE_DATA(70,121,32,63,226,12,30,133,57,131,183,243,27,153,220,80,156,129,121,253,175,151,252,67,196,20,162,140,139,63,34,253)
|
||||
IMAGE_DATA(130,62,90,242,163,208,90,24,141,7,39,102,97,249,52,85,158,162,158,199,234,175,41,29,199,133,13,214,49,102,184,148)
|
||||
IMAGE_DATA(126,14,222,169,110,240,76,118,193,217,196,147,112,137,59,142,19,49,71,97,255,192,10,54,247,45,112,248,158,57,246,243)
|
||||
IMAGE_DATA(247,98,95,136,49,62,219,252,113,183,121,31,239,180,9,101,41,127,208,156,59,209,156,59,34,55,216,14,217,119,173,145)
|
||||
IMAGE_DATA(233,111,129,116,63,51,164,94,53,65,78,208,49,204,61,16,138,57,84,16,102,237,185,131,233,70,127,180,191,249,247,15)
|
||||
IMAGE_DATA(54,136,246,51,144,239,255,145,147,127,133,179,95,116,123,60,26,147,189,209,154,127,15,109,133,49,140,181,100,5,226,158)
|
||||
IMAGE_DATA(237,194,14,69,61,147,213,95,83,63,218,206,173,59,20,105,138,11,41,174,240,72,114,194,153,120,71,56,197,218,227,120)
|
||||
IMAGE_DATA(180,13,142,70,29,134,85,196,126,28,12,219,7,42,116,55,246,4,237,132,113,224,111,24,179,238,223,221,230,126,140,227)
|
||||
IMAGE_DATA(218,158,235,113,90,179,247,5,130,159,86,131,224,148,106,120,134,20,96,220,202,147,221,62,3,64,73,227,95,65,239,255)
|
||||
IMAGE_DATA(21,178,47,7,255,47,132,253,214,170,48,180,22,92,68,14,111,43,26,227,46,48,70,248,15,180,90,216,162,168,231,178)
|
||||
IMAGE_DATA(250,235,234,135,163,115,155,76,131,12,177,215,223,8,139,29,22,116,74,171,249,73,222,39,236,143,214,251,176,219,252,39)
|
||||
IMAGE_DATA(107,253,61,126,57,88,226,18,15,109,199,88,44,60,26,141,5,150,145,208,52,191,7,13,211,48,124,247,123,8,54,218)
|
||||
IMAGE_DATA(69,99,134,73,0,238,38,85,163,180,30,168,109,6,254,187,145,219,173,47,74,218,26,64,1,159,255,17,173,253,101,125)
|
||||
IMAGE_DATA(22,152,243,2,217,111,111,188,142,166,140,77,104,136,219,142,248,51,186,200,185,180,3,81,14,63,176,123,131,172,20,38)
|
||||
IMAGE_DATA(45,107,141,182,85,23,117,58,245,3,244,250,180,7,24,102,163,195,172,243,51,110,238,71,218,31,123,144,194,219,133,68)
|
||||
IMAGE_DATA(174,33,226,189,182,32,246,220,122,196,184,173,70,234,53,51,76,221,225,135,7,217,53,136,204,172,70,13,205,255,151,107)
|
||||
IMAGE_DATA(46,116,155,215,47,250,243,191,47,67,237,223,133,253,236,213,104,76,157,13,65,245,81,148,248,173,68,134,221,84,150,125)
|
||||
IMAGE_DATA(86,10,213,210,147,139,250,181,7,24,116,104,17,242,195,79,51,235,252,164,203,59,144,112,113,27,226,206,111,194,67,247)
|
||||
IMAGE_DATA(117,136,118,93,137,7,206,203,144,236,187,27,147,12,174,224,94,122,21,78,223,205,71,112,114,5,198,254,236,46,113,110)
|
||||
IMAGE_DATA(191,144,239,255,16,89,247,15,228,222,31,203,62,171,129,148,246,145,249,253,222,3,244,167,52,145,27,114,2,217,129,246)
|
||||
IMAGE_DATA(200,188,109,139,196,107,7,113,225,152,49,172,45,45,224,230,230,134,67,251,247,32,208,117,7,190,217,120,30,22,150,54)
|
||||
IMAGE_DATA(204,57,43,107,91,204,94,101,65,250,81,145,52,46,170,167,215,2,250,104,226,117,191,180,207,255,202,144,180,24,208,107)
|
||||
IMAGE_DATA(86,131,237,63,101,217,103,53,160,210,58,168,209,239,61,192,165,179,191,130,142,198,56,44,158,249,5,180,103,168,97,145)
|
||||
IMAGE_DATA(230,84,56,56,56,160,172,172,12,57,57,57,8,13,13,197,110,227,223,177,105,171,33,146,83,82,152,115,225,225,225,140)
|
||||
IMAGE_DATA(143,170,170,170,181,164,113,41,234,251,63,197,235,254,94,178,47,148,36,54,123,85,23,4,88,125,130,250,146,32,150,125)
|
||||
IMAGE_DATA(86,3,46,45,203,217,204,30,224,1,154,241,95,184,63,75,173,249,101,237,1,142,26,53,42,151,243,148,1,3,3,131)
|
||||
IMAGE_DATA(206,216,164,36,232,234,234,98,254,252,249,157,235,215,175,199,177,99,199,96,98,98,2,210,214,210,210,98,174,145,24,64)
|
||||
IMAGE_DATA(31,215,74,27,215,243,254,254,111,38,239,139,176,255,156,223,243,39,215,218,64,89,137,51,154,176,159,31,125,21,145,62)
|
||||
IMAGE_DATA(27,89,246,89,189,20,154,127,104,102,219,143,78,115,59,149,7,43,173,235,203,253,202,202,202,211,70,142,28,25,49,102)
|
||||
IMAGE_DATA(204,152,124,83,83,83,1,225,159,62,14,153,50,101,74,83,96,96,32,98,99,99,193,231,243,225,235,235,139,105,211,166)
|
||||
IMAGE_DATA(181,147,107,132,127,58,38,244,248,186,22,97,150,228,237,190,254,253,15,38,231,139,173,247,251,80,247,247,36,112,228,136)
|
||||
IMAGE_DATA(1,199,13,70,161,62,63,18,130,210,4,220,216,59,17,97,206,95,35,59,220,0,113,174,11,112,255,192,68,150,125,86)
|
||||
IMAGE_DATA(3,37,149,241,43,212,42,250,219,201,208,161,67,55,47,95,190,188,134,240,175,166,166,22,48,125,250,116,129,166,166,38)
|
||||
IMAGE_DATA(180,181,181,25,35,109,114,142,92,35,252,19,223,158,250,36,156,146,24,64,113,122,255,247,191,36,229,252,126,212,253,178)
|
||||
IMAGE_DATA(36,87,254,39,252,183,21,70,163,146,187,6,101,78,51,192,223,56,2,220,213,170,240,219,249,5,203,62,171,215,65,159)
|
||||
IMAGE_DATA(77,154,52,41,141,174,1,106,232,154,191,138,199,227,225,212,169,83,48,52,52,132,177,177,49,211,38,231,200,53,226,67)
|
||||
IMAGE_DATA(124,123,211,57,201,219,76,46,39,223,219,195,145,252,183,63,25,230,197,242,189,130,114,190,168,228,90,255,235,206,122,27)
|
||||
IMAGE_DATA(201,174,43,209,20,231,133,202,56,31,132,218,204,99,217,103,245,58,105,16,189,22,248,106,242,228,201,121,116,110,111,92)
|
||||
IMAGE_DATA(183,110,93,11,189,198,111,83,81,81,209,27,50,100,136,198,170,85,171,234,201,57,114,141,248,16,223,222,116,206,212,2)
|
||||
IMAGE_DATA(79,89,102,98,129,24,227,178,76,129,236,19,201,197,240,178,25,239,64,111,214,8,184,110,254,152,225,94,231,187,247,125)
|
||||
IMAGE_DATA(21,56,38,86,172,94,91,9,99,193,0,50,207,138,213,43,169,255,3,147,97,245,231,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(3520, 1)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,157,121,84,20,215,158,199,59,231,205,204,63,115,78,206,59,201,152,121,39,115,230,205,228,36,153,121,47,227)
|
||||
IMAGE_DATA(76,50,73,156,140,33,209,68,140,70,141,123,22,121,198,184,197,29,141,184,43,91,35,34,171,160,2,178,131,138,32,130)
|
||||
IMAGE_DATA(224,74,92,144,29,68,4,105,101,7,1,5,148,69,16,145,69,1,225,126,167,126,133,229,180,77,85,119,53,221,8,230)
|
||||
IMAGE_DATA(245,247,156,223,161,168,186,117,107,161,62,247,247,251,221,123,171,80,40,94,249,147,66,16,76,50,201,36,147,140,160,190)
|
||||
IMAGE_DATA(190,62,4,121,219,178,211,94,163,217,113,143,143,88,87,87,215,128,50,13,13,13,160,237,49,30,31,179,210,210,82,131)
|
||||
IMAGE_DATA(142,23,23,29,13,37,215,132,105,51,42,99,136,62,250,104,185,222,102,210,208,201,210,210,146,145,219,50,134,101,102,102)
|
||||
IMAGE_DATA(242,102,140,186,2,2,2,180,158,183,182,227,208,54,65,111,189,245,22,27,202,235,29,42,245,244,244,32,192,115,35,203)
|
||||
IMAGE_DATA(58,102,193,122,154,147,145,19,103,193,188,93,231,179,117,30,71,153,101,68,9,111,180,188,223,229,39,118,253,204,82,86)
|
||||
IMAGE_DATA(152,176,129,69,185,126,204,106,106,106,244,58,142,58,243,209,156,53,82,8,35,97,141,79,203,24,210,22,16,207,197,197)
|
||||
IMAGE_DATA(197,188,81,123,85,94,94,206,91,85,85,21,170,171,171,81,91,91,251,204,26,27,27,127,211,252,235,251,188,137,41,234)
|
||||
IMAGE_DATA(228,69,88,238,137,99,211,221,46,179,153,30,87,48,203,45,149,205,114,77,99,83,157,211,153,237,190,227,76,116,39,53)
|
||||
IMAGE_DATA(169,243,160,201,220,164,73,147,6,176,162,89,134,248,146,226,65,108,127,169,235,208,228,89,27,255,194,49,53,217,214,60)
|
||||
IMAGE_DATA(31,177,50,67,121,189,198,84,200,129,93,184,28,245,23,214,221,16,15,213,169,31,217,133,96,51,230,146,209,12,159,156)
|
||||
IMAGE_DATA(70,132,92,175,231,141,150,61,211,170,144,28,242,49,171,72,219,206,242,78,175,97,81,187,63,96,212,118,200,17,241,171)
|
||||
IMAGE_DATA(139,121,93,109,129,190,109,128,28,254,137,251,250,250,250,65,241,175,254,124,25,35,29,147,251,252,106,219,87,219,118,125)
|
||||
IMAGE_DATA(234,18,211,148,93,41,172,185,237,49,90,58,186,112,191,189,223,154,219,186,80,82,215,6,219,211,53,88,234,153,47,26)
|
||||
IMAGE_DATA(55,10,18,120,16,227,77,14,15,234,229,52,121,144,242,209,218,36,212,37,197,191,54,246,5,209,190,186,248,31,138,235)
|
||||
IMAGE_DATA(37,41,99,238,137,154,205,177,6,108,61,82,135,245,7,107,176,38,168,6,75,252,170,97,177,183,18,115,220,203,48,197)
|
||||
IMAGE_DATA(169,20,227,148,197,24,179,53,255,89,61,65,62,59,113,227,220,6,150,27,251,35,75,12,25,203,246,103,213,224,216,141)
|
||||
IMAGE_DATA(58,68,166,221,198,129,184,34,236,143,41,194,193,196,42,68,170,238,32,52,53,25,55,142,79,100,45,55,35,184,92,193)
|
||||
IMAGE_DATA(76,103,30,32,248,124,226,183,112,16,236,11,86,168,22,15,200,109,7,136,103,58,63,129,253,138,138,138,1,190,159,216)
|
||||
IMAGE_DATA(31,110,254,7,235,143,245,57,15,97,189,82,169,124,102,114,234,83,215,12,231,20,246,176,179,27,215,106,123,57,123,130)
|
||||
IMAGE_DATA(43,183,187,145,86,209,133,174,39,125,184,86,215,139,93,191,214,96,147,91,148,36,43,196,3,61,207,98,219,228,242,32)
|
||||
IMAGE_DATA(112,110,12,254,133,107,21,59,142,186,239,166,101,109,117,8,109,128,24,255,67,117,189,36,98,253,220,245,118,53,107,195)
|
||||
IMAGE_DATA(153,188,135,56,153,211,138,227,217,15,16,117,185,5,225,105,247,17,154,210,132,128,132,123,240,57,215,0,175,179,117,112)
|
||||
IMAGE_DATA(61,121,7,111,175,187,246,172,158,140,244,52,28,221,249,103,22,191,239,3,230,150,92,133,163,217,53,136,75,190,133,138)
|
||||
IMAGE_DATA(218,135,104,126,216,142,166,135,29,40,171,121,136,240,139,21,8,77,191,133,99,167,60,144,17,252,9,11,179,31,163,149)
|
||||
IMAGE_DATA(127,67,124,190,49,98,1,226,89,240,249,2,251,234,49,191,58,251,77,77,77,195,194,191,161,49,185,216,122,185,235,180)
|
||||
IMAGE_DATA(157,147,152,190,217,221,207,191,138,227,95,117,167,23,87,171,123,144,81,217,141,91,141,29,160,184,160,241,65,39,38,218)
|
||||
IMAGE_DATA(38,105,229,95,202,215,202,229,129,68,156,25,139,127,169,115,82,143,189,117,241,47,156,191,24,255,67,117,189,36,129,255)
|
||||
IMAGE_DATA(99,151,31,32,50,227,1,14,167,181,32,52,185,25,254,151,154,224,125,158,139,215,207,54,192,229,100,29,28,142,215,194)
|
||||
IMAGE_DATA(250,40,215,54,135,223,198,186,208,42,40,163,107,240,230,146,236,231,234,218,229,238,201,182,198,22,32,48,227,22,162,57)
|
||||
IMAGE_DATA(95,79,106,105,109,69,249,221,122,60,230,150,201,218,185,171,243,63,91,129,3,41,55,97,23,157,134,221,158,222,90,239)
|
||||
IMAGE_DATA(139,210,200,236,171,183,1,74,25,127,91,226,153,184,39,190,201,164,216,39,107,229,174,245,175,129,127,117,255,47,102,82)
|
||||
IMAGE_DATA(251,63,122,244,136,231,191,181,163,27,5,156,175,47,168,239,123,26,3,244,32,161,184,19,241,133,237,104,229,242,130,201)
|
||||
IMAGE_DATA(202,36,70,101,197,68,60,72,229,177,250,240,32,86,143,92,254,53,253,49,29,67,236,56,114,207,69,253,248,98,252,15)
|
||||
IMAGE_DATA(213,245,146,136,255,120,85,27,151,143,245,34,140,227,254,126,251,19,116,116,245,161,227,113,31,218,31,247,34,251,102,7)
|
||||
IMAGE_DATA(215,6,212,163,188,238,49,28,99,107,81,124,231,17,151,11,220,196,150,240,91,248,131,69,198,115,117,45,181,245,97,155)
|
||||
IMAGE_DATA(143,23,192,255,92,25,138,57,191,223,249,132,161,189,179,19,190,161,97,104,228,216,104,227,242,186,216,11,73,72,43,111)
|
||||
IMAGE_DATA(133,115,116,62,168,44,237,35,117,63,4,223,111,108,246,5,163,186,237,191,251,14,113,113,113,146,127,19,226,153,124,190)
|
||||
IMAGE_DATA(38,251,66,222,175,110,195,193,191,62,236,139,61,207,218,142,41,85,150,24,79,73,73,225,77,125,89,248,93,108,95,186)
|
||||
IMAGE_DATA(199,246,246,246,236,27,215,76,60,224,248,47,169,103,40,226,248,207,231,218,129,220,234,39,124,14,144,88,254,136,219,214)
|
||||
IMAGE_DATA(131,175,29,51,48,127,254,124,22,21,21,165,215,189,208,135,7,49,201,229,95,91,46,175,89,78,179,46,169,88,94,253)
|
||||
IMAGE_DATA(26,228,158,175,161,215,75,218,126,180,142,143,245,59,57,230,253,47,222,227,217,247,56,83,207,255,174,140,174,197,221,150)
|
||||
IMAGE_DATA(110,156,189,214,194,255,238,121,230,46,30,117,247,225,7,175,82,172,13,173,196,27,51,82,158,171,107,206,206,24,102,21)
|
||||
IMAGE_DATA(153,7,215,136,27,104,124,212,131,22,110,159,110,58,134,210,1,71,226,78,97,171,189,3,46,94,206,70,65,107,15,54)
|
||||
IMAGE_DATA(28,200,6,149,165,125,196,206,75,96,95,52,223,231,152,5,197,238,244,83,23,231,90,202,82,221,62,163,70,241,109,128)
|
||||
IMAGE_DATA(148,136,103,205,126,126,117,159,79,49,63,113,223,214,214,198,155,20,255,114,124,175,62,254,89,125,219,112,240,175,143,255)
|
||||
IMAGE_DATA(79,79,79,71,96,96,32,114,115,115,49,195,61,11,247,57,254,75,27,24,74,56,43,184,219,135,27,92,30,144,197,197)
|
||||
IMAGE_DATA(0,233,92,30,112,159,227,127,170,83,22,191,207,166,77,155,144,156,156,44,121,126,154,122,17,252,11,101,6,123,62,114)
|
||||
IMAGE_DATA(219,129,193,214,175,47,255,235,14,214,32,42,171,5,189,125,156,175,230,124,126,87,15,227,99,253,14,206,247,83,172,95)
|
||||
IMAGE_DATA(219,220,141,166,182,30,190,93,216,29,87,139,123,15,123,48,221,181,8,203,3,202,49,202,60,241,185,186,166,91,31,102)
|
||||
IMAGE_DATA(203,131,179,161,12,83,161,166,189,135,107,3,250,80,219,218,134,93,30,123,120,246,211,84,249,104,122,2,228,54,247,96)
|
||||
IMAGE_DATA(237,222,44,80,89,218,71,236,188,36,227,126,129,103,146,174,54,64,70,89,93,121,0,241,172,141,125,50,226,190,163,163)
|
||||
IMAGE_DATA(131,55,49,254,229,198,222,218,202,232,218,54,146,253,191,163,163,35,203,207,207,231,231,126,216,218,218,202,50,42,155,145)
|
||||
IMAGE_DATA(145,129,197,139,23,191,48,127,40,135,127,225,24,134,212,167,110,114,99,9,49,25,131,127,234,215,63,148,218,204,199,250)
|
||||
IMAGE_DATA(187,98,239,162,237,81,47,182,30,169,230,127,95,21,84,137,219,77,93,72,42,104,69,94,85,59,236,143,221,230,226,248)
|
||||
IMAGE_DATA(30,76,116,204,199,79,62,101,120,253,179,115,207,213,53,223,106,55,155,231,149,12,135,240,107,72,189,217,10,46,101,64)
|
||||
IMAGE_DATA(45,215,118,252,154,146,137,170,251,15,209,208,11,220,234,4,78,20,62,192,134,128,43,160,178,180,143,216,121,41,165,152)
|
||||
IMAGE_DATA(214,236,179,147,106,3,212,217,87,47,43,82,39,29,139,158,91,177,60,64,224,255,238,221,187,207,245,243,105,178,79,249)
|
||||
IMAGE_DATA(42,153,38,255,250,240,168,47,187,114,247,25,110,255,79,113,127,111,111,47,200,114,114,114,158,197,74,82,118,249,242,101)
|
||||
IMAGE_DATA(8,229,215,173,91,55,98,248,87,239,207,151,43,245,177,61,109,54,152,120,192,24,252,207,245,188,201,247,235,19,247,219)
|
||||
IMAGE_DATA(35,171,241,176,179,23,107,66,42,249,223,127,242,41,71,85,227,99,204,246,40,198,197,27,15,184,118,161,10,143,123,250)
|
||||
IMAGE_DATA(80,217,240,24,22,94,37,120,109,204,175,207,213,229,228,190,143,77,85,158,196,47,65,151,225,18,93,134,38,238,138,90)
|
||||
IMAGE_DATA(122,128,182,62,206,184,229,7,28,255,77,220,242,142,240,50,88,6,164,129,202,210,62,154,231,164,53,239,151,226,90,189)
|
||||
IMAGE_DATA(13,144,83,70,205,248,126,128,213,171,233,57,29,112,127,136,103,205,126,62,245,152,95,96,159,198,172,201,94,54,255,47)
|
||||
IMAGE_DATA(117,92,185,235,164,164,94,214,206,206,14,221,221,221,188,197,196,196,224,214,173,91,124,59,32,102,180,45,60,60,252,89)
|
||||
IMAGE_DATA(121,206,255,203,62,230,80,241,47,231,30,14,71,189,198,224,223,124,87,49,246,198,215,63,235,215,95,17,88,129,69,190)
|
||||
IMAGE_DATA(55,241,151,125,101,152,187,167,132,143,245,191,118,42,128,185,67,62,198,217,93,199,88,107,21,198,108,207,195,183,123,138)
|
||||
IMAGE_DATA(240,218,71,103,159,171,43,39,39,23,83,86,216,177,73,182,103,96,197,241,237,26,93,10,213,173,7,104,127,212,131,246)
|
||||
IMAGE_DATA(206,30,220,224,150,157,142,150,192,210,39,9,84,134,202,210,62,154,34,127,172,181,207,95,138,239,247,222,235,55,61,216)
|
||||
IMAGE_DATA(199,211,99,217,115,251,137,141,103,107,242,79,236,183,180,180,232,197,63,201,80,254,181,201,16,246,165,234,151,179,78,174)
|
||||
IMAGE_DATA(255,223,177,99,7,74,74,74,120,243,243,243,227,231,82,80,94,47,102,84,198,211,211,243,89,249,241,227,199,107,189,118)
|
||||
IMAGE_DATA(117,13,181,255,87,175,127,48,146,59,151,87,174,140,193,63,205,225,113,62,113,7,14,49,181,176,142,170,230,251,245,173)
|
||||
IMAGE_DATA(14,85,97,109,72,5,86,6,220,196,82,191,114,62,214,159,191,175,4,63,112,62,159,184,159,235,209,111,154,252,147,130)
|
||||
IMAGE_DATA(66,15,226,103,123,63,54,113,219,9,252,228,145,0,43,239,52,108,218,151,1,43,175,116,88,238,77,198,2,183,243,176)
|
||||
IMAGE_DATA(216,125,22,139,108,125,25,149,21,147,82,27,251,218,218,0,49,201,236,39,164,99,138,229,0,67,61,255,95,14,255,114)
|
||||
IMAGE_DATA(234,48,212,191,232,211,14,169,231,251,154,38,86,199,230,205,155,145,144,144,192,219,158,61,123,80,88,88,136,11,23,46)
|
||||
IMAGE_DATA(136,90,65,65,1,245,23,60,43,255,30,181,231,50,53,210,242,127,41,233,106,7,228,204,21,80,63,23,67,248,167,57)
|
||||
IMAGE_DATA(60,255,180,44,27,111,46,186,130,63,88,92,198,63,206,77,227,251,245,71,77,78,196,168,47,19,240,15,227,46,224,245)
|
||||
IMAGE_DATA(177,231,248,88,159,120,215,52,77,165,166,166,242,127,195,248,115,23,153,217,154,96,140,177,140,196,39,191,196,241,70,203)
|
||||
IMAGE_DATA(83,183,28,66,114,74,42,75,77,75,99,212,199,43,38,89,252,203,105,3,228,142,17,60,229,159,226,127,177,28,96,40)
|
||||
IMAGE_DATA(101,12,254,133,125,13,245,43,250,180,17,114,234,18,180,126,253,122,196,199,199,243,230,235,235,11,7,7,7,222,182,111)
|
||||
IMAGE_DATA(223,78,249,61,31,227,207,153,51,7,230,230,230,152,48,97,2,191,78,40,255,238,187,239,202,62,230,72,236,255,215,182)
|
||||
IMAGE_DATA(93,170,29,144,219,39,104,12,254,141,169,123,247,238,225,200,145,35,236,230,205,155,8,13,11,99,14,206,238,108,230,98)
|
||||
IMAGE_DATA(43,246,225,119,253,70,203,59,93,60,216,161,195,135,89,89,89,25,98,99,99,25,205,173,209,148,108,254,201,180,249,7)
|
||||
IMAGE_DATA(218,38,179,30,57,252,203,141,147,245,145,177,248,87,175,99,176,241,228,96,234,150,211,222,172,90,181,138,29,61,122,148)
|
||||
IMAGE_DATA(231,153,184,143,62,126,2,137,41,153,162,22,21,29,139,209,163,71,243,101,131,130,130,240,246,219,111,203,62,191,225,30)
|
||||
IMAGE_DATA(255,215,244,219,114,239,189,216,60,1,57,26,105,252,183,183,183,195,217,217,153,5,6,6,50,138,241,164,68,125,60,222)
|
||||
IMAGE_DATA(222,222,204,195,195,131,81,94,173,169,145,200,191,216,223,198,24,140,25,155,127,67,21,205,197,76,98,12,68,27,240,30)
|
||||
IMAGE_DATA(181,139,139,11,91,189,122,53,155,55,111,30,22,251,102,225,209,227,110,52,63,236,70,19,103,141,173,93,168,187,255,24)
|
||||
IMAGE_DATA(213,247,58,80,213,208,134,71,93,61,88,236,147,133,119,222,121,135,226,1,122,70,100,31,231,69,241,47,229,215,53,219)
|
||||
IMAGE_DATA(5,125,142,175,217,6,200,145,177,249,167,190,172,121,123,102,25,60,47,193,80,141,180,248,95,219,223,197,208,54,96,164)
|
||||
IMAGE_DATA(241,47,198,186,208,38,24,210,6,8,90,180,63,147,45,243,191,138,101,126,255,111,63,243,150,205,27,109,91,180,47,115)
|
||||
IMAGE_DATA(80,207,224,139,226,95,76,98,239,233,232,19,203,107,123,7,80,74,198,230,127,81,228,15,108,213,249,5,131,230,255,148)
|
||||
IMAGE_DATA(219,74,86,24,188,22,249,129,171,161,242,91,142,92,159,197,184,178,247,71,100,120,124,143,20,151,217,184,180,107,26,206)
|
||||
IMAGE_DATA(217,127,5,151,13,243,117,206,249,55,152,125,65,122,244,255,137,241,47,231,57,24,138,88,155,68,227,10,151,252,102,177)
|
||||
IMAGE_DATA(76,207,25,236,202,222,25,136,113,254,156,213,213,213,105,221,231,244,233,36,172,88,225,138,113,227,214,224,195,15,151,98)
|
||||
IMAGE_DATA(252,120,75,172,94,237,198,197,211,169,178,142,169,111,140,111,172,118,193,24,26,46,254,133,253,196,226,127,50,57,99,251)
|
||||
IMAGE_DATA(218,222,243,151,146,49,249,95,16,242,29,115,191,166,132,115,182,13,86,158,95,128,37,167,230,225,199,99,115,241,253,161)
|
||||
IMAGE_DATA(233,152,25,48,25,83,246,125,137,9,46,102,48,83,142,193,152,109,239,227,253,245,3,227,110,98,255,94,201,175,104,44)
|
||||
IMAGE_DATA(62,131,134,130,83,168,191,17,139,187,170,104,220,201,141,68,109,246,33,84,95,14,193,237,244,0,196,109,249,68,235,185)
|
||||
IMAGE_DATA(16,139,195,49,254,167,201,191,62,207,192,80,180,1,101,81,179,80,26,177,26,143,171,179,209,85,155,131,171,190,19,176)
|
||||
IMAGE_DATA(103,251,66,201,103,105,235,86,95,124,246,153,37,151,99,7,113,237,64,34,210,210,178,57,238,83,224,232,24,2,51,179)
|
||||
IMAGE_DATA(53,176,177,209,253,108,244,159,63,205,135,150,195,116,52,119,107,117,199,69,47,42,174,17,203,163,135,154,127,245,125,52)
|
||||
IMAGE_DATA(143,165,94,135,174,54,64,56,119,125,230,1,25,122,189,130,230,251,205,101,110,185,246,136,41,61,140,163,197,161,8,47)
|
||||
IMAGE_DATA(12,68,88,254,1,4,170,188,225,155,235,137,189,87,93,225,158,229,4,231,76,7,236,76,179,133,93,202,54,252,121,213)
|
||||
IMAGE_DATA(192,126,217,235,254,43,209,80,116,154,227,220,159,227,220,7,85,201,94,168,184,228,134,242,243,78,40,61,107,143,226,147)
|
||||
IMAGE_DATA(219,81,153,180,31,147,29,83,241,149,50,9,19,108,18,240,249,198,147,44,56,236,200,115,245,12,231,252,159,145,226,255)
|
||||
IMAGE_DATA(239,92,124,31,29,133,71,209,85,157,137,238,218,92,222,30,223,76,68,134,251,116,209,231,131,216,159,57,115,59,247,60)
|
||||
IMAGE_DATA(94,5,245,173,82,31,44,189,183,116,251,246,109,208,55,150,84,170,66,126,187,173,173,246,231,163,255,26,232,222,81,251)
|
||||
IMAGE_DATA(174,208,105,218,248,215,252,125,176,177,181,28,73,205,179,211,103,126,173,212,124,125,93,223,246,16,76,243,253,58,185,117)
|
||||
IMAGE_DATA(9,219,228,142,251,25,235,122,5,253,176,119,38,219,125,197,26,17,69,193,56,84,224,143,144,235,62,240,207,219,11,239)
|
||||
IMAGE_DATA(28,119,120,102,59,195,245,242,78,236,74,183,131,50,117,7,108,146,182,96,91,226,6,188,179,244,173,1,245,228,250,44)
|
||||
IMAGE_DATA(145,117,188,137,118,156,111,42,121,128,228,162,22,132,167,212,224,211,229,65,3,206,89,50,7,24,162,249,191,2,251,47)
|
||||
IMAGE_DATA(58,255,23,19,177,223,117,63,29,93,53,81,168,140,179,68,135,42,130,55,226,63,201,125,246,128,123,69,49,63,249,125)
|
||||
IMAGE_DATA(117,246,137,123,178,138,91,21,207,230,46,231,231,151,242,229,206,159,23,31,119,21,174,231,233,146,44,83,42,229,241,175)
|
||||
IMAGE_DATA(237,120,134,180,11,218,222,177,145,195,158,177,190,255,39,231,30,136,249,107,125,125,190,161,215,43,165,185,123,191,97,214)
|
||||
IMAGE_DATA(73,86,176,61,191,9,179,189,190,102,82,49,63,249,125,98,255,95,127,250,231,1,117,80,174,111,115,182,18,223,6,94)
|
||||
IMAGE_DATA(199,108,159,60,76,247,204,193,84,151,43,152,228,144,9,115,235,116,140,223,156,130,21,94,57,248,98,251,5,92,42,104)
|
||||
IMAGE_DATA(65,125,27,208,250,8,248,112,197,192,88,147,152,124,81,239,255,168,199,254,82,239,2,139,253,157,135,146,253,222,142,51)
|
||||
IMAGE_DATA(232,44,91,137,118,213,47,184,30,98,129,202,152,141,200,222,55,83,116,31,202,247,41,230,215,100,159,184,39,19,230,45)
|
||||
IMAGE_DATA(55,55,55,195,201,233,32,214,174,221,35,121,124,99,241,255,124,93,250,107,40,238,173,73,218,53,221,237,43,182,32,114)
|
||||
IMAGE_DATA(46,91,121,238,199,65,245,1,166,187,127,199,231,249,101,191,238,68,201,105,27,20,197,109,69,126,180,21,174,71,174,65)
|
||||
IMAGE_DATA(222,225,101,200,13,93,132,226,83,246,48,219,120,22,87,43,30,224,74,121,11,30,112,252,255,231,226,136,1,117,189,232)
|
||||
IMAGE_DATA(247,127,229,204,253,49,196,207,201,209,115,236,87,44,66,71,241,68,244,180,120,162,238,236,2,148,121,153,73,238,71,125)
|
||||
IMAGE_DATA(125,148,239,19,251,197,229,197,162,236,215,223,171,231,231,45,39,38,102,195,220,252,23,201,186,70,10,255,198,216,223,36)
|
||||
IMAGE_DATA(253,100,225,55,199,160,62,192,164,221,51,80,157,17,196,231,249,5,199,55,226,70,212,58,168,142,172,196,181,131,75,145)
|
||||
IMAGE_DATA(19,188,0,87,3,230,161,48,118,7,254,103,237,9,100,150,222,71,208,165,106,36,23,54,225,79,243,15,138,158,207,11)
|
||||
IMAGE_DATA(249,254,135,90,222,255,162,231,254,169,107,176,236,147,168,159,159,250,250,132,124,95,96,95,224,159,216,167,247,21,200,174)
|
||||
IMAGE_DATA(95,47,197,167,159,174,146,172,235,101,229,223,219,123,27,11,8,120,147,133,133,41,120,163,101,90,103,208,9,252,21,137)
|
||||
IMAGE_DATA(250,0,12,237,3,60,175,156,132,170,20,95,84,36,238,69,249,69,15,228,159,218,133,136,253,219,224,230,226,132,208,208)
|
||||
IMAGE_DATA(80,236,222,105,131,196,224,141,248,100,197,17,56,185,184,243,235,92,221,60,48,113,161,19,63,247,64,76,146,121,128,129)
|
||||
IMAGE_DATA(166,25,247,75,189,255,171,207,51,56,216,231,61,121,239,191,15,154,125,18,141,241,81,63,191,166,223,39,238,213,217,167)
|
||||
IMAGE_DATA(249,89,201,201,185,58,253,63,141,231,17,215,114,108,245,106,121,125,163,250,74,159,125,232,90,15,29,250,27,166,217,54)
|
||||
IMAGE_DATA(209,58,186,23,38,233,214,28,151,105,6,247,1,126,63,241,3,124,103,254,95,152,251,229,104,204,254,226,61,204,152,100)
|
||||
IMAGE_DATA(134,125,251,246,241,223,114,168,172,172,228,223,13,216,177,109,51,86,90,90,161,176,168,136,95,71,223,120,160,50,118,118)
|
||||
IMAGE_DATA(118,90,191,3,100,236,239,127,106,198,253,186,242,126,93,26,236,115,126,193,245,223,208,86,151,52,104,246,73,171,86,185)
|
||||
IMAGE_DATA(241,99,124,212,207,47,229,247,137,253,206,206,78,236,222,125,24,191,252,226,37,89,151,212,252,63,109,38,103,252,95,223)
|
||||
IMAGE_DATA(124,94,87,57,242,237,7,14,252,11,11,9,121,133,29,62,172,192,169,83,10,20,23,43,208,215,167,64,111,175,2,5)
|
||||
IMAGE_DATA(5,253,235,104,27,149,161,178,166,120,64,187,102,185,77,225,251,0,29,57,198,127,142,158,47,25,243,107,235,3,28,59)
|
||||
IMAGE_DATA(118,236,179,254,201,53,107,214,176,188,130,2,88,88,88,96,242,228,201,108,217,178,101,216,191,127,63,255,222,7,45,79)
|
||||
IMAGE_DATA(155,54,141,223,70,109,128,182,177,15,99,127,255,155,247,251,106,236,235,154,243,175,235,185,29,76,95,21,205,129,38,246)
|
||||
IMAGE_DATA(171,115,78,226,202,177,21,131,102,159,68,190,159,198,247,105,140,79,243,123,164,234,236,151,151,87,243,229,18,18,244,251)
|
||||
IMAGE_DATA(63,16,116,93,52,15,215,88,249,184,174,251,37,231,56,7,15,254,221,115,254,254,246,109,5,142,31,87,224,198,141,126)
|
||||
IMAGE_DATA(139,137,233,95,167,94,166,127,31,147,180,105,218,110,115,54,227,192,87,44,56,36,120,80,251,211,59,125,83,166,76,97)
|
||||
IMAGE_DATA(102,102,102,204,218,218,154,231,127,230,204,153,108,220,184,113,44,49,49,17,121,121,121,92,174,154,70,239,254,224,179,207)
|
||||
IMAGE_DATA(62,99,180,141,248,167,178,186,234,38,102,201,111,15,246,255,127,240,62,95,35,223,151,138,251,5,201,25,227,25,12,255)
|
||||
IMAGE_DATA(222,107,255,136,182,234,43,232,169,191,129,120,219,143,145,30,240,223,168,200,88,11,85,240,84,100,57,126,44,187,30,65)
|
||||
IMAGE_DATA(214,214,254,252,248,62,141,241,81,63,191,240,141,2,117,246,167,79,223,14,7,7,233,191,171,177,199,191,228,72,106,92)
|
||||
IMAGE_DATA(69,155,92,92,22,178,184,56,5,138,138,250,253,61,89,86,150,2,78,78,111,192,211,83,201,124,125,247,51,91,219,15)
|
||||
IMAGE_DATA(24,173,163,88,224,201,19,5,119,95,20,160,125,118,238,156,103,106,3,180,136,242,240,207,151,255,175,193,247,200,223,223)
|
||||
IMAGE_DATA(31,75,150,44,225,249,167,159,196,255,164,73,147,48,123,246,108,222,104,153,214,209,54,226,159,126,234,170,147,255,134,44)
|
||||
IMAGE_DATA(215,6,80,44,32,196,3,114,255,255,151,152,207,215,22,247,11,26,42,255,79,252,119,215,230,160,57,122,49,26,252,191)
|
||||
IMAGE_DATA(64,218,138,81,136,94,244,6,206,110,25,45,187,14,77,209,220,30,26,223,167,49,62,234,231,167,190,62,202,247,41,230)
|
||||
IMAGE_DATA(39,191,175,141,125,18,249,120,49,83,191,62,169,50,250,188,167,35,37,185,247,48,50,242,119,172,180,84,129,107,215,20)
|
||||
IMAGE_DATA(156,63,233,247,247,129,129,175,192,215,215,154,209,183,90,233,91,131,190,190,19,152,16,15,228,230,42,184,220,83,129,164)
|
||||
IMAGE_DATA(36,5,183,254,119,38,254,95,128,232,255,101,205,157,59,151,57,56,56,48,63,63,63,70,156,209,183,95,172,172,172,176)
|
||||
IMAGE_DATA(109,219,54,126,249,233,58,190,12,149,213,167,126,242,219,188,47,167,239,246,40,196,255,247,39,207,188,134,191,151,227,243)
|
||||
IMAGE_DATA(213,53,84,249,191,197,132,215,80,24,188,0,157,170,72,52,171,142,33,213,253,107,131,216,23,68,115,123,104,124,159,250)
|
||||
IMAGE_DATA(248,168,159,159,126,82,190,47,39,230,31,14,255,63,24,5,5,189,202,218,219,185,246,189,81,129,202,74,5,170,170,20)
|
||||
IMAGE_DATA(92,94,249,123,254,157,97,122,63,194,203,75,201,156,157,205,153,157,157,25,115,113,249,15,150,144,160,0,153,74,165,192)
|
||||
IMAGE_DATA(158,61,175,154,248,127,1,162,111,55,170,84,42,62,246,95,184,112,33,229,254,108,249,242,229,44,34,34,2,148,7,208)
|
||||
IMAGE_DATA(239,100,180,141,202,80,89,125,244,244,123,242,207,190,57,165,201,184,54,147,203,62,105,168,250,255,231,125,241,58,126,154)
|
||||
IMAGE_DATA(48,10,193,171,222,229,185,119,179,94,58,34,159,75,205,254,192,145,240,174,143,192,255,195,135,10,46,207,81,160,186,154)
|
||||
IMAGE_DATA(203,237,124,126,143,211,167,79,243,126,199,217,121,21,199,189,3,163,239,17,57,57,237,226,126,42,64,70,177,130,137,255)
|
||||
IMAGE_DATA(223,158,132,182,192,88,204,155,52,178,21,24,216,207,127,107,171,2,205,205,10,52,52,40,224,230,246,3,163,239,135,82)
|
||||
IMAGE_DATA(236,159,157,157,205,255,164,239,8,219,217,173,101,233,233,253,252,231,228,80,254,98,226,223,36,147,94,102,133,133,253,45)
|
||||
IMAGE_DATA(235,236,84,160,173,141,203,231,67,198,50,215,200,235,44,252,68,6,138,138,138,248,111,6,70,70,70,226,224,193,131,176)
|
||||
IMAGE_DATA(177,89,201,92,93,95,227,226,205,254,220,63,59,91,1,79,79,211,24,128,73,38,189,204,114,116,52,103,196,179,127,216)
|
||||
IMAGE_DATA(251,216,21,89,201,78,102,53,193,230,80,37,124,35,46,113,185,224,56,158,121,79,207,87,113,226,68,127,222,79,126,159)
|
||||
IMAGE_DATA(252,127,100,164,130,107,19,62,55,241,111,146,73,47,177,232,255,2,172,221,96,197,182,4,230,115,236,55,35,254,234,125)
|
||||
IMAGE_DATA(132,39,53,98,161,91,30,163,57,64,66,127,31,113,79,99,128,52,23,96,231,206,63,178,144,144,253,252,88,168,73,38)
|
||||
IMAGE_DATA(153,244,114,107,189,175,138,197,102,52,225,244,149,102,28,75,189,199,249,255,42,40,189,198,51,234,11,160,241,62,26,27)
|
||||
IMAGE_DATA(60,115,70,1,119,247,191,231,226,1,43,118,231,206,157,225,62,101,147,76,50,201,72,90,234,156,206,130,207,215,33,34)
|
||||
IMAGE_DATA(185,17,155,130,42,240,237,66,11,230,231,167,96,196,61,229,251,135,14,41,96,103,55,135,209,124,51,147,76,50,233,183)
|
||||
IMAGE_DATA(165,163,199,98,49,107,71,18,251,122,75,50,83,186,250,242,57,125,66,194,5,216,218,126,193,108,108,62,101,241,241,167)
|
||||
IMAGE_DATA(135,251,20,77,50,201,36,147,70,180,254,15,224,189,78,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(5696, 1)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,93,121,84,21,71,186,239,204,139,239,143,156,153,156,156,204,75,38,207,57,243,206,228,249,222,57,51,78,222)
|
||||
IMAGE_DATA(115,102,242,156,24,77,50,110,99,156,100,98,30,234,184,107,18,19,163,227,22,49,113,5,4,84,246,77,201,21,1,241)
|
||||
IMAGE_DATA(2,34,168,40,184,129,26,149,125,81,68,65,65,144,29,89,148,85,64,17,23,132,250,189,174,230,180,105,154,238,123,171)
|
||||
IMAGE_DATA(239,70,204,227,119,78,29,170,187,234,171,250,170,111,253,170,190,175,186,170,225,94,226,94,226,172,137,209,163,57,247,128)
|
||||
IMAGE_DATA(0,174,62,34,130,35,52,208,56,189,199,34,251,220,115,220,171,145,145,92,55,192,65,26,232,61,62,109,184,90,125,158)
|
||||
IMAGE_DATA(158,92,181,94,207,245,238,219,199,225,248,113,14,197,197,28,122,123,57,244,244,112,40,44,236,187,71,211,104,30,154,87)
|
||||
IMAGE_DATA(170,79,120,56,247,72,90,215,205,155,28,142,28,225,112,237,90,95,56,124,184,239,158,52,15,149,161,178,19,39,114,225)
|
||||
IMAGE_DATA(241,241,28,138,138,250,234,163,225,194,5,14,137,137,28,162,162,250,2,141,211,123,84,151,39,79,56,20,20,112,160,50)
|
||||
IMAGE_DATA(19,38,112,49,49,49,220,147,146,18,14,87,174,112,200,203,235,171,143,214,45,111,191,168,207,229,203,28,210,210,56,36)
|
||||
IMAGE_DATA(39,115,216,181,139,123,18,20,196,117,116,118,114,104,106,226,80,89,201,161,170,138,67,122,58,135,178,178,239,245,161,241)
|
||||
IMAGE_DATA(140,12,14,55,110,112,56,119,174,47,228,231,115,240,240,224,58,68,249,187,119,57,180,181,113,168,169,233,211,53,55,247)
|
||||
IMAGE_DATA(251,246,211,58,233,243,163,114,169,169,125,129,234,74,229,121,29,4,249,142,14,14,173,173,28,154,155,57,212,215,247,213)
|
||||
IMAGE_DATA(73,219,149,153,217,39,71,245,165,122,81,61,168,60,45,223,221,157,235,224,127,143,199,93,93,28,238,221,227,208,208,208)
|
||||
IMAGE_DATA(39,91,93,205,161,188,188,239,55,164,121,169,156,24,146,146,250,202,202,201,225,224,235,203,61,154,51,135,59,71,175,235)
|
||||
IMAGE_DATA(234,250,218,64,203,160,207,129,214,79,229,105,26,125,94,52,80,61,104,189,180,76,254,185,99,230,76,46,141,255,9,255)
|
||||
IMAGE_DATA(249,181,215,184,37,235,215,115,229,52,79,99,35,135,150,150,190,231,72,229,197,231,69,229,232,115,161,125,97,237,90,238)
|
||||
IMAGE_DATA(230,240,225,220,42,94,246,5,105,191,29,57,146,115,243,242,226,218,179,178,250,202,160,101,209,103,71,127,219,147,39,133)
|
||||
IMAGE_DATA(231,213,249,198,27,156,31,159,247,151,106,253,255,249,231,185,223,141,31,207,69,7,7,115,132,202,209,246,242,125,31,124)
|
||||
IMAGE_DATA(63,59,50,108,24,247,7,86,14,190,240,2,55,101,250,116,46,121,246,108,46,243,167,63,229,62,82,203,151,250,34,247)
|
||||
IMAGE_DATA(226,211,11,88,24,180,72,173,197,138,50,90,100,229,50,44,178,106,50,134,100,141,201,40,201,178,202,200,101,77,149,51)
|
||||
IMAGE_DATA(85,79,115,158,139,57,191,131,154,172,22,152,34,195,86,238,115,191,182,26,57,134,48,132,33,124,143,222,222,94,132,6)
|
||||
IMAGE_DATA(58,146,227,254,191,35,135,125,254,72,30,61,122,52,32,79,99,99,35,104,122,172,207,155,164,164,164,100,16,180,236,15)
|
||||
IMAGE_DATA(165,97,97,104,168,24,130,173,16,27,30,2,251,145,28,2,29,86,147,193,214,197,28,116,119,119,35,216,111,45,201,62)
|
||||
IMAGE_DATA(56,135,116,183,166,224,82,220,28,18,232,57,143,172,242,137,33,43,246,23,11,129,198,119,122,44,36,249,39,22,147,194)
|
||||
IMAGE_DATA(179,246,228,128,231,155,164,182,182,118,208,116,54,102,180,25,195,202,149,43,137,86,35,79,45,100,101,101,9,193,18,101)
|
||||
IMAGE_DATA(133,132,132,24,212,219,80,61,52,77,196,235,175,191,222,175,79,90,186,189,114,140,24,49,66,83,249,171,87,15,228,12)
|
||||
IMAGE_DATA(235,51,84,170,223,84,136,28,166,127,89,65,249,78,101,196,240,172,243,127,111,208,118,100,29,152,75,30,55,38,34,239)
|
||||
IMAGE_DATA(216,124,114,102,207,88,226,153,217,10,93,110,19,246,94,109,16,2,141,251,167,87,33,57,236,77,82,158,182,145,92,57)
|
||||
IMAGE_DATA(190,156,28,112,27,69,232,216,97,107,24,226,57,235,24,32,229,131,156,115,83,166,76,25,208,151,229,121,40,191,212,250)
|
||||
IMAGE_DATA(163,146,188,154,62,242,62,111,136,255,98,157,114,110,203,245,81,202,99,205,246,74,65,229,204,25,223,68,40,141,39,214)
|
||||
IMAGE_DATA(192,250,9,35,4,46,187,46,156,202,196,97,57,247,7,147,255,46,135,155,21,131,227,161,70,108,216,127,27,107,34,106)
|
||||
IMAGE_DATA(177,98,79,45,22,239,174,193,220,29,149,152,238,83,138,191,186,149,224,61,151,98,140,222,80,240,180,156,61,186,173,184)
|
||||
IMAGE_DATA(122,202,158,228,30,153,79,206,135,141,33,129,23,106,113,232,218,109,196,164,223,68,80,124,17,2,15,23,33,34,169,10)
|
||||
IMAGE_DATA(49,249,245,208,167,165,224,234,225,73,228,78,217,126,222,87,24,107,115,63,128,165,63,176,228,17,249,160,212,31,89,248)
|
||||
IMAGE_DATA(32,205,39,231,131,218,60,102,8,98,89,106,252,48,196,125,17,82,238,169,241,223,26,237,85,130,18,127,167,78,101,227)
|
||||
IMAGE_DATA(152,188,45,74,182,130,37,112,233,66,86,63,30,107,129,104,55,12,54,255,79,95,237,148,132,123,56,153,119,23,199,114)
|
||||
IMAGE_DATA(59,112,36,167,29,7,179,219,16,149,126,7,250,212,22,132,156,107,134,238,116,35,2,18,110,195,235,88,61,70,172,190)
|
||||
IMAGE_DATA(242,180,156,204,140,116,196,184,254,134,36,236,24,69,188,83,170,112,32,167,22,241,41,213,168,168,187,139,214,187,157,104)
|
||||
IMAGE_DATA(185,123,31,165,181,119,17,117,182,2,250,140,106,28,58,238,139,140,61,127,34,250,45,255,99,83,254,107,153,11,140,229)
|
||||
IMAGE_DATA(165,124,160,253,89,41,141,149,15,34,207,45,193,127,81,103,165,122,164,115,55,141,27,42,67,228,141,18,255,173,213,94)
|
||||
IMAGE_DATA(53,152,51,135,211,177,194,154,220,167,160,115,190,169,243,184,116,236,24,108,254,31,202,110,71,76,102,59,246,165,183,65)
|
||||
IMAGE_DATA(159,210,138,224,243,45,248,246,12,111,175,39,52,194,243,216,109,184,30,169,131,195,129,90,124,19,117,19,171,245,85,112)
|
||||
IMAGE_DATA(137,173,197,240,197,57,253,202,218,230,237,71,54,196,21,34,52,179,26,177,252,92,79,209,214,209,129,178,91,13,120,200)
|
||||
IMAGE_DATA(199,105,232,228,91,25,156,80,129,160,212,114,108,137,77,135,155,95,160,205,219,109,201,249,95,109,174,101,229,3,5,229)
|
||||
IMAGE_DATA(153,165,248,175,166,147,212,246,54,198,127,81,127,37,254,91,171,189,134,96,138,13,32,142,97,90,236,5,83,32,183,227)
|
||||
IMAGE_DATA(169,47,192,42,251,67,225,127,98,254,61,180,221,239,65,56,207,251,59,157,79,112,255,81,47,238,63,236,69,231,195,30)
|
||||
IMAGE_DATA(228,148,223,231,199,128,6,148,221,126,136,109,113,117,40,174,127,192,251,2,229,88,31,85,141,215,230,102,246,43,107,177)
|
||||
IMAGE_DATA(227,183,100,221,145,66,4,159,46,69,49,63,239,119,61,33,232,236,234,194,46,125,56,154,248,113,224,222,163,71,136,251)
|
||||
IMAGE_DATA(46,25,233,101,29,240,136,45,0,205,75,101,6,163,221,134,56,197,202,55,202,7,181,126,172,133,15,74,229,176,242,95)
|
||||
IMAGE_DATA(62,31,211,58,148,234,209,234,67,211,250,149,248,111,173,246,26,211,69,139,254,98,126,106,59,48,87,98,2,118,110,94)
|
||||
IMAGE_DATA(37,204,253,148,199,226,26,128,120,205,130,31,2,255,55,29,184,45,216,250,93,60,231,131,207,54,11,220,247,61,217,32)
|
||||
IMAGE_DATA(92,187,196,214,225,86,219,99,36,92,105,19,174,253,79,222,194,131,199,189,152,29,80,130,85,250,74,188,58,45,181,95)
|
||||
IMAGE_DATA(89,118,174,177,196,62,38,15,94,209,215,208,244,160,27,109,188,204,99,90,135,139,43,246,199,31,199,6,103,87,156,205)
|
||||
IMAGE_DATA(206,65,97,71,55,214,6,229,128,230,165,50,131,209,110,10,37,94,89,106,173,72,11,31,148,192,202,127,67,190,188,60)
|
||||
IMAGE_DATA(159,188,44,53,91,94,218,6,86,125,205,109,175,49,80,27,158,213,22,18,211,45,185,198,175,132,117,227,255,157,208,64)
|
||||
IMAGE_DATA(227,210,53,61,214,117,64,107,240,63,48,112,3,9,14,254,87,162,215,115,66,160,113,122,79,45,255,234,136,90,28,188)
|
||||
IMAGE_DATA(208,134,158,94,126,174,230,231,252,71,221,68,176,245,239,243,115,63,181,245,235,90,31,163,229,94,183,48,46,184,199,215)
|
||||
IMAGE_DATA(161,249,110,55,62,242,42,194,151,33,101,120,101,82,82,191,178,254,182,57,146,124,25,150,3,151,240,124,212,118,118,243)
|
||||
IMAGE_DATA(99,64,47,234,58,238,97,187,175,159,192,253,244,252,2,180,60,1,46,183,118,99,213,142,11,160,121,169,140,37,218,109)
|
||||
IMAGE_DATA(42,212,230,127,173,50,114,216,130,255,98,30,22,168,189,79,96,25,7,76,45,223,146,252,167,144,175,5,40,217,246,98)
|
||||
IMAGE_DATA(30,75,215,45,135,252,157,159,41,235,128,106,252,151,150,195,58,150,80,52,53,53,33,34,226,159,136,124,231,49,189,119)
|
||||
IMAGE_DATA(235,214,45,69,25,186,174,31,153,214,42,216,250,219,227,110,225,222,131,30,108,216,95,35,92,255,99,79,37,110,182,60)
|
||||
IMAGE_DATA(66,114,97,7,242,170,58,225,124,232,38,111,199,119,99,242,182,2,44,210,149,226,231,239,156,238,87,214,188,53,110,100)
|
||||
IMAGE_DATA(78,64,10,92,163,174,32,173,188,3,188,203,128,58,126,236,56,149,154,133,170,59,119,209,216,3,84,119,1,71,175,183)
|
||||
IMAGE_DATA(99,109,200,69,208,188,84,134,181,125,63,4,176,218,7,90,248,160,84,22,11,255,197,58,88,192,242,94,156,213,150,80)
|
||||
IMAGE_DATA(130,45,248,111,204,15,16,109,4,107,174,247,137,16,215,253,164,144,250,0,44,123,1,228,252,151,190,15,96,93,83,164)
|
||||
IMAGE_DATA(115,251,174,93,255,70,194,194,56,98,236,228,4,205,67,243,74,237,129,25,254,229,194,186,62,229,253,166,152,26,220,237)
|
||||
IMAGE_DATA(234,193,138,189,149,194,245,34,93,25,170,154,30,194,206,183,24,103,175,181,243,227,66,21,30,118,247,162,178,241,33,230)
|
||||
IMAGE_DATA(6,220,192,203,163,79,245,211,101,187,247,14,242,129,203,49,124,181,39,27,158,177,165,104,225,107,105,235,6,238,245,242)
|
||||
IMAGE_DATA(129,143,183,243,252,111,225,227,155,163,74,177,50,36,29,52,47,149,209,252,240,205,132,185,243,59,203,24,192,202,7,99)
|
||||
IMAGE_DATA(115,187,26,255,165,235,249,172,48,246,94,221,28,123,192,20,254,155,226,107,169,249,1,182,90,239,163,16,121,43,231,165)
|
||||
IMAGE_DATA(148,191,44,243,182,148,255,226,216,33,5,139,61,17,30,62,172,223,124,207,118,242,105,216,83,221,38,109,47,198,142,196)
|
||||
IMAGE_DATA(134,167,235,250,75,67,43,240,233,174,114,204,219,89,138,25,126,55,4,91,127,170,91,33,38,185,22,224,189,45,87,241)
|
||||
IMAGE_DATA(182,67,62,70,111,202,195,76,191,34,188,252,102,66,63,93,114,115,47,99,234,151,78,100,138,211,73,216,243,252,246,138)
|
||||
IMAGE_DATA(45,65,126,117,59,58,31,116,163,179,171,27,215,248,184,219,129,27,88,169,75,6,205,67,243,82,25,91,195,80,159,99)
|
||||
IMAGE_DATA(237,143,198,250,46,11,31,12,241,91,203,94,64,45,176,86,185,90,249,47,47,95,75,125,114,63,64,122,109,11,136,190)
|
||||
IMAGE_DATA(190,18,164,156,53,182,14,40,229,191,210,120,33,93,83,80,42,203,195,99,17,81,58,185,232,230,246,42,252,252,156,137)
|
||||
IMAGE_DATA(78,183,147,56,58,142,34,74,39,23,93,93,103,11,245,209,61,60,30,71,235,225,122,184,14,14,7,107,132,117,125,251)
|
||||
IMAGE_DATA(200,42,172,218,91,129,101,33,229,248,124,119,153,96,235,207,223,121,3,179,249,57,159,242,126,134,111,95,144,243,159,98)
|
||||
IMAGE_DATA(143,62,2,159,111,9,34,147,55,30,197,34,223,115,176,255,54,29,223,236,204,132,125,64,6,86,238,72,193,66,239,51)
|
||||
IMAGE_DATA(152,235,158,128,79,28,117,132,230,29,12,168,245,113,165,251,44,99,133,82,186,49,62,24,227,157,177,249,95,90,190,41)
|
||||
IMAGE_DATA(96,221,203,203,10,91,242,95,204,47,15,214,94,239,19,97,104,126,151,238,7,48,182,166,103,108,253,79,106,79,40,249)
|
||||
IMAGE_DATA(19,209,209,63,33,242,147,199,161,161,207,65,167,219,76,106,106,106,120,174,23,240,241,9,68,233,228,177,78,247,19,161)
|
||||
IMAGE_DATA(62,186,135,231,151,75,114,48,252,211,139,120,109,110,54,126,49,35,93,88,215,127,229,253,36,188,50,225,28,254,229,189)
|
||||
IMAGE_DATA(239,240,243,183,79,11,182,62,229,187,60,200,145,150,150,198,251,28,133,72,56,245,29,25,183,34,12,163,87,198,224,173)
|
||||
IMAGE_DATA(175,226,133,64,227,31,172,143,68,114,74,42,73,77,75,35,25,25,25,172,143,220,162,80,234,227,134,250,189,41,99,128)
|
||||
IMAGE_DATA(181,230,127,165,58,204,129,177,113,128,101,175,0,107,123,165,48,151,255,74,190,140,45,32,114,82,109,110,151,114,214,216)
|
||||
IMAGE_DATA(94,0,115,249,31,26,250,51,34,255,114,64,96,224,75,72,76,76,196,237,219,183,225,239,239,76,220,221,39,18,39,167)
|
||||
IMAGE_DATA(177,196,195,99,36,145,126,57,192,215,247,103,22,247,147,154,155,155,17,21,21,69,202,203,203,177,87,175,39,46,238,222)
|
||||
IMAGE_DATA(100,218,167,107,200,31,102,246,5,26,119,245,240,33,17,145,145,164,180,180,148,247,83,142,144,138,138,10,75,171,97,20)
|
||||
IMAGE_DATA(90,230,127,121,154,90,121,114,88,219,255,151,230,97,129,49,159,94,109,28,96,93,19,180,149,255,47,133,184,191,79,12)
|
||||
IMAGE_DATA(182,240,253,165,107,124,44,193,144,15,96,41,254,75,191,252,161,211,189,132,19,39,78,160,184,184,24,238,238,203,120,222)
|
||||
IMAGE_DATA(187,144,212,212,84,108,223,190,141,72,191,252,97,13,254,119,118,118,242,117,186,211,61,98,228,250,245,235,170,249,170,171)
|
||||
IMAGE_DATA(171,249,113,42,144,248,248,248,144,134,134,6,75,171,97,20,44,243,185,214,52,57,108,177,254,79,161,198,79,249,188,205)
|
||||
IMAGE_DATA(170,183,210,62,1,22,216,98,253,95,10,181,231,99,205,58,89,207,249,177,238,5,48,151,255,33,33,125,252,23,191,220)
|
||||
IMAGE_DATA(67,191,86,227,229,53,139,228,230,230,10,182,127,78,78,142,240,55,59,59,27,78,78,43,137,244,203,61,62,62,3,249)
|
||||
IMAGE_DATA(127,255,254,125,204,246,253,248,153,122,31,103,10,140,245,105,67,233,172,156,176,213,254,31,181,121,93,62,46,104,169,95)
|
||||
IMAGE_DATA(62,6,176,192,214,252,23,235,208,178,47,200,92,80,46,179,236,239,101,221,11,96,46,255,245,250,231,137,248,229,45,93)
|
||||
IMAGE_DATA(216,24,226,25,157,79,162,142,102,162,168,168,136,183,243,207,33,38,38,6,17,17,17,112,112,88,74,188,188,94,238,247)
|
||||
IMAGE_DATA(229,45,63,191,97,3,234,251,36,122,22,89,118,122,129,201,252,63,230,181,148,92,15,91,133,130,208,229,200,223,253,37)
|
||||
IMAGE_DATA(46,235,62,195,197,29,11,144,233,59,11,169,158,118,56,191,253,67,156,118,254,11,60,236,231,253,232,199,24,91,241,95)
|
||||
IMAGE_DATA(9,74,231,116,180,216,242,134,206,0,170,193,20,255,223,84,222,138,235,253,226,122,31,203,190,32,115,161,246,206,79,13)
|
||||
IMAGE_DATA(44,123,1,204,229,255,214,173,19,9,229,115,112,248,40,108,139,174,32,199,46,180,192,49,178,18,187,162,207,195,217,249)
|
||||
IMAGE_DATA(93,129,243,254,254,47,226,232,209,129,95,206,115,112,120,167,95,125,11,194,102,18,159,43,46,240,200,113,196,178,51,11)
|
||||
IMAGE_DATA(177,248,248,28,44,56,52,3,179,34,63,194,199,33,239,227,175,59,39,96,162,231,56,140,115,25,141,209,27,71,97,212)
|
||||
IMAGE_DATA(154,145,3,244,161,220,111,190,113,10,77,197,39,209,88,120,28,13,215,226,112,43,63,22,245,151,99,80,151,19,137,154)
|
||||
IMAGE_DATA(236,189,184,153,17,130,248,245,111,177,60,194,103,26,131,197,127,81,78,201,254,167,129,229,221,190,161,115,254,106,176,213)
|
||||
IMAGE_DATA(250,159,210,30,31,173,231,3,76,129,161,119,126,74,96,89,7,52,151,255,143,31,63,198,74,251,53,100,93,200,53,158)
|
||||
IMAGE_DATA(251,173,72,188,116,7,81,201,77,88,228,117,133,168,125,249,210,213,245,87,100,239,222,64,116,117,117,61,45,103,94,208)
|
||||
IMAGE_DATA(116,226,125,217,25,135,75,246,225,64,177,30,81,215,67,17,94,16,132,208,252,111,177,235,178,63,118,92,242,130,207,5)
|
||||
IMAGE_DATA(55,120,100,185,98,107,186,19,182,164,110,196,111,255,241,159,3,244,185,26,188,12,141,69,39,120,158,7,243,60,215,161)
|
||||
IMAGE_DATA(42,37,0,21,231,189,81,118,198,13,37,9,206,40,62,182,9,149,201,129,120,127,91,26,254,226,146,140,137,142,231,240)
|
||||
IMAGE_DATA(206,218,163,36,44,124,63,243,115,53,23,44,254,189,37,108,72,37,63,218,218,252,151,202,24,122,215,96,108,12,16,117)
|
||||
IMAGE_DATA(215,178,15,72,107,123,77,225,191,161,61,62,214,246,3,180,238,197,21,101,12,241,215,92,254,83,124,165,203,35,113,153)
|
||||
IMAGE_DATA(45,56,113,177,21,135,210,154,249,249,191,10,206,254,239,17,249,151,107,189,189,95,32,158,158,107,72,125,125,253,128,50)
|
||||
IMAGE_DATA(102,5,76,35,238,23,29,16,93,20,134,200,194,96,236,189,170,67,112,222,14,124,155,235,3,255,28,15,120,101,111,197)
|
||||
IMAGE_DATA(246,140,45,112,73,219,12,199,228,245,216,152,180,22,255,241,249,235,3,202,185,172,91,204,244,92,38,111,73,66,250,141)
|
||||
IMAGE_DATA(118,164,20,181,33,42,181,22,111,47,9,181,153,63,96,168,143,40,241,205,148,126,164,182,207,78,203,254,90,181,253,250)
|
||||
IMAGE_DATA(198,190,237,33,6,249,187,112,214,178,196,52,214,247,126,166,182,87,43,255,89,206,244,89,203,15,144,218,242,172,80,218)
|
||||
IMAGE_DATA(203,43,127,23,96,236,251,31,44,223,7,89,236,158,78,194,206,220,70,116,74,19,190,217,83,129,25,139,230,144,160,160)
|
||||
IMAGE_DATA(254,95,158,118,114,178,35,121,121,121,6,245,157,30,240,33,113,72,182,135,211,153,111,240,191,254,239,19,53,155,159,206)
|
||||
IMAGE_DATA(251,148,251,191,94,244,171,1,101,80,95,223,49,161,18,51,67,175,194,78,151,135,143,252,115,241,129,231,69,76,113,205)
|
||||
IMAGE_DATA(194,36,135,12,252,121,93,42,150,6,228,98,252,166,239,112,190,176,13,13,247,128,142,7,192,31,151,198,50,63,87,115)
|
||||
IMAGE_DATA(97,136,227,106,105,172,99,129,161,51,54,44,220,179,212,247,255,148,244,148,223,83,154,175,181,206,249,230,180,87,235,179)
|
||||
IMAGE_DATA(213,106,255,176,216,32,198,160,182,31,223,216,56,96,236,157,160,161,114,169,141,33,255,166,136,161,179,0,7,14,197,225)
|
||||
IMAGE_DATA(227,77,73,228,253,117,201,196,217,83,39,164,157,59,247,29,28,29,255,76,28,28,222,38,137,137,39,152,219,251,55,175)
|
||||
IMAGE_DATA(201,100,65,244,116,178,244,212,124,147,198,205,12,159,191,11,126,126,233,169,173,184,113,194,17,69,241,27,80,16,107,143)
|
||||
IMAGE_DATA(171,49,43,144,183,111,9,46,235,63,69,241,113,103,140,251,58,1,151,42,218,113,177,172,13,237,60,255,255,235,179,104)
|
||||
IMAGE_DATA(83,170,51,9,182,152,255,135,96,89,136,239,249,89,184,108,203,247,1,63,54,204,9,178,51,107,13,48,217,125,26,106)
|
||||
IMAGE_DATA(50,247,8,126,126,225,145,175,113,237,224,106,228,239,95,134,43,17,159,35,55,108,33,46,133,204,193,245,184,205,248,211)
|
||||
IMAGE_DATA(170,163,200,42,185,131,61,231,107,144,114,189,5,191,153,111,187,125,192,134,250,196,80,159,249,225,193,148,51,125,74,231)
|
||||
IMAGE_DATA(3,172,169,227,143,1,116,13,192,220,53,192,51,46,83,80,149,186,11,21,73,59,80,118,214,23,5,199,183,35,58,112)
|
||||
IMAGE_DATA(35,188,61,221,160,215,235,225,190,213,17,73,97,95,227,173,165,251,225,230,233,35,220,243,242,246,197,228,79,220,132,189)
|
||||
IMAGE_DATA(7,207,26,88,236,108,181,123,182,6,203,156,104,200,46,146,255,149,251,77,74,127,149,202,208,2,145,251,90,249,171,228)
|
||||
IMAGE_DATA(7,216,226,76,240,179,12,59,143,15,204,94,3,156,53,249,247,248,251,164,255,198,140,9,111,192,110,252,72,76,155,50)
|
||||
IMAGE_DATA(14,59,119,238,20,254,231,71,101,101,165,112,54,96,243,198,117,88,182,210,30,215,139,138,132,123,153,153,153,66,30,39)
|
||||
IMAGE_DATA(39,167,65,255,125,140,113,195,218,247,140,233,160,6,173,190,191,90,25,198,210,164,121,228,113,165,241,64,171,14,82,72)
|
||||
IMAGE_DATA(247,246,154,194,93,37,63,110,104,12,48,140,143,189,166,10,107,128,219,120,142,127,17,59,95,213,230,55,180,6,56,102)
|
||||
IMAGE_DATA(204,152,167,191,219,242,229,203,73,94,97,33,230,206,157,43,172,21,45,89,178,132,238,251,197,166,77,155,64,227,31,126)
|
||||
IMAGE_DATA(248,161,144,70,199,128,21,43,86,216,228,183,97,241,241,181,240,72,109,174,212,34,163,86,39,171,174,134,96,46,247,229)
|
||||
IMAGE_DATA(122,40,201,88,114,254,87,242,223,181,142,29,106,101,12,249,2,198,241,129,219,68,242,209,174,201,36,108,111,152,73,242)
|
||||
IMAGE_DATA(244,76,31,29,187,199,142,29,75,54,111,222,44,240,127,218,180,105,228,221,119,223,37,73,73,73,160,239,33,210,211,211)
|
||||
IMAGE_DATA(17,23,23,135,113,227,198,17,154,70,249,79,243,90,184,41,102,131,133,111,150,184,54,199,63,48,151,255,90,198,7,107)
|
||||
IMAGE_DATA(242,159,245,219,36,134,96,136,247,67,227,0,27,168,31,254,206,146,183,204,126,54,193,193,193,248,236,179,207,4,254,211)
|
||||
IMAGE_DATA(191,148,255,188,13,0,59,59,59,33,208,56,189,71,211,40,255,233,95,75,232,111,11,24,226,180,90,92,233,218,26,186)
|
||||
IMAGE_DATA(88,58,93,154,199,22,243,255,16,126,28,160,231,15,167,79,159,78,92,92,92,72,80,80,16,137,143,143,199,238,221,187)
|
||||
IMAGE_DATA(97,111,111,143,141,27,55,10,113,122,143,166,209,60,52,239,96,235,108,42,88,249,111,237,186,173,145,46,205,163,133,255)
|
||||
IMAGE_DATA(74,254,194,208,24,240,255,7,61,61,61,200,207,207,23,108,255,69,139,22,145,47,190,248,130,250,255,36,58,58,26,212)
|
||||
IMAGE_DATA(15,160,215,52,208,52,154,135,230,29,194,16,134,48,4,107,225,255,0,80,219,106,35,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(4768, 3)
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#ifndef _AccessKey_AccessKey_h
|
||||
#define _AccessKey_AccessKey_h
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
#define LAYOUTFILE <AccessKey/AccessKey.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
|
||||
|
||||
class AccessKey : public WithAccessKeyLayout<TopWindow> {
|
||||
public:
|
||||
typedef AccessKey CLASSNAME;
|
||||
AccessKey();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
LAYOUT(AccessKeyLayout, 200, 308)
|
||||
ITEM(EditDate, dv___0, LeftPosZ(56, 140).TopPosZ(4, 19))
|
||||
ITEM(Label, dv___1, SetLabel(t_("asdfasdf\a\001[= Test")).SetFont(SansSerifZ(20)).LeftPosZ(8, 188).TopPosZ(28, 32))
|
||||
ITEM(Base, ok, RightPosZ(90, 80).BottomPosZ(212, 22))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 80).BottomPosZ(212, 22))
|
||||
ITEM(Button, dv___4, SetLabel(t_("\001[= Test&asdflkajsdf&asdflkasldfjlkajsdf")).LeftPosZ(8, 184).TopPosZ(116, 188))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(asdfasdf, 400, 200)
|
||||
ITEM(DataPusher, data1, LeftPosZ(4, 64).TopPosZ(20, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(4, 64).TopPosZ(48, 24))
|
||||
ITEM(LineEdit, edit, LeftPosZ(232, 132).TopPosZ(68, 19))
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(368, 28).TopPosZ(68, 16))
|
||||
ITEM(LineEdit, edit, LeftPosZ(220, 132).TopPosZ(96, 19))
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(356, 28).TopPosZ(96, 16))
|
||||
ITEM(DataPusher, data1, LeftPosZ(36, 64).TopPosZ(112, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(36, 64).TopPosZ(140, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(TestLayout, 356, 76)
|
||||
ITEM(LineEdit, edit, LeftPosZ(188, 132).TopPosZ(4, 19))
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(324, 28).TopPosZ(4, 16))
|
||||
ITEM(DataPusher, data1, LeftPosZ(4, 64).TopPosZ(20, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(4, 64).TopPosZ(48, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(TestLayout3, 356, 76)
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(144, 28).TopPosZ(8, 16))
|
||||
ITEM(LineEdit, edit, LeftPosZ(188, 132).TopPosZ(4, 19))
|
||||
ITEM(DataPusher, data1, LeftPosZ(4, 64).TopPosZ(20, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(4, 64).TopPosZ(48, 24))
|
||||
END_LAYOUT
|
||||
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
Web;
|
||||
|
||||
include
|
||||
gdfgsdfg;
|
||||
|
||||
file
|
||||
test.js highlight js,
|
||||
h.iml,
|
||||
bak.tpp,
|
||||
bak.tpp,
|
||||
AccessKey.h,
|
||||
testing.icpp,
|
||||
test.key,
|
||||
translate.t,
|
||||
main.cpp charset "UTF-8-BOM",
|
||||
test.cpp,
|
||||
AccessKey.lay,
|
||||
[Content_Types].xml,
|
||||
test.zip,
|
||||
_rels readonly separator,
|
||||
_rels\.rels,
|
||||
docProps readonly separator,
|
||||
docProps\app.xml,
|
||||
docProps\core.xml,
|
||||
xl readonly separator,
|
||||
xl\sharedStrings.xml,
|
||||
xl\styles.xml,
|
||||
xl\workbook.xml,
|
||||
xl\_rels readonly separator,
|
||||
xl\_rels\workbook.xml.rels,
|
||||
xl\theme readonly separator,
|
||||
xl\theme\theme1.xml,
|
||||
xl\worksheets readonly separator,
|
||||
xl\worksheets\sheet1.xml;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI ST";
|
||||
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
#include "AccessKey.h"
|
||||
|
||||
void test()
|
||||
{
|
||||
if(a( && b)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
topic "vxcv zxcv zxcv zxv zxvc zv ho";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}%ES-ES
|
||||
[s0;i448;O9; asdf-|safasdf&]
|
||||
[s0;i448;n`.;N1; asdfas-|asdfasdfaasdf aslkdjf alksjdfh kajsdh fkjah
|
||||
sdkfjh aksjdfh kajsdh fkajsh dfkjash dkfjha skdjfh aksjdf kajsdfh
|
||||
kajsdfh &]
|
||||
[s0;i448;n`.;N1; vzxcvzxcv&]
|
||||
[s0;i448;n`.;N1; zxcvzxcv&]
|
||||
[s0;i448;n`.;N1; zxcvzxcv&]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; zxcvzxcvzxcv&]
|
||||
[s0;i448;n`.;N1; zxcvzxcv&]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; zxcvzxcvzxcv&]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[ {{5000:5000 [s0;i448;n`.;N1; asdfasdf]
|
||||
:: [s0;i448;n`.;N1; asdfasdf]}}&]
|
||||
[s0; asfasd [* asdfasdfasd ][*R6 asdfasdfasdf]&]
|
||||
[s0; vxcv zxcv zxcv zxv zxvc zv ho&]
|
||||
[s0;N! ,asnmdf asf asfhjd akhjdsf kahjds fkahjds fkahjds fkahjds
|
||||
fka hdfkahd fkahjds fkahjdsf kafhd kahdsf kahjdsf ahkjh asdfkjha
|
||||
sdfkjh asdfkjh asdfkjh asdflkjhas dfkjh asdf kjh asdfkjh &]
|
||||
[s0; &]
|
||||
[s0;i448;n`.;N1; zxcvzxcvzxcv&]
|
||||
[s0; &]
|
||||
[s0; los&]
|
||||
[s0; de&]
|
||||
[s0; han&]
|
||||
[s0; se&]
|
||||
[s0; datos&]
|
||||
[s0; fichero&]
|
||||
[s0; realizar&]
|
||||
[s0; Ajustes&]
|
||||
[s0; simulación&]
|
||||
[s0; una&]
|
||||
[s0; indicado&]
|
||||
[s0; generales&]
|
||||
[s0; Datos&]
|
||||
[s0; Apartado&]
|
||||
[s0; Localización&]
|
||||
[s0; geográfica&]
|
||||
[s0; &]
|
||||
[s0; asdf&]
|
||||
[s0; ha ]]
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,37 +0,0 @@
|
|||
topic "";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[ {{588:588:588:588:588:588:588:588:588:588:588:588:588:588:588:588:592 [s0;%% [R Aa]]
|
||||
:: [s0;%% [R Bb]]
|
||||
:: [s0;%% [R Cc]]
|
||||
:: [s0;%% [R Dd]]
|
||||
:: [s0;%% [R Ee]]
|
||||
:: [s0;%% [R Ff]]
|
||||
:: [s0;%% [R Gg]]
|
||||
:: [s0;%% [R Hh]]
|
||||
:: [s0;%% [R Ii]]
|
||||
:: [s0;%% [R Jj]]
|
||||
:: [s0;%% [R Kk]]
|
||||
:: [s0;%% [R Ll]]
|
||||
:: [s0;%% [R Mm]]
|
||||
:: [s0;%% [R Nn]]
|
||||
:: [s0;%% [R Oo]]
|
||||
:: [s0;%% [R Pp]]
|
||||
:: [s0;%% [R Rr]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Aa]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Bb]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Cc]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Dd]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ee]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ff]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Gg]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Hh]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ii]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Jj]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Kk]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ll]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Mm]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Nn]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Oo]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Pp]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Rr]]}}]
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
topic "Morituri te Salutant";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[s0;a83; [R6 Morituri te Salutant]&]
|
||||
[s0; [R1 Cesta je prach]&]
|
||||
[s0;a83; [R1 a štěrk]&]
|
||||
[s0;a83; [R1 a udusaná hlína]&]
|
||||
[s0; [R1 a šedé šmouhy]&]
|
||||
[s0; [R1 kreslí do vlasů]&]
|
||||
[s0; [R1 a z hvězdných drah]&]
|
||||
[s0; [R1 má šperk]&]
|
||||
[s0; [R1 co kamením se spíná]&]
|
||||
[s0; [R1 a pírka touhy]&]
|
||||
[s0; [R1 z křídel Pegasů]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Cesta je bič]&]
|
||||
[s0; [R1 Je zlá]&]
|
||||
[s0; [R1 jak pouliční dáma]&]
|
||||
[s0; [R1 Má v ruce štítky]&]
|
||||
[s0; [R1 v pase staniol]&]
|
||||
[s0; [R1 a z očí chtíč jí plá]&]
|
||||
[s0; [R1 když háže do neznáma]&]
|
||||
[s0; [R1 dvě křehké snítky]&]
|
||||
[s0; [R1 rudých gladiol]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Seržante písek je bílý]&]
|
||||
[s0; [R1 jak paže Daniely]&]
|
||||
[s0; [R1 Počkejte chvíli!]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Mé oči uviděly]&]
|
||||
[s0; [R1 tu strašně dávnou]&]
|
||||
[s0; [R1 vteřinu zapomnění]&]
|
||||
[s0; [R1 Seržante! Mávnou]&]
|
||||
[s0; [R1 a budem zasvěceni]&]
|
||||
[s0; [R1 Morituri te salutant]&]
|
||||
[s0; [R1 Morituri te salutant]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Tou cestou dál]&]
|
||||
[s0; [R1 jsem šel]&]
|
||||
[s0; [R1 kde na zemi se zmítá]&]
|
||||
[s0; [R1 a písek víří]&]
|
||||
[s0; [R1 křídlo holubí]&]
|
||||
[s0; [R1 a marš mi hrál]&]
|
||||
[s0; [R1 zvuk děl]&]
|
||||
[s0; [R1 co uklidnění skýtá]&]
|
||||
[s0; [R1 a zvedá chmýří]&]
|
||||
[s0; [R1 které zahubí]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Cesta je tér a prach]&]
|
||||
[s0; [R1 a udusaná hlína]&]
|
||||
[s0; [R1 mosazná včelka]&]
|
||||
[s0; [R1 od vlkodlaka]&]
|
||||
[s0; [R1 rezavý kvér]&]
|
||||
[s0; [R1 `- můj brach]&]
|
||||
[s0; [R1 a sto let stará špína]&]
|
||||
[s0; [R1 a děsně velká]&]
|
||||
[s0; [R1 bílá oblaka]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Seržante]&]
|
||||
[s0; [R1 písek je bílý]&]
|
||||
[s0; [R1 jak paže Daniely]&]
|
||||
[s0; [R1 Počkejte chvíli!]&]
|
||||
[s0; [R1 Mé oči uviděly]&]
|
||||
[s0; [R1 tu strašně dávnou]&]
|
||||
[s0; [R1 vteřinu zapomnění]&]
|
||||
[s0; [R1 Seržante! Mávnou]&]
|
||||
[s0; [R1 a budem zasvěceni]&]
|
||||
[s0; [R1 Morituri te salutant]&]
|
||||
[s0; [R1 Morituri te salutant ]&]
|
||||
[s0;%% ]]
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>Microsoft Excel</Application><DocSecurity>0</DocSecurity><ScaleCrop>false</ScaleCrop><HeadingPairs><vt:vector size="2" baseType="variant"><vt:variant><vt:lpstr>listy</vt:lpstr></vt:variant><vt:variant><vt:i4>1</vt:i4></vt:variant></vt:vector></HeadingPairs><TitlesOfParts><vt:vector size="1" baseType="lpstr"><vt:lpstr>test</vt:lpstr></vt:vector></TitlesOfParts><LinksUpToDate>false</LinksUpToDate><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>14.0300</AppVersion></Properties>
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>cxl</dc:creator><cp:lastModifiedBy>cxl</cp:lastModifiedBy><dcterms:created xsi:type="dcterms:W3CDTF">2011-11-09T13:03:21Z</dcterms:created><dcterms:modified xsi:type="dcterms:W3CDTF">2011-11-09T13:03:21Z</dcterms:modified></cp:coreProperties>
|
||||
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
Before Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 421 B |
|
|
@ -1,9 +0,0 @@
|
|||
#ifndef _AccessKey_icpp_init_stub
|
||||
#define _AccessKey_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "Web/init"
|
||||
#include "SubTest/init"
|
||||
#define BLITZ_INDEX__ F190185a01d70a422cd7de990bd1c48a1
|
||||
#include "testing.icpp"
|
||||
#undef BLITZ_INDEX__
|
||||
#endif
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
#include "AccessKey.h"
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
AKD_TEST
|
||||
Ctrl::AddFlags(Ctrl::AKD_CONSERVATIVE);
|
||||
AccessKey().Run(Accept());
|
||||
String s;S
|
||||
s.Cat()Add
|
||||
|
||||
AKD_CONS
|
||||
|
||||
AKD_TEST
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
#include "AccessKey.h"
|
||||
|
||||
void test()
|
||||
{
|
||||
if(a( && b)
|
||||
{
|
||||
}
|
||||
1.f ssdf
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
var s1 = new String("Hello !");
|
||||
var s2 = new String("Hello !");
|
||||
s1 == s2; // Is false, because they are two distinct objects.
|
||||
s1.valueOf() == s2.valueOf(); // Is true.
|
||||
|
||||
//Automatic type coercion
|
||||
f1(true == 2 ); // false... true → 1 !== 2 ← 2
|
||||
alert2(false == 2 ); // false... false → 0 !== 2 ← 2
|
||||
alert3(true == 1 ); // true.... true → 1 === 1 ← 1
|
||||
alert4(false == 0 ); // true.... false → 0 === 0 ← 0
|
||||
alert5(true == "2"); // false... true → 1 !== 2 ← "2"
|
||||
alert6(false == "2"); // false... false → 0 !== 2 ← "2"
|
||||
alert7(true == "1"); // true.... true → 1 === 1 ← "1"
|
||||
alert8(false == "0"); // true.... false → 0 === 0 ← "0"
|
||||
alert9(false == "" ); // true.... false → 0 === 0 ← ""
|
||||
alert(false == NaN); // false... false → 0 !== NaN
|
||||
|
||||
//Type checked comparison (no conversion of types and values)
|
||||
alert(true === 1); // false... data types do not match
|
||||
|
||||
//Explicit type coercion
|
||||
alert(true === !!2); // true.... data types and values match
|
||||
alert(true === !!0); // false... data types match but values differ
|
||||
alert( 1 ? true : false); // true.... only ±0 and NaN are “falsy” numbers
|
||||
alert("0" ? true : false); // true.... only the empty string is “falsy”
|
||||
alert(Boolean({})); // true.... all objects are “truthy” except null
|
||||
|
||||
var d = new Date(2010, 2, 1, 14, 25, 30); // 2010-Mar-01 14:25:30
|
||||
|
||||
// Displays '2010-3-1 14:25:30':
|
||||
alert(d.getFullYear() + '-' + (d.getMonth()+1) + '-' + d.getDate() + ' '
|
||||
+ d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds());
|
||||
|
||||
// Built-in toString returns something like 'Mon Mar 01 2010 14:25:30 GMT-0500 (EST)':
|
||||
alert(d);
|
||||
|
||||
s.length
|
||||
|
||||
var myRe = /(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})/;
|
||||
var results = myRe.exec("The date and time are 2009-09-08 09:37:08.");
|
||||
if (results) {
|
||||
alert("Matched: " + results[0]); // Entire match
|
||||
var my_date = results[1]; // First group == "2009-09-08"
|
||||
var my_time = results[2]; // Second group == "09:37:08"
|
||||
alert("It is " + my_time + " on " + my_date);
|
||||
} else alert("Did not find a valid date!");
|
||||
|
||||
try
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
KEY(EDITFILE, t_("Edit file"), K_CTRL_O)
|
||||
KEY(SAVEFILE, "Save", K_CTRL_S)
|
||||
KEY(READONLY, "Read only", 0)
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
macro "Swap":"Swap Chars" Ctrl+Shift+T {
|
||||
Execute("cmd.exe");
|
||||
}
|
||||
Binary file not shown.
|
|
@ -1,3 +0,0 @@
|
|||
"\305\241\305\241\305\241\305\241 Hezky p\304\233kn\304\233 \304\215esky!"
|
||||
asdfasdf
|
||||
a
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/></Relationships>
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="50" uniqueCount="49"><si><t>Account information</t></si><si><t>Product Information:</t></si><si><t>Performance Information</t></si><si><t>Report information</t></si><si><t>Google Client Account Information</t></si><si><t>Click Pack</t></si><si><t>Facebook Client Account Information</t></si><si><t>Admin fee</t></si><si><t>Client Name</t></si><si><t>Campaing Name</t></si><si><t>Time zone</t></si><si><t>Country</t></si><si><t>Currency</t></si><si><t>Responsible planner</t></si><si><t>REO</t></si><si><t>Default Destination URL</t></si><si><t>Default Display URL</t></si><si><t>Customer reg. ID</t></si><si><t>Order number</t></si><si><t>Users (separate with a comma)</t></si><si><t>Product</t></si><si><t>Type</t></si><si><t>Start date</t></si><si><t>Stop date</t></si><si><t>Regional targeting location</t></si><si><t>Regional targeting radius</t></si><si><t>Google Budget</t></si><si><t>Facebook Budget</t></si><si><t>Guaranteed position</t></si><si><t>Report should be emailed to (separate with a comma):</t></si><si><t>Client account number</t></si><si><t>Target margin</t></si><si><t>Guaranteed clicks</t></si><si><t>Facebook Login</t></si><si><t>Facebook Password</t></si><si><t>Facebook Campaign Name</t></si><si><t>Setup fee</t></si><si><t>Management fee</t></si><si><t>25664723_KP/GAR_AARON TRADE, spol. s r.o.</t></si><si><t>195_25664723_AARON TRADE, spol. s r.o.</t></si><si><t>Prague</t></si><si><t>CZ</t></si><si><t>CZK</t></si><si><t>Fidler Mirek</t></si><si><t>http://www.ultimatepp.org/forum</t></si><si><t>http://ultimatepp.org</t></si><si><t>Admin Fee (KP)</t></si><si><t>GAR</t></si><si><t>cxl@ntllib.org</t></si></sst>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="9302"/><workbookPr defaultThemeVersion="124226"/><bookViews><workbookView xWindow="360" yWindow="120" windowWidth="20115" windowHeight="10035"/></bookViews><sheets><sheet name="test" sheetId="1" r:id="rId1"/></sheets><calcPr calcId="0"/></workbook>
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><dimension ref="A1:AD3"/><sheetViews><sheetView tabSelected="1" workbookViewId="0"><selection activeCell="N1" sqref="N1"/></sheetView></sheetViews><sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/><cols><col min="23" max="23" width="27.140625" customWidth="1"/><col min="24" max="24" width="14.140625" customWidth="1"/><col min="25" max="25" width="21" customWidth="1"/></cols><sheetData><row r="1" spans="1:30" x14ac:dyDescent="0.25"><c r="A1" t="s"><v>0</v></c><c r="M1" t="s"><v>1</v></c><c r="S1" t="s"><v>2</v></c><c r="V1" t="s"><v>3</v></c><c r="W1" t="s"><v>4</v></c><c r="X1" t="s"><v>5</v></c><c r="Z1" t="s"><v>6</v></c><c r="AC1" t="s"><v>7</v></c></row><row r="2" spans="1:30" x14ac:dyDescent="0.25"><c r="A2" t="s"><v>8</v></c><c r="B2" t="s"><v>9</v></c><c r="C2" t="s"><v>10</v></c><c r="D2" t="s"><v>11</v></c><c r="E2" t="s"><v>12</v></c><c r="F2" t="s"><v>13</v></c><c r="G2" t="s"><v>14</v></c><c r="H2" t="s"><v>15</v></c><c r="I2" t="s"><v>16</v></c><c r="J2" t="s"><v>17</v></c><c r="K2" t="s"><v>18</v></c><c r="L2" t="s"><v>19</v></c><c r="M2" t="s"><v>20</v></c><c r="N2" t="s"><v>21</v></c><c r="O2" t="s"><v>22</v></c><c r="P2" t="s"><v>23</v></c><c r="Q2" t="s"><v>24</v></c><c r="R2" t="s"><v>25</v></c><c r="S2" t="s"><v>26</v></c><c r="T2" t="s"><v>27</v></c><c r="U2" t="s"><v>28</v></c><c r="V2" t="s"><v>29</v></c><c r="W2" t="s"><v>30</v></c><c r="X2" t="s"><v>31</v></c><c r="Y2" t="s"><v>32</v></c><c r="Z2" t="s"><v>33</v></c><c r="AA2" t="s"><v>34</v></c><c r="AB2" t="s"><v>35</v></c><c r="AC2" t="s"><v>36</v></c><c r="AD2" t="s"><v>37</v></c></row><row r="3" spans="1:30" x14ac:dyDescent="0.25"><c r="A3" t="s"><v>38</v></c><c r="B3" t="s"><v>39</v></c><c r="C3" t="s"><v>40</v></c><c r="D3" t="s"><v>41</v></c><c r="E3" t="s"><v>42</v></c><c r="F3" t="s"><v>43</v></c><c r="G3"><v>0</v></c><c r="H3" t="s"><v>44</v></c><c r="I3" t="s"><v>45</v></c><c r="J3"><v>25664723</v></c><c r="K3"><v>195</v></c><c r="L3" t="s"><v>43</v></c><c r="M3" t="s"><v>46</v></c><c r="N3" t="s"><v>47</v></c><c r="O3" s="1"><v>40856</v></c><c r="P3" s="1"><v>40856</v></c><c r="S3"><v>0</v></c><c r="T3"><v>0</v></c><c r="V3" t="s"><v>48</v></c><c r="W3"><v>1231231234</v></c><c r="AC3"><v>12</v></c><c r="AD3"><v>12</v></c></row></sheetData><pageMargins left="0.7" right="0.7" top="0.78740157499999996" bottom="0.78740157499999996" header="0.3" footer="0.3"/></worksheet>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#include <AddOn/AddOn.h>
|
||||
|
||||
int IAddOn::GetMajorRevision() {return 0;}
|
||||
int IAddOn::GetMinorRevision() {return 0;}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#ifndef _AddOn_AddOn_h_
|
||||
#define _AddOn_AddOn_h_
|
||||
|
||||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
#define ADDONEXPORT extern "C" __declspec(dllexport)
|
||||
#else
|
||||
#define ADDONEXPORT
|
||||
#endif
|
||||
|
||||
class IAddOn
|
||||
{
|
||||
public:
|
||||
virtual String GetName() = 0;
|
||||
virtual int GetMajorRevision();
|
||||
virtual int GetMinorRevision();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
AddOn.h,
|
||||
AddOn.cpp,
|
||||
AddOnLoader.h,
|
||||
AddOnLoader.cpp;
|
||||
|
|
@ -1,155 +0,0 @@
|
|||
#ifndef _AddOn_AddOnLoader_h_
|
||||
#define _AddOn_AddOnLoader_h_
|
||||
|
||||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#include <AddOn/AddOn.h>
|
||||
|
||||
#ifdef PLATFORM_POSIX
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
|
||||
|
||||
template <class T>
|
||||
class AddOnLoader
|
||||
{
|
||||
public:
|
||||
AddOnLoader(){};
|
||||
~AddOnLoader();
|
||||
|
||||
int LoadFile(String name);
|
||||
int LoadFolder(String name);
|
||||
|
||||
int GetCount();
|
||||
T* At(int idx);
|
||||
T* operator[](int idx) {return At(idx);}
|
||||
|
||||
private:
|
||||
AddOnLoader(const AddOnLoader&);
|
||||
|
||||
bool Load(String name);
|
||||
|
||||
struct Item {
|
||||
DLLHANDLE hmod;
|
||||
T* address;
|
||||
};
|
||||
|
||||
Array<Item> addOns;
|
||||
|
||||
typedef IAddOn*(*Start)();
|
||||
typedef void(*Stop)();
|
||||
|
||||
#if defined PLATFORM_WIN32
|
||||
typedef HMODULE DLLHANDLE;
|
||||
#else
|
||||
typedef void* DLLHANDLE;
|
||||
#endif
|
||||
|
||||
static const String sharedLibExt;
|
||||
};
|
||||
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
template <class T> const String AddOnLoader<T>::sharedLibExt = ".dll";
|
||||
#elif defined PLATFORM_LINUX || defined PLATFORM_FREEBSD || defined PLATFORM_SOLARIS
|
||||
template <class T> const String AddOnLoader<T>::sharedLibExt = ".so";
|
||||
#elif defined PLATFORM_OSX11
|
||||
template <class T> const String AddOnLoader<T>::sharedLibExt = ".dylib";
|
||||
#endif
|
||||
|
||||
template <class T>
|
||||
AddOnLoader<T>::~AddOnLoader()
|
||||
{
|
||||
for (int i = 0; i < addOns.GetCount(); i++) {
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
Stop stop = (Stop)GetProcAddress(addOns[i].hmod, "Stop");
|
||||
#else
|
||||
Stop stop = (Stop)dlsym(addOns[i].hmod, "Stop");
|
||||
#endif
|
||||
if (stop) {
|
||||
stop();
|
||||
}
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
FreeLibrary(addOns[i].hmod);
|
||||
#else
|
||||
dlclose(addOns[i].hmod);
|
||||
#endif
|
||||
}
|
||||
addOns.Clear();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
int AddOnLoader<T>::LoadFile(String name)
|
||||
{
|
||||
if (FileExists(name)) {
|
||||
return Load(name)?1:0;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
template <class T>
|
||||
int AddOnLoader<T>::LoadFolder(String name)
|
||||
{
|
||||
int num = 0;
|
||||
for(FindFile ff(AppendFileName(name, "*.*")); ff; ff.Next()) {
|
||||
if (ff.IsFolder()) {
|
||||
num += LoadFolder(AppendFileName(name, ff.GetName()));
|
||||
} else if (ff.IsFile() && ToLower(GetFileExt(ff.GetName()) == sharedLibExt)) {
|
||||
num += Load(AppendFileName(name, ff.GetName()));
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool AddOnLoader<T>::Load(String name)
|
||||
{
|
||||
bool status = false;
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
DLLHANDLE hmod = LoadLibrary(NormalizePath(name));
|
||||
#else
|
||||
DLLHANDLE hmod = dlopen(NormalizePath(name), RTLD_LAZY);
|
||||
#endif
|
||||
|
||||
if (hmod) {
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
Start start = (Start)GetProcAddress(hmod, "Start");
|
||||
#else
|
||||
Start start = (Start)dlsym(hmod, "Start");
|
||||
#endif
|
||||
T* plugin;
|
||||
if (start && (plugin = dynamic_cast<T*>(start()))) {
|
||||
Item& addOn = addOns.Add();
|
||||
addOn.hmod = hmod;
|
||||
addOn.address = plugin;
|
||||
status = true;
|
||||
} else {
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
FreeLibrary(hmod);
|
||||
#else
|
||||
dlclose(hmod);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
int AddOnLoader<T>::GetCount()
|
||||
{
|
||||
return addOns.GetCount();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
T* AddOnLoader<T>::At(int idx)
|
||||
{
|
||||
if (idx < addOns.GetCount()) {
|
||||
return addOns[idx].address;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#include <AddOn/AddOn.h>
|
||||
#include <AddOnHost/IAddOns.h>
|
||||
|
||||
class DoPlugIn : public IDoPlugin
|
||||
{
|
||||
public:
|
||||
virtual String GetName(void) {return "My First Do Plugin";}
|
||||
virtual String Do(void) {return "Do";}
|
||||
virtual int GetMajorRevision() {return 0;}
|
||||
virtual int GetMinorRevision() {return 1;}
|
||||
|
||||
};
|
||||
|
||||
class ComputePlugIn : public IComputePlugin
|
||||
{
|
||||
public:
|
||||
virtual String GetName(void) {return "My First Compute Plugin";}
|
||||
virtual String Compute(void) {return "Compute";}
|
||||
virtual int GetMajorRevision() {return 0;}
|
||||
virtual int GetMinorRevision() {return 1;}
|
||||
};
|
||||
|
||||
#if 1
|
||||
ADDONEXPORT DoPlugIn* Start() {
|
||||
return &Single<DoPlugIn>();
|
||||
}
|
||||
#else
|
||||
ADDONEXPORT ComputePlugIn* Start() {
|
||||
return &Single<ComputePlugIn>();
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
uses
|
||||
Core,
|
||||
AddOn;
|
||||
|
||||
file
|
||||
AddOnDll.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "DLL ADDON";
|
||||
|
|
@ -1 +0,0 @@
|
|||
PK
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#include <AddOn/AddOnLoader.h>
|
||||
#include <AddOnHost/IAddOns.h>
|
||||
|
||||
#define DLLPATH "C:\\upp\\out\\MINGW.Addon.Debug_full.Dll"
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
AddOnLoader<IDoPlugin> addOns;
|
||||
|
||||
addOns.LoadFolder(DLLPATH);
|
||||
|
||||
for (int i = 0; i < addOns.GetCount(); i++) {
|
||||
Cout() << "Name: " << addOns[i]->GetName() <<
|
||||
" v" << addOns[i]->GetMajorRevision() << "." << addOns[i]->GetMinorRevision() <<
|
||||
" - Action: " << addOns[i]->Do() << "\n";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
uses
|
||||
Core,
|
||||
AddOn;
|
||||
|
||||
file
|
||||
IAddOns.h,
|
||||
AddOnHost.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "";
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#ifndef _AddOnHost_IAddOns_h_
|
||||
#define _AddOnHost_IAddOns_h_
|
||||
|
||||
#include <AddOn/AddOn.h>
|
||||
|
||||
class IDoPlugin : public IAddOn
|
||||
{
|
||||
public:
|
||||
virtual String Do() = 0;
|
||||
};
|
||||
|
||||
class IComputePlugin : public IAddOn
|
||||
{
|
||||
public:
|
||||
virtual String Compute() = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,218 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <Report/Report.h>
|
||||
|
||||
#define LAYOUTFILE <AddressBookXMLDOM/AddressBookXMLDOM.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
#define TAG_NAME "name"
|
||||
#define TAG_SURNAME "surname"
|
||||
#define TAG_ADDRESS "address"
|
||||
#define TAG_EMAIL "email"
|
||||
|
||||
class AddressBook : public WithAddressBookLayout<TopWindow> {
|
||||
WithModifyLayout<ParentCtrl> modify;
|
||||
WithSearchLayout<ParentCtrl> search;
|
||||
FileSel fs;
|
||||
String filename;
|
||||
|
||||
void SetupSearch();
|
||||
void Add();
|
||||
void Change();
|
||||
void Search();
|
||||
void Open();
|
||||
void Save();
|
||||
void SaveAs();
|
||||
void Print();
|
||||
void Quit();
|
||||
void FileMenu(Bar& bar);
|
||||
void MainMenu(Bar& bar);
|
||||
|
||||
typedef AddressBook CLASSNAME;
|
||||
|
||||
public:
|
||||
void Serialize(Stream& s);
|
||||
|
||||
AddressBook();
|
||||
};
|
||||
|
||||
AddressBook::AddressBook()
|
||||
{
|
||||
CtrlLayout(*this, "Address book");
|
||||
CtrlLayout(modify);
|
||||
CtrlLayout(search);
|
||||
tab.Add(modify, "Modify");
|
||||
tab.Add(search, "Search");
|
||||
ActiveFocus(search.name);
|
||||
search.oname = true;
|
||||
search.oname <<= search.osurname <<= search.oaddress
|
||||
<<= search.oemail <<= THISBACK(SetupSearch);
|
||||
array.AddColumn(TAG_NAME, "Name");
|
||||
array.AddColumn(TAG_SURNAME, "Surname");
|
||||
array.AddColumn(TAG_ADDRESS, "Address");
|
||||
array.AddColumn(TAG_EMAIL, "Email");
|
||||
modify.add <<= THISBACK(Add);
|
||||
modify.change <<= THISBACK(Change);
|
||||
search.search <<= THISBACK(Search);
|
||||
SetupSearch();
|
||||
fs.AllFilesType();
|
||||
menu.Set(THISBACK(MainMenu));
|
||||
|
||||
}
|
||||
|
||||
void AddressBook::FileMenu(Bar& bar)
|
||||
{
|
||||
bar.Add("Open..", CtrlImg::open(), THISBACK(Open));
|
||||
bar.Add("Save", CtrlImg::save(), THISBACK(Save));
|
||||
bar.Add("Save as..", CtrlImg::save_as(), THISBACK(SaveAs));
|
||||
bar.Separator();
|
||||
bar.Add("Print", CtrlImg::print(), THISBACK(Print));
|
||||
bar.Separator();
|
||||
bar.Add("Quit", THISBACK(Quit));
|
||||
}
|
||||
|
||||
void AddressBook::MainMenu(Bar& bar)
|
||||
{
|
||||
bar.Add("File", THISBACK(FileMenu));
|
||||
}
|
||||
|
||||
void AddressBook::SetupSearch()
|
||||
{
|
||||
search.name.Enable(search.oname);
|
||||
search.surname.Enable(search.osurname);
|
||||
search.address.Enable(search.oaddress);
|
||||
search.email.Enable(search.oemail);
|
||||
}
|
||||
|
||||
void AddressBook::Add()
|
||||
{
|
||||
array.Add(~modify.name, ~modify.surname, ~modify.address, ~modify.email);
|
||||
array.GoEnd();
|
||||
modify.name <<= modify.surname <<= modify.address <<= modify.email <<= Null;
|
||||
ActiveFocus(modify.name);
|
||||
}
|
||||
|
||||
void AddressBook::Change()
|
||||
{
|
||||
if(array.IsCursor()) {
|
||||
array.Set(0, ~modify.name);
|
||||
array.Set(1, ~modify.surname);
|
||||
array.Set(2, ~modify.address);
|
||||
array.Set(3, ~modify.email);
|
||||
}
|
||||
}
|
||||
|
||||
bool Contains(const String& text, const String& substr)
|
||||
{
|
||||
for(const char *s = text; s <= text.End() - substr.GetLength(); s++)
|
||||
if(strncmp(s, substr, substr.GetLength()) == 0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void AddressBook::Search()
|
||||
{
|
||||
if(!array.GetCount()) return;
|
||||
bool sc = true;
|
||||
array.ClearSelection();
|
||||
for(int i = 0; i < array.GetCount(); i++) {
|
||||
if((!search.oname || Contains(array.Get(i, 0), ~search.name)) &&
|
||||
(!search.osurname || Contains(array.Get(i, 1), ~search.surname)) &&
|
||||
(!search.oaddress || Contains(array.Get(i, 2), ~search.address)) &&
|
||||
(!search.oemail || Contains(array.Get(i, 3), ~search.email))) {
|
||||
array.Select(i);
|
||||
if(sc) {
|
||||
array.SetCursor(i);
|
||||
array.CenterCursor();
|
||||
sc = false;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AddressBook::Open()
|
||||
{
|
||||
if(!fs.ExecuteOpen()) return;
|
||||
filename = fs;
|
||||
array.Clear();
|
||||
try {
|
||||
String d = LoadFile(filename);
|
||||
XmlNode n = ParseXML(d);
|
||||
if(n.GetCount()==0 || n[0].GetTag() != "AddressBook")
|
||||
throw XmlError("No AddressBook tag in ");
|
||||
const XmlNode &ab = n[0];
|
||||
array.SetCount(ab.GetCount());
|
||||
for(int i=0; i < ab.GetCount(); i++){
|
||||
const XmlNode &person = ab[i];
|
||||
for(int j=0; j < person.GetCount(); j++){
|
||||
const XmlNode &prop = person[j];
|
||||
if(prop.IsTag(TAG_NAME)) array.Set(i, TAG_NAME, prop[0].GetText());
|
||||
else if(prop.IsTag(TAG_SURNAME)) array.Set(i, TAG_SURNAME, prop[0].GetText());
|
||||
else if(prop.IsTag(TAG_ADDRESS)) array.Set(i, TAG_ADDRESS, prop[0].GetText());
|
||||
else if(prop.IsTag(TAG_EMAIL)) array.Set(i, TAG_EMAIL, prop[0].GetText());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(XmlError &e) {
|
||||
Exclamation("Error reading the input file:&" + DeQtf(e) );
|
||||
}
|
||||
}
|
||||
|
||||
void AddressBook::Save()
|
||||
{
|
||||
if(IsEmpty(filename)) {
|
||||
SaveAs();
|
||||
return;
|
||||
}
|
||||
String xml;
|
||||
for(int i = 0; i < array.GetCount(); i++)
|
||||
xml <<
|
||||
XmlTag("person") (
|
||||
XmlTag(TAG_NAME).Text(array.Get(i, 0)) +
|
||||
XmlTag(TAG_SURNAME).Text(array.Get(i, 1)) +
|
||||
XmlTag(TAG_ADDRESS).Text(array.Get(i, 2)) +
|
||||
XmlTag(TAG_EMAIL).Text(array.Get(i, 3))
|
||||
);
|
||||
if(!SaveFile(filename, XmlDoc("AddressBook", xml)))
|
||||
Exclamation("Error saving the file!");
|
||||
}
|
||||
|
||||
void AddressBook::SaveAs()
|
||||
{
|
||||
if(!fs.ExecuteSaveAs()) return;
|
||||
filename = fs;
|
||||
Save();
|
||||
}
|
||||
|
||||
void AddressBook::Print()
|
||||
{
|
||||
String qtf;
|
||||
qtf = "{{1:1:1:1 Name:: Surname:: Address:: Email";
|
||||
for(int i = 0; i < array.GetCount(); i++)
|
||||
for(int q = 0; q < 4; q++)
|
||||
qtf << ":: " << DeQtf((String)array.Get(i, q));
|
||||
Report report;
|
||||
report << qtf;
|
||||
Perform(report);
|
||||
}
|
||||
|
||||
void AddressBook::Quit()
|
||||
{
|
||||
Break();
|
||||
}
|
||||
|
||||
void AddressBook::Serialize(Stream& s)
|
||||
{
|
||||
int version = 0;
|
||||
s / version;
|
||||
s % search.oname % search.osurname % search.oaddress % search.oemail;
|
||||
s % fs;
|
||||
SetupSearch();
|
||||
}
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
AddressBook ab;
|
||||
LoadFromFile(ab);
|
||||
ab.Run();
|
||||
StoreToFile(ab);
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
LAYOUT(AddressBookLayout, 516, 456)
|
||||
ITEM(MenuBar, menu, LeftPosZ(0, 200).TopPosZ(0, 20))
|
||||
ITEM(TabCtrl, tab, LeftPosZ(8, 500).TopPosZ(32, 84))
|
||||
ITEM(ArrayCtrl, array, LeftPosZ(8, 500).TopPosZ(124, 324))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(ModifyLayout, 480, 52)
|
||||
ITEM(Label, dv___0, SetLabel(t_("&Name")).LeftPosZ(8, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, name, LeftPosZ(8, 96).TopPosZ(28, 19))
|
||||
ITEM(Label, dv___2, SetLabel(t_("&Surname")).LeftPosZ(108, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, surname, LeftPosZ(108, 96).TopPosZ(28, 19))
|
||||
ITEM(Label, dv___4, SetLabel(t_("&Address")).LeftPosZ(208, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, address, LeftPosZ(208, 96).TopPosZ(28, 19))
|
||||
ITEM(Label, dv___6, SetLabel(t_("&Email")).LeftPosZ(308, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, email, LeftPosZ(308, 96).TopPosZ(28, 19))
|
||||
ITEM(Button, add, SetLabel(t_("Ad&d")).LeftPosZ(416, 56).TopPosZ(4, 20))
|
||||
ITEM(Button, change, SetLabel(t_("&Change")).LeftPosZ(416, 56).TopPosZ(28, 20))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(SearchLayout, 480, 56)
|
||||
ITEM(Option, oname, SetLabel(t_("&Name")).LeftPosZ(8, 56).TopPosZ(8, 18))
|
||||
ITEM(EditField, name, LeftPosZ(8, 96).TopPosZ(28, 19))
|
||||
ITEM(Option, osurname, SetLabel(t_("&Surname")).LeftPosZ(108, 64).TopPosZ(8, 18))
|
||||
ITEM(EditField, surname, LeftPosZ(108, 96).TopPosZ(28, 19))
|
||||
ITEM(Option, oaddress, SetLabel(t_("&Address")).LeftPosZ(208, 64).TopPosZ(8, 18))
|
||||
ITEM(EditField, address, LeftPosZ(208, 96).TopPosZ(28, 19))
|
||||
ITEM(Option, oemail, SetLabel(t_("&Email")).LeftPosZ(308, 52).TopPosZ(8, 18))
|
||||
ITEM(EditField, email, LeftPosZ(308, 96).TopPosZ(28, 19))
|
||||
ITEM(Button, search, SetLabel(t_("&Search")).LeftPosZ(416, 56).TopPosZ(28, 20))
|
||||
END_LAYOUT
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
Report;
|
||||
|
||||
file
|
||||
AddressBook.cpp,
|
||||
AddressBookXMLDOM.lay;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
#ifndef _AggCtrl_AggCtrl_h_
|
||||
#define _AggCtrl_AggCtrl_h_
|
||||
|
||||
/*
|
||||
This package implements Ctrl which allows user to use Agg software rendering engine in Upp
|
||||
Autor: Jan Dolinár <dolik.rce@seznam.cz>
|
||||
Usage: Just define onDraw method in your source and put in there the drawing stuff
|
||||
The Ctrl has pre-initialized rendering_buffer rbuf which is rendered in Paint(...) function
|
||||
You also can connect it to higher level Agg classes, or even draw other buffer
|
||||
with PaintAgg(...)
|
||||
Bugs: Currently only X11 is supported
|
||||
Doesn't work properly when used pixelformat has different bpp then system (on my system
|
||||
only 32bit pixel formats work...)
|
||||
*/
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
//#include <Core/Core.h>
|
||||
#include <agg24/agg_rendering_buffer.h>
|
||||
#include <agg24/agg_basics.h>
|
||||
#include <agg24/agg_color_conv_rgb8.h>
|
||||
#include "PixFmts.h"
|
||||
|
||||
#ifdef PLATFORM_X11
|
||||
#include <X11/Xlib.h>
|
||||
#elif defined(PLATFORM_WIN32)
|
||||
#include <windows.h>
|
||||
#include <string.h>
|
||||
#include <agg24/agg_win32_bmp.h>
|
||||
#include <agg24/agg_color_conv_rgb16.h>
|
||||
#endif
|
||||
|
||||
class AggCtrl:public Upp::Ctrl{
|
||||
public:
|
||||
typedef AggCtrl CLASSNAME;
|
||||
AggCtrl(agg::pix_format_e format=agg::pix_format_bgra32);
|
||||
~AggCtrl();
|
||||
virtual void Paint(Upp::Draw& draw);
|
||||
virtual void onDraw(Upp::Draw& dest);
|
||||
virtual void onInit();
|
||||
virtual void onResize(int width,int height);
|
||||
void PaintAgg(Upp::Draw& dest);
|
||||
void PaintAgg(const agg::rendering_buffer* src,Upp::Draw& dest);
|
||||
void Resized();
|
||||
void SetPixFmt(agg::pix_format_e format);
|
||||
agg::rendering_buffer rbuf;
|
||||
bool flip_y;
|
||||
private:
|
||||
unsigned bpp,sysbpp;
|
||||
agg::pix_format_e pixformat,sysformat;
|
||||
int cx,cy;
|
||||
#ifdef PLATFORM_X11
|
||||
public:
|
||||
unsigned char* buf;
|
||||
private:
|
||||
XImage* ximg;
|
||||
int byte_order;
|
||||
unsigned long r_mask,g_mask,b_mask;
|
||||
#elif defined(PLATFORM_WIN32)
|
||||
void CreatePmap(unsigned width,unsigned height,agg::rendering_buffer* wnd);
|
||||
agg::pixel_map pmap;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
optimize_speed;
|
||||
|
||||
uses
|
||||
CtrlLib,
|
||||
agg24;
|
||||
|
||||
library((LINUX | FREEBSD) & !NOGTK) "gtk-x11-2.0 gdk-x11-2.0 atk-1.0 gdk_pixbuf-2.0 m pangocairo-1.0 fontconfig Xext Xrender Xinerama Xi Xrandr Xcursor Xfixes pango-1.0 cairo X11 gobject-2.0 gmodule-2.0 glib-2.0";
|
||||
|
||||
library(WIN32 !MSC8ARM) "user32 gdi32";
|
||||
|
||||
library(LINUX) X11;
|
||||
|
||||
library(LINUX) dl;
|
||||
|
||||
library(LINUX !XLFD) Xft;
|
||||
|
||||
library(FREEBSD) X11;
|
||||
|
||||
library(FREEBSD !XLFD) "Xft fontconfig Xrender freetype expat";
|
||||
|
||||
library(LINUX !XLFD !SHARED) "fontconfig Xrender freetype expat";
|
||||
|
||||
library(OSX11) "X11 Xft fontconfig Xrender freetype expat";
|
||||
|
||||
file
|
||||
PixFmts.h,
|
||||
AggCtrl.h,
|
||||
AggCtrlWin32.cpp,
|
||||
Test.cpp,
|
||||
AggCtrlX11.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
|
|
@ -1,205 +0,0 @@
|
|||
#include "AggCtrl.h"
|
||||
|
||||
#ifdef PLATFORM_WIN32
|
||||
|
||||
static void ConvertPmap(agg::rendering_buffer* dst,const agg::rendering_buffer* src,agg::pix_format_e format){
|
||||
switch(format){
|
||||
case agg::pix_format_gray8: break;
|
||||
case agg::pix_format_gray16: agg::color_conv(dst, src, agg::color_conv_gray16_to_gray8()); break;
|
||||
case agg::pix_format_rgb565: agg::color_conv(dst, src, agg::color_conv_rgb565_to_rgb555());break;
|
||||
case agg::pix_format_rgbAAA: agg::color_conv(dst, src, agg::color_conv_rgbAAA_to_bgr24()); break;
|
||||
case agg::pix_format_bgrAAA: agg::color_conv(dst, src, agg::color_conv_bgrAAA_to_bgr24()); break;
|
||||
case agg::pix_format_rgbBBA: agg::color_conv(dst, src, agg::color_conv_rgbBBA_to_bgr24()); break;
|
||||
case agg::pix_format_bgrABB: agg::color_conv(dst, src, agg::color_conv_bgrABB_to_bgr24()); break;
|
||||
case agg::pix_format_rgb24: agg::color_conv(dst, src, agg::color_conv_rgb24_to_bgr24()); break;
|
||||
case agg::pix_format_rgb48: agg::color_conv(dst, src, agg::color_conv_rgb48_to_bgr24()); break;
|
||||
case agg::pix_format_bgr48: agg::color_conv(dst, src, agg::color_conv_bgr48_to_bgr24()); break;
|
||||
case agg::pix_format_abgr32: agg::color_conv(dst, src, agg::color_conv_abgr32_to_bgra32());break;
|
||||
case agg::pix_format_argb32: agg::color_conv(dst, src, agg::color_conv_argb32_to_bgra32());break;
|
||||
case agg::pix_format_rgba32: agg::color_conv(dst, src, agg::color_conv_rgba32_to_bgra32());break;
|
||||
case agg::pix_format_bgra64: agg::color_conv(dst, src, agg::color_conv_bgra64_to_bgra32());break;
|
||||
case agg::pix_format_abgr64: agg::color_conv(dst, src, agg::color_conv_abgr64_to_bgra32());break;
|
||||
case agg::pix_format_argb64: agg::color_conv(dst, src, agg::color_conv_argb64_to_bgra32());break;
|
||||
case agg::pix_format_rgba64: agg::color_conv(dst, src, agg::color_conv_rgba64_to_bgra32());break;
|
||||
}
|
||||
};
|
||||
|
||||
AggCtrl::AggCtrl(agg::pix_format_e format):
|
||||
pixformat(format), bpp(0),
|
||||
sysformat(agg::pix_format_undefined),
|
||||
flip_y(false),
|
||||
cx(16),cy(16)
|
||||
{
|
||||
// Set bpp and sysbpp from pixel format
|
||||
switch(pixformat)
|
||||
{
|
||||
case agg::pix_format_bw:
|
||||
sysformat = agg::pix_format_bw;
|
||||
bpp = 1;
|
||||
sysbpp = 1;
|
||||
break;
|
||||
case agg::pix_format_gray8:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 8;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_gray16:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 16;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
sysformat = agg::pix_format_rgb555;
|
||||
bpp = 16;
|
||||
sysbpp = 16;
|
||||
break;
|
||||
case agg::pix_format_rgbAAA:
|
||||
case agg::pix_format_bgrAAA:
|
||||
case agg::pix_format_rgbBBA:
|
||||
case agg::pix_format_bgrABB:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 32;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 24;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb48:
|
||||
case agg::pix_format_bgr48:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 48;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 32;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
case agg::pix_format_bgra64:
|
||||
case agg::pix_format_abgr64:
|
||||
case agg::pix_format_argb64:
|
||||
case agg::pix_format_rgba64:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 64;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
}
|
||||
CreatePmap(cx,cy,&rbuf);
|
||||
// User initialization code
|
||||
onInit();
|
||||
};
|
||||
void AggCtrl::CreatePmap(unsigned width,unsigned height,agg::rendering_buffer* rb){
|
||||
// Create a pixmap and attach a buffer to it
|
||||
pmap.create(width,height,agg::org_e(bpp));
|
||||
rb->attach(pmap.buf(),pmap.width(),pmap.height(),flip_y ?pmap.stride():-pmap.stride());
|
||||
};
|
||||
void AggCtrl::PaintAgg(Upp::Draw& dest){PaintAgg(&rbuf,dest);};
|
||||
void AggCtrl::PaintAgg(const agg::rendering_buffer* src,Upp::Draw& dest){
|
||||
if(sysformat==pixformat){
|
||||
// Pixmap is in the right format, put it on display
|
||||
pmap.draw(dest.GetHandle());
|
||||
}else{
|
||||
// Pixmap must be converted to the right pixel format first
|
||||
agg::pixel_map pmap_tmp;
|
||||
pmap_tmp.create(pmap.width(),pmap.height(),agg::org_e(sysbpp));
|
||||
agg::rendering_buffer rbuf_tmp;
|
||||
rbuf_tmp.attach(pmap_tmp.buf(),pmap_tmp.width(),pmap_tmp.height(),flip_y?pmap_tmp.stride():-pmap_tmp.stride());
|
||||
ConvertPmap(&rbuf_tmp, src, pixformat);
|
||||
pmap_tmp.draw(dest.GetHandle());
|
||||
}
|
||||
};
|
||||
void AggCtrl::Resized(){
|
||||
// Update the dimensions and reinitialize the pixmap with new size
|
||||
cx=GetSize().cx;cy=GetSize().cy;
|
||||
CreatePmap(cx,cy,&rbuf);
|
||||
// User resize code
|
||||
onResize(cx,cy);
|
||||
};
|
||||
AggCtrl::~AggCtrl() {
|
||||
pmap.destroy();
|
||||
};
|
||||
void AggCtrl::Paint(Upp::Draw& draw) {
|
||||
// Check if the control was resized
|
||||
if(cx!=GetSize().cx||cy!=GetSize().cy){Resized();}
|
||||
// User Drawing code
|
||||
onDraw(draw);
|
||||
// Draw to screen
|
||||
PaintAgg(draw);
|
||||
};
|
||||
void AggCtrl::SetPixFmt(agg::pix_format_e format){
|
||||
pixformat=format;
|
||||
switch(pixformat)
|
||||
{
|
||||
case agg::pix_format_bw:
|
||||
sysformat = agg::pix_format_bw;
|
||||
bpp = 1;
|
||||
sysbpp = 1;
|
||||
break;
|
||||
case agg::pix_format_gray8:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 8;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_gray16:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 16;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
sysformat = agg::pix_format_rgb555;
|
||||
bpp = 16;
|
||||
sysbpp = 16;
|
||||
break;
|
||||
case agg::pix_format_rgbAAA:
|
||||
case agg::pix_format_bgrAAA:
|
||||
case agg::pix_format_rgbBBA:
|
||||
case agg::pix_format_bgrABB:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 32;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 24;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb48:
|
||||
case agg::pix_format_bgr48:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 48;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 32;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
case agg::pix_format_bgra64:
|
||||
case agg::pix_format_abgr64:
|
||||
case agg::pix_format_argb64:
|
||||
case agg::pix_format_rgba64:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 64;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
}
|
||||
Resized();
|
||||
};
|
||||
|
||||
void AggCtrl::onDraw(Upp::Draw& dest){};
|
||||
void AggCtrl::onInit(){};
|
||||
void AggCtrl::onResize(int width,int height){};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,258 +0,0 @@
|
|||
#include "AggCtrl.h"
|
||||
|
||||
#ifdef PLATFORM_X11
|
||||
AggCtrl::AggCtrl(agg::pix_format_e format):
|
||||
pixformat(format), bpp(0),
|
||||
sysformat(agg::pix_format_undefined),
|
||||
byte_order(LSBFirst),
|
||||
flip_y(false),
|
||||
cx(16),cy(16),
|
||||
r_mask(Upp::Xvisual->red_mask), g_mask(Upp::Xvisual->green_mask), b_mask(Upp::Xvisual->blue_mask)
|
||||
{
|
||||
ASSERT_(!(Upp::Xdepth<15||r_mask==0||g_mask==0||b_mask==0),"AGG requires at least 15-bit color depth and True- or DirectColor class.");
|
||||
// Determine bpp from pixel format
|
||||
switch(pixformat){
|
||||
default: break;
|
||||
case agg::pix_format_gray8:
|
||||
bpp = 8; break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
bpp = 16; break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
bpp = 24; break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
bpp = 32; break;
|
||||
}
|
||||
|
||||
// Pre-determine the byte order
|
||||
int t = 1;
|
||||
int hw_byte_order = LSBFirst;
|
||||
if (*(char*)&t == 0) hw_byte_order = MSBFirst;
|
||||
|
||||
// Perceive system pixel format by mask
|
||||
switch (Upp::Xdepth) {
|
||||
case 15:
|
||||
sysbpp=16;
|
||||
if (r_mask == 0x7C00 && g_mask == 0x3E0 && b_mask == 0x1F) {
|
||||
sysformat = agg::pix_format_rgb555;
|
||||
byte_order = hw_byte_order;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
sysbpp=16;
|
||||
if (r_mask==0xF800&&g_mask==0x7E0&&b_mask==0x1F) {
|
||||
sysformat = agg::pix_format_rgb565;
|
||||
byte_order = hw_byte_order;
|
||||
}
|
||||
break;
|
||||
case 24:
|
||||
case 32:
|
||||
sysbpp=32;
|
||||
if (g_mask==0xFF00){
|
||||
if (r_mask==0xFF&&b_mask==0xFF0000) {
|
||||
switch(pixformat) {
|
||||
case agg::pix_format_rgba32:
|
||||
sysformat = agg::pix_format_rgba32;
|
||||
byte_order = LSBFirst;
|
||||
break;
|
||||
case agg::pix_format_abgr32:
|
||||
sysformat = agg::pix_format_abgr32;
|
||||
byte_order = MSBFirst;
|
||||
break;
|
||||
default:
|
||||
byte_order = hw_byte_order;
|
||||
sysformat = (hw_byte_order==LSBFirst)?agg::pix_format_rgba32:agg::pix_format_abgr32;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (r_mask == 0xFF0000 && b_mask == 0xFF) {
|
||||
switch (pixformat) {
|
||||
case agg::pix_format_argb32:
|
||||
sysformat = agg::pix_format_argb32;
|
||||
byte_order = MSBFirst;
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
byte_order = LSBFirst;
|
||||
break;
|
||||
default:
|
||||
byte_order = hw_byte_order;
|
||||
sysformat = (hw_byte_order == MSBFirst)?agg::pix_format_argb32:agg::pix_format_bgra32;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
ASSERT_(sysformat!=agg::pix_format_undefined,"RGB masks are not compatible with AGG pixel formats");
|
||||
|
||||
// Allocate buffer
|
||||
buf=new unsigned char[cx*cy*(bpp/8)];
|
||||
// Connect rendering buffer
|
||||
rbuf.attach(buf,cx,cy,(flip_y?-1:1)*cx*(bpp/8));
|
||||
// Initialize XImage for sending the data to the X server
|
||||
ximg=XCreateImage(Upp::Xdisplay,Upp::Xvisual,Upp::Xdepth,ZPixmap,0,(char*)buf,cx,cy,sysbpp,cx*(sysbpp/8));
|
||||
ximg->byte_order = byte_order;
|
||||
// User initialization
|
||||
onInit();
|
||||
};
|
||||
|
||||
void AggCtrl::PaintAgg(Upp::Draw& dest){PaintAgg(&rbuf,dest);};
|
||||
void AggCtrl::PaintAgg(const agg::rendering_buffer* src,Upp::Draw& dest){
|
||||
if(ximg==0) return;
|
||||
ximg->data=(char*)(flip_y?(src->row_ptr(src->height())-1):src->row_ptr(0));
|
||||
if(pixformat==sysformat){
|
||||
XPutImage(Upp::Xdisplay,dest.GetDrawable(),dest.GetGC(),ximg,0,0,GetRect().left,GetRect().top,cx,cy);
|
||||
XFlush(Upp::Xdisplay);
|
||||
XSync(Upp::Xdisplay,false);
|
||||
}else{
|
||||
// Conversion to pixel format compatible with current system
|
||||
int row_len = cx*sysbpp/8;
|
||||
unsigned char* buf_tmp = new unsigned char[row_len*cy];
|
||||
agg::rendering_buffer rbuf_tmp;
|
||||
rbuf_tmp.attach(buf_tmp,cx,cy,flip_y?-row_len:row_len);
|
||||
switch (sysformat){
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_rgb555());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_rgb555());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_rgb555());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_rgb555());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_rgb555());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_rgb555());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_rgb555());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_rgb555());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_rgb565:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_rgb565());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_rgb565());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_rgb565());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_rgb565());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_rgb565());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_rgb565());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_rgb565());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_rgb565());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_rgba32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_rgba32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_rgba32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_rgba32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_rgba32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_rgba32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_rgba32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_rgba32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_rgba32());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_abgr32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_abgr32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_abgr32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_abgr32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_abgr32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_abgr32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_abgr32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_abgr32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_abgr32());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_argb32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_argb32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_argb32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_argb32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_argb32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_argb32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_argb32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_argb32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_argb32());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_bgra32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_bgra32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_bgra32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_bgra32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_bgra32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_bgra32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_bgra32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_bgra32());break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ximg->data=(char*)buf_tmp;
|
||||
XPutImage(Upp::Xdisplay,dest.GetDrawable(),dest.GetGC(),ximg,0,0,GetRect().left,GetRect().top,cx,cy);
|
||||
XFlush(Upp::Xdisplay);
|
||||
XSync(Upp::Xdisplay,false);
|
||||
delete [] buf_tmp;
|
||||
}
|
||||
};
|
||||
void AggCtrl::Resized(){
|
||||
// Update the dimensions, reallocate the buffer with new size, get a bigger XImage
|
||||
cx=GetSize().cx;cy=GetSize().cy;
|
||||
delete [] buf;
|
||||
ximg->data = 0;
|
||||
XDestroyImage(ximg);
|
||||
buf=new unsigned char[cx*cy*(bpp/8)];
|
||||
rbuf.attach(buf,cx,cy,(flip_y?-1:1)*cx*(bpp/8));
|
||||
ximg=XCreateImage(Upp::Xdisplay,Upp::Xvisual,Upp::Xdepth,ZPixmap,0,(char*)buf,cx,cy,sysbpp,cx*(sysbpp/8));
|
||||
ximg->byte_order=byte_order;
|
||||
// User resize code
|
||||
onResize(cx,cy);
|
||||
};
|
||||
AggCtrl::~AggCtrl() {
|
||||
delete [] buf;
|
||||
ximg->data = 0;
|
||||
XDestroyImage(ximg);
|
||||
};
|
||||
void AggCtrl::Paint(Upp::Draw& draw) {
|
||||
// Check if the control was resized
|
||||
if(cx!=GetSize().cx||cy!=GetSize().cy){Resized();}
|
||||
// User Drawing code
|
||||
onDraw(draw);
|
||||
// Draw to screen
|
||||
PaintAgg(draw);
|
||||
};
|
||||
void AggCtrl::SetPixFmt(agg::pix_format_e format){
|
||||
pixformat=format;
|
||||
switch(format){
|
||||
default: break;
|
||||
case agg::pix_format_gray8:
|
||||
bpp = 8; break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
bpp = 16; break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
bpp = 24; break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
bpp = 32; break;
|
||||
}
|
||||
Resized();
|
||||
};
|
||||
|
||||
void AggCtrl::onDraw(Upp::Draw& dest){};
|
||||
void AggCtrl::onInit(){};
|
||||
void AggCtrl::onResize(int width,int height){};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
#ifndef _AggCtrl_PixFmts_h_
|
||||
#define _AggCtrl_PixFmts_h_
|
||||
|
||||
// Using a particular pixel format doesn't obligatory mean the necessity
|
||||
// of software conversion. For example, win32 API can natively display
|
||||
// gray8, 15-bit RGB, 24-bit BGR, and 32-bit BGRA formats.
|
||||
// This list can be (and will be!) extended in future.
|
||||
namespace agg{
|
||||
enum pix_format_e{
|
||||
pix_format_undefined = 0, // By default. No conversions are applied
|
||||
pix_format_bw, // 1 bit per color B/W
|
||||
pix_format_gray8, // Simple 256 level grayscale
|
||||
pix_format_gray16, // Simple 65535 level grayscale
|
||||
pix_format_rgb555, // 15 bit rgb. Depends on the byte ordering!
|
||||
pix_format_rgb565, // 16 bit rgb. Depends on the byte ordering!
|
||||
pix_format_rgbAAA, // 30 bit rgb. Depends on the byte ordering!
|
||||
pix_format_rgbBBA, // 32 bit rgb. Depends on the byte ordering!
|
||||
pix_format_bgrAAA, // 30 bit bgr. Depends on the byte ordering!
|
||||
pix_format_bgrABB, // 32 bit bgr. Depends on the byte ordering!
|
||||
pix_format_rgb24, // R-G-B, one byte per color component
|
||||
pix_format_bgr24, // B-G-R, native win32 BMP format.
|
||||
pix_format_rgba32, // R-G-B-A, one byte per color component
|
||||
pix_format_argb32, // A-R-G-B, native MAC format
|
||||
pix_format_abgr32, // A-B-G-R, one byte per color component
|
||||
pix_format_bgra32, // B-G-R-A, native win32 BMP format
|
||||
pix_format_rgb48, // R-G-B, 16 bits per color component
|
||||
pix_format_bgr48, // B-G-R, native win32 BMP format.
|
||||
pix_format_rgba64, // R-G-B-A, 16 bits byte per color component
|
||||
pix_format_argb64, // A-R-G-B, native MAC format
|
||||
pix_format_abgr64, // A-B-G-R, one byte per color component
|
||||
pix_format_bgra64, // B-G-R-A, native win32 BMP format
|
||||
|
||||
end_of_pix_formats
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,150 +0,0 @@
|
|||
#include "CtrlLib.h"
|
||||
|
||||
NAMESPACE_UPP
|
||||
|
||||
DropChoice::DropChoice() {
|
||||
always_drop = false;
|
||||
AddButton().Main() <<= THISBACK(Drop);
|
||||
NoDisplay();
|
||||
list.Normal();
|
||||
list.WhenSelect = callback(this, &DropChoice::Select);
|
||||
dropfocus = true;
|
||||
EnableDrop(false);
|
||||
dropwidth = 0;
|
||||
}
|
||||
|
||||
void DropChoice::EnableDrop(bool b)
|
||||
{
|
||||
MainButton().Enable(b);
|
||||
}
|
||||
|
||||
void DropChoice::PseudoPush()
|
||||
{
|
||||
MultiButton::PseudoPush(0);
|
||||
}
|
||||
|
||||
void DropChoice::Drop() {
|
||||
if(!owner || owner->IsReadOnly() || list.GetCount() == 0 && !WhenDrop) return;
|
||||
WhenDrop();
|
||||
if(dropfocus)
|
||||
owner->SetWantFocus();
|
||||
if(!list.FindSetCursor(owner->GetData()) && list.GetCount() > 0)
|
||||
list.SetCursor(0);
|
||||
list.PopUp(owner,dropwidth);
|
||||
}
|
||||
|
||||
void DropChoice::Select() {
|
||||
if(!owner || owner->IsReadOnly()) return;
|
||||
WhenSelect();
|
||||
}
|
||||
|
||||
Value DropChoice::Get() const {
|
||||
if(!owner || owner->IsReadOnly()) return Value();
|
||||
int c = list.GetCursor();
|
||||
if(c < 0) return Value();
|
||||
return list.Get(c, 0);
|
||||
}
|
||||
|
||||
int DropChoice::GetIndex() const
|
||||
{
|
||||
if(!owner || owner->IsReadOnly()) return -1;
|
||||
return list.GetCursor();
|
||||
}
|
||||
|
||||
bool DropChoice::DataSelect(Ctrl& owner, DropChoice& drop, const String& appends) {
|
||||
Value g = drop.Get();
|
||||
if(g.IsVoid()) return false;
|
||||
Value s = owner.GetData();
|
||||
if(!appends.IsVoid()) {
|
||||
String txt = s;
|
||||
if(!txt.IsEmpty()) txt.Cat(appends);
|
||||
txt.Cat((String)g);
|
||||
s = txt;
|
||||
}
|
||||
else
|
||||
s = g;
|
||||
owner.SetData(s);
|
||||
owner.WhenAction();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DropChoice::DoKey(dword key) {
|
||||
if(owner && !owner->IsReadOnly() && list.GetCount()) {
|
||||
int q = list.GetCursor();
|
||||
switch(key) {
|
||||
case K_ALT_DOWN:
|
||||
PseudoPush();
|
||||
return true;
|
||||
case K_DOWN:
|
||||
if(appending)
|
||||
PseudoPush();
|
||||
else {
|
||||
list.SetCursor(q <= 0 ? list.GetCount() - 1 : q - 1);
|
||||
Select();
|
||||
}
|
||||
return true;
|
||||
case K_UP:
|
||||
if(appending)
|
||||
PseudoPush();
|
||||
else {
|
||||
list.SetCursor(q < 0 || q >= list.GetCount() - 1 ? 0 : q + 1);
|
||||
Select();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void DropChoice::Add(const Value& s) {
|
||||
list.Add(s);
|
||||
EnableDrop(true);
|
||||
}
|
||||
|
||||
void DropChoice::Clear() {
|
||||
list.Clear();
|
||||
EnableDrop(always_drop);
|
||||
}
|
||||
|
||||
void DropChoice::Serialize(Stream& s) {
|
||||
int version = 0x00;
|
||||
int n = list.GetCount();
|
||||
s / version / n;
|
||||
Value v;
|
||||
if(s.IsLoading()) {
|
||||
Clear();
|
||||
for(int i = 0; i < n; i++) {
|
||||
s % v;
|
||||
Add(v);
|
||||
}
|
||||
}
|
||||
else
|
||||
for(int i = 0; i < n; i++) {
|
||||
v = list.Get(i, 0);
|
||||
s % v;
|
||||
}
|
||||
EnableDrop(list.GetCount() || always_drop);
|
||||
}
|
||||
|
||||
void DropChoice::AddHistory(const Value& v, int max) {
|
||||
if(IsNull(v)) return;
|
||||
for(int i = 0; i < list.GetCount(); i++)
|
||||
if(list.Get(i, 0) == v) {
|
||||
list.Remove(i);
|
||||
break;
|
||||
}
|
||||
list.Insert(0, Vector<Value>() << v);
|
||||
if(list.GetCount() > max)
|
||||
list.SetCount(max);
|
||||
EnableDrop(list.GetCount() || always_drop);
|
||||
list.KillCursor();
|
||||
}
|
||||
|
||||
DropChoice& DropChoice::AlwaysDrop(bool e)
|
||||
{
|
||||
always_drop = e;
|
||||
EnableDrop(list.GetCount() || always_drop);
|
||||
return *this;
|
||||
}
|
||||
|
||||
END_UPP_NAMESPACE
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#ifndef _AggCtrl_icpp_init_stub
|
||||
#define _AggCtrl_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "agg24/init"
|
||||
#endif
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace UPP;
|
||||
|
||||
#define ITEM_COUNT 1000000
|
||||
|
||||
CONSOLE_APP_MAIN {
|
||||
Vector<Value> v;
|
||||
getchar();
|
||||
for(int i=0;i<ITEM_COUNT;i++) v.Add((int)i);
|
||||
getchar();
|
||||
v.Clear(); v.Shrink();
|
||||
getchar();
|
||||
for(int i=0;i<ITEM_COUNT;i++) v.Add((int)i);
|
||||
getchar();
|
||||
v.Clear(); v.Shrink();
|
||||
getchar();
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
Alloc.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "",
|
||||
"" = "USEMALLOC";
|
||||
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#ifndef _Alloc_icpp_init_stub
|
||||
#define _Alloc_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#endif
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
class ImageDrawTest : public TopWindow {
|
||||
public:
|
||||
typedef ImageDrawTest CLASSNAME;
|
||||
Image img;
|
||||
|
||||
ImageDrawTest() {
|
||||
Sizeable();
|
||||
GenerateImage();
|
||||
}
|
||||
|
||||
void GenerateImage() {
|
||||
Size sz(100, 100);
|
||||
ImageDraw w(sz);
|
||||
// w.Alpha().DrawRect(sz, Black());
|
||||
// w.Alpha().DrawRect(30, 30, 40, 40, White());
|
||||
w.DrawRect(sz, Red);
|
||||
img = w;
|
||||
}
|
||||
|
||||
virtual void Paint(Draw &w) {
|
||||
w.DrawRect(GetSize(), SColorFace());
|
||||
w.DrawImage(0, 0, img);
|
||||
}
|
||||
|
||||
virtual void LeftUp(Point p, dword keyflags) {
|
||||
GenerateImage();
|
||||
Refresh();
|
||||
}
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
ImageDrawTest().Run();
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
plugin\zim;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#ifndef _AlphaImage_icpp_init_stub
|
||||
#define _AlphaImage_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "plugin\zim/init"
|
||||
#endif
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
struct App : public TopWindow {
|
||||
virtual void Paint(Draw& w) {
|
||||
ImageDraw iw(400, 400);
|
||||
iw.Alpha().DrawRect(0, 0, 400, 400, Black());
|
||||
iw.Alpha().DrawEllipse(0, 0, 200, 200, GrayColor(100));
|
||||
iw.DrawRect(0, 0, 400, 400, Black);
|
||||
iw.DrawEllipse(0, 0, 200, 200, LtCyan);
|
||||
|
||||
Image a = Rescale(iw, 200, 200);
|
||||
|
||||
w.DrawRect(GetSize(), White);
|
||||
w.DrawImage(30, 30, a, Rect(10, 10, 50, 50));
|
||||
w.DrawImage(500, 30, a, Blue);
|
||||
|
||||
|
||||
ImageBuffer ib(50, 50);
|
||||
for(int y = 0; y < 50; y++) {
|
||||
RGBA *l = ib[y];
|
||||
for(int x = 0; x < 50; x++) {
|
||||
if(y == 0 || y == 49 || x == 0 || x == 49)
|
||||
*l++ = Black();
|
||||
else {
|
||||
l->a = 2 * (x + y);
|
||||
l->r = 4 * x;
|
||||
l->g = 4 * y;
|
||||
l->b = 200;
|
||||
l++;
|
||||
}
|
||||
}
|
||||
}
|
||||
Premultiply(ib);
|
||||
Image b = ib;
|
||||
|
||||
Over(a, Point(70, 70), b, b.GetSize());
|
||||
|
||||
w.DrawImage(20, 500, a);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
App().Run();
|
||||
}
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#define TEST
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
Any alpha;
|
||||
|
||||
alpha.Create<int>();
|
||||
|
||||
if(alpha.Is<int>())
|
||||
RLOG("int");
|
||||
|
||||
Any beta = alpha;
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
description "\377128,128,0";
|
||||
|
||||
optimize_speed;
|
||||
|
||||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
Any.cpp,
|
||||
app.tpp\test$cs-cz.tppi,
|
||||
app.tpp\test$en-us.tppi,
|
||||
app.tpp;
|
||||
|
||||
mainconfig
|
||||
"" = "MT";
|
||||
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
topic "asdfasdfasdfasdf";[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[s0; Juest a testaJuest a test]
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
topic "asdfasdfasdf123";[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[s0; Hell1]
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#ifndef _Any_icpp_init_stub
|
||||
#define _Any_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#endif
|
||||
|
|
@ -1,160 +0,0 @@
|
|||
#include "AnyImageDraw.h"
|
||||
|
||||
dword ImageAnyDraw::GetInfo() const
|
||||
{
|
||||
return draw->GetInfo();
|
||||
}
|
||||
|
||||
Size ImageAnyDraw::GetPageSize() const
|
||||
{
|
||||
return draw->GetPageSize();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::BeginOp()
|
||||
{
|
||||
return draw->BeginOp();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::EndOp()
|
||||
{
|
||||
return draw->EndOp();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::OffsetOp(Point p)
|
||||
{
|
||||
return draw->OffsetOp(p);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::ClipOp(const Rect& r)
|
||||
{
|
||||
return draw->ClipOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::ClipoffOp(const Rect& r)
|
||||
{
|
||||
return draw->ClipoffOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::ExcludeClipOp(const Rect& r)
|
||||
{
|
||||
return draw->ExcludeClipOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::IntersectClipOp(const Rect& r)
|
||||
{
|
||||
return draw->IntersectClipOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::IsPaintingOp(const Rect& r) const
|
||||
{
|
||||
return draw->IsPaintingOp(r);
|
||||
}
|
||||
|
||||
Rect ImageAnyDraw::GetPaintRect() const
|
||||
{
|
||||
return draw->GetPaintRect();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawRectOp(int x, int y, int cx, int cy, Color color)
|
||||
{
|
||||
draw->DrawRectOp(x, y, cx, cy, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawImageOp(int x, int y, int cx, int cy, const Image& img, const Rect& src, Color color)
|
||||
{
|
||||
draw->DrawImageOp(x, y, cx, cy, img, src, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawDataOp(int x, int y, int cx, int cy, const String& data, const char *id)
|
||||
{
|
||||
draw->DrawDataOp(x, y, cx, cy, data, id);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawLineOp(int x1, int y1, int x2, int y2, int width, Color color)
|
||||
{
|
||||
draw->DrawLineOp(x1, y1, x2, y2, width, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawPolyPolylineOp(const Point *vertices, int vertex_count,
|
||||
const int *counts, int count_count, int width,
|
||||
Color color, Color doxor)
|
||||
{
|
||||
draw->DrawPolyPolylineOp(vertices, vertex_count, counts, count_count, width, color, doxor);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawPolyPolyPolygonOp(const Point *vertices, int vertex_count, const int *subpolygon_counts, int scc, const int *disjunct_polygon_counts, int dpcc, Color color, int width, Color outline, uint64 pattern, Color doxor)
|
||||
{
|
||||
draw->DrawPolyPolyPolygonOp(vertices, vertex_count, subpolygon_counts, scc,
|
||||
disjunct_polygon_counts, dpcc, color, width, outline,
|
||||
pattern, doxor);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawArcOp(const Rect& rc, Point start, Point end, int width, Color color)
|
||||
{
|
||||
draw->DrawArcOp(rc, start, end, width, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawEllipseOp(const Rect& r, Color color, int pen, Color pencolor)
|
||||
{
|
||||
draw->DrawEllipseOp(r, color, pen, pencolor);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawTextOp(int x, int y, int angle, const wchar *text, Font font, Color ink,
|
||||
int n, const int *dx)
|
||||
{
|
||||
draw->DrawTextOp(x, y, angle, text, font, ink, n, dx);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawDrawingOp(const Rect& target, const Drawing& w)
|
||||
{
|
||||
draw->DrawDrawingOp(target, w);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawPaintingOp(const Rect& target, const Painting& w)
|
||||
{
|
||||
draw->DrawPaintingOp(target, w);
|
||||
}
|
||||
|
||||
Draw *(*sCreateImageDraw)(Size sz);
|
||||
Image (*sExtractImageDraw)(Draw *w);
|
||||
|
||||
void ImageAnyDrawPainter(Draw *(*f)(Size sz), Image (*e)(Draw *w))
|
||||
{
|
||||
sCreateImageDraw = f;
|
||||
sExtractImageDraw = e;
|
||||
}
|
||||
|
||||
void ImageAnyDrawSystem(Draw *(*f)(Size sz), Image (*e)(Draw *w))
|
||||
{
|
||||
if(!sCreateImageDraw) {
|
||||
sCreateImageDraw = f;
|
||||
sExtractImageDraw = e;
|
||||
}
|
||||
}
|
||||
|
||||
void ImageAnyDraw::Init(Size sz)
|
||||
{
|
||||
ASSERT(sCreateImageDraw);
|
||||
draw = (*sCreateImageDraw)(sz);
|
||||
ASSERT(draw);
|
||||
}
|
||||
|
||||
ImageAnyDraw::operator Image() const
|
||||
{
|
||||
return (*sExtractImageDraw)(draw);
|
||||
}
|
||||
|
||||
ImageAnyDraw::ImageAnyDraw(Size sz)
|
||||
{
|
||||
Init(sz);
|
||||
}
|
||||
|
||||
ImageAnyDraw::ImageAnyDraw(int cx, int cy)
|
||||
{
|
||||
Init(Size(cx, cy));
|
||||
}
|
||||
|
||||
ImageAnyDraw::~ImageAnyDraw()
|
||||
{
|
||||
delete draw;
|
||||
}
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
#ifndef _AnyImageDraw_AnyImageDraw_h
|
||||
#define _AnyImageDraw_AnyImageDraw_h
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <Painter/Painter.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#define LAYOUTFILE <AnyImageDraw/AnyImageDraw.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
class ImageAnyDraw : public Draw {
|
||||
Draw *draw;
|
||||
|
||||
void Init(Size sz);
|
||||
|
||||
public:
|
||||
virtual dword GetInfo() const;
|
||||
virtual Size GetPageSize() const;
|
||||
virtual void BeginOp();
|
||||
virtual void EndOp();
|
||||
virtual void OffsetOp(Point p);
|
||||
virtual bool ClipOp(const Rect& r);
|
||||
virtual bool ClipoffOp(const Rect& r);
|
||||
virtual bool ExcludeClipOp(const Rect& r);
|
||||
virtual bool IntersectClipOp(const Rect& r);
|
||||
virtual bool IsPaintingOp(const Rect& r) const;
|
||||
virtual Rect GetPaintRect() const;
|
||||
|
||||
virtual void DrawRectOp(int x, int y, int cx, int cy, Color color);
|
||||
virtual void DrawImageOp(int x, int y, int cx, int cy, const Image& img, const Rect& src, Color color);
|
||||
virtual void DrawDataOp(int x, int y, int cx, int cy, const String& data, const char *id);
|
||||
virtual void DrawLineOp(int x1, int y1, int x2, int y2, int width, Color color);
|
||||
virtual void DrawPolyPolylineOp(const Point *vertices, int vertex_count,
|
||||
const int *counts, int count_count,
|
||||
int width, Color color, Color doxor);
|
||||
virtual void DrawPolyPolyPolygonOp(const Point *vertices, int vertex_count,
|
||||
const int *subpolygon_counts, int scc,
|
||||
const int *disjunct_polygon_counts, int dpcc,
|
||||
Color color, int width, Color outline,
|
||||
uint64 pattern, Color doxor);
|
||||
virtual void DrawArcOp(const Rect& rc, Point start, Point end, int width, Color color);
|
||||
virtual void DrawEllipseOp(const Rect& r, Color color, int pen, Color pencolor);
|
||||
virtual void DrawTextOp(int x, int y, int angle, const wchar *text, Font font,
|
||||
Color ink, int n, const int *dx);
|
||||
virtual void DrawDrawingOp(const Rect& target, const Drawing& w);
|
||||
virtual void DrawPaintingOp(const Rect& target, const Painting& w);
|
||||
|
||||
public:
|
||||
operator Image() const;
|
||||
|
||||
ImageAnyDraw(Size sz);
|
||||
ImageAnyDraw(int cx, int cy);
|
||||
|
||||
~ImageAnyDraw();
|
||||
};
|
||||
|
||||
class AnyImageDraw : public TopWindow {
|
||||
virtual void Paint(Draw& w);
|
||||
|
||||
public:
|
||||
typedef AnyImageDraw CLASSNAME;
|
||||
AnyImageDraw();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
LAYOUT(AnyImageDrawLayout, 200, 100)
|
||||
END_LAYOUT
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
Painter;
|
||||
|
||||
file
|
||||
AnyImageDraw.h,
|
||||
AnyImageDraw.cpp,
|
||||
main.cpp,
|
||||
AnyImageDraw.lay;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#ifndef _AnyImageDraw_icpp_init_stub
|
||||
#define _AnyImageDraw_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "Painter/init"
|
||||
#endif
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
#include "AnyImageDraw.h"
|
||||
|
||||
void ImageAnyDrawPainter(Draw *(*f)(Size sz), Image (*e)(Draw *w));
|
||||
void ImageAnyDrawSystem(Draw *(*f)(Size sz), Image (*e)(Draw *w));
|
||||
|
||||
static Draw *sCP(Size sz)
|
||||
{
|
||||
return new ImagePainter(sz);
|
||||
}
|
||||
|
||||
static Image sEP(Draw *w)
|
||||
{
|
||||
ImagePainter *ip = dynamic_cast<ImagePainter *>(w);
|
||||
return ip ? (Image)(*ip) : Image();
|
||||
}
|
||||
|
||||
static Draw *sCD(Size sz)
|
||||
{
|
||||
return new ImageDraw(sz);
|
||||
}
|
||||
|
||||
static Image sED(Draw *w)
|
||||
{
|
||||
ImageDraw *ip = dynamic_cast<ImageDraw *>(w);
|
||||
return ip ? (Image)(*ip) : Image();
|
||||
}
|
||||
|
||||
INITBLOCK {
|
||||
ImageAnyDrawPainter(sCP, sEP);
|
||||
ImageAnyDrawSystem(sCD, sED);
|
||||
}
|
||||
|
||||
void AnyImageDraw::Paint(Draw& w)
|
||||
{
|
||||
ImageAnyDraw iw(200, 200);
|
||||
iw.DrawRect(0, 0, 200, 200, White());
|
||||
iw.DrawText(0, 0, "X", Roman(200));
|
||||
w.DrawImage(0, 0, iw);
|
||||
}
|
||||
|
||||
AnyImageDraw::AnyImageDraw()
|
||||
{
|
||||
}
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
AnyImageDraw().Run();
|
||||
}
|
||||
|
|
@ -1,246 +0,0 @@
|
|||
//aris: I removed it:
|
||||
//#include "IdeVectorDes.h"
|
||||
/* TODO:
|
||||
1.Creation is a problem at the moment
|
||||
2. Host problem
|
||||
3.and shutdown (only from Windows Task Manager) !!!!!
|
||||
4. registration data: load and save
|
||||
5. where to add Main menu
|
||||
6. and Load from file
|
||||
7. Save to file.
|
||||
8. Switch off-on the toolbars
|
||||
9. Vec Data format - how to have parent-childr relatioships between images
|
||||
10. Connecting (Linking?) images
|
||||
11. Modules
|
||||
12. Have Vector objects in QTF (and UWord)
|
||||
|
||||
- IMAGESPACE ?
|
||||
- is this ctrl-key stored in Ide config files?
|
||||
*/
|
||||
|
||||
#include <VectorDes/VectorDes.h>
|
||||
|
||||
#define IMAGESPACE IdeVecImg
|
||||
#define IMAGEFILE <ArisVectorDesigner/IdeVectorDes.iml>
|
||||
#include <Draw/iml.h>
|
||||
|
||||
//aris: this is for global config
|
||||
static const char ctrl_key[] = "vectordes-ctrl-aris";
|
||||
|
||||
INITBLOCK
|
||||
{
|
||||
RegisterGlobalConfig(ctrl_key);
|
||||
}
|
||||
|
||||
//aris commented: #include <ide/Common/Common.h>
|
||||
//aris: added public
|
||||
//aris: ArisDesigner would be some kind of a universal designer..
|
||||
|
||||
struct ArisDesigner : public TopWindow {
|
||||
virtual String GetFileName() const = 0;
|
||||
virtual void Save() = 0;
|
||||
//aris virtual void SyncUsc() = 0;
|
||||
virtual void ActivateDesigner() = 0;
|
||||
virtual void SaveEditPos() = 0;
|
||||
virtual void EditMenu(Bar& menu) = 0;
|
||||
virtual int GetCharset() const { return -1; }
|
||||
|
||||
virtual ~ArisDesigner() {}
|
||||
};
|
||||
|
||||
|
||||
//aris: replaced Aris instead of Ide
|
||||
struct ArisModule {
|
||||
virtual void CleanUsc() {}
|
||||
virtual bool ParseUsc(CParser&) { return false; }
|
||||
virtual Image FileIcon(const char *filename) { return Null; }
|
||||
virtual ArisDesigner *CreateDesigner(const char *path, byte charset) { return NULL; }
|
||||
virtual void Serialize(Stream& s) {}
|
||||
};
|
||||
|
||||
|
||||
void RegisterArisModule(ArisModule& module);
|
||||
int GetArisModuleCount();
|
||||
ArisModule& GetArisModule(int q);
|
||||
|
||||
static Vector<ArisModule *>& sM()
|
||||
{
|
||||
static Vector<ArisModule *> m;
|
||||
return m;
|
||||
}
|
||||
|
||||
void RegisterArisModule(ArisModule& module)
|
||||
{
|
||||
sM().Add(&module);
|
||||
}
|
||||
|
||||
int GetArisModuleCount()
|
||||
{
|
||||
return sM().GetCount();
|
||||
}
|
||||
|
||||
ArisModule& GetArisModule(int q)
|
||||
{
|
||||
return *sM()[q];
|
||||
}
|
||||
|
||||
//aris FIXME or ask .... VectorDeshost is a empty class in ...VectorDes.h
|
||||
class VectorDesigner : public ArisDesigner, public VectorDesHost
|
||||
{
|
||||
One<VectorDes> designer;
|
||||
|
||||
public:
|
||||
//aris FIND OUT: the host problem!!!
|
||||
VectorDesigner() { designer = new VectorDes(*this); Add(designer->SizePos()); }
|
||||
~VectorDesigner() { Shutdown(); }
|
||||
|
||||
virtual void Close() { designer->CloseDesigner(); }
|
||||
virtual void ChildGotFocus() { if(!IsShutdown()) designer->FrameFocus(); }
|
||||
virtual bool Key(dword key, int repcnt) { return designer->Key(key, repcnt); }
|
||||
virtual String GetFileName() const { return filename; }
|
||||
virtual void Save();
|
||||
|
||||
//aris: do i need USC???
|
||||
// virtual void SyncUsc() {}
|
||||
virtual void ActivateDesigner() { SetForeground(); }
|
||||
virtual void SaveEditPos();
|
||||
virtual void EditMenu(Bar& menu) { designer->EditMenu(menu); }
|
||||
|
||||
void Serialize(Stream& s) { designer->Serialize(s); }
|
||||
bool Load(const char *fn);
|
||||
void SetConfigName(const char *name) { cfgname = name; }
|
||||
|
||||
static void SerializeEditPos(Stream& stream);
|
||||
|
||||
struct EditPos {
|
||||
Time filetime;
|
||||
|
||||
void Serialize(Stream& stream);
|
||||
};
|
||||
|
||||
private:
|
||||
String cfgname;
|
||||
String filename;
|
||||
};
|
||||
|
||||
//aris: Creation is a problem for now and shutdown!!!!!-------------------------
|
||||
VectorDesigner *CreateVectorDesigner(const char *filename, const char *cfgname, bool topwindow);
|
||||
|
||||
|
||||
//---------------------------------------
|
||||
//Laod file from *.vec
|
||||
bool VectorDesigner::Load(const char *fn)
|
||||
{
|
||||
filename = fn;
|
||||
try {
|
||||
String data = LoadFile(filename);
|
||||
if(data.IsVoid())
|
||||
throw Exc(NFormat("Error reading file '%s'.", filename));
|
||||
CParser parser(data, filename);
|
||||
//loads the actual vec data file!!! from parser???
|
||||
designer->LoadVecFile(parser);
|
||||
return true;
|
||||
}
|
||||
catch(Exc e) {
|
||||
//aris
|
||||
PromptOK(NFormat("%s: %s\n", filename, e));
|
||||
// PutConsole(NFormat("%s: %s\n", filename, e));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void VectorDesigner::Save()
|
||||
{
|
||||
//aris: FIXME
|
||||
// if(!SaveChangedFileFinish(filename, designer->SaveVecFile()))
|
||||
// Exclamation(NFormat("Error saving file [* \1%s\1].", filename));
|
||||
}
|
||||
|
||||
|
||||
bool IsVecFile(String path) { return !CompareNoCase(GetFileExt(path), ".vec"); }
|
||||
|
||||
|
||||
//aris: need to find out more about those globals
|
||||
typedef ArrayMap<String, VectorDesigner::EditPos> EditPosMap;
|
||||
GLOBAL_VAR(EditPosMap, VectorFileDataVar);
|
||||
|
||||
|
||||
//aris: how does it work if it's empty?
|
||||
void VectorDesigner::EditPos::Serialize(Stream& stream)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//aris how does it work if it's empty?
|
||||
void VectorDesigner::SaveEditPos()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//aris SEE: VectorFileDataVar
|
||||
void VectorDesigner::SerializeEditPos(Stream& s)
|
||||
{
|
||||
s % VectorFileDataVar();
|
||||
}
|
||||
|
||||
|
||||
|
||||
VectorDesigner *CreateVectorDesigner(const char *filename, const char *cfgname)
|
||||
{
|
||||
One<VectorDesigner> q = new VectorDesigner;
|
||||
LoadFromGlobal(*q, cfgname);
|
||||
q->SetConfigName(cfgname);
|
||||
if(q->Load(filename))
|
||||
return -q;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
struct VectorDesModule : public ArisModule {
|
||||
virtual void CleanUsc()
|
||||
{
|
||||
}
|
||||
|
||||
virtual bool ParseUsc(CParser& p)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual Image FileIcon(const char *path)
|
||||
{
|
||||
return IsVecFile(path) ? IdeVecImg::ide_icon() : Null;
|
||||
}
|
||||
|
||||
virtual ArisDesigner *CreateDesigner(const char *path, byte cs) {
|
||||
if(IsVecFile(path)) {
|
||||
VectorDesigner *d = CreateVectorDesigner(path, ctrl_key);
|
||||
if(d)
|
||||
d->SizePos();
|
||||
return d;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
virtual void Serialize(Stream& s) {
|
||||
int version = 0;
|
||||
s / version;
|
||||
VectorDesigner::SerializeEditPos(s);
|
||||
}
|
||||
};
|
||||
|
||||
void RegisterArisVectorDes()
|
||||
{
|
||||
RegisterArisModule(Single<VectorDesModule>());
|
||||
//aris: what for those:
|
||||
RegisterStdVectorObjects();
|
||||
RichObject::Register(RichObjectTypeVectorImage());
|
||||
}
|
||||
|
||||
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
|
||||
RegisterArisVectorDes();
|
||||
VectorDesigner().Sizeable().Zoomable().Run();
|
||||
//aris: When to use ?-> Ctrl::EventLoop();
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
uses
|
||||
VectorDesA;
|
||||
|
||||
file
|
||||
IdeVectorDes.iml,
|
||||
ArisVectorDes.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
IMAGE_BEGIN(ide_icon)
|
||||
IMAGE_SCAN("Æ\1\0\0\0Â\1\0\0\0Æ")
|
||||
IMAGE_SCAN("Å\1\0\0\0Ä\1\0\0\0Å")
|
||||
IMAGE_SCAN("Ä\1\0\0\0Æ\1\0\0\0Ä")
|
||||
IMAGE_SCAN("Ã\1\0\0\0Â\0\0\0Ã\1\0\0\0Ã")
|
||||
IMAGE_SCAN("Â\1\0\0\0Ã\1\0\0\0‚\0\377\0\1\0\0\0Ã\1\0\0\0Â")
|
||||
IMAGE_SCAN("Á\1\0\0\0Ã\1\0\0\0„\0\377\0\1\0\0\0Ã\1\0\0\0Á")
|
||||
IMAGE_SCAN("\1\0\0\0Ã\1\0\0\0†\0\377\0\1\0\0\0Ã\1\0\0\0")
|
||||
IMAGE_SCAN("Ã\1\0\0\0‚\0\377\0\1\0\0\0‚\0\377\0\1\0\0\0‚\0\377\0\1\0\0\0Ã")
|
||||
IMAGE_SCAN("Â\1\0\0\0‚\0\377\0‚\0\0\0‚\0\377\0‚\0\0\0‚\0\377\0\1\0\0\0Â")
|
||||
IMAGE_SCAN("Á\1\0\0\0‚\0\377\0ƒ\0\0\0‚\0\377\0ƒ\0\0\0‚\0\377\0\1\0\0\0Á")
|
||||
IMAGE_SCAN("\1\0\0\0Ž\0\377\0\1\0\0\0")
|
||||
IMAGE_SCAN("<22>\0\0\0")
|
||||
IMAGE_SCAN("Ð")
|
||||
IMAGE_SCAN("Ð")
|
||||
IMAGE_SCAN("<22>\0\0\0")
|
||||
IMAGE_SCAN("Ð")
|
||||
IMAGE_PACKED(ide_icon, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#ifndef _ArrayCtrl_ArrayCtrl_h
|
||||
#define _ArrayCtrl_ArrayCtrl_h
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
|
||||
|
||||
class ArrayCtrl : public TopWindow {
|
||||
|
||||
public:
|
||||
typedef ArrayCtrl CLASSNAME;
|
||||
ArrayCtrl();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
description "\377B";
|
||||
|
||||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
main.cpp optimize_speed;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
|
||||
"main.cpp";
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#ifndef _ArrayCtrl_icpp_init_stub
|
||||
#define _ArrayCtrl_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
struct App : TopWindow {
|
||||
ArrayCtrl a;
|
||||
|
||||
bool Order(int i1, int i2) {
|
||||
DDUMP(a.Get(i1, 0));
|
||||
DDUMP(a.Get(i2, 0));
|
||||
return a.Get(i1, 0) < a.Get(i2, 0);
|
||||
}
|
||||
|
||||
void DoTip(Point p)
|
||||
{
|
||||
if(p.y & 1)
|
||||
a.Tip("Hello!");
|
||||
else
|
||||
a.Tip("");
|
||||
}
|
||||
|
||||
typedef App CLASSNAME;
|
||||
|
||||
App() {
|
||||
Add(a.SizePos());
|
||||
Sizeable().Zoomable();
|
||||
|
||||
a.AddColumn("Test");
|
||||
for(int i = 0; i < 200; i++) {
|
||||
a.Add((int)Random(10000));
|
||||
}
|
||||
// a.Sort(THISBACK(Order));
|
||||
a.Sort();
|
||||
|
||||
a.WhenMouseMove = THISBACK(DoTip);
|
||||
}
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
DUMP("Test");
|
||||
App().Run();
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
topic "";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[H6;0 $$1,0#05600065144404261032431302351956:begin]
|
||||
[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483370:codeitem]
|
||||
[l288;2 $$3,0#27521748481378242620020725143825:desc]
|
||||
[0 $$4,0#96390100711032703541132217272105:end]
|
||||
[{_}
|
||||
[s1; &]
|
||||
[s2;:ArrayCtrl`:`:CLASSNAME`:`:typedef: [@(0.0.255) typedef]_[_^ArrayCtrl^ ArrayCtrl]_[* CL
|
||||
ASSNAME]&]
|
||||
[s3;%% &]
|
||||
[s4; &]
|
||||
[s0; ]
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
topic "";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[H6;0 $$1,0#05600065144404261032431302351956:begin]
|
||||
[i448;a25;kKO9;2 $$2,0#37138531426314131252341829483370:codeitem]
|
||||
[l288;2 $$3,0#27521748481378242620020725143825:desc]
|
||||
[0 $$4,0#96390100711032703541132217272105:end]
|
||||
[{_}%EN-US
|
||||
[s1;%- &]
|
||||
[s2;:App`:`:DnDInsert`(int`,PasteClip`&`):%- [@(0.0.255) void]_[* DnDInsert]([@(0.0.255) in
|
||||
t]_[*@3 line], [_^PasteClip^ PasteClip][@(0.0.255) `&]_[*@3 d])&]
|
||||
[s3; [%-*@3 line] [%-*@3 d].&]
|
||||
[s4; &]
|
||||
[s0; ]
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
description "ArrayCtrl::SetClipboard, ArrayCtrl::AsQtf, ArrayCtrl::GetText, ArrayCtrl::GetCsv\377";
|
||||
|
||||
uses
|
||||
CtrlLib,
|
||||
Report;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#ifndef _ArrayCtrlClipSel_icpp_init_stub
|
||||
#define _ArrayCtrlClipSel_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "Report/init"
|
||||
#endif
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <Report/Report.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
ArrayCtrl a;
|
||||
a.AddColumn("First");
|
||||
a.AddColumn("Second");
|
||||
a.AddColumn("Third");
|
||||
for(int i = 0; i < 100; i++) {
|
||||
a.Add(i, GetSysDate() + i, FormatIntRoman(i));
|
||||
if(i % 3 == 0)
|
||||
a.Select(i);
|
||||
}
|
||||
a.MultiSelect();
|
||||
a.SetClipboard(true, false);
|
||||
|
||||
TopWindow win;
|
||||
win.Add(a.SizePos());
|
||||
win.Run();
|
||||
|
||||
QtfReport(a.AsQtf(true) + "&&" + a.AsQtf(false, false));
|
||||
SaveFile("u:/ac1.csv", a.AsCsv());
|
||||
SaveFile("u:/ac2.csv", a.AsCsv(true, ',', false));
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
description "Just a test\377";
|
||||
|
||||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
main.cpp charset "UTF-8";
|
||||
|
||||
mainconfig
|
||||
"" = "GUI ST";
|
||||
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#ifndef _ArrayCtrlCtrl_icpp_init_stub
|
||||
#define _ArrayCtrlCtrl_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
struct App : TopWindow {
|
||||
Array<EditInt> option;
|
||||
ArrayCtrl a;
|
||||
|
||||
void Do(int ii)
|
||||
{
|
||||
option[ii].SetFocus();
|
||||
for(int i = 0; i < option.GetCount(); i++)
|
||||
option[i].Enable(i == ii || option[ii]);
|
||||
}
|
||||
|
||||
bool CheckRow()
|
||||
{
|
||||
// if((int)a.Get(0) <= 0) {
|
||||
// Exclamation("Chyba");
|
||||
// return false;
|
||||
// }
|
||||
return true;
|
||||
}
|
||||
|
||||
void Enter()
|
||||
{
|
||||
PromptOK("Enter!");
|
||||
}
|
||||
|
||||
typedef App CLASSNAME;
|
||||
|
||||
App() {
|
||||
a.AddColumn("Option");
|
||||
for(int i = 0; i < 300; i++) {
|
||||
a.Add(i & 4);
|
||||
a.SetCtrl(i, 0, option.Add());
|
||||
option.Top() <<= i;
|
||||
// option.Top() <<= THISBACK1(Do, i);
|
||||
}
|
||||
a.SetLineCy(10, 40);
|
||||
option[10].SizePos();
|
||||
option[10].WhenEnter = THISBACK(Enter);
|
||||
a.WhenAcceptRow = THISBACK(CheckRow);
|
||||
Add(a.SizePos());
|
||||
Sizeable();
|
||||
}
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
App().Run();
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue