Compare commits
76 Commits
Author | SHA1 | Date | |
---|---|---|---|
30fb41bb62 | |||
f808211bd3 | |||
bfedb5336e | |||
1cfa68a23f | |||
5c2ba27cc5 | |||
160a7dec30 | |||
efd3b160ad | |||
844aaa90dd | |||
dbe995abd8 | |||
532b64a1f0 | |||
63ac2d7e07 | |||
6454bf59c4 | |||
f522c759d6 | |||
6ea7014244 | |||
0d0cb02b85 | |||
0b2e9d4129 | |||
ba31625447 | |||
84769bc26e | |||
dd373e1d2d | |||
4dee6004c3 | |||
3da1b84016 | |||
44130c4cd7 | |||
e0bcf4f84c | |||
5d53bed86b | |||
7bab80da4f | |||
7e9d2e5f74 | |||
678fe13631 | |||
07e00cc906 | |||
7eb68dfa72 | |||
dd8daa7e3d | |||
b8a2210d0d | |||
50f0f350ed | |||
d2ce3d279c | |||
94e69dbdec | |||
7958673b8d | |||
4885d7c685 | |||
b66827c6de | |||
4aada212ac | |||
5d31353f69 | |||
6493e83dbe | |||
c76ce3b339 | |||
3ea06311df | |||
faacdc3b0e | |||
e789c16872 | |||
9f4250cbdc | |||
bd0c899654 | |||
eac0a5828c | |||
d9c11ad667 | |||
48efe503a7 | |||
1ac5daa456 | |||
dbe62ed3d5 | |||
307d620d45 | |||
9020e4c188 | |||
0a12e94847 | |||
254f2d0137 | |||
225633ffeb | |||
0275a524b2 | |||
0b0cbfc30d | |||
d552f2baa2 | |||
fea01d57c3 | |||
f9de81b2fb | |||
e61234d586 | |||
1a930f5886 | |||
3acf0bd148 | |||
9c8a3513a6 | |||
487d265b66 | |||
111b3bf587 | |||
6e7af3cbb4 | |||
54f4040a8d | |||
c3a5f9ae64 | |||
00a7134a89 | |||
6b859a45a1 | |||
95bff828d8 | |||
2ad64a73fb | |||
c7f95a96c7 | |||
fc5c63d53d |
373
LICENSE
Normal file
@ -0,0 +1,373 @@
|
||||
Mozilla Public License Version 2.0
|
||||
==================================
|
||||
|
||||
1. Definitions
|
||||
--------------
|
||||
|
||||
1.1. "Contributor"
|
||||
means each individual or legal entity that creates, contributes to
|
||||
the creation of, or owns Covered Software.
|
||||
|
||||
1.2. "Contributor Version"
|
||||
means the combination of the Contributions of others (if any) used
|
||||
by a Contributor and that particular Contributor's Contribution.
|
||||
|
||||
1.3. "Contribution"
|
||||
means Covered Software of a particular Contributor.
|
||||
|
||||
1.4. "Covered Software"
|
||||
means Source Code Form to which the initial Contributor has attached
|
||||
the notice in Exhibit A, the Executable Form of such Source Code
|
||||
Form, and Modifications of such Source Code Form, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.5. "Incompatible With Secondary Licenses"
|
||||
means
|
||||
|
||||
(a) that the initial Contributor has attached the notice described
|
||||
in Exhibit B to the Covered Software; or
|
||||
|
||||
(b) that the Covered Software was made available under the terms of
|
||||
version 1.1 or earlier of the License, but not also under the
|
||||
terms of a Secondary License.
|
||||
|
||||
1.6. "Executable Form"
|
||||
means any form of the work other than Source Code Form.
|
||||
|
||||
1.7. "Larger Work"
|
||||
means a work that combines Covered Software with other material, in
|
||||
a separate file or files, that is not Covered Software.
|
||||
|
||||
1.8. "License"
|
||||
means this document.
|
||||
|
||||
1.9. "Licensable"
|
||||
means having the right to grant, to the maximum extent possible,
|
||||
whether at the time of the initial grant or subsequently, any and
|
||||
all of the rights conveyed by this License.
|
||||
|
||||
1.10. "Modifications"
|
||||
means any of the following:
|
||||
|
||||
(a) any file in Source Code Form that results from an addition to,
|
||||
deletion from, or modification of the contents of Covered
|
||||
Software; or
|
||||
|
||||
(b) any new file in Source Code Form that contains any Covered
|
||||
Software.
|
||||
|
||||
1.11. "Patent Claims" of a Contributor
|
||||
means any patent claim(s), including without limitation, method,
|
||||
process, and apparatus claims, in any patent Licensable by such
|
||||
Contributor that would be infringed, but for the grant of the
|
||||
License, by the making, using, selling, offering for sale, having
|
||||
made, import, or transfer of either its Contributions or its
|
||||
Contributor Version.
|
||||
|
||||
1.12. "Secondary License"
|
||||
means either the GNU General Public License, Version 2.0, the GNU
|
||||
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||
Public License, Version 3.0, or any later versions of those
|
||||
licenses.
|
||||
|
||||
1.13. "Source Code Form"
|
||||
means the form of the work preferred for making modifications.
|
||||
|
||||
1.14. "You" (or "Your")
|
||||
means an individual or a legal entity exercising rights under this
|
||||
License. For legal entities, "You" includes any entity that
|
||||
controls, is controlled by, or is under common control with You. For
|
||||
purposes of this definition, "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of more than
|
||||
fifty percent (50%) of the outstanding shares or beneficial
|
||||
ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
--------------------------------
|
||||
|
||||
2.1. Grants
|
||||
|
||||
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license:
|
||||
|
||||
(a) under intellectual property rights (other than patent or trademark)
|
||||
Licensable by such Contributor to use, reproduce, make available,
|
||||
modify, display, perform, distribute, and otherwise exploit its
|
||||
Contributions, either on an unmodified basis, with Modifications, or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||
for sale, have made, import, and otherwise transfer either its
|
||||
Contributions or its Contributor Version.
|
||||
|
||||
2.2. Effective Date
|
||||
|
||||
The licenses granted in Section 2.1 with respect to any Contribution
|
||||
become effective for each Contribution on the date the Contributor first
|
||||
distributes such Contribution.
|
||||
|
||||
2.3. Limitations on Grant Scope
|
||||
|
||||
The licenses granted in this Section 2 are the only rights granted under
|
||||
this License. No additional rights or licenses will be implied from the
|
||||
distribution or licensing of Covered Software under this License.
|
||||
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||
Contributor:
|
||||
|
||||
(a) for any code that a Contributor has removed from Covered Software;
|
||||
or
|
||||
|
||||
(b) for infringements caused by: (i) Your and any other third party's
|
||||
modifications of Covered Software, or (ii) the combination of its
|
||||
Contributions with other software (except as part of its Contributor
|
||||
Version); or
|
||||
|
||||
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||
its Contributions.
|
||||
|
||||
This License does not grant any rights in the trademarks, service marks,
|
||||
or logos of any Contributor (except as may be necessary to comply with
|
||||
the notice requirements in Section 3.4).
|
||||
|
||||
2.4. Subsequent Licenses
|
||||
|
||||
No Contributor makes additional grants as a result of Your choice to
|
||||
distribute the Covered Software under a subsequent version of this
|
||||
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||
permitted under the terms of Section 3.3).
|
||||
|
||||
2.5. Representation
|
||||
|
||||
Each Contributor represents that the Contributor believes its
|
||||
Contributions are its original creation(s) or it has sufficient rights
|
||||
to grant the rights to its Contributions conveyed by this License.
|
||||
|
||||
2.6. Fair Use
|
||||
|
||||
This License is not intended to limit any rights You have under
|
||||
applicable copyright doctrines of fair use, fair dealing, or other
|
||||
equivalents.
|
||||
|
||||
2.7. Conditions
|
||||
|
||||
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||
in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
-------------------
|
||||
|
||||
3.1. Distribution of Source Form
|
||||
|
||||
All distribution of Covered Software in Source Code Form, including any
|
||||
Modifications that You create or to which You contribute, must be under
|
||||
the terms of this License. You must inform recipients that the Source
|
||||
Code Form of the Covered Software is governed by the terms of this
|
||||
License, and how they can obtain a copy of this License. You may not
|
||||
attempt to alter or restrict the recipients' rights in the Source Code
|
||||
Form.
|
||||
|
||||
3.2. Distribution of Executable Form
|
||||
|
||||
If You distribute Covered Software in Executable Form then:
|
||||
|
||||
(a) such Covered Software must also be made available in Source Code
|
||||
Form, as described in Section 3.1, and You must inform recipients of
|
||||
the Executable Form how they can obtain a copy of such Source Code
|
||||
Form by reasonable means in a timely manner, at a charge no more
|
||||
than the cost of distribution to the recipient; and
|
||||
|
||||
(b) You may distribute such Executable Form under the terms of this
|
||||
License, or sublicense it under different terms, provided that the
|
||||
license for the Executable Form does not attempt to limit or alter
|
||||
the recipients' rights in the Source Code Form under this License.
|
||||
|
||||
3.3. Distribution of a Larger Work
|
||||
|
||||
You may create and distribute a Larger Work under terms of Your choice,
|
||||
provided that You also comply with the requirements of this License for
|
||||
the Covered Software. If the Larger Work is a combination of Covered
|
||||
Software with a work governed by one or more Secondary Licenses, and the
|
||||
Covered Software is not Incompatible With Secondary Licenses, this
|
||||
License permits You to additionally distribute such Covered Software
|
||||
under the terms of such Secondary License(s), so that the recipient of
|
||||
the Larger Work may, at their option, further distribute the Covered
|
||||
Software under the terms of either this License or such Secondary
|
||||
License(s).
|
||||
|
||||
3.4. Notices
|
||||
|
||||
You may not remove or alter the substance of any license notices
|
||||
(including copyright notices, patent notices, disclaimers of warranty,
|
||||
or limitations of liability) contained within the Source Code Form of
|
||||
the Covered Software, except that You may alter any license notices to
|
||||
the extent required to remedy known factual inaccuracies.
|
||||
|
||||
3.5. Application of Additional Terms
|
||||
|
||||
You may choose to offer, and to charge a fee for, warranty, support,
|
||||
indemnity or liability obligations to one or more recipients of Covered
|
||||
Software. However, You may do so only on Your own behalf, and not on
|
||||
behalf of any Contributor. You must make it absolutely clear that any
|
||||
such warranty, support, indemnity, or liability obligation is offered by
|
||||
You alone, and You hereby agree to indemnify every Contributor for any
|
||||
liability incurred by such Contributor as a result of warranty, support,
|
||||
indemnity or liability terms You offer. You may include additional
|
||||
disclaimers of warranty and limitations of liability specific to any
|
||||
jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
---------------------------------------------------
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Software due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description must
|
||||
be placed in a text file included with all distributions of the Covered
|
||||
Software under this License. Except to the extent prohibited by statute
|
||||
or regulation, such description must be sufficiently detailed for a
|
||||
recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
--------------
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically
|
||||
if You fail to comply with any of its terms. However, if You become
|
||||
compliant, then the rights granted under this License from a particular
|
||||
Contributor are reinstated (a) provisionally, unless and until such
|
||||
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||
ongoing basis, if such Contributor fails to notify You of the
|
||||
non-compliance by some reasonable means prior to 60 days after You have
|
||||
come back into compliance. Moreover, Your grants from a particular
|
||||
Contributor are reinstated on an ongoing basis if such Contributor
|
||||
notifies You of the non-compliance by some reasonable means, this is the
|
||||
first time You have received notice of non-compliance with this License
|
||||
from such Contributor, and You become compliant prior to 30 days after
|
||||
Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent
|
||||
infringement claim (excluding declaratory judgment actions,
|
||||
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||
directly or indirectly infringes any patent, then the rights granted to
|
||||
You by any and all Contributors for the Covered Software under Section
|
||||
2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||
end user license agreements (excluding distributors and resellers) which
|
||||
have been validly granted by You or Your distributors under this License
|
||||
prior to termination shall survive termination.
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 6. Disclaimer of Warranty *
|
||||
* ------------------------- *
|
||||
* *
|
||||
* Covered Software is provided under this License on an "as is" *
|
||||
* basis, without warranty of any kind, either expressed, implied, or *
|
||||
* statutory, including, without limitation, warranties that the *
|
||||
* Covered Software is free of defects, merchantable, fit for a *
|
||||
* particular purpose or non-infringing. The entire risk as to the *
|
||||
* quality and performance of the Covered Software is with You. *
|
||||
* Should any Covered Software prove defective in any respect, You *
|
||||
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||
* essential part of this License. No use of any Covered Software is *
|
||||
* authorized under this License except under this disclaimer. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
************************************************************************
|
||||
* *
|
||||
* 7. Limitation of Liability *
|
||||
* -------------------------- *
|
||||
* *
|
||||
* Under no circumstances and under no legal theory, whether tort *
|
||||
* (including negligence), contract, or otherwise, shall any *
|
||||
* Contributor, or anyone who distributes Covered Software as *
|
||||
* permitted above, be liable to You for any direct, indirect, *
|
||||
* special, incidental, or consequential damages of any character *
|
||||
* including, without limitation, damages for lost profits, loss of *
|
||||
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||
* and all other commercial damages or losses, even if such party *
|
||||
* shall have been informed of the possibility of such damages. This *
|
||||
* limitation of liability shall not apply to liability for death or *
|
||||
* personal injury resulting from such party's negligence to the *
|
||||
* extent applicable law prohibits such limitation. Some *
|
||||
* jurisdictions do not allow the exclusion or limitation of *
|
||||
* incidental or consequential damages, so this exclusion and *
|
||||
* limitation may not apply to You. *
|
||||
* *
|
||||
************************************************************************
|
||||
|
||||
8. Litigation
|
||||
-------------
|
||||
|
||||
Any litigation relating to this License may be brought only in the
|
||||
courts of a jurisdiction where the defendant maintains its principal
|
||||
place of business and such litigation shall be governed by laws of that
|
||||
jurisdiction, without reference to its conflict-of-law provisions.
|
||||
Nothing in this Section shall prevent a party's ability to bring
|
||||
cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
----------------
|
||||
|
||||
This License represents the complete agreement concerning the subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. Any law or regulation which provides
|
||||
that the language of a contract shall be construed against the drafter
|
||||
shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
---------------------------
|
||||
|
||||
10.1. New Versions
|
||||
|
||||
Mozilla Foundation is the license steward. Except as provided in Section
|
||||
10.3, no one other than the license steward has the right to modify or
|
||||
publish new versions of this License. Each version will be given a
|
||||
distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions
|
||||
|
||||
You may distribute the Covered Software under the terms of the version
|
||||
of the License under which You originally received the Covered Software,
|
||||
or under the terms of any subsequent version published by the license
|
||||
steward.
|
||||
|
||||
10.3. Modified Versions
|
||||
|
||||
If you create software not governed by this License, and you want to
|
||||
create a new license for such software, you may create and use a
|
||||
modified version of this License if you rename the license and remove
|
||||
any references to the name of the license steward (except to note that
|
||||
such modified license differs from this License).
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||
Licenses
|
||||
|
||||
If You choose to distribute Source Code Form that is Incompatible With
|
||||
Secondary Licenses under the terms of this version of the License, the
|
||||
notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
-------------------------------------------
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to look
|
||||
for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||
---------------------------------------------------------
|
||||
|
||||
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||
defined by the Mozilla Public License, v. 2.0.
|
14
README.md
@ -103,16 +103,22 @@ Arch-linux:
|
||||
# connect adb: (and you can do a "android/sdk/platform-tools/adb shell" to enable computer key on device)
|
||||
pacman -S android-udev
|
||||
|
||||
License (APACHE v2.0)
|
||||
=====================
|
||||
|
||||
Simple framework overview
|
||||
=========================
|
||||
|
||||

|
||||
|
||||
License (MPL v2.0)
|
||||
==================
|
||||
|
||||
Copyright ewol Edouard DUPIN
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
Licensed under the Mozilla Public License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
https://www.mozilla.org/MPL/2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
50
data/ewol-gui-file-chooser.xml
Normal file
@ -0,0 +1,50 @@
|
||||
<popup>
|
||||
<sizer mode="vert" lock="true" fill="true" expand="true">
|
||||
<sizer mode="hori">
|
||||
<checkbox name="[{ID}]file-shooser:show-hiden-file">
|
||||
<label>_T{ShowHiddenFiles}</label>
|
||||
</checkbox>
|
||||
<spacer expand="true,false"/>
|
||||
<button name="[{ID}]file-shooser:button-validate">
|
||||
<sizer mode="hori">
|
||||
<image src="THEME_GUI:///Load.svg?lib=ewol" fill="true" size="7,7mm"/>
|
||||
<label name="[{ID}]file-shooser:validate-label">_T{Validate}</label>
|
||||
</sizer>
|
||||
</button>
|
||||
<button name="[{ID}]file-shooser:button-cancel">
|
||||
<sizer mode="hori">
|
||||
<image src="THEME_GUI:///Remove.svg?lib=ewol" fill="true" size="7,7mm"/>
|
||||
<label name="[{ID}]file-shooser:cancel-label">_T{Cancel}</label>
|
||||
</sizer>
|
||||
</button>
|
||||
</sizer>
|
||||
<sizer mode="hori">
|
||||
<spacer min-size="2,2mm"/>
|
||||
<ListFileSystem name="[{ID}]file-shooser:list-folder"
|
||||
min-size="20,0%"
|
||||
expand="false,true"
|
||||
show-hidden="false"
|
||||
show-file="false"
|
||||
show-folder="true"
|
||||
show-temporary="false"/>
|
||||
<spacer min-size="2,2mm"/>
|
||||
<ListFileSystem name="[{ID}]file-shooser:list-files"
|
||||
expand="true,true"
|
||||
show-hidden="false"
|
||||
show-file="true"
|
||||
show-folder="false"
|
||||
show-temporary="false"/>
|
||||
<spacer min-size="2,2mm"/>
|
||||
</sizer>
|
||||
<sizer mode="hori">
|
||||
<image name="[{ID}]file-shooser:img-file" src="THEME_GUI:///File.svg?lib=ewol" expand="false" size="8,8mm"/>
|
||||
<entry name="[{ID}]file-shooser:entry-file" expand="true,false" fill="true,false"/>
|
||||
</sizer>
|
||||
<sizer mode="hori">
|
||||
<image name="[{ID}]file-shooser:img-folder" src="THEME_GUI:///Folder.svg?lib=ewol" expand="false" size="8,8mm"/>
|
||||
<entry name="[{ID}]file-shooser:entry-folder" expand="true,false" fill="true,false"/>
|
||||
<image name="[{ID}]file-shooser:img-home" src="THEME_GUI:///Home.svg?lib=ewol" expand="false" size="8,8mm"/>
|
||||
</sizer>
|
||||
<label name="[{ID}]file-shooser:title-label">_T{Title}</label>
|
||||
</sizer>
|
||||
</popup>
|
@ -30,7 +30,7 @@ void main(void) {
|
||||
|
||||
// Smooth
|
||||
gl_FragColor = vec4(f_color[0], f_color[1], f_color[2], f_color[3]*alpha);
|
||||
|
||||
//gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
// Outline
|
||||
/*
|
||||
float mu = smoothstep(outline_center-width, outline_center+width, dist);
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifdef GL_ES
|
||||
#extension GL_OES_standard_derivatives : enable
|
||||
precision mediump float;
|
||||
precision mediump int;
|
||||
#extension GL_OES_standard_derivatives : enable
|
||||
#endif
|
||||
|
||||
// Input :
|
||||
|
7
data/theme/default/Add.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-579.7336,-567.9832)">
|
||||
<path d="m 509.778,477.486 c -12.426,0 -22.5,10.072 -22.5,22.5 0,12.426 10.074,22.5 22.5,22.5 12.428,0 22.5,-10.074 22.5,-22.5 0,-12.427 -10.072,-22.5 -22.5,-22.5 z m 11.5,25 c 0,0.549 -0.451,1 -1,1 h -6 c -0.551,0 -1.001,0.449 -1.001,1 v 6 c 0,0.549 -0.45,1 -1,1 h -5 c -0.55,0 -1,-0.451 -1,-1 v -6 c 0,-0.551 -0.45,-1 -1,-1 h -6 c -0.55,0 -1,-0.451 -1,-1 v -5 c 0,-0.551 0.45,-1 1,-1 h 6 c 0.55,0 1,-0.451 1,-1 v -6 c 0,-0.551 0.45,-1 1,-1 h 5 c 0.55,0 1,0.449 1,1 v 6 c 0,0.549 0.45,1 1.001,1 h 6 c 0.549,0 1,0.449 1,1 v 5 z"
|
||||
style="fill:#333333;fill-rule:evenodd" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 735 B |
11
data/theme/default/AtoZ.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-651.9616,-494.5316)">
|
||||
<path d="m 562.663,451.271 -1.24,-3.193 h -0.188 c -0.463,0.631 -0.926,1.174 -1.389,1.629 -0.463,0.457 -0.967,0.832 -1.514,1.125 -0.547,0.295 -1.16,0.512 -1.838,0.65 -0.682,0.143 -1.469,0.211 -2.365,0.211 -0.953,0 -1.836,-0.148 -2.648,-0.455 -0.813,-0.299 -1.516,-0.756 -2.111,-1.361 -0.596,-0.611 -1.061,-1.381 -1.396,-2.314 -0.336,-0.932 -0.506,-2.035 -0.506,-3.311 0,-2.494 0.799,-4.332 2.396,-5.518 1.598,-1.184 3.986,-1.838 7.168,-1.965 l 3.74,-0.125 v -1.766 c 0,-0.967 -0.279,-1.682 -0.842,-2.145 -0.559,-0.461 -1.344,-0.693 -2.354,-0.693 -1.01,0 -1.994,0.146 -2.953,0.441 -0.959,0.295 -1.924,0.688 -2.891,1.178 l -2.08,-4.246 c 1.178,-0.658 2.48,-1.177 3.908,-1.554 1.43,-0.379 2.93,-0.568 4.498,-0.568 2.93,0 5.174,0.688 6.736,2.06 1.563,1.373 2.344,3.461 2.344,6.264 v 15.658 h -4.477 v -0.002 z m -1.891,-10.887 -2.123,0.084 c -0.854,0.027 -1.578,0.141 -2.164,0.336 -0.59,0.195 -1.063,0.457 -1.42,0.787 -0.357,0.33 -0.615,0.721 -0.777,1.178 -0.16,0.455 -0.24,0.963 -0.24,1.523 0,0.98 0.238,1.678 0.713,2.092 0.477,0.412 1.102,0.619 1.871,0.619 0.59,0 1.135,-0.102 1.641,-0.305 0.504,-0.203 0.941,-0.504 1.313,-0.902 0.373,-0.4 0.662,-0.891 0.873,-1.471 0.211,-0.582 0.314,-1.252 0.314,-2.01 v -1.931 l -10e-4,0 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 568.976,440.552 v -4.244 h 9.549 v 4.244 h -9.549 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 592.468,451.241 h -17.279 v -3.785 l 9.607,-14.816 h -8.953 v -4.896 h 16.225 v 4.159 l -9.289,14.441 h 9.689 v 4.897 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
7
data/theme/default/Attache.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.199923,0,0,1.199923,-436.75556,-134.85476)">
|
||||
<path d="m 374.192,161.556 c -1.619,0 -3.152,-0.607 -4.269,-1.707 -1.237,-1.221 -1.877,-2.961 -1.755,-4.776 l 0.501,-7.477 c 0.198,-2.952 1.959,-6.933 4.009,-9.065 l 20.588,-21.415 c 0.854,-0.89 2.268,-0.916 3.154,-0.063 0.886,0.853 0.916,2.266 0.063,3.154 l -20.589,21.416 c -1.347,1.401 -2.644,4.331 -2.772,6.271 l -0.502,7.477 c -0.035,0.526 0.119,0.988 0.436,1.3 0.317,0.312 0.776,0.465 1.306,0.417 l 6.095,-0.496 c 1.936,-0.158 4.842,-1.497 6.219,-2.865 l 21.382,-21.251 c 0.413,-0.411 0.64,-0.957 0.637,-1.537 -0.005,-0.58 -0.236,-1.123 -0.655,-1.529 l -4.043,-3.92 c -0.874,-0.847 -2.334,-0.832 -3.189,0.037 l -16.287,16.555 c -0.512,0.521 -0.809,1.177 -0.794,1.759 0.007,0.303 0.097,0.537 0.268,0.693 0.524,0.485 1.872,0.332 2.826,-0.589 l 12.685,-12.247 c 0.886,-0.856 2.297,-0.831 3.154,0.056 0.855,0.886 0.83,2.298 -0.057,3.153 l -12.684,12.248 c -2.605,2.517 -6.623,2.811 -8.952,0.656 -1.06,-0.979 -1.664,-2.352 -1.7,-3.865 -0.043,-1.788 0.713,-3.608 2.072,-4.992 l 16.289,-16.556 c 2.582,-2.623 6.83,-2.675 9.475,-0.111 l 4.043,3.92 c 1.285,1.246 2,2.917 2.01,4.705 0.012,1.788 -0.682,3.467 -1.952,4.729 l -21.382,21.25 c -2.098,2.086 -6.053,3.907 -9.002,4.148 l -6.094,0.496 c -0.18,0.013 -0.358,0.021 -0.534,0.021 l 0,0 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
13
data/theme/default/CaseSensitive.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="M57.268,52.064,55.78,48.233h-0.2256c-0.5556,0.7572-1.1112,1.4088-1.6668,1.9548-0.5556,0.5484-1.1604,0.9984-1.8168,1.35-0.6564,0.354-1.392,0.6144-2.2056,0.78-0.8184,0.1716-1.7628,0.2532-2.838,0.2532-1.1436,0-2.2032-0.1776-3.1776-0.546-0.9756-0.3588-1.8192-0.9072-2.5332-1.6332-0.7152-0.7332-1.2732-1.6572-1.6752-2.7768-0.4032-1.1184-0.6072-2.442-0.6072-3.9732,0-2.9928,0.9588-5.1984,2.8752-6.6216,1.9176-1.4208,4.7832-2.2056,8.6016-2.358l4.488-0.15v-2.1192c0-1.1604-0.3348-2.0184-1.0104-2.574-0.6708-0.5532-1.6128-0.8316-2.8248-0.8316s-2.3928,0.1752-3.5436,0.5292-2.3088,0.8256-3.4692,1.4136l-2.496-5.0952c1.4136-0.7896,2.976-1.4124,4.6896-1.8648,1.716-0.4548,3.516-0.6816,5.3976-0.6816,3.516,0,6.2088,0.8256,8.0832,2.472,1.8756,1.6476,2.8128,4.1532,2.8128,7.5168v18.79h-5.3724v-0.0024zm-0.781-9.233-2.548,0.101c-1.0248,0.0324-1.8936,0.1692-2.5968,0.4032-0.708,0.234-1.2756,0.5484-1.704,0.9444s-0.738,0.8652-0.9324,1.4136c-0.192,0.546-0.288,1.1556-0.288,1.8276,0,1.176,0.2856,2.0136,0.8556,2.5104,0.5724,0.4944,1.3224,0.7428,2.2452,0.7428,0.708,0,1.362-0.1224,1.9692-0.366,0.6048-0.2436,1.1292-0.6048,1.5756-1.0824,0.4476-0.48,0.7944-1.0692,1.0476-1.7652,0.252-0.699,0.376-1.503,0.376-2.413v-2.317h-0.0012z" fill="#333"/>
|
||||
<path d="M26,38,14,38,9,54,3,54,17,9h6l8,25h-6l-5-18-5,18h16l6,20h-6z" fill="#333"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
66
data/theme/default/ChevronLeft.svg
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="64"
|
||||
height="64"
|
||||
viewBox="0 0 64 64"
|
||||
enable-background="new 0 0 24 24"
|
||||
xml:space="preserve"
|
||||
id="svg8"
|
||||
sodipodi:docname="ChevronLeft.svg"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"><metadata
|
||||
id="metadata14"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1918"
|
||||
inkscape:window-height="1038"
|
||||
id="namedview10"
|
||||
showgrid="true"
|
||||
showguides="true"
|
||||
inkscape:zoom="27.812867"
|
||||
inkscape:cx="35.880854"
|
||||
inkscape:cy="43.550446"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid821" /></sodipodi:namedview>
|
||||
<g
|
||||
id="Bounding_Boxes"
|
||||
transform="translate(0,40)">
|
||||
<path
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
</g>
|
||||
<g
|
||||
id="Outline_1_"
|
||||
transform="matrix(4.1679329,0,0,4.1679329,-16.912008,-18.015195)">
|
||||
<path
|
||||
d="M 15.41,7.41 14,6 8,12 14,18 15.41,16.59 10.83,12 Z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
66
data/theme/default/ChevronLess.svg
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="64"
|
||||
height="64"
|
||||
viewBox="0 0 64 64"
|
||||
enable-background="new 0 0 24 24"
|
||||
xml:space="preserve"
|
||||
id="svg8"
|
||||
sodipodi:docname="ChevronLess.svg"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"><metadata
|
||||
id="metadata14"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1918"
|
||||
inkscape:window-height="1038"
|
||||
id="namedview10"
|
||||
showgrid="true"
|
||||
showguides="true"
|
||||
inkscape:zoom="13.906433"
|
||||
inkscape:cx="45.005732"
|
||||
inkscape:cy="37.911807"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid821" /></sodipodi:namedview>
|
||||
<g
|
||||
id="Bounding_Boxes"
|
||||
transform="translate(0,40)">
|
||||
<path
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
</g>
|
||||
<g
|
||||
id="Outline_1_"
|
||||
transform="matrix(0,4.1679329,-4.1679329,0,81.888841,-16.785655)">
|
||||
<path
|
||||
d="M 15.41,7.41 14,6 8,12 14,18 15.41,16.59 10.83,12 Z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
66
data/theme/default/ChevronMore.svg
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="64"
|
||||
height="64"
|
||||
viewBox="0 0 64 64"
|
||||
enable-background="new 0 0 24 24"
|
||||
xml:space="preserve"
|
||||
id="svg8"
|
||||
sodipodi:docname="ChevronMore.svg"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"><metadata
|
||||
id="metadata14"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1918"
|
||||
inkscape:window-height="1038"
|
||||
id="namedview10"
|
||||
showgrid="true"
|
||||
showguides="true"
|
||||
inkscape:zoom="13.906433"
|
||||
inkscape:cx="45.005732"
|
||||
inkscape:cy="37.911807"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid821" /></sodipodi:namedview>
|
||||
<g
|
||||
id="Bounding_Boxes"
|
||||
transform="translate(0,40)">
|
||||
<path
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
</g>
|
||||
<g
|
||||
id="Outline_1_"
|
||||
transform="matrix(0,-4.1679329,-4.1679329,0,81.888841,80.785654)">
|
||||
<path
|
||||
d="M 15.41,7.41 14,6 8,12 14,18 15.41,16.59 10.83,12 Z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
66
data/theme/default/ChevronRight.svg
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="64"
|
||||
height="64"
|
||||
viewBox="0 0 64 64"
|
||||
enable-background="new 0 0 24 24"
|
||||
xml:space="preserve"
|
||||
id="svg8"
|
||||
sodipodi:docname="ChevronRight.svg"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"><metadata
|
||||
id="metadata14"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs12" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1918"
|
||||
inkscape:window-height="1038"
|
||||
id="namedview10"
|
||||
showgrid="true"
|
||||
showguides="true"
|
||||
inkscape:zoom="27.812867"
|
||||
inkscape:cx="35.880854"
|
||||
inkscape:cy="43.550446"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid821" /></sodipodi:namedview>
|
||||
<g
|
||||
id="Bounding_Boxes"
|
||||
transform="translate(0,40)">
|
||||
<path
|
||||
d="M 0,0 H 24 V 24 H 0 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
</g>
|
||||
<g
|
||||
id="Outline_1_"
|
||||
transform="matrix(-4.1679329,0,0,4.1679329,80.659301,-18.015195)">
|
||||
<path
|
||||
d="M 15.41,7.41 14,6 8,12 14,18 15.41,16.59 10.83,12 Z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
9
data/theme/default/Close.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-579.7336,-495.3904)">
|
||||
<path d="m 514.172,439.484 4.041,-4.041 c 0.26,-0.26 0.404,-0.605 0.404,-0.975 0,-0.371 -0.143,-0.717 -0.404,-0.977 l -2.441,-2.443 c -0.521,-0.521 -1.434,-0.52 -1.949,0 l -4.044,4.043 -4.043,-4.043 c -0.52,-0.52 -1.429,-0.52 -1.949,0 l -2.443,2.443 c -0.26,0.26 -0.402,0.605 -0.402,0.975 0,0.37 0.143,0.717 0.402,0.977 l 4.043,4.041 -4.041,4.041 c -0.261,0.26 -0.404,0.605 -0.404,0.975 0,0.371 0.143,0.717 0.402,0.979 l 2.444,2.443 c 0.521,0.52 1.429,0.52 1.95,-0.002 l 4.041,-4.041 4.042,4.041 c 0.26,0.26 0.605,0.404 0.975,0.404 0.37,0 0.715,-0.145 0.975,-0.404 l 2.441,-2.439 c 0.262,-0.262 0.406,-0.609 0.406,-0.98 0,-0.369 -0.145,-0.717 -0.404,-0.973 l -4.042,-4.044 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 509.778,425.027 c 7.976,0 14.464,6.488 14.464,14.465 0,7.975 -6.488,14.463 -14.464,14.463 -7.975,0 -14.464,-6.488 -14.464,-14.463 0,-7.976 6.489,-14.465 14.464,-14.465 m 0,-8.035 c -12.426,0 -22.5,10.073 -22.5,22.5 0,12.426 10.074,22.5 22.5,22.5 12.427,0 22.5,-10.074 22.5,-22.5 -10e-4,-12.428 -10.073,-22.5 -22.5,-22.5 l 0,0 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
14
data/theme/default/Contact.svg
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.1999733,0,0,1.1999733,-436.77498,-206.48907)">
|
||||
<path d="m 412.51,211.853 c 0.354,0.375 0.645,0.26 0.645,-0.256 v -24.754 c 0,-0.516 -0.321,-0.664 -0.714,-0.329 l -12.536,10.671 c -0.394,0.334 -0.425,0.914 -0.07,1.289 l 12.675,13.379 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 410.761,184.249 c 0.394,-0.334 0.292,-0.607 -0.223,-0.607 h -40.092 c -0.515,0 -0.614,0.271 -0.219,0.602 l 19.701,16.524 c 0.396,0.331 1.041,0.329 1.434,-0.006 l 19.399,-16.513 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 368.154,211.597 c 0,0.516 0.29,0.631 0.645,0.256 l 12.625,-13.326 c 0.354,-0.375 0.321,-0.951 -0.074,-1.283 l -12.477,-10.465 c -0.396,-0.332 -0.719,-0.181 -0.719,0.335 v 24.483 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 392.28,203.674 c -0.393,0.335 -0.979,0.759 -1.302,0.943 0,0 0,0 -0.324,0 -0.321,0 -0.321,0 -0.321,0 -0.32,-0.181 -0.905,-0.6 -1.301,-0.931 l -4.086,-3.428 c -0.396,-0.332 -1.009,-0.297 -1.363,0.078 l -12.847,13.561 c -0.354,0.375 -0.223,0.682 0.293,0.682 h 39.25 c 0.516,0 0.647,-0.307 0.293,-0.682 l -12.883,-13.599 c -0.354,-0.374 -0.966,-0.407 -1.358,-0.073 l -4.051,3.449 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
14
data/theme/default/Down.svg
Normal file
@ -0,0 +1,14 @@
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g transform="matrix(0,1.2,-1.2,0,631.9838,-722.6014)">
|
||||
<polygon points="629.89,509.46,607.39,509.46,607.39,490.51,629.89,490.51,629.89,481.04,652.39,499.94,629.89,518.93" fill="#333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 638 B |
7
data/theme/default/FavoriteDisable.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2136037,0,0,1.2136037,-732.43441,-64.413778)">
|
||||
<path d="m 617.617,100.868 c -0.703,0 -1.336,-0.279 -1.781,-0.785 -0.496,-0.56 -0.707,-1.346 -0.6,-2.215 l 1.354,-10.822 c 0.074,-0.585 -0.262,-1.62 -0.666,-2.049 l -7.453,-7.961 c -0.742,-0.792 -1.004,-1.754 -0.717,-2.637 0.287,-0.883 1.063,-1.508 2.129,-1.712 l 10.709,-2.056 c 0.578,-0.111 1.459,-0.752 1.746,-1.27 l 5.08,-9.213 c 0.199,-0.404 0.988,-1.78 2.469,-1.78 1.557,0 2.383,1.58 2.531,1.897 l 5.02,9.097 c 0.285,0.517 1.168,1.157 1.746,1.269 l 10.709,2.056 c 1.066,0.205 1.842,0.829 2.129,1.712 0.287,0.883 0.025,1.844 -0.717,2.637 l -7.453,7.96 c -0.404,0.43 -0.74,1.465 -0.668,2.051 l 1.352,10.822 c 0.109,0.866 -0.102,1.652 -0.596,2.213 -0.723,0.816 -1.939,1.017 -3.1,0.475 l -9.873,-4.633 c -0.197,-0.092 -0.582,-0.189 -1.08,-0.189 -0.498,0 -0.883,0.098 -1.078,0.188 l -9.873,4.633 c -0.444,0.207 -0.887,0.312 -1.319,0.312 l 0,0 z m 12.27,-8.239 c 0.883,0 1.734,0.172 2.398,0.484 l 9.057,4.249 -1.238,-9.932 c -0.186,-1.498 0.451,-3.457 1.482,-4.557 l 6.84,-7.304 -9.828,-1.891 c -1.48,-0.284 -3.148,-1.495 -3.879,-2.817 l -4.832,-8.764 -4.832,8.763 c -0.73,1.323 -2.396,2.534 -3.879,2.818 l -9.824,1.887 6.838,7.309 c 1.031,1.101 1.668,3.06 1.48,4.558 l -1.242,9.928 9.063,-4.247 c 0.663,-0.312 1.515,-0.484 2.396,-0.484 l 0,0 z"
|
||||
style="fill:#333369" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
9
data/theme/default/FavoriteEnable.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.1999726,0,0,1.1999726,-723.8473,-206.71515)">
|
||||
<path d="m 617.479,220.601 c -0.711,0 -1.352,-0.282 -1.803,-0.794 -0.5,-0.566 -0.715,-1.361 -0.605,-2.24 l 1.369,-10.944 c 0.074,-0.592 -0.266,-1.638 -0.674,-2.073 l -7.539,-8.051 c -0.75,-0.801 -1.016,-1.773 -0.725,-2.667 0.291,-0.893 1.074,-1.524 2.152,-1.731 l 10.832,-2.08 c 0.584,-0.112 1.477,-0.76 1.766,-1.284 l 5.137,-9.317 c 0.201,-0.408 1,-1.799 2.498,-1.799 1.574,0 2.408,1.598 2.561,1.918 l 5.074,9.2 c 0.289,0.523 1.182,1.171 1.766,1.283 l 10.832,2.08 c 1.078,0.207 1.861,0.838 2.152,1.731 0.291,0.893 0.027,1.866 -0.725,2.667 l -7.539,8.05 c -0.408,0.436 -0.748,1.482 -0.674,2.075 l 1.367,10.944 c 0.109,0.876 -0.104,1.671 -0.604,2.238 -0.73,0.826 -1.961,1.028 -3.135,0.48 l -9.984,-4.685 c -0.199,-0.093 -0.588,-0.192 -1.092,-0.192 -0.504,0 -0.895,0.099 -1.092,0.191 l -9.982,4.685 c -0.45,0.209 -0.897,0.315 -1.333,0.315 l 0,0 z m 12.409,-8.331 c 0.893,0 1.752,0.174 2.424,0.489 l 9.16,4.297 -1.252,-10.044 c -0.189,-1.515 0.455,-3.496 1.498,-4.609 l 6.918,-7.387 -9.939,-1.913 c -1.498,-0.288 -3.184,-1.512 -3.922,-2.85 l -4.887,-8.863 -4.887,8.862 c -0.738,1.338 -2.426,2.563 -3.924,2.851 l -9.936,1.908 6.916,7.391 c 1.043,1.113 1.688,3.094 1.498,4.61 l -1.256,10.041 9.164,-4.295 c 0.673,-0.315 1.532,-0.488 2.425,-0.488 l 0,0 z"
|
||||
style="fill:#333369" />
|
||||
<path d="m 629.28,189.527 c 0,0 0.244,-0.523 0.607,-0.523 0.363,0 0.627,0.56 0.627,0.56 l 2.816,5.108 c 0.285,0.514 0.988,1.026 1.564,1.137 l 5.955,1.144 c 0.578,0.111 0.721,0.553 0.32,0.981 l -4.146,4.427 c -0.402,0.428 -0.67,1.256 -0.598,1.838 l 0.752,6.02 c 0.074,0.581 -0.303,0.855 -0.834,0.606 l -5.49,-2.577 c -0.533,-0.249 -1.402,-0.249 -1.934,0 l -5.49,2.577 c -0.533,0.249 -0.908,-0.024 -0.836,-0.606 l 0.754,-6.02 c 0.072,-0.582 -0.197,-1.41 -0.598,-1.838 l -4.146,-4.427 c -0.402,-0.429 -0.258,-0.871 0.318,-0.981 l 5.957,-1.144 c 0.576,-0.111 1.279,-0.623 1.564,-1.137 l 2.838,-5.145 z"
|
||||
style="fill:#333369;fill-rule:evenodd" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
9
data/theme/default/FavoriteMiddle.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2135952,0,0,1.2135952,-732.42924,-136.47014)">
|
||||
<path d="m 617.617,160.243 c -0.701,0 -1.334,-0.279 -1.781,-0.785 -0.494,-0.56 -0.707,-1.346 -0.598,-2.215 l 1.354,-10.822 c 0.072,-0.585 -0.264,-1.62 -0.668,-2.049 l -7.453,-7.961 c -0.742,-0.792 -1.004,-1.753 -0.717,-2.637 0.287,-0.883 1.063,-1.507 2.129,-1.712 l 10.709,-2.056 c 0.578,-0.111 1.461,-0.751 1.746,-1.27 l 5.08,-9.213 c 0.199,-0.404 0.99,-1.779 2.469,-1.779 1.557,0 2.383,1.58 2.531,1.896 l 5.02,9.097 c 0.287,0.517 1.168,1.158 1.746,1.269 l 10.709,2.056 c 1.066,0.205 1.842,0.829 2.129,1.712 0.287,0.883 0.027,1.845 -0.717,2.637 l -7.453,7.96 c -0.404,0.431 -0.74,1.465 -0.668,2.051 l 1.354,10.822 c 0.107,0.866 -0.104,1.652 -0.598,2.213 -0.723,0.817 -1.939,1.017 -3.1,0.475 l -9.873,-4.633 c -0.195,-0.092 -0.582,-0.19 -1.08,-0.19 -0.496,0 -0.883,0.098 -1.078,0.189 l -9.871,4.633 c -0.446,0.207 -0.889,0.312 -1.321,0.312 l 0,0 z m 12.27,-8.238 c 0.883,0 1.734,0.171 2.398,0.484 l 9.057,4.249 -1.238,-9.932 c -0.186,-1.498 0.451,-3.457 1.482,-4.557 l 6.84,-7.304 -9.828,-1.891 c -1.48,-0.285 -3.148,-1.496 -3.879,-2.818 l -4.832,-8.764 -4.832,8.763 c -0.73,1.323 -2.396,2.534 -3.877,2.819 l -9.826,1.886 6.838,7.309 c 1.031,1.101 1.668,3.06 1.48,4.559 l -1.24,9.928 9.061,-4.247 c 0.663,-0.313 1.515,-0.484 2.396,-0.484 l 0,0 z"
|
||||
style="fill:#333369" />
|
||||
<path d="m 641.045,137.83 c 0.396,-0.424 0.254,-0.861 -0.316,-0.971 l -5.891,-1.131 c -0.568,-0.109 -1.264,-0.616 -1.547,-1.124 l -2.783,-5.05 c 0,0 -0.262,-0.554 -0.621,-0.554 -0.357,0 -0.6,0.518 -0.6,0.518 l -2.805,5.087 c -0.281,0.508 -0.977,1.015 -1.547,1.124 l -5.889,1.131 c -0.57,0.11 -0.713,0.547 -0.314,0.971 l 4.098,4.377 c 0.398,0.424 0.664,1.242 0.592,1.817 l -0.744,5.952 c -0.072,0.576 0.299,0.846 0.824,0.599 l 5.43,-2.547 c 0.264,-0.123 0.609,-0.185 0.955,-0.185 0.348,0 0.693,0.062 0.957,0.185 l 5.428,2.547 c 0.133,0.062 0.254,0.091 0.363,0.091 0.322,0 0.518,-0.26 0.463,-0.69 l -0.742,-5.952 c -0.074,-0.576 0.191,-1.394 0.59,-1.817 l 4.099,-4.378 z m -9.563,-2.222 c 0.578,1.042 1.797,1.928 2.967,2.153 l 3.242,0.623 -2.256,2.408 c -0.818,0.871 -1.283,2.308 -1.135,3.49 l 0.408,3.275 -2.988,-1.402 c -0.67,-0.314 -1.367,-0.38 -1.834,-0.38 v -13.059 l 1.596,2.892 z"
|
||||
style="fill:#333369" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
4
data/theme/default/File.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path fill="#333" d="m50.318,5.003h-21.273c-5.515,6-11.03,12-16.545,18v34.714c0.10749,1.7195,2.0191,1.2097,3.1801,1.2857h34.638c1.6346-0.23497,1.0847-2.1237,1.1818-3.284v-49.431c0.018-0.6455-0.51-1.2961-1.182-1.285z"/>
|
||||
<path fill="#FFF" d="m29.038,22.993h-14.182c4.7273-5.143,9.4547-10.286,14.182-15.429v15.429z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 544 B |
7
data/theme/default/Folder.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64px" height="64px">
|
||||
<g transform="matrix(1.199961,0,0,1.2222222,-436.76926,-579.09522)">
|
||||
<path d="m 378.923,493.986 c -1.41,0 -2.684,1.188 -2.781,2.594 l -0.932,12.574 c -0.059,0.787 -0.717,1.389 -1.495,1.389 -0.037,0 -0.075,-0.002 -0.112,-0.004 -0.826,-0.063 -1.446,-0.781 -1.385,-1.607 l 0.932,-12.566 c 0.205,-2.963 2.796,-5.379 5.773,-5.379 h 28.369 c 0,-0.465 0,-0.873 0,-1.031 0,-1.635 -1.654,-2.973 -3.309,-2.973 h -17.744 c 0,0 0,-1.193 0,-2.543 0,-1.35 -1.354,-2.453 -3.008,-2.453 h -12.07 c -1.654,0 -3.008,1.35 -3.008,3 v 30 c 0,1.65 1.354,3 3.008,3 h 37.098 c 1.655,0 3.122,-1.346 3.262,-2.99 l 1.623,-19.021 c 0.065,-0.766 -0.177,-1.459 -0.612,-1.988 h -33.609 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 793 B |
60
data/theme/default/Forbidden.svg
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3028"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="Forbidden.svg">
|
||||
<metadata
|
||||
id="metadata3038">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3036" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1340"
|
||||
inkscape:window-height="892"
|
||||
id="namedview3034"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8"
|
||||
inkscape:cx="52.794424"
|
||||
inkscape:cy="15.718112"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg3028" />
|
||||
<g
|
||||
transform="matrix(1.2,0,0,1.2,-579.7324,-351.106)"
|
||||
id="g3030">
|
||||
<path
|
||||
d="m 532.27833,319.25811 c 0,-12.427 -10.07533,-22.50311 -22.50133,-22.50311 -12.426,0 -22.5,10.073 -22.5,22.5 0,12.427 10.074,22.5 22.5,22.5 l 0.021,-8.437 c -7.755,0 -14.08298,-6.308 -14.08298,-14.063 0,-2.343 0.584,-4.55 1.602,-6.493 l 18.955,18.953 c -1.943,1.019 -4.15,1.603 -6.494,1.603 l -0.001,8.45698 c 12.426,0 22.5,-10.09298 22.5,-22.51998 l -8.43744,5.9e-4 c 0,2.344 -0.58356,4.54941 -1.60156,6.49441 l -18.955,-18.955 c 1.945,-1.019 4.151,-1.603 6.494,-1.603 7.754,10e-4 14.063,6.309 14.063,14.063 z"
|
||||
style="fill:#333333"
|
||||
id="path3032"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cssccsccccccccccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
7
data/theme/default/Help.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-579.7336,-711.5908)">
|
||||
<path d="m 509.778,597.159 c -12.427,0 -22.5,10.074 -22.5,22.5 0,12.428 10.073,22.5 22.5,22.5 12.427,0 22.5,-10.072 22.5,-22.5 -10e-4,-12.426 -10.073,-22.5 -22.5,-22.5 z m -0.559,36.414 c -1.676,0 -3.054,-1.379 -3.054,-3.055 0,-1.676 1.378,-3.053 3.054,-3.053 1.677,0 3.054,1.377 3.054,3.053 0,1.676 -1.377,3.055 -3.054,3.055 z m 2.904,-11.791 c -0.892,1.305 -0.594,3.129 -3.052,3.129 -1.602,0 -2.385,-1.305 -2.385,-2.496 0,-4.432 6.519,-5.436 6.519,-9.086 0,-2.012 -1.34,-3.203 -3.576,-3.203 -4.767,0 -2.905,4.916 -6.518,4.916 -1.304,0 -2.421,-0.783 -2.421,-2.271 0,-3.65 4.172,-6.891 8.714,-6.891 4.769,0 9.46,2.197 9.46,7.449 10e-4,4.842 -5.55,6.703 -6.741,8.453 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 857 B |
11
data/theme/default/Home.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.1999968,0,0,1.3606385,-147.9521,-648.3007)">
|
||||
<path d="m 170.351,504.021 c -0.343,0.365 -0.922,0.385 -1.288,0.043 L 150.392,486.63 c -0.365,-0.342 -0.966,-0.342 -1.332,0 l -18.204,16.97 c -0.367,0.344 -0.945,0.322 -1.287,-0.045 l -1.865,-2 c -0.342,-0.365 -0.321,-0.945 0.045,-1.287 l 21.313,-19.869 c 0.367,-0.342 0.967,-0.342 1.334,0.002 l 21.777,20.334 c 0.365,0.342 0.386,0.922 0.043,1.289 l -1.865,1.997 z"
|
||||
style="fill:#333333"/>
|
||||
<path d="m 149.725,489.777 -15.345,14.305 v 14.83 c 0,0.504 0.414,0.918 0.919,0.918 h 10.085 v -12.857 c 0,-0.504 0.414,-0.918 0.919,-0.918 h 7.347 c 0.506,0 0.918,0.414 0.918,0.918 v 12.857 h 10.119 c 0.505,0 0.918,-0.414 0.918,-0.918 v -14.307 l -15.88,-14.828 z"
|
||||
style="fill:#333333"/>
|
||||
<path d="m 165.543,482.311 c 0,-0.506 -0.414,-0.92 -0.919,-0.92 h -5.51 c -0.505,0 -0.918,0.414 -0.918,0.92 v 1.604 l 7.347,6.918 v -8.522 z"
|
||||
style="fill:#333333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
7
data/theme/default/Info.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-579.7336,-639.148)">
|
||||
<path d="m 509.778,536.79 c -12.427,0 -22.5,10.074 -22.5,22.5 0,12.428 10.073,22.5 22.5,22.5 12.426,0 22.5,-10.072 22.5,-22.5 0,-12.426 -10.074,-22.5 -22.5,-22.5 z m 3.749,35.66 c 0,0.516 -0.422,0.938 -0.937,0.938 h -5.625 c -0.516,0 -0.938,-0.422 -0.938,-0.938 v -15 c 0,-0.514 0.422,-0.938 0.938,-0.938 h 5.625 c 0.515,0 0.937,0.424 0.937,0.938 v 15 z m 0,-19.758 c 0,0.516 -0.422,0.938 -0.937,0.938 h -5.625 c -0.516,0 -0.938,-0.422 -0.938,-0.938 v -6.563 c 0,-0.516 0.422,-0.938 0.938,-0.938 h 5.625 c 0.515,0 0.937,0.422 0.937,0.938 v 6.563 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 736 B |
11
data/theme/default/List.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.1999733,0,0,1.1999733,-364.43055,-494.42419)">
|
||||
<path d="m 352.572,429.142 c 0,0.494 -0.406,0.9 -0.9,0.9 h -43.201 c -0.494,0 -0.9,-0.406 -0.9,-0.9 v -8.099 c 0,-0.496 0.406,-0.9 0.9,-0.9 h 43.201 c 0.494,0 0.9,0.404 0.9,0.9 v 8.099 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 352.572,443.542 c 0,0.494 -0.406,0.9 -0.9,0.9 h -43.201 c -0.494,0 -0.9,-0.406 -0.9,-0.9 v -8.1 c 0,-0.496 0.406,-0.9 0.9,-0.9 h 43.201 c 0.494,0 0.9,0.404 0.9,0.9 v 8.1 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 352.572,457.942 c 0,0.494 -0.406,0.898 -0.9,0.898 h -43.201 c -0.494,0 -0.9,-0.404 -0.9,-0.898 v -8.102 c 0,-0.494 0.406,-0.898 0.9,-0.898 h 43.201 c 0.494,0 0.9,0.404 0.9,0.898 v 8.102 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 842 B |
7
data/theme/default/Load.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.1818182,0,0,1.2857143,-429.68201,-454.27086)">
|
||||
<path d="m 406.154,357.213 h -18 l -14,14 v 27 c 0,0.55 0.449,1 1,1 h 11 v -11 h -4 c -1.1,0 -1.418,-0.688 -0.709,-1.526 l 8.416,-9.947 c 0.711,-0.84 1.875,-0.84 2.584,0 l 8.416,9.947 c 0.711,0.839 0.393,1.526 -0.707,1.526 h -4 v 11 h 10 c 0.549,0 1,-0.45 1,-1 v -40 c 0,-0.551 -0.451,-1 -1,-1 z m -18,14 h -12 l 12,-12 v 12 z"
|
||||
style="fill:#333333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 529 B |
7
data/theme/default/Lock.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-3.2008856,-206.932)">
|
||||
<path d="m 43.688,193.586 h -1.077 v -8.353 c 0,-4.743 -3.881,-8.623 -8.623,-8.623 h -8.623 c -4.742,0 -8.623,3.88 -8.623,8.623 v 8.353 h -1.078 c -1.778,0 -3.232,1.455 -3.232,3.234 v 21.557 c 0,1.778 1.454,3.233 3.232,3.233 h 28.024 c 1.779,0 3.233,-1.455 3.233,-3.233 V 196.82 c 10e-4,-1.779 -1.453,-3.234 -3.233,-3.234 z m -11.856,14.928 v 6.81 h -4.311 v -6.81 c -1.413,-0.769 -2.383,-2.248 -2.383,-3.969 0,-2.506 2.031,-4.538 4.538,-4.538 2.505,0 4.536,2.032 4.536,4.538 10e-4,1.721 -0.968,3.2 -2.38,3.969 z m 4.516,-14.928 H 23.006 v -7.545 c 0,-2.371 1.938,-4.31 4.311,-4.31 h 4.721 c 2.37,0 4.311,1.939 4.311,4.31 v 7.545 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 821 B |
7
data/theme/default/Next.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-723.8644,-566.7208)">
|
||||
<polygon points="629.887,481.039 652.387,499.941 629.887,518.934 629.887,509.459 607.387,509.459 607.387,490.512 629.887,490.512 "
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 322 B |
9
data/theme/default/OpenMenu.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-579.7336,-421.8556)">
|
||||
<path d="m 509.778,363.895 c 7.908,0 14.318,6.411 14.318,14.318 0,7.907 -6.41,14.318 -14.318,14.318 -7.908,0 -14.318,-6.411 -14.318,-14.318 0,-7.907 6.41,-14.318 14.318,-14.318 m 0,-8.182 c -12.406,0 -22.5,10.094 -22.5,22.5 0,12.406 10.094,22.5 22.5,22.5 12.406,0 22.5,-10.094 22.5,-22.5 0,-12.406 -10.094,-22.5 -22.5,-22.5 l 0,0 z"
|
||||
style="fill:#333333" />
|
||||
<polygon points="498.698,373.228 509.778,387.162 520.857,373.228 "
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 625 B |
61
data/theme/default/Parameter.svg
Normal file
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="64"
|
||||
width="64"
|
||||
version="1.1"
|
||||
id="svg3026"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="Parameter.svg">
|
||||
<defs
|
||||
id="defs3034" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="968"
|
||||
id="namedview3032"
|
||||
showgrid="true"
|
||||
showguides="false"
|
||||
inkscape:zoom="10.429825"
|
||||
inkscape:cx="15.854083"
|
||||
inkscape:cy="35.324394"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3026">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3036" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata3028">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path
|
||||
style="color:#000000;fill:#333333;enable-background:accumulate"
|
||||
d="m 4,51 c 6,-6 6,-6 6,-6 l 9,0 0,9 -6,6 C 23,63 28,51 26,45 33.5363,37.4993 38.48,32.485 46,25 52,27 63,24 60,14 L 55,19 45,19 45,9 50,4 C 40,1 37,12 39,18 31.467,25.472 26.513,30.476 19,38 13,36 1,41 4,51 z"
|
||||
id="path3030"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccccc" />
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
7
data/theme/default/Previous.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(-1.2,0,0,1.2,787.8644,-566.7208)">
|
||||
<polygon points="652.387,499.941 629.887,518.934 629.887,509.459 607.387,509.459 607.387,490.512 629.887,490.512 629.887,481.039 "
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 322 B |
9
data/theme/default/Quit.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2000267,0,0,1.2000267,-3.5226163,-279.15673)">
|
||||
<path d="m 36.314,239.696 v 8.396 c 4.282,2.353 7.191,6.905 7.191,12.126 0,7.626 -6.203,13.829 -13.829,13.829 -7.626,0 -13.829,-6.203 -13.829,-13.829 0,-5.221 2.91,-9.773 7.191,-12.126 v -8.396 c -8.664,2.802 -14.936,10.925 -14.936,20.522 0,11.915 9.658,21.573 21.573,21.573 11.915,0 21.573,-9.658 21.573,-21.573 0.002,-9.596 -6.269,-17.72 -14.934,-20.522 z"
|
||||
style="fill:#333333"/>
|
||||
<path d="m 32.998,256.706 c 0,1.218 -0.995,2.213 -2.213,2.213 h -2.217 c -1.218,0 -2.213,-0.995 -2.213,-2.213 v -17.701 c 0,-1.218 0.995,-2.213 2.213,-2.213 h 2.217 c 1.218,0 2.213,0.995 2.213,2.213 v 17.701 z"
|
||||
style="fill:#333333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 804 B |
12
data/theme/default/Redo.svg
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.3012048,0,0,1.255814,-631.32431,-293.62251)">
|
||||
<circle d="m 514.52701,259.29199 c 0,2.20914 -1.79086,4 -4,4 -2.20914,0 -4,-1.79086 -4,-4 0,-2.20914 1.79086,-4 4,-4 2.20914,0 4,1.79086 4,4 z"
|
||||
style="fill:#333333"
|
||||
cx="510.52701"
|
||||
cy="259.29199"
|
||||
r="4"/>
|
||||
<path d="m 530.527,254.292 v -13 l -4.098,3.514 c -4.137,-4.393 -10.08,-7.014 -15.902,-7.014 -11.855,0 -21.5,9.646 -21.5,21.5 0,11.854 9.645,21.5 21.5,21.5 8.551,0 16.287,-5.064 19.711,-12.902 l -6.416,-2.801 c -2.309,5.287 -7.527,8.703 -13.295,8.703 -7.996,0 -14.5,-6.504 -14.5,-14.5 0,-7.994 6.504,-14.5 14.5,-14.5 3.824,0 7.744,1.715 10.568,4.584 l -4.568,3.916 14,1 z"
|
||||
style="fill:#333333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 818 B |
7
data/theme/default/Remove.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2000267,0,0,1.2000267,-651.9777,-351.11481)">
|
||||
<path d="m 579.088,319.255 12.91,-12.908 c 0.627,-0.627 0.627,-1.654 0,-2.281 l -6.84,-6.842 c -0.627,-0.625 -1.652,-0.625 -2.279,0 l -12.91,12.91 -12.91,-12.91 c -0.627,-0.625 -1.654,-0.625 -2.281,0 l -6.84,6.842 c -0.625,0.627 -0.625,1.654 0,2.281 l 12.91,12.908 -12.908,12.908 c -0.627,0.627 -0.627,1.654 0,2.281 l 6.84,6.842 c 0.627,0.625 1.654,0.625 2.281,0 l 12.908,-12.91 12.908,12.91 c 0.627,0.625 1.652,0.625 2.279,0 l 6.84,-6.842 c 0.627,-0.627 0.627,-1.654 0,-2.281 l -12.908,-12.908 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 699 B |
63
data/theme/default/Remove2.svg
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64"
|
||||
height="64"
|
||||
id="svg3028"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="Remove2.svg">
|
||||
<metadata
|
||||
id="metadata3038">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3036" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="968"
|
||||
id="namedview3034"
|
||||
showgrid="true"
|
||||
inkscape:zoom="9.0377085"
|
||||
inkscape:cx="14.895958"
|
||||
inkscape:cy="28.796248"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3028">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3040" />
|
||||
</sodipodi:namedview>
|
||||
<g
|
||||
transform="matrix(1.2000267,0,0,1.2000267,-651.9777,-351.11481)"
|
||||
id="g3030">
|
||||
<path
|
||||
d="m 576.63525,319.25524 15.35699,-15.27674 c 0.627,-0.627 0.627,-1.654 0,-2.281 l -4.29338,-4.3352 c -0.627,-0.625 -1.652,-0.625 -2.279,0 l -15.45113,15.22642 -15.83298,-15.45692 c -0.627,-0.625 -1.654,-0.625 -2.281,0 l -3.9859,4.00946 c -0.625,0.627 -0.625,1.654 0,2.281 l 15.43337,15.83298 -15.31612,15.67389 c -0.61972,0.63419 -0.627,1.654 0,2.281 l 4.14303,4.07587 c 0.627,0.625 1.654,0.625 2.281,0 l 15.5586,-15.36424 16.05393,15.36226 c 0.627,0.625 1.652,0.625 2.279,0 l 3.69434,-4.06095 c 0.627,-0.627 0.62038,-1.64745 0,-2.281 z"
|
||||
style="fill:#fe0000;fill-opacity:0.88627452"
|
||||
id="path3032"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccscccccccsc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
15
data/theme/default/Replace.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="M56.308,30.297c-0.34-11.332-7.1-21.282-17.44-25.505-10.575-4.3193-22.883-1.4808-30.624,7.062l6.7808,6.444c5.1608-5.6978,13.367-7.5874,20.417-4.7076,6.802,2.7782,11.249,9.2808,11.584,16.709l-6.7794,0.0046,11.511,14.941,10.893-14.949-6.3435-0.000321z" fill="#333"/>
|
||||
<g transform="matrix(0.71188026,0,0,0.77215001,-386.35967,-207.86869)">
|
||||
<path fill="#333" d="m579.09,319.26,12.91-12.908c0.627-0.627,0.627-1.654,0-2.281l-6.84-6.842c-0.627-0.625-1.652-0.625-2.279,0l-12.91,12.91-12.91-12.91c-0.627-0.625-1.654-0.625-2.281,0l-6.84,6.842c-0.625,0.627-0.625,1.654,0,2.281l12.91,12.908-12.908,12.908c-0.627,0.627-0.627,1.654,0,2.281l6.84,6.842c0.627,0.625,1.654,0.625,2.281,0l12.908-12.91,12.908,12.91c0.627,0.625,1.652,0.625,2.279,0l6.84-6.842c0.627-0.627,0.627-1.654,0-2.281l-12.908-12.908z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
7
data/theme/default/SDCard.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.1999941,0,0,1.2,-75.451168,-351.106)">
|
||||
<path d="m 104.793,296.755 h -24.75 c -1.237,0 -2.25,1.013 -2.25,2.25 v 9 c 0,1.237 -0.562,3.093 -1.248,4.122 l -2.004,3.005 c -0.687,1.029 -1.248,2.885 -1.248,4.123 0,1.236 0.905,1.797 2.013,1.244 l 0.475,-0.238 c 1.107,-0.554 2.013,0.006 2.013,1.244 v 2.25 c 0,1.236 -0.717,2.967 -1.591,3.84 l -1.318,1.318 c -0.874,0.875 -1.591,2.604 -1.591,3.842 v 6.75 c 0,1.236 1.013,2.25 2.25,2.25 h 24.75 c 4.359,0 6.75,-2.25 6.75,-6.75 v -36 c -10e-4,-1.237 -1.014,-2.25 -2.251,-2.25 z m -20.25,13 c 0,0.275 -0.225,0.5 -0.5,0.5 h -1.25 c -0.275,0 -0.5,-0.225 -0.5,-0.5 v -8 c 0,-0.275 0.225,-0.5 0.5,-0.5 h 1.25 c 0.275,0 0.5,0.225 0.5,0.5 v 8 z m 4.5,0 c 0,0.275 -0.225,0.5 -0.5,0.5 h -1.25 c -0.275,0 -0.5,-0.225 -0.5,-0.5 v -8 c 0,-0.275 0.225,-0.5 0.5,-0.5 h 1.25 c 0.275,0 0.5,0.225 0.5,0.5 v 8 z m 4.5,0 c 0,0.275 -0.225,0.5 -0.5,0.5 h -1.25 c -0.275,0 -0.5,-0.225 -0.5,-0.5 v -8 c 0,-0.275 0.225,-0.5 0.5,-0.5 h 1.25 c 0.275,0 0.5,0.225 0.5,0.5 v 8 z m 4.5,0 c 0,0.275 -0.225,0.5 -0.5,0.5 h -1.25 c -0.275,0 -0.5,-0.225 -0.5,-0.5 v -8 c 0,-0.275 0.225,-0.5 0.5,-0.5 h 1.25 c 0.275,0 0.5,0.225 0.5,0.5 v 8 z m 4.5,0 c 0,0.275 -0.225,0.5 -0.5,0.5 h -1.25 c -0.275,0 -0.5,-0.225 -0.5,-0.5 v -8 c 0,-0.275 0.225,-0.5 0.5,-0.5 h 1.25 c 0.275,0 0.5,0.225 0.5,0.5 v 8 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
16
data/theme/default/Save.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64px" height="64px">
|
||||
<g transform="matrix(1.2,0,0,1.2000267,-436.7836,-495.40152)">
|
||||
<rect style="fill:#333333"
|
||||
x="386.36899"
|
||||
y="419.13501"
|
||||
width="8.5719995"
|
||||
height="10.714"
|
||||
/>
|
||||
<path style="fill:#333333"
|
||||
d="m 403.435,416.992 h -3.139 v 16.071 h -25.713 v -16.071 h -5.893 c -0.295,0 -0.537,0.241 -0.537,0.535 v 43.929 c 0,0.295 0.242,0.535 0.537,0.535 h 43.928 c 0.295,0 0.535,-0.24 0.535,-0.535 V 426.71 l -9.718,-9.718 z m 3.291,41.784 h -32.143 v -21.428 h 32.143 v 21.428 z"
|
||||
/>
|
||||
<polygon style="fill:#333333" points="403.511,445.921 403.511,445.921 377.798,445.921 377.798,442.706 403.511,442.706 " />
|
||||
<polygon style="fill:#333333" points="403.511,453.421 403.511,453.421 377.798,453.421 377.798,450.206 403.511,450.206 " />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 859 B |
49
data/theme/default/Search.svg
Normal file
@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg height="64"
|
||||
width="64" >
|
||||
<metadata
|
||||
id="metadata3975">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3973" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="968"
|
||||
id="namedview3971"
|
||||
showgrid="false"
|
||||
inkscape:zoom="16"
|
||||
inkscape:cx="27.03623"
|
||||
inkscape:cy="33.687368"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3965" />
|
||||
<path
|
||||
d="M 39.436904,24.062448 C 39.915614,33.278293 29.16429,41.203307 19.736168,37.727362 10.452887,34.884476 6.7103607,23.258769 12.262163,15.90798 17.329733,7.8698857 31.048441,7.5763012 36.47627,15.419465 c 1.929199,2.496703 2.965789,5.568455 2.960389,8.64209 z"
|
||||
id="path3969"
|
||||
style="fill:#ffffff;fill-opacity:0.87450981"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 58.168,50.56 46.013,38.407 c -0.91442,-0.91442 -2.3016,-1.0644 -3.3865,-0.47161 l -2.592,-2.592 c 2.208,-3.1357 3.5185,-6.9493 3.5185,-11.068 0,-10.629 -8.6485,-19.276 -19.277,-19.276 -10.629,0 -19.276,8.6461 -19.276,19.276 0,10.6299 8.6461,19.277 19.276,19.277 4.1017,0 7.8985,-1.296 11.026,-3.4873 0,0 0.596082,-5.606306 -5.038478,-5.016691 -4.69706,2.902115 -12.054397,2.017375 -15.875086,-3.769003 -3.142722,-4.56604 -2.630816,-13.100523 2.668347,-16.731928 5.299163,-3.631405 14.142128,-3.981951 18.471312,4.363412 2.363082,6.040278 0.78609,12.603632 -5.311526,16.1632 7.665096,7.559567 7.694231,7.60221 7.694231,7.60221 -0.56041,1.0752 -0.40321,2.4348 0.49681,3.3373 l 12.155,12.153 c 1.1088,1.1112 2.9268,1.1112 4.0357,0 l 3.5725,-3.5701 c 1.1064,-1.1088 1.1064,-2.9256 -0.0024,-4.0369 z"
|
||||
id="path3967"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#333333"
|
||||
sodipodi:nodetypes="ccccssssccczccccccccc" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
9
data/theme/default/Trash.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-436.9344,-711.5908)">
|
||||
<path d="m 408.302,604.218 h -7.95 c 0.002,-0.055 0.009,-0.109 0.009,-0.166 v -1.6 c 0,-2.91 -2.384,-5.293 -5.294,-5.293 h -8.824 c -2.912,0 -5.294,2.383 -5.294,5.293 v 1.6 c 0,0.057 0.007,0.111 0.009,0.166 h -7.95 c -1.456,0 -2.646,1.191 -2.646,2.646 v 2.646 c 0,1.457 1.19,2.648 2.646,2.648 h 0.883 v -1.766 h 33.529 v 1.766 h 0.883 c 1.455,0 2.646,-1.191 2.646,-2.648 v -2.646 c -0.001,-1.455 -1.192,-2.646 -2.647,-2.646 z m -22.969,-2.647 h 10.588 v 2.646 h -10.588 v -2.646 z"
|
||||
style="fill:#333333"/>
|
||||
<path d="m 375.654,613.042 v 26.469 c 0,1.457 1.19,2.648 2.647,2.648 h 24.705 c 1.456,0 2.647,-1.191 2.647,-2.648 v -26.469 h -29.999 z m 8.824,23.381 c 0,0.486 -0.397,0.883 -0.882,0.883 h -1.765 c -0.486,0 -0.883,-0.396 -0.883,-0.883 v -17.646 c 0,-0.484 0.396,-0.883 0.883,-0.883 h 1.765 c 0.484,0 0.882,0.398 0.882,0.883 v 17.646 z m 7.941,0 c 0,0.486 -0.398,0.883 -0.882,0.883 h -1.766 c -0.485,0 -0.882,-0.396 -0.882,-0.883 v -17.646 c 0,-0.484 0.396,-0.883 0.882,-0.883 h 1.766 c 0.483,0 0.882,0.398 0.882,0.883 v 17.646 z m 7.941,0 c 0,0.486 -0.398,0.883 -0.883,0.883 h -1.765 c -0.485,0 -0.882,-0.396 -0.882,-0.883 v -17.646 c 0,-0.484 0.396,-0.883 0.882,-0.883 h 1.765 c 0.484,0 0.883,0.398 0.883,0.883 v 17.646 z"
|
||||
style="fill:#333333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
12
data/theme/default/Undo.svg
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(-1.3012048,0,0,1.255814,695.32425,-293.62251)">
|
||||
<circle d="m 514.52701,259.29199 c 0,2.20914 -1.79086,4 -4,4 -2.20914,0 -4,-1.79086 -4,-4 0,-2.20914 1.79086,-4 4,-4 2.20914,0 4,1.79086 4,4 z"
|
||||
style="fill:#333333"
|
||||
cx="510.52701"
|
||||
cy="259.29199"
|
||||
r="4"/>
|
||||
<path d="m 530.527,254.292 v -13 l -4.098,3.514 c -4.137,-4.393 -10.08,-7.014 -15.902,-7.014 -11.855,0 -21.5,9.646 -21.5,21.5 0,11.854 9.645,21.5 21.5,21.5 8.551,0 16.287,-5.064 19.711,-12.902 l -6.416,-2.801 c -2.309,5.287 -7.527,8.703 -13.295,8.703 -7.996,0 -14.5,-6.504 -14.5,-14.5 0,-7.994 6.504,-14.5 14.5,-14.5 3.824,0 7.744,1.715 10.568,4.584 l -4.568,3.916 14,1 z"
|
||||
style="fill:#333333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 818 B |
14
data/theme/default/Up.svg
Normal file
@ -0,0 +1,14 @@
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g transform="matrix(0,-1.2,1.2,0,-567.9838,789.1274)">
|
||||
<polygon points="652.39,499.94,629.89,518.93,629.89,509.46,607.39,509.46,607.39,490.51,629.89,490.51,629.89,481.04" fill="#333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 638 B |
9
data/theme/default/Update.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.1999733,0,0,1.1999733,-579.72065,-63.509343)">
|
||||
<path d="m 528.054,71.68 c -3.166,-7.28 -10.25,-11.956 -18.232,-11.956 -8.164,0 -15.625,5.116 -18.564,12.729 l 6.188,2.39 c 1.959,-5.077 6.934,-8.486 12.377,-8.486 5.251,0 9.9,3.048 12.05,7.791 l -4.514,1.804 11.543,6.66 3.377,-12.617 -4.225,1.685 z"
|
||||
style="fill:#333333"/>
|
||||
<path d="m 509.822,92.88 c -5.205,0 -9.952,-3.14 -12.074,-7.853 l 4.45,-1.721 -11.423,-6.515 -3.497,12.281 4.26,-1.646 c 3.106,7.252 10.357,12.084 18.284,12.084 8.193,0 15.449,-4.917 18.484,-12.524 l -6.158,-2.457 c -2.026,5.073 -6.862,8.351 -12.326,8.351 z"
|
||||
style="fill:#333333"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 744 B |
7
data/theme/default/Validate.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2,0,0,1.2,-651.9628,-63.5416)">
|
||||
<path d="m 569.969,57.117 c -12.428,0 -22.5,10.073 -22.5,22.501 0,12.426 10.072,22.5 22.5,22.5 12.426,0 22.5,-10.074 22.5,-22.5 0,-12.428 -10.074,-22.501 -22.5,-22.501 z m 11.324,21.029 -10.391,10.391 c -0.514,0.514 -1.357,0.514 -1.871,0 L 558.642,78.148 c -0.514,-0.514 -0.514,-1.355 0,-1.869 l 2.279,-2.281 c 0.867,-0.867 2.174,-0.752 2.943,0.02 l 5.166,5.164 c 0.514,0.516 1.357,0.516 1.871,0 l 5.182,-5.18 c 0.867,-0.869 2.121,-0.816 2.934,-0.002 l 2.275,2.275 c 0.515,0.513 0.515,1.357 10e-4,1.871 z"
|
||||
style="fill:#333333;fill-rule:evenodd" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 711 B |
13
data/theme/default/VolumeMax.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.300523,0,0,1.300523,-4.3338536,-458.79144)">
|
||||
<polygon points="16.142,372.236 26.103,362.274 26.103,394.151 16.142,384.189 7.177,384.189 7.177,372.236 "
|
||||
style="fill:#333333" />
|
||||
<path d="m 34.567,369.749 -2.816,2.816 c 1.447,1.446 2.344,3.444 2.344,5.647 0,2.203 -0.896,4.201 -2.344,5.646 l 2.816,2.816 c 2.168,-2.168 3.512,-5.161 3.512,-8.463 0,-3.302 -1.344,-6.293 -3.512,-8.462 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 39.704,365.025 -2.816,2.816 c 2.645,2.645 4.283,6.297 4.283,10.324 0,4.027 -1.639,7.68 -4.283,10.324 l 2.816,2.816 c 3.365,-3.367 5.451,-8.015 5.451,-13.141 0,-5.123 -2.086,-9.771 -5.451,-13.139 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 44.56,359.854 -2.816,2.816 c 3.982,3.982 6.449,9.48 6.449,15.543 0,6.063 -2.467,11.561 -6.447,15.543 l 2.814,2.816 c 4.705,-4.704 7.617,-11.197 7.617,-18.359 0,-7.162 -2.914,-13.655 -7.617,-18.359 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.0 KiB |
9
data/theme/default/VolumeMute.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2249898,0,0,1.2249898,-3.7905268,-358.08412)">
|
||||
<polygon points="16.82,325.684 7.176,325.684 7.176,312.827 16.82,312.827 27.534,302.112 27.534,336.398 "
|
||||
style="fill:#333333" />
|
||||
<path d="m 47.081,319.255 4.918,-4.917 c 0.238,-0.24 0.238,-0.631 0,-0.87 l -2.607,-2.606 c -0.237,-0.238 -0.629,-0.238 -0.866,0 l -4.919,4.918 -4.92,-4.918 c -0.236,-0.238 -0.629,-0.238 -0.867,0 l -2.605,2.606 c -0.239,0.239 -0.239,0.63 0,0.87 l 4.917,4.917 -4.917,4.917 c -0.239,0.24 -0.239,0.632 0,0.87 l 2.607,2.607 c 0.236,0.236 0.629,0.236 0.867,0 l 4.918,-4.919 4.916,4.919 c 0.24,0.236 0.632,0.236 0.869,0 l 2.607,-2.607 c 0.236,-0.237 0.236,-0.63 0,-0.87 l -4.918,-4.917 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 820 B |
7
data/theme/default/Warning.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2000035,0,0,1.2000035,-76.201658,-63.592236)">
|
||||
<path d="M 111.858,93.287 93.524,62.64 C 91.67,59.542 88.639,59.543 86.789,62.641 L 68.476,93.286 c -1.851,3.098 -0.413,5.633 3.197,5.633 h 36.993 c 3.608,-10e-4 5.045,-2.535 3.192,-5.632 z M 88.2,73.367 c 0,-1.084 0.887,-1.969 1.969,-1.969 1.083,0 1.969,0.885 1.969,1.969 v 9.192 c 0,1.085 -0.886,1.969 -1.969,1.969 -1.082,0 -1.969,-0.884 -1.969,-1.969 v -9.192 z m 1.969,19.596 c -1.449,0 -2.625,-1.177 -2.625,-2.625 0,-1.451 1.176,-2.624 2.625,-2.624 1.45,0 2.625,1.173 2.625,2.624 0,1.449 -1.175,2.625 -2.625,2.625 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 724 B |
17
data/theme/default/WhereAmI.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.2000267,0,0,1.2000267,-220.089,-63.543123)">
|
||||
<path d="m 232.569,79.617 -16.755,-3.49 2.864,-5.115 -5.023,3.029 -3.585,-16.924 -3.585,16.924 -5.023,-3.029 2.864,5.115 -16.755,3.49 h -0.001 l 0.001,0 0,0 16.755,3.49 -2.864,5.114 5.023,-3.029 3.585,16.925 3.585,-16.925 5.023,3.029 -2.864,-5.114 16.755,-3.49 0,0 0,0 0,0 z m -22.499,4.302 c -2.376,0 -4.302,-1.925 -4.302,-4.301 0,-2.375 1.926,-4.301 4.302,-4.301 2.376,0 4.302,1.926 4.302,4.301 0,2.376 -1.926,4.301 -4.302,4.301 z"
|
||||
style="fill:#451c54" />
|
||||
<g>
|
||||
<path d="m 199.03,75.203 c 1.204,-2.997 3.589,-5.393 6.58,-6.609 l 1.242,-5.866 c -6.921,1.314 -12.371,6.771 -13.676,13.694 l 5.854,-1.219 z"
|
||||
style="fill:#451c54" />
|
||||
<path d="m 221.139,84.026 c -1.204,3.017 -3.604,5.428 -6.615,6.644 l -1.24,5.861 c 6.939,-1.307 12.404,-6.779 13.703,-13.723 l -5.848,1.218 z"
|
||||
style="fill:#451c54" />
|
||||
<path d="m 214.529,68.586 c 3.002,1.214 5.396,3.615 6.603,6.622 l 5.852,1.219 C 225.679,69.495 220.22,64.032 213.289,62.725 l 1.24,5.861 z"
|
||||
style="fill:#451c54" />
|
||||
<path d="m 205.614,90.663 c -3,-1.219 -5.391,-3.624 -6.592,-6.632 l -5.85,-1.218 c 1.299,6.935 6.754,12.402 13.684,13.715 l -1.242,-5.865 z"
|
||||
style="fill:#451c54" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
13
data/theme/default/WrapAround.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="64" width="64" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="m36.594,31.471,9.9047,12.555,9.3732-12.561-9.4514,0.0011z" fill="#333"/>
|
||||
<path fill="#353535" d="m31.724,51.573c-6.6423,0-11.845-9.0656-11.845-20.048s5.203-20.048,11.845-20.048c7.389,0,12.257,7.595,11.625,20.494,3.1648,0.01798,3.0508-0.01346,7.1142-0.17954,0.674-20.911-8.501-28.985-18.739-28.985-9.0867,0-18.935,12.636-18.935,28.584s9.849,29.002,18.935,28.855"/>
|
||||
</svg>
|
After Width: | Height: | Size: 818 B |
9
data/theme/default/ZoomIn.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="64" height="64">
|
||||
<g transform="matrix(1.20002,0,0,1.20002,-651.97375,-639.15903)">
|
||||
<path d="m 591.775,574.756 -10.129,-10.127 c -0.762,-0.762 -1.918,-0.887 -2.822,-0.393 l -2.16,-2.16 c 1.84,-2.613 2.932,-5.791 2.932,-9.223 0,-8.857 -7.207,-16.063 -16.064,-16.063 -8.857,0 -16.063,7.205 -16.063,16.063 0,8.858 7.205,16.064 16.063,16.064 3.418,0 6.582,-1.08 9.188,-2.906 l 2.174,2.176 c -0.467,0.896 -0.336,2.029 0.414,2.781 l 10.129,10.127 c 0.924,0.926 2.439,0.926 3.363,0 l 2.977,-2.975 c 0.922,-0.925 0.922,-2.438 -0.002,-3.364 z m -28.244,-11.787 c -5.584,0 -10.113,-4.529 -10.113,-10.115 0,-5.584 4.529,-10.113 10.113,-10.113 5.586,0 10.115,4.529 10.115,10.113 0,5.585 -4.529,10.115 -10.115,10.115 z"
|
||||
style="fill:#333333" />
|
||||
<path d="m 568.498,550.863 h -3 v -3 c 0,-1.104 -0.895,-2 -2,-2 -1.104,0 -2,0.896 -2,2 v 3 h -3 c -1.104,0 -2,0.896 -2,2 0,1.105 0.896,2 2,2 h 3 v 3 c 0,1.105 0.896,2 2,2 1.105,0 2,-0.895 2,-2 v -3 h 3 c 1.105,0 2,-0.895 2,-2 0,-1.103 -0.894,-2 -2,-2 z"
|
||||
style="fill:#333333" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Button.prog",
|
||||
color:"{ewol}THEME:COLOR:Button.json"
|
||||
program:"THEME_GUI:///Button.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Button.json?lib=ewol"
|
||||
}
|
||||
|
@ -6,6 +6,6 @@
|
||||
padding-top:10,
|
||||
padding-buttom:10,
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:CheckBox.prog",
|
||||
color:"{ewol}THEME:COLOR:CheckBox.json"
|
||||
program:"THEME_GUI:///CheckBox.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///CheckBox.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:ContextMenu.prog",
|
||||
color:"{ewol}THEME:COLOR:ContextMenu.json"
|
||||
program:"THEME_GUI:///ContextMenu.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///ContextMenu.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Entry.prog",
|
||||
color:"{ewol}THEME:COLOR:Entry.json"
|
||||
program:"THEME_GUI:///Entry.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Entry.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:PopUp.prog",
|
||||
color:"{ewol}THEME:COLOR:PopUp.json"
|
||||
program:"THEME_GUI:///PopUp.prog?lib=ewol,
|
||||
color:"THEME_COLOR:///PopUp.json?lib=ewol"
|
||||
}
|
||||
|
@ -4,6 +4,6 @@
|
||||
padding-top:16,
|
||||
padding-buttom:16,
|
||||
change-time:200,
|
||||
program:"{ewol}THEME:GUI:WidgetScrolled.prog",
|
||||
color:"{ewol}THEME:COLOR:WidgetScrolled.json"
|
||||
program:"THEME_GUI:///WidgetScrolled.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///WidgetScrolled.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Button.prog",
|
||||
color:"{ewol}THEME:COLOR:Button.json"
|
||||
program:"THEME_GUI:///Button.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Button.json?lib=ewol"
|
||||
}
|
||||
|
@ -20,6 +20,6 @@
|
||||
box-size:20,
|
||||
box-inside:12,
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:CheckBox.prog",
|
||||
color:"{ewol}THEME:COLOR:CheckBox.json"
|
||||
program:"THEME_GUI:///CheckBox.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///CheckBox.json?lib=ewol"
|
||||
}
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:2,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:ContextMenu.prog",
|
||||
color:"{ewol}THEME:COLOR:ContextMenu.json"
|
||||
program:"THEME_GUI:///ContextMenu.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///ContextMenu.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:2,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Entry.prog",
|
||||
color:"{ewol}THEME:COLOR:Entry.json"
|
||||
program:"THEME_GUI:///Entry.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Entry.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:2,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:PopUp.prog",
|
||||
color:"{ewol}THEME:COLOR:PopUp.json"
|
||||
program:"THEME_GUI:///PopUp.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///PopUp.json?lib=ewol"
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
entry-shaper:"{ewol}THEME:GUI:SelectEntry.json",
|
||||
up-shaper:"{ewol}THEME:GUI:SelectBt.json",
|
||||
entry-shaper:"THEME_GUI:///SelectEntry.json?lib=ewol",
|
||||
up-shaper:"THEME_GUI:///SelectBt.json?lib=ewol",
|
||||
up-data:"<label>*</label>",
|
||||
}
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Button.prog",
|
||||
color:"{ewol}THEME:COLOR:Button.json"
|
||||
program:"THEME_GUI:///Button.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Button.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Entry.prog",
|
||||
color:"{ewol}THEME:COLOR:Entry.json"
|
||||
program:"THEME_GUI:///Entry.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Entry.json?lib=ewol"
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
entry-shaper:"{ewol}THEME:GUI:SpinEntry.json",
|
||||
up-shaper:"{ewol}THEME:GUI:SpinUp.json",
|
||||
entry-shaper:"THEME_GUI:///SpinEntry.json?lib=ewol",
|
||||
up-shaper:"THEME_GUI:///SpinUp.json?lib=ewol",
|
||||
up-data:"<label>+</label>",
|
||||
down-shaper:"{ewol}THEME:GUI:SpinDown.json",
|
||||
down-shaper:"THEME_GUI:///SpinDown.json?lib=ewol",
|
||||
down-data:"<label>-</label>",
|
||||
}
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Button.prog",
|
||||
color:"{ewol}THEME:COLOR:Button.json"
|
||||
program:"THEME_GUI:///Button.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Button.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Entry.prog",
|
||||
color:"{ewol}THEME:COLOR:Entry.json"
|
||||
program:"THEME_GUI:///Entry.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Entry.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:1,
|
||||
|
||||
change-time:356,
|
||||
program:"{ewol}THEME:GUI:Button.prog",
|
||||
color:"{ewol}THEME:COLOR:Button.json"
|
||||
program:"THEME_GUI:///Button.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///Button.json?lib=ewol"
|
||||
}
|
||||
|
@ -18,6 +18,6 @@
|
||||
padding-in-buttom:3,
|
||||
|
||||
change-time:200,
|
||||
program:"{ewol}THEME:GUI:WidgetScrolled.prog",
|
||||
color:"{ewol}THEME:COLOR:WidgetScrolled.json"
|
||||
program:"THEME_GUI:///WidgetScrolled.prog?lib=ewol",
|
||||
color:"THEME_COLOR:///WidgetScrolled.json?lib=ewol"
|
||||
}
|
||||
|
@ -8,10 +8,10 @@ Overview: {#ewol_page_bases_overview}
|
||||
|
||||
EWOL is an OpenGL library for creating graphical user interfaces.
|
||||
It works on many UNIX-like platforms, Windows, and OS X and some mobile platforms Android, iOs.
|
||||
EWOL is released under the APACHE-2 license, which allows for very flexible licensing of client applications.
|
||||
EWOL is released under the MPL v2.0 license, which allows for very flexible licensing of client applications.
|
||||
EWOL has a C++ architecture that allows for maximum flexibility.
|
||||
|
||||
**APACHE-2 license limitation:** I limit myself to use only Apache2 / MIT / BSD / PNG licencing to permit to release binary on IOs.
|
||||
**MPL v2.0 license limitation:** I limit myself to use only Apache2 / MIT / BSD / PNG / MPL licencing to permit to release binary on IOs.
|
||||
This I a big point, because it need to rewrite many libraries (like SVG...).
|
||||
|
||||
|
||||
@ -37,7 +37,7 @@ Architecture: {#ewol_page_bases_architecture}
|
||||
One of the important point to know in this framework is some of absurd things came from the multiple architecture type.
|
||||
|
||||
I will Explain the main points:
|
||||
- IOs does **NOT** simply support the shared object sub lib, this force ewol to be APACHE-2, and depend on some sub-library with small license restriction.
|
||||
- IOs does **NOT** simply support the shared object sub lib, this force ewol to be MPL v2.0, and depend on some sub-library with small license restriction.
|
||||
- Android have a JAVA main, then the application main will not be used with this platform
|
||||
- Android event (keyboard, mouse, touch-screen and ...) will arrive in asynchron mode ==> need to be resynchronyse in one thread
|
||||
- Only one graphyc framework is availlable on all platform. This is OpenGL (windows phone is not supported (moribund archi))
|
||||
|
@ -4,15 +4,15 @@ FAQ {#page_FAQ}
|
||||
What is ewol licence
|
||||
--------------------
|
||||
|
||||
This is really simple : APACHE-2 :
|
||||
This is really simple : MPL v2.0 :
|
||||
|
||||
Copyright ewol Edouard DUPIN
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
Licensed under the Mozilla Public License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
<http://www.apache.org/licenses/LICENSE-2.0>
|
||||
<https://www.mozilla.org/MPL/2.0>
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@ -27,7 +27,7 @@ Why we use "DECLARE_FACTORY" Macro?
|
||||
-----------------------------------
|
||||
|
||||
For some reason!!! But everything might be clear:
|
||||
- In ewol we masively use ememory::SharedPtr (simple wrapper over std::shared_ptr (that is not thread safe ...)).
|
||||
- In ewol we masively use ememory::SharedPtr.
|
||||
- The main class : ewol::Object herited from ememory::EnableSharedFromThis<ewol::Object> to permit to access at his own ememory::SharedPtr.
|
||||
- Acces At his own ememory::SharedPtr is not allowed in the class contructor/destructor.
|
||||
- Many time for meta-widget we need to propagate our ememory::SharedPtr in child through the ememory::WeakPtr.
|
||||
|
@ -42,16 +42,16 @@ This exclude the classical extern library with licence:
|
||||
- L-GPL
|
||||
- GPL
|
||||
|
||||
License (APACHE 2) {#ewol_mainpage_license}
|
||||
License (MPL v2.0) {#ewol_mainpage_license}
|
||||
==================
|
||||
|
||||
Copyright ewol Edouard DUPIN
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
Licensed under the Mozilla Public License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
<http://www.apache.org/licenses/LICENSE-2.0>
|
||||
<https://www.mozilla.org/MPL/2.0>
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@ -65,25 +65,25 @@ Sub library: {#ewol_mainpage_sub}
|
||||
|
||||
License:
|
||||
|
||||
- [**etk**](http://atria-soft.github.io/etk) : APACHE-2
|
||||
- [**elog**](http://atria-soft.github.io/elog) : APACHE-2
|
||||
- [**etk**](http://atria-soft.github.io/etk) : MPL v2.0
|
||||
- [**elog**](http://atria-soft.github.io/elog) : MPL v2.0
|
||||
+ **linearmath** : z-lib (subset of bullet lib)
|
||||
+ [**earchive**](http://atria-soft.github.io/earchive) : APACHE-2
|
||||
+ [**earchive**](http://atria-soft.github.io/earchive) : MPL v2.0
|
||||
* **zlib** : z-lib
|
||||
- [**egami**](http://atria-soft.github.io/egami) : APACHE-2
|
||||
+ [**esvg**](http://atria-soft.github.io/esvg) : APACHE-2
|
||||
- [**egami**](http://atria-soft.github.io/egami) : MPL v2.0
|
||||
+ [**esvg**](http://atria-soft.github.io/esvg) : MPL v2.0
|
||||
+ **libpng** : PNG
|
||||
- **libogg** : BSD-like
|
||||
- **libfreetype** : BSD-like
|
||||
- [**e-json**](http://atria-soft.github.io/ejson) : APACHE-2
|
||||
- [**e-xml**](http://atria-soft.github.io/exml) : APACHE-2
|
||||
- [**audio**](http://musicdsp.github.io/audio) : APACHE-2
|
||||
- [**e-json**](http://atria-soft.github.io/ejson) : MPL v2.0
|
||||
- [**e-xml**](http://atria-soft.github.io/exml) : MPL v2.0
|
||||
- [**audio**](http://musicdsp.github.io/audio) : MPL v2.0
|
||||
- [**audio-orchestra**](http://musicdsp.github.io/audio-orchestra) : MIT
|
||||
- [**audio-drain**](http://musicdsp.github.io/audio-drain) : APACHE-2
|
||||
- [**audio-river**](http://musicdsp.github.io/audio-river) : APACHE-2
|
||||
- [**audio-ess**](http://musicdsp.github.io/audio-ess) : APACHE-2
|
||||
- [**ege**](http://atria-soft.github.io/ege) : APACHE-2
|
||||
- [**dollar**](http://atria-soft.github.io/dollar) : APACHE-2
|
||||
- [**audio-drain**](http://musicdsp.github.io/audio-drain) : MPL v2.0
|
||||
- [**audio-river**](http://musicdsp.github.io/audio-river) : MPL v2.0
|
||||
- [**audio-ess**](http://musicdsp.github.io/audio-ess) : MPL v2.0
|
||||
- [**ege**](http://atria-soft.github.io/ege) : MPL v2.0
|
||||
- [**dollar**](http://atria-soft.github.io/dollar) : MPL v2.0
|
||||
...
|
||||
|
||||
Description: {#ewol_mainpage_desc}
|
||||
|
@ -39,9 +39,6 @@ Creating an object is really simple:
|
||||
APPL_INFO("We just create a button widget with unique ID=" << tmpButon->getId() << " name='" << tmpButon->propertyName.get() << "'");
|
||||
```
|
||||
|
||||
Note that all object created are ememory::SharedPtr base for the current version on std::shared_ptr.
|
||||
We wrapped it because the current inplementation of std::shared_ptr is not thread safe, and we want use a thread-safe version of it.
|
||||
|
||||
**Note:**
|
||||
|
||||
```
|
||||
@ -90,7 +87,7 @@ Find a global Object (ouside an Object)
|
||||
#include <ewol/context/Context.hpp>
|
||||
|
||||
ewol::ObjectShared tmpObject = ewol::getContext().getEObjectManager().getObjectNamed("obj Name");
|
||||
if (tmpObject == nullptr) {
|
||||
if (tmpObject == null) {
|
||||
APPL_ERROR("The Object does not exist");
|
||||
}
|
||||
```
|
||||
@ -100,7 +97,7 @@ Find a global Object (inside an Object)
|
||||
|
||||
```{.cpp}
|
||||
ewol::ObjectShared tmpObject = getObjectNamed("obj Name");
|
||||
if (tmpObject == nullptr) {
|
||||
if (tmpObject == null) {
|
||||
APPL_ERROR("The Object does not exist");
|
||||
}
|
||||
```
|
||||
@ -123,6 +120,6 @@ It could be really interesting to retrive your own instance:
|
||||
```{.cpp}
|
||||
ewol::ObjectShared tmpObject ...;
|
||||
|
||||
appl::MyOwnObjectShared myObject = std::dynamic_pointer_cast<appl::MyOwnObject>(tmpObject);
|
||||
appl::MyOwnObjectShared myObject = ememory::dynamicPointerCast<appl::MyOwnObject>(tmpObject);
|
||||
```
|
||||
|
||||
|
@ -46,7 +46,7 @@ Get Parameter {#ewol_tutorial_object_config_param
|
||||
-------------
|
||||
|
||||
```{.cpp}
|
||||
std::string val = tmpObject->properties.get("name");
|
||||
etk::String val = tmpObject->properties.get("name");
|
||||
APPL_INFO("Get Object property: name='" << val << "'");
|
||||
```
|
||||
|
||||
|
@ -54,7 +54,7 @@ namespace appl {
|
||||
void init() {
|
||||
ewol::Object::init();
|
||||
m_button = ewol::widget::Button::create();
|
||||
if (m_button == nullptr) {
|
||||
if (m_button == null) {
|
||||
APPL_ERROR("Can not create button...");
|
||||
return;
|
||||
}
|
||||
@ -114,7 +114,7 @@ namespace appl {
|
||||
public:
|
||||
ewol::object::Signal<> signalEmpty;
|
||||
ewol::object::Signal<bool> signalBoolean;
|
||||
ewol::object::Signal<std::string> signalString;
|
||||
ewol::object::Signal<etk::String> signalString;
|
||||
protected:
|
||||
//! @brief Constructor
|
||||
MyObj() :
|
||||
|
@ -29,7 +29,7 @@ Generic Properties {#ewol_tutorial_file_access_pr
|
||||
By default we dertermine some basics for files.
|
||||
|
||||
Then we need to determine file in the tree with:
|
||||
- **"DATA:XXX"** Application internal data
|
||||
- **"DATA:///XXX"** Application internal data
|
||||
* Linux: /usr/share/applName/
|
||||
* Android: /xxx/yyy/applName.apk/asssets/
|
||||
* IOs: applName.app/share
|
||||
@ -47,7 +47,7 @@ Then we need to determine file in the tree with:
|
||||
|
||||
When you will call a file, you need to just call it with the starting name.
|
||||
|
||||
For example if I want to access at an application data I will call the file : "DATA:myImage.png"
|
||||
For example if I want to access at an application data I will call the file : "DATA:///myImage.png"
|
||||
|
||||
Integrate a file in a package {#ewol_tutorial_file_access_package}
|
||||
=============================
|
||||
@ -61,7 +61,7 @@ In your ```lutin_xxx.py``` file add:
|
||||
myModule.copy_path("relative/path/start*.png","destination/folder/")
|
||||
```
|
||||
|
||||
And now you can acces on these file with : "DATA:destination/folder/fileNewName.svg"
|
||||
And now you can acces on these file with : "DATA:///destination/folder/fileNewName.svg"
|
||||
|
||||
|
||||
Read a file {#ewol_tutorial_file_access_read}
|
||||
@ -73,7 +73,7 @@ Read a file {#ewol_tutorial_file_access_read}
|
||||
|
||||
...
|
||||
|
||||
etk::FSNode file("DATA:destination/folder/file.svg");
|
||||
etk::FSNode file("DATA:///destination/folder/file.svg");
|
||||
if (file.exist() == false) {
|
||||
APPL_ERROR("Can not read the file (Does not exist)");
|
||||
return;
|
||||
@ -86,7 +86,7 @@ Read a file {#ewol_tutorial_file_access_read}
|
||||
// get a char
|
||||
APPL_INFO("read in: " << file << " the first char='" << file.fileGet() << "'");
|
||||
// Get a line
|
||||
std::string output;
|
||||
etk::String output;
|
||||
file.fileGets(output);
|
||||
APPL_INFO("and the end of the line ='" << output << "'");
|
||||
// close the file (note : if you did not do it, it will be close automaticly with an error)
|
||||
@ -144,7 +144,7 @@ And when you want to change the theme, just call:
|
||||
This is not done automaticly, because reloading the resources can have a real cost of time.
|
||||
```
|
||||
|
||||
You can acces on your theme with accessing the filename: "THEME:GUI_COLOR:your/sub/path/file.xx"
|
||||
You can acces on your theme with accessing the filename: "THEME_GUI_COLOR:///your/sub/path/file.xx"
|
||||
|
||||
An important think is that the theme file is searching in many path in the order:
|
||||
- USERDATA:GUI_COLOR:your/sub/path/file.xx
|
||||
|
@ -32,7 +32,7 @@ For this example we will load a configuration file:
|
||||
namespace appl {
|
||||
class MyObj : public ewol::Object {
|
||||
public:
|
||||
eproperty::Value<std::string> propertyConfig;
|
||||
eproperty::Value<etk::String> propertyConfig;
|
||||
private:
|
||||
ememory::SharedPtr<ewol::resource::ConfigFile> m_config;
|
||||
int32_t m_configValId;
|
||||
@ -40,7 +40,7 @@ namespace appl {
|
||||
//! @brief Constructor
|
||||
MyObj(void) :
|
||||
propertyConfig(this, "file",
|
||||
"DATA:ExapleConfig.json",
|
||||
"DATA:///ExapleConfig.json",
|
||||
"no desc",
|
||||
&appl::MyObj::onChangePropertyFile),
|
||||
m_configValId(-1) {
|
||||
@ -57,7 +57,7 @@ namespace appl {
|
||||
public:
|
||||
void onChangePropertyFile() {
|
||||
m_config = ewol::resource::ConfigFile::create(*propertyConfig);
|
||||
if (m_config != nullptr) {
|
||||
if (m_config != null) {
|
||||
m_configValId = m_config->request("exampleConfigName");
|
||||
}
|
||||
}
|
||||
@ -100,7 +100,7 @@ namespace appl {
|
||||
m_resourceLevel = 4;
|
||||
addObjectType("appl::MyResource");
|
||||
}
|
||||
void init(const std::string& _name) {
|
||||
void init(const etk::String& _name) {
|
||||
ewol::Resource::init(_name);
|
||||
}
|
||||
public:
|
||||
@ -128,7 +128,7 @@ When loose hardware (juste update internal state the hardware is no more present
|
||||
void removeContextToLate();
|
||||
```
|
||||
|
||||
When user request to reload all resources (can be usefull when using file type : THEME:GUI:xxx)
|
||||
When user request to reload all resources (can be usefull when using file type : THEME_GUI:///xxx)
|
||||
```{.cpp}
|
||||
void reload();
|
||||
```
|
||||
|
@ -32,7 +32,7 @@ First create the widget:
|
||||
|
||||
```{.cpp}
|
||||
ewol::widget::ButtonShared tmpWidget = ewol::widget::Button::create();
|
||||
if (tmpWidget == nullptr) {
|
||||
if (tmpWidget == null) {
|
||||
APPL_CRITICAL("The widget can not be created");
|
||||
}
|
||||
```
|
||||
@ -57,10 +57,10 @@ Call create and direct configuration
|
||||
We can configure the wiget before the init() is called.
|
||||
```{.cpp}
|
||||
ewol::widget::ButtonShared tmpWidget = ewol::widget::Button::create(
|
||||
"name", std::string("my name"),
|
||||
"name", etk::String("my name"),
|
||||
"expand", bvec2(true,false),
|
||||
"fill", bvec2(true,true));
|
||||
if (tmpWidget == nullptr) {
|
||||
if (tmpWidget == null) {
|
||||
APPL_CRITICAL("The widget can not be created");
|
||||
}
|
||||
```
|
||||
@ -78,7 +78,7 @@ Call generic factory system (compositing)
|
||||
```{.cpp}
|
||||
#include <ewol::widget::Composer.hpp>
|
||||
ewol::widget::WidgetShared tmpWidget = ewol::widget::composerGenerateString("<button name='my name' expand='true,false' fill='true,true'/>");
|
||||
if (tmpWidget == nullptr) {
|
||||
if (tmpWidget == null) {
|
||||
APPL_CRITICAL("The widget can not be created");
|
||||
}
|
||||
```
|
||||
@ -98,8 +98,8 @@ File ```gui.xml```
|
||||
|
||||
```{.cpp}
|
||||
#include <ewol::widget::Composer.hpp>
|
||||
ewol::widget::WidgetShared tmpWidget = ewol::widget::composerGenerateFile("DATA:gui.xml");
|
||||
if (tmpWidget == nullptr) {
|
||||
ewol::widget::WidgetShared tmpWidget = ewol::widget::composerGenerateFile("DATA:///gui.xml");
|
||||
if (tmpWidget == null) {
|
||||
APPL_CRITICAL("The widget can not be created");
|
||||
}
|
||||
```
|
||||
|
@ -74,7 +74,7 @@ Simple example:
|
||||
continue;
|
||||
}
|
||||
// Get the sub-node name:
|
||||
std::string widgetName = pNode.getValue();
|
||||
etk::String widgetName = pNode.getValue();
|
||||
if (getWidgetManager().exist(widgetName) == false) {
|
||||
APPL_ERROR("[" << getId() << "] (l "<<pNode->getPos()<<") Unknown basic node='" << widgetName << "' not in : [" << getWidgetManager().list() << "]" );
|
||||
continue;
|
||||
|
@ -1,13 +1,16 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/DrawProperty.hpp>
|
||||
#include <ewol/debug.hpp>
|
||||
|
||||
std::ostream& ewol::operator <<(std::ostream& _os, const ewol::DrawProperty& _obj) {
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::DrawProperty);
|
||||
|
||||
etk::Stream& ewol::operator <<(etk::Stream& _os, const ewol::DrawProperty& _obj) {
|
||||
_os << "{ windowsSize=" << _obj.m_windowsSize << " start=" << _obj.m_origin << " stop=" << (_obj.m_origin+_obj.m_size) << "}";
|
||||
return _os;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -43,6 +43,6 @@ namespace ewol {
|
||||
ivec2 m_size; //!< Windows clipping upper widget (can not be <0 and >m_windowsSize)
|
||||
void limit(const vec2& _origin, const vec2& _size);
|
||||
};
|
||||
std::ostream& operator <<(std::ostream& _os, const ewol::DrawProperty& _obj);
|
||||
etk::Stream& operator <<(etk::Stream& _os, const ewol::DrawProperty& _obj);
|
||||
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/Padding.hpp>
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::Padding);
|
||||
|
||||
ewol::Padding::Padding() {
|
||||
// nothing to do...
|
||||
@ -76,7 +78,7 @@ ewol::Padding ewol::Padding::operator+(const Padding& _v) {
|
||||
m_value[3] + _v.m_value[3]);
|
||||
}
|
||||
|
||||
std::ostream& ewol::operator <<(std::ostream& _os, const ewol::Padding& _obj) {
|
||||
etk::Stream& ewol::operator <<(etk::Stream& _os, const ewol::Padding& _obj) {
|
||||
_os << "{";
|
||||
_os << _obj.xLeft();
|
||||
_os << ",";
|
||||
|
@ -1,11 +1,12 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <etk/types.hpp>
|
||||
#include <etk/Stream.hpp>
|
||||
|
||||
namespace ewol {
|
||||
/**
|
||||
@ -37,6 +38,6 @@ namespace ewol {
|
||||
Padding operator+(const Padding& _v);
|
||||
|
||||
};
|
||||
std::ostream& operator <<(std::ostream& _os, const ewol::Padding& _obj);
|
||||
etk::Stream& operator <<(etk::Stream& _os, const ewol::Padding& _obj);
|
||||
};
|
||||
|
||||
|
@ -1,25 +1,41 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
#include <ewol/compositing/Area.hpp>
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::compositing::Area);
|
||||
|
||||
// VBO table property:
|
||||
const int32_t ewol::compositing::Area::m_vboIdCoord(0);
|
||||
const int32_t ewol::compositing::Area::m_vboIdCoordText(1);
|
||||
const int32_t ewol::compositing::Area::m_vboIdColor(2);
|
||||
#define NB_VBO (3)
|
||||
|
||||
ewol::compositing::Area::Area(const ivec2& _size) :
|
||||
m_position(0.0, 0.0, 0.0),
|
||||
m_color(etk::color::white),
|
||||
m_GLprogram(nullptr),
|
||||
m_GLprogram(null),
|
||||
m_GLPosition(-1),
|
||||
m_GLMatrix(-1),
|
||||
m_GLColor(-1),
|
||||
m_GLtexture(-1),
|
||||
m_GLtexID(-1),
|
||||
m_resource(nullptr) {
|
||||
m_resource(null) {
|
||||
m_resource = ewol::resource::Texture::create();
|
||||
m_resource->setImageSize(_size);
|
||||
m_resource->flush();
|
||||
// Create the VBO:
|
||||
m_VBO = gale::resource::VirtualBufferObject::create(NB_VBO);
|
||||
if (m_VBO == null) {
|
||||
EWOL_ERROR("can not instanciate VBO ...");
|
||||
return;
|
||||
}
|
||||
// TO facilitate some debugs we add a name of the VBO:
|
||||
m_VBO->setName("[VBO] of ewol::compositing::Area");
|
||||
loadProgram();
|
||||
}
|
||||
|
||||
@ -30,8 +46,8 @@ ewol::compositing::Area::~Area() {
|
||||
void ewol::compositing::Area::loadProgram() {
|
||||
// get the shader resource :
|
||||
m_GLPosition = 0;
|
||||
m_GLprogram = gale::resource::Program::create(std::string("{ewol}DATA:textured3D.prog"));
|
||||
if (m_GLprogram != nullptr) {
|
||||
m_GLprogram = gale::resource::Program::create(etk::String("DATA:///textured3D.prog?lib=ewol"));
|
||||
if (m_GLprogram != null) {
|
||||
m_GLPosition = m_GLprogram->getAttribute("EW_coord3d");
|
||||
m_GLColor = m_GLprogram->getAttribute("EW_color");
|
||||
m_GLtexture = m_GLprogram->getAttribute("EW_texture2d");
|
||||
@ -41,15 +57,15 @@ void ewol::compositing::Area::loadProgram() {
|
||||
}
|
||||
|
||||
void ewol::compositing::Area::draw(bool _disableDepthTest) {
|
||||
if (m_coord.size() <= 0) {
|
||||
if (m_VBO->bufferSize(m_vboIdCoord) <= 0) {
|
||||
//EWOL_WARNING("Nothink to draw...");
|
||||
return;
|
||||
}
|
||||
if (m_resource == nullptr) {
|
||||
if (m_resource == null) {
|
||||
// this is a normale case ... the user can choice to have no image ...
|
||||
return;
|
||||
}
|
||||
if (m_GLprogram == nullptr) {
|
||||
if (m_GLprogram == null) {
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
@ -59,24 +75,22 @@ void ewol::compositing::Area::draw(bool _disableDepthTest) {
|
||||
m_GLprogram->uniformMatrix(m_GLMatrix, tmpMatrix);
|
||||
// TextureID
|
||||
m_GLprogram->setTexture0(m_GLtexID, m_resource->getRendererId());
|
||||
// position :
|
||||
m_GLprogram->sendAttribute(m_GLPosition, m_coord);
|
||||
// Texture :
|
||||
m_GLprogram->sendAttribute(m_GLtexture, m_coordTex);
|
||||
// color :
|
||||
m_GLprogram->sendAttribute(m_GLColor, m_coordColor);
|
||||
// position:
|
||||
m_GLprogram->sendAttributePointer(m_GLPosition, m_VBO, m_vboIdCoord);
|
||||
// Texture:
|
||||
m_GLprogram->sendAttributePointer(m_GLtexture, m_VBO, m_vboIdColor);
|
||||
// color:
|
||||
m_GLprogram->sendAttributePointer(m_GLColor, m_VBO, m_vboIdCoordText);
|
||||
// Request the draw od the elements :
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_coord.size());
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_VBO->bufferSize(m_vboIdCoord));
|
||||
m_GLprogram->unUse();
|
||||
}
|
||||
|
||||
void ewol::compositing::Area::clear() {
|
||||
// call upper class
|
||||
ewol::Compositing::clear();
|
||||
// reset Buffer :
|
||||
m_coord.clear();
|
||||
m_coordTex.clear();
|
||||
m_coordColor.clear();
|
||||
// reset all VBOs:
|
||||
m_VBO->clear();
|
||||
// reset temporal variables :
|
||||
m_position = vec3(0.0, 0.0, 0.0);
|
||||
}
|
||||
@ -86,41 +100,43 @@ void ewol::compositing::Area::print(const ivec2& _size) {
|
||||
vec2 tex(0,1);
|
||||
point.setX(m_position.x());
|
||||
point.setY(m_position.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, tex);
|
||||
|
||||
tex.setValue(1,1);
|
||||
point.setX(m_position.x() + _size.x());
|
||||
point.setY(m_position.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, tex);
|
||||
|
||||
tex.setValue(1,0);
|
||||
point.setX(m_position.x() + _size.x());
|
||||
point.setY(m_position.y() + _size.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, tex);
|
||||
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, tex);
|
||||
|
||||
tex.setValue(0,0);
|
||||
point.setX(m_position.x());
|
||||
point.setY(m_position.y() + _size.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, tex);
|
||||
|
||||
tex.setValue(0,1);
|
||||
point.setX(m_position.x());
|
||||
point.setY(m_position.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, tex);
|
||||
|
||||
m_VBO->flush();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -18,7 +18,7 @@ namespace ewol {
|
||||
class Area : public ewol::Compositing {
|
||||
private:
|
||||
vec3 m_position; //!< The current position to draw
|
||||
etk::Color<> m_color; //!< The text foreground color
|
||||
etk::Color<float,4> m_color; //!< The text foreground color
|
||||
private:
|
||||
ememory::SharedPtr<gale::resource::Program> m_GLprogram; //!< pointer on the opengl display program
|
||||
int32_t m_GLPosition; //!< openGL id on the element (vertex buffer)
|
||||
@ -28,9 +28,11 @@ namespace ewol {
|
||||
int32_t m_GLtexID; //!< openGL id on the element (texture ID)
|
||||
private:
|
||||
ememory::SharedPtr<ewol::resource::Texture> m_resource; //!< texture resources
|
||||
std::vector<vec3 > m_coord; //!< internal coord of the object
|
||||
std::vector<vec2 > m_coordTex; //!< internal texture coordinate for every point
|
||||
std::vector<etk::Color<float> > m_coordColor; //!< internal color of the different point
|
||||
protected:
|
||||
static const int32_t m_vboIdCoord;
|
||||
static const int32_t m_vboIdCoordText;
|
||||
static const int32_t m_vboIdColor;
|
||||
ememory::SharedPtr<gale::resource::VirtualBufferObject> m_VBO;
|
||||
private:
|
||||
/**
|
||||
* @brief load the openGL program and get all the ID needed
|
||||
|
@ -1,26 +1,22 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <etk/types.hpp>
|
||||
#include <etk/math/Matrix4.hpp>
|
||||
#include <etk/math/Matrix4x4.hpp>
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
#include <ewol/compositing/Compositing.hpp>
|
||||
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::Compositing);
|
||||
|
||||
ewol::Compositing::Compositing() {
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
|
||||
ewol::Compositing::~Compositing() {
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
|
||||
void ewol::Compositing::resetMatrix() {
|
||||
m_matrixApply.identity();
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
#include <etk/types.hpp>
|
||||
#include <etk/math/Matrix4.hpp>
|
||||
#include <etk/math/Matrix4x4.hpp>
|
||||
|
||||
namespace ewol {
|
||||
class Compositing {
|
||||
@ -21,7 +21,7 @@ namespace ewol {
|
||||
/**
|
||||
* @brief Generic destructor
|
||||
*/
|
||||
virtual ~Compositing();
|
||||
virtual ~Compositing() = default;
|
||||
/**
|
||||
* @brief Virtal pure function that request the draw of all openGl elements
|
||||
*/
|
||||
|
@ -1,30 +1,37 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
#include <ewol/compositing/Drawing.hpp>
|
||||
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::compositing::Drawing);
|
||||
|
||||
// VBO table property:
|
||||
const int32_t ewol::compositing::Drawing::m_vboIdCoord(0);
|
||||
const int32_t ewol::compositing::Drawing::m_vboIdColor(1);
|
||||
#define NB_VBO (2)
|
||||
|
||||
#if 0
|
||||
|
||||
static void generatePolyGone(std::vector<vec2 > & input, std::vector<vec2 > & output )
|
||||
static void generatePolyGone(etk::Vector<vec2 > & input, etk::Vector<vec2 > & output )
|
||||
{
|
||||
if (input.size()<3) {
|
||||
return;
|
||||
}
|
||||
// TODO : Regenerate a linear poligone generation
|
||||
for (int32_t iii=1; iii<input.size()-1; iii++) {
|
||||
output.push_back(input[0]);
|
||||
output.push_back(input[iii]);
|
||||
output.push_back(input[iii+1]);
|
||||
output.pushBack(input[0]);
|
||||
output.pushBack(input[iii]);
|
||||
output.pushBack(input[iii+1]);
|
||||
}
|
||||
//EWOL_DEBUG("generate Plygone : " << input.size() << " == > " << output.size() );
|
||||
}
|
||||
|
||||
static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & output, float sx, float sy, float ex, float ey)
|
||||
static void SutherlandHodgman(etk::Vector<vec2 > & input, etk::Vector<vec2 > & output, float sx, float sy, float ex, float ey)
|
||||
{
|
||||
// with Sutherland-Hodgman-Algorithm
|
||||
if (input.size() <0) {
|
||||
@ -49,7 +56,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.y - (aaa*lastElement.x);
|
||||
destPoint.y = aaa*sx + bbb;
|
||||
destPoint.x = sx;
|
||||
output.push_back(destPoint);
|
||||
output.pushBack(destPoint);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > OUT ");
|
||||
}
|
||||
@ -57,7 +64,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
} else {
|
||||
if(true == inside) {
|
||||
//EWOL_DEBUG("element IN == > IN ");
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(input[iii]);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > IN ");
|
||||
//new point intersection ...
|
||||
@ -66,8 +73,8 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.y - (aaa*lastElement.x);
|
||||
destPoint.y = aaa*sx + bbb;
|
||||
destPoint.x = sx;
|
||||
output.push_back(destPoint);
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(destPoint);
|
||||
output.pushBack(input[iii]);
|
||||
}
|
||||
inside = true;
|
||||
}
|
||||
@ -94,7 +101,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.x - (aaa*lastElement.y);
|
||||
destPoint.y = sy;
|
||||
destPoint.x = sy*aaa + bbb;
|
||||
output.push_back(destPoint);
|
||||
output.pushBack(destPoint);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > OUT ");
|
||||
}
|
||||
@ -102,7 +109,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
} else {
|
||||
if(true == inside) {
|
||||
//EWOL_DEBUG("element IN == > IN ");
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(input[iii]);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > IN ");
|
||||
//new point intersection ...
|
||||
@ -111,8 +118,8 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.x - (aaa*lastElement.y);
|
||||
destPoint.y = sy;
|
||||
destPoint.x = sy*aaa + bbb;
|
||||
output.push_back(destPoint);
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(destPoint);
|
||||
output.pushBack(input[iii]);
|
||||
}
|
||||
inside = true;
|
||||
}
|
||||
@ -139,7 +146,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.y - (aaa*lastElement.x);
|
||||
destPoint.y = aaa*ex + bbb;
|
||||
destPoint.x = ex;
|
||||
output.push_back(destPoint);
|
||||
output.pushBack(destPoint);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > OUT ");
|
||||
}
|
||||
@ -147,7 +154,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
} else {
|
||||
if(true == inside) {
|
||||
//EWOL_DEBUG("element IN == > IN ");
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(input[iii]);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > IN ");
|
||||
//new point intersection ...
|
||||
@ -156,8 +163,8 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.y - (aaa*lastElement.x);
|
||||
destPoint.y = aaa*ex + bbb;
|
||||
destPoint.x = ex;
|
||||
output.push_back(destPoint);
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(destPoint);
|
||||
output.pushBack(input[iii]);
|
||||
}
|
||||
inside = true;
|
||||
}
|
||||
@ -183,7 +190,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.x - (aaa*lastElement.y);
|
||||
destPoint.y = ey;
|
||||
destPoint.x = ey*aaa + bbb;
|
||||
output.push_back(destPoint);
|
||||
output.pushBack(destPoint);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > OUT ");
|
||||
}
|
||||
@ -191,7 +198,7 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
} else {
|
||||
if(true == inside) {
|
||||
//EWOL_DEBUG("element IN == > IN ");
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(input[iii]);
|
||||
} else {
|
||||
//EWOL_DEBUG("element OUT == > IN ");
|
||||
//new point intersection ...
|
||||
@ -200,8 +207,8 @@ static void SutherlandHodgman(std::vector<vec2 > & input, std::vector<vec2 > & o
|
||||
float bbb = lastElement.x - (aaa*lastElement.y);
|
||||
destPoint.y = ey;
|
||||
destPoint.x = ey*aaa + bbb;
|
||||
output.push_back(destPoint);
|
||||
output.push_back(input[iii]);
|
||||
output.pushBack(destPoint);
|
||||
output.pushBack(input[iii]);
|
||||
}
|
||||
inside = true;
|
||||
}
|
||||
@ -222,7 +229,7 @@ ewol::compositing::Drawing::Drawing() :
|
||||
m_clippingEnable(false),
|
||||
m_color(etk::color::black),
|
||||
m_colorBg(etk::color::none),
|
||||
m_GLprogram(nullptr),
|
||||
m_GLprogram(null),
|
||||
m_GLPosition(-1),
|
||||
m_GLMatrix(-1),
|
||||
m_GLMatrixPosition(-1),
|
||||
@ -234,6 +241,14 @@ ewol::compositing::Drawing::Drawing() :
|
||||
m_triangle[iii] = m_position;
|
||||
m_tricolor[iii] = m_color;
|
||||
}
|
||||
// Create the VBO:
|
||||
m_VBO = gale::resource::VirtualBufferObject::create(NB_VBO);
|
||||
if (m_VBO == null) {
|
||||
EWOL_ERROR("can not instanciate VBO ...");
|
||||
return;
|
||||
}
|
||||
// TO facilitate some debugs we add a name of the VBO:
|
||||
m_VBO->setName("[VBO] of ewol::compositing::Area");
|
||||
}
|
||||
|
||||
ewol::compositing::Drawing::~Drawing() {
|
||||
@ -243,12 +258,12 @@ ewol::compositing::Drawing::~Drawing() {
|
||||
void ewol::compositing::Drawing::generateTriangle() {
|
||||
m_triElement = 0;
|
||||
|
||||
m_coord.push_back(m_triangle[0]);
|
||||
m_coordColor.push_back(m_tricolor[0]);
|
||||
m_coord.push_back(m_triangle[1]);
|
||||
m_coordColor.push_back(m_tricolor[1]);
|
||||
m_coord.push_back(m_triangle[2]);
|
||||
m_coordColor.push_back(m_tricolor[2]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, m_triangle[0]);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_tricolor[0]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, m_triangle[1]);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_tricolor[1]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, m_triangle[2]);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_tricolor[2]);
|
||||
}
|
||||
|
||||
void ewol::compositing::Drawing::internalSetColor(const etk::Color<>& _color) {
|
||||
@ -269,6 +284,7 @@ void ewol::compositing::Drawing::setPoint(const vec3& _point) {
|
||||
if (m_triElement >= 3) {
|
||||
generateTriangle();
|
||||
}
|
||||
m_VBO->flush();
|
||||
}
|
||||
|
||||
void ewol::compositing::Drawing::resetCount() {
|
||||
@ -283,9 +299,9 @@ void ewol::compositing::Drawing::loadProgram() {
|
||||
// remove previous loading ... in case
|
||||
unLoadProgram();
|
||||
// oad the new ...
|
||||
m_GLprogram = gale::resource::Program::create("{ewol}DATA:color3.prog");
|
||||
m_GLprogram = gale::resource::Program::create("DATA:///color3.prog?lib=ewol");
|
||||
// get the shader resource :
|
||||
if (m_GLprogram != nullptr) {
|
||||
if (m_GLprogram != null) {
|
||||
m_GLPosition = m_GLprogram->getAttribute("EW_coord3d");
|
||||
m_GLColor = m_GLprogram->getAttribute("EW_color");
|
||||
m_GLMatrix = m_GLprogram->getUniform("EW_MatrixTransformation");
|
||||
@ -294,12 +310,12 @@ void ewol::compositing::Drawing::loadProgram() {
|
||||
}
|
||||
|
||||
void ewol::compositing::Drawing::draw(bool _disableDepthTest) {
|
||||
if (m_coord.size() <= 0) {
|
||||
// TODO : a remÚtre ...
|
||||
if (m_VBO->bufferSize(m_vboIdCoord) <= 0) {
|
||||
// TODO : set it back ...
|
||||
//EWOL_WARNING("Nothink to draw...");
|
||||
return;
|
||||
}
|
||||
if (m_GLprogram == nullptr) {
|
||||
if (m_GLprogram == null) {
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
@ -309,12 +325,12 @@ void ewol::compositing::Drawing::draw(bool _disableDepthTest) {
|
||||
m_GLprogram->uniformMatrix(m_GLMatrix, tmpMatrix);
|
||||
mat4 tmpMatrix2;
|
||||
m_GLprogram->uniformMatrix(m_GLMatrixPosition, tmpMatrix2);
|
||||
// position :
|
||||
m_GLprogram->sendAttribute(m_GLPosition, m_coord);
|
||||
// color :
|
||||
m_GLprogram->sendAttribute(m_GLColor, m_coordColor);
|
||||
// position:
|
||||
m_GLprogram->sendAttributePointer(m_GLPosition, m_VBO, m_vboIdCoord);
|
||||
// color:
|
||||
m_GLprogram->sendAttributePointer(m_GLColor, m_VBO, m_vboIdColor);
|
||||
// Request the draw od the elements :
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_coord.size());
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_VBO->bufferSize(m_vboIdCoord));
|
||||
m_GLprogram->unUse();
|
||||
}
|
||||
|
||||
@ -322,8 +338,7 @@ void ewol::compositing::Drawing::clear() {
|
||||
// call upper class
|
||||
ewol::Compositing::clear();
|
||||
// reset Buffer :
|
||||
m_coord.clear();
|
||||
m_coordColor.clear();
|
||||
m_VBO->clear();
|
||||
// reset temporal variables :
|
||||
m_position = vec3(0.0, 0.0, 0.0);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -29,9 +29,10 @@ namespace ewol {
|
||||
int32_t m_GLMatrix; //!< openGL id on the element (transformation matrix)
|
||||
int32_t m_GLMatrixPosition; //!< position matrix
|
||||
int32_t m_GLColor; //!< openGL id on the element (color buffer)
|
||||
public: // Background Color (display only when needed)
|
||||
std::vector<vec3 > m_coord; //!< internal position for the text display
|
||||
std::vector<etk::Color<float> > m_coordColor; //!< internal color of the background
|
||||
protected:
|
||||
static const int32_t m_vboIdCoord;
|
||||
static const int32_t m_vboIdColor;
|
||||
ememory::SharedPtr<gale::resource::VirtualBufferObject> m_VBO;
|
||||
public:
|
||||
/**
|
||||
* @brief Basic constructor
|
||||
@ -53,7 +54,7 @@ namespace ewol {
|
||||
float m_thickness; //!< when drawing line and other things
|
||||
int32_t m_triElement; //!< special counter of the single dot generated
|
||||
vec3 m_triangle[3]; //!< Register every system with a combinaison of tiangle
|
||||
etk::Color<float> m_tricolor[3]; //!< Register every the associated color foreground
|
||||
etk::Color<float,4> m_tricolor[3]; //!< Register every the associated color foreground
|
||||
// internal API for the generation abstraction of triangles
|
||||
/**
|
||||
* @brief Lunch the generation of triangle
|
||||
|
@ -1,15 +1,23 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
#include <ewol/compositing/Image.hpp>
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::compositing::Image);
|
||||
|
||||
const int32_t ewol::compositing::Image::sizeAuto(0);
|
||||
|
||||
ewol::compositing::Image::Image(const std::string& _imageName,
|
||||
// VBO table property:
|
||||
const int32_t ewol::compositing::Image::m_vboIdCoord(0);
|
||||
const int32_t ewol::compositing::Image::m_vboIdCoordTex(1);
|
||||
const int32_t ewol::compositing::Image::m_vboIdColor(2);
|
||||
#define NB_VBO (3)
|
||||
|
||||
ewol::compositing::Image::Image(const etk::Uri& _imageName,
|
||||
bool _df,
|
||||
int32_t _size) :
|
||||
m_filename(_imageName),
|
||||
@ -20,15 +28,23 @@ ewol::compositing::Image::Image(const std::string& _imageName,
|
||||
m_clippingEnable(false),
|
||||
m_color(etk::color::white),
|
||||
m_angle(0.0),
|
||||
m_GLprogram(nullptr),
|
||||
m_GLprogram(null),
|
||||
m_GLPosition(-1),
|
||||
m_GLMatrix(-1),
|
||||
m_GLColor(-1),
|
||||
m_GLtexture(-1),
|
||||
m_GLtexID(-1),
|
||||
m_distanceFieldMode(_df),
|
||||
m_resource(nullptr),
|
||||
m_resourceDF(nullptr) {
|
||||
m_resource(null),
|
||||
m_resourceDF(null) {
|
||||
// Create the VBO:
|
||||
m_VBO = gale::resource::VirtualBufferObject::create(NB_VBO);
|
||||
if (m_VBO == null) {
|
||||
EWOL_ERROR("can not instanciate VBO ...");
|
||||
return;
|
||||
}
|
||||
// TO facilitate some debugs we add a name of the VBO:
|
||||
m_VBO->setName("[VBO] of ewol::compositing::Image");
|
||||
setSource(_imageName, _size);
|
||||
loadProgram();
|
||||
}
|
||||
@ -38,15 +54,15 @@ ewol::compositing::Image::~Image() {
|
||||
}
|
||||
|
||||
void ewol::compositing::Image::loadProgram() {
|
||||
// get the shader resource :
|
||||
// get the shader resource:
|
||||
m_GLPosition = 0;
|
||||
m_GLprogram.reset();
|
||||
if (m_distanceFieldMode == true) {
|
||||
m_GLprogram = gale::resource::Program::create("{ewol}DATA:texturedDF.prog");
|
||||
m_GLprogram = gale::resource::Program::create("DATA:///texturedDF.prog?lib=ewol");
|
||||
} else {
|
||||
m_GLprogram = gale::resource::Program::create("{ewol}DATA:textured3D.prog");
|
||||
m_GLprogram = gale::resource::Program::create("DATA:///textured3D.prog?lib=ewol");
|
||||
}
|
||||
if (m_GLprogram != nullptr) {
|
||||
if (m_GLprogram != null) {
|
||||
m_GLPosition = m_GLprogram->getAttribute("EW_coord3d");
|
||||
m_GLColor = m_GLprogram->getAttribute("EW_color");
|
||||
m_GLtexture = m_GLprogram->getAttribute("EW_texture2d");
|
||||
@ -56,19 +72,21 @@ void ewol::compositing::Image::loadProgram() {
|
||||
}
|
||||
|
||||
void ewol::compositing::Image::draw(bool _disableDepthTest) {
|
||||
if (m_coord.size() <= 0) {
|
||||
if (m_VBO->bufferSize(m_vboIdCoord) <= 0) {
|
||||
//EWOL_WARNING("Nothink to draw...");
|
||||
return;
|
||||
}
|
||||
if ( m_resource == nullptr
|
||||
&& m_resourceDF == nullptr) {
|
||||
if ( m_resource == null
|
||||
&& m_resourceDF == null
|
||||
&& m_resourceImage == null) {
|
||||
// this is a normale case ... the user can choice to have no image ...
|
||||
return;
|
||||
}
|
||||
if (m_GLprogram == nullptr) {
|
||||
if (m_GLprogram == null) {
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
//EWOL_WARNING("Display image : " << m_VBO->bufferSize(m_vboIdCoord));
|
||||
if (_disableDepthTest == true) {
|
||||
gale::openGL::disable(gale::openGL::flag_depthTest);
|
||||
} else {
|
||||
@ -76,10 +94,12 @@ void ewol::compositing::Image::draw(bool _disableDepthTest) {
|
||||
}
|
||||
// set Matrix : translation/positionMatrix
|
||||
mat4 tmpMatrix = gale::openGL::getMatrix()*m_matrixApply;
|
||||
m_GLprogram->use();
|
||||
m_GLprogram->use();
|
||||
m_GLprogram->uniformMatrix(m_GLMatrix, tmpMatrix);
|
||||
// TextureID
|
||||
if (m_resource != nullptr) {
|
||||
if (m_resourceImage != null) {
|
||||
m_GLprogram->setTexture0(m_GLtexID, m_resourceImage->getRendererId());
|
||||
} else if (m_resource != null) {
|
||||
if (m_distanceFieldMode == true) {
|
||||
EWOL_ERROR("FONT type error Request distance field and display normal ...");
|
||||
}
|
||||
@ -90,14 +110,14 @@ void ewol::compositing::Image::draw(bool _disableDepthTest) {
|
||||
}
|
||||
m_GLprogram->setTexture0(m_GLtexID, m_resourceDF->getRendererId());
|
||||
}
|
||||
// position :
|
||||
m_GLprogram->sendAttribute(m_GLPosition, m_coord);
|
||||
// Texture :
|
||||
m_GLprogram->sendAttribute(m_GLtexture, m_coordTex);
|
||||
// color :
|
||||
m_GLprogram->sendAttribute(m_GLColor, m_coordColor);
|
||||
// Request the draw od the elements :
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_coord.size());
|
||||
// position:
|
||||
m_GLprogram->sendAttributePointer(m_GLPosition, m_VBO, m_vboIdCoord);
|
||||
// Texture:
|
||||
m_GLprogram->sendAttributePointer(m_GLtexture, m_VBO, m_vboIdCoordTex);
|
||||
// color:
|
||||
m_GLprogram->sendAttributePointer(m_GLColor, m_VBO, m_vboIdColor);
|
||||
// Request the draw of the elements:
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_VBO->bufferSize(m_vboIdCoord));
|
||||
m_GLprogram->unUse();
|
||||
}
|
||||
|
||||
@ -105,9 +125,7 @@ void ewol::compositing::Image::clear() {
|
||||
// call upper class
|
||||
ewol::Compositing::clear();
|
||||
// reset Buffer :
|
||||
m_coord.clear();
|
||||
m_coordTex.clear();
|
||||
m_coordColor.clear();
|
||||
m_VBO->clear();
|
||||
// reset temporal variables :
|
||||
m_position = vec3(0.0, 0.0, 0.0);
|
||||
m_clippingPosStart = vec3(0.0, 0.0, 0.0);
|
||||
@ -152,49 +170,58 @@ void ewol::compositing::Image::print(const vec2& _size) {
|
||||
}
|
||||
|
||||
void ewol::compositing::Image::printPart(const vec2& _size,
|
||||
const vec2& _sourcePosStart,
|
||||
const vec2& _sourcePosStop) {
|
||||
vec2 _sourcePosStart,
|
||||
vec2 _sourcePosStop) {
|
||||
if (m_resource == null) {
|
||||
return;
|
||||
}
|
||||
vec2 openGLSize = vec2(m_resource->getOpenGlSize().x(), m_resource->getOpenGlSize().y());
|
||||
vec2 usefullSize = m_resource->getUsableSize();
|
||||
vec2 ratio = usefullSize/openGLSize;
|
||||
_sourcePosStart *= ratio;
|
||||
_sourcePosStop *= ratio;
|
||||
EWOL_VERBOSE(" openGLSize=" << openGLSize << " usableSize=" << usefullSize << " start=" << _sourcePosStart << " stop=" << _sourcePosStop);
|
||||
|
||||
//EWOL_ERROR("Debug image " << m_filename << " ==> " << m_position << " " << _size << " " << _sourcePosStart << " " << _sourcePosStop);
|
||||
if (m_angle == 0.0f) {
|
||||
vec3 point = m_position;
|
||||
vec2 tex(_sourcePosStart.x(),_sourcePosStop.y());
|
||||
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStop.x(),_sourcePosStop.y());
|
||||
point.setX(m_position.x() + _size.x());
|
||||
point.setY(m_position.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStop.x(),_sourcePosStart.y());
|
||||
point.setX(m_position.x() + _size.x());
|
||||
point.setY(m_position.y() + _size.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStart.x(),_sourcePosStart.y());
|
||||
point.setX(m_position.x());
|
||||
point.setY(m_position.y() + _size.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStart.x(),_sourcePosStop.y());
|
||||
point.setX(m_position.x());
|
||||
point.setY(m_position.y());
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->flush();
|
||||
return;
|
||||
}
|
||||
vec3 center = m_position + vec3(_size.x(),_size.y(),0)/2.0f;
|
||||
@ -205,99 +232,122 @@ void ewol::compositing::Image::printPart(const vec2& _size,
|
||||
|
||||
point.setValue(-limitedSize.x(), -limitedSize.y(), 0);
|
||||
point = point.rotate(vec3(0,0,1), m_angle) + center;
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStop.x(),_sourcePosStop.y());
|
||||
point.setValue(limitedSize.x(), -limitedSize.y(), 0);
|
||||
point = point.rotate(vec3(0,0,1), m_angle) + center;
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStop.x(),_sourcePosStart.y());
|
||||
point.setValue(limitedSize.x(), limitedSize.y(), 0);
|
||||
point = point.rotate(vec3(0,0,1), m_angle) + center;
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStart.x(),_sourcePosStart.y());
|
||||
point.setValue(-limitedSize.x(), limitedSize.y(), 0);
|
||||
point = point.rotate(vec3(0,0,1), m_angle) + center;
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
tex.setValue(_sourcePosStart.x(),_sourcePosStop.y());
|
||||
point.setValue(-limitedSize.x(), -limitedSize.y(), 0);
|
||||
point = point.rotate(vec3(0,0,1), m_angle) + center;
|
||||
m_coord.push_back(point);
|
||||
m_coordTex.push_back(tex);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, point);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordTex, tex);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
|
||||
m_VBO->flush();
|
||||
}
|
||||
|
||||
void ewol::compositing::Image::setSource(const std::string& _newFile, const vec2& _size) {
|
||||
void ewol::compositing::Image::setSource(const etk::Uri& _uri, const vec2& _size) {
|
||||
clear();
|
||||
if ( m_filename == _uri
|
||||
&& m_requestSize == _size) {
|
||||
// Nothing to do ...
|
||||
return;
|
||||
}
|
||||
ememory::SharedPtr<ewol::resource::TextureFile> resource = m_resource;
|
||||
ememory::SharedPtr<ewol::resource::ImageDF> resourceDF = m_resourceDF;
|
||||
m_filename = _newFile;
|
||||
ememory::SharedPtr<ewol::resource::Texture> resourceTex = m_resourceImage;
|
||||
m_filename = _uri;
|
||||
m_requestSize = _size;
|
||||
m_resource.reset();
|
||||
m_resourceDF.reset();
|
||||
m_resourceImage.reset();
|
||||
ivec2 tmpSize(_size.x(),_size.y());
|
||||
// note that no image can be loaded...
|
||||
if (_newFile != "") {
|
||||
if (_uri.isEmpty() == false) {
|
||||
// link to new one
|
||||
if (m_distanceFieldMode == false) {
|
||||
m_resource = ewol::resource::TextureFile::create(m_filename, tmpSize);
|
||||
if (m_resource == nullptr) {
|
||||
if (m_resource == null) {
|
||||
EWOL_ERROR("Can not get Image resource");
|
||||
}
|
||||
} else {
|
||||
m_resourceDF = ewol::resource::ImageDF::create(m_filename, tmpSize);
|
||||
if (m_resourceDF == nullptr) {
|
||||
if (m_resourceDF == null) {
|
||||
EWOL_ERROR("Can not get Image resource DF");
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( m_resource == nullptr
|
||||
&& m_resourceDF == nullptr) {
|
||||
if (resource != nullptr) {
|
||||
if ( m_resource == null
|
||||
&& m_resourceDF == null
|
||||
&& m_resourceImage == null) {
|
||||
if (resource != null) {
|
||||
EWOL_WARNING("Retrive previous resource");
|
||||
m_resource = resource;
|
||||
}
|
||||
if (resourceDF != nullptr) {
|
||||
if (resourceDF != null) {
|
||||
EWOL_WARNING("Retrive previous resource (DF)");
|
||||
m_resourceDF = resourceDF;
|
||||
}
|
||||
if (resourceTex != null) {
|
||||
EWOL_WARNING("Retrive previous resource (image)");
|
||||
m_resourceImage = resourceTex;
|
||||
}
|
||||
}
|
||||
}
|
||||
void ewol::compositing::Image::setSource(egami::Image _image) {
|
||||
clear();
|
||||
m_filename = "direct image BUFFER";
|
||||
m_requestSize = _image.getSize();
|
||||
m_resourceImage = ewol::resource::Texture::create();
|
||||
m_resourceImage->set(etk::move(_image));
|
||||
}
|
||||
|
||||
bool ewol::compositing::Image::hasSources() {
|
||||
return m_resource != nullptr
|
||||
|| m_resourceDF != nullptr;
|
||||
return m_resource != null
|
||||
|| m_resourceDF != null;
|
||||
}
|
||||
|
||||
|
||||
vec2 ewol::compositing::Image::getRealSize() {
|
||||
if ( m_resource == nullptr
|
||||
&& m_resourceDF == nullptr) {
|
||||
if ( m_resource == null
|
||||
&& m_resourceDF == null
|
||||
&& m_resourceImage == null) {
|
||||
return vec2(0,0);
|
||||
}
|
||||
if (m_resource != nullptr) {
|
||||
if (m_resource != null) {
|
||||
return m_resource->getRealSize();
|
||||
}
|
||||
if (m_resourceDF != nullptr) {
|
||||
if (m_resourceDF != null) {
|
||||
return m_resourceDF->getRealSize();
|
||||
}
|
||||
if (m_resourceImage != null) {
|
||||
return m_resourceImage->getUsableSize();
|
||||
}
|
||||
return vec2(0,0);
|
||||
}
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
#include <ewol/compositing/Compositing.hpp>
|
||||
#include <gale/resource/Program.hpp>
|
||||
#include <ewol/resource/Image.hpp>
|
||||
#include <ewol/resource/TextureFile.hpp>
|
||||
#include <ewol/resource/ImageDF.hpp>
|
||||
|
||||
namespace ewol {
|
||||
@ -17,14 +17,14 @@ namespace ewol {
|
||||
public:
|
||||
static const int32_t sizeAuto;
|
||||
private:
|
||||
std::string m_filename;
|
||||
etk::Uri m_filename;
|
||||
ivec2 m_requestSize;
|
||||
vec3 m_position; //!< The current position to draw
|
||||
vec3 m_clippingPosStart; //!< Clipping start position
|
||||
vec3 m_clippingPosStop; //!< Clipping stop position
|
||||
bool m_clippingEnable; //!< true if the clipping must be activated
|
||||
private:
|
||||
etk::Color<> m_color; //!< The text foreground color
|
||||
etk::Color<float,4> m_color; //!< The text foreground color
|
||||
float m_angle; //!< Angle to set at the axes
|
||||
private:
|
||||
ememory::SharedPtr<gale::resource::Program> m_GLprogram; //!< pointer on the opengl display program
|
||||
@ -36,10 +36,12 @@ namespace ewol {
|
||||
private:
|
||||
bool m_distanceFieldMode; //!< select distance field mode
|
||||
ememory::SharedPtr<ewol::resource::TextureFile> m_resource; //!< texture resources
|
||||
ememory::SharedPtr<ewol::resource::Texture> m_resourceImage; //!< texture resources
|
||||
ememory::SharedPtr<ewol::resource::ImageDF> m_resourceDF; //!< texture resources
|
||||
std::vector<vec3 > m_coord; //!< internal coord of the object
|
||||
std::vector<vec2 > m_coordTex; //!< internal texture coordinate for every point
|
||||
std::vector<etk::Color<float> > m_coordColor; //!< internal color of the different point
|
||||
static const int32_t m_vboIdCoord;
|
||||
static const int32_t m_vboIdCoordTex;
|
||||
static const int32_t m_vboIdColor;
|
||||
ememory::SharedPtr<gale::resource::VirtualBufferObject> m_VBO;
|
||||
private:
|
||||
/**
|
||||
* @brief load the openGL program and get all the ID needed
|
||||
@ -48,11 +50,11 @@ namespace ewol {
|
||||
public:
|
||||
/**
|
||||
* @brief generic constructor
|
||||
* @param[in] _imageName Name of the file that might be loaded
|
||||
* @param[in] _uri URI of the file that might be loaded
|
||||
* @param[in] _df enable distance field mode
|
||||
* @param[in] _size for the image when Verctorial image loading is requested
|
||||
*/
|
||||
Image(const std::string& _imageName="",
|
||||
Image(const etk::Uri& _uri="",
|
||||
bool _df=false,
|
||||
int32_t _size=ewol::compositing::Image::sizeAuto);
|
||||
/**
|
||||
@ -150,17 +152,18 @@ namespace ewol {
|
||||
* @param[in] _sourcePosStop Stop position in the image [0..1] (can be bigger but this repeate the image).
|
||||
*/
|
||||
void printPart(const vec2& _size,
|
||||
const vec2& _sourcePosStart,
|
||||
const vec2& _sourcePosStop);
|
||||
vec2 _sourcePosStart,
|
||||
vec2 _sourcePosStop);
|
||||
/**
|
||||
* @brief change the image Source == > can not be done to display 2 images at the same time ...
|
||||
* @param[in] _newFile New file of the Image
|
||||
* @param[in] _uri New file of the Image
|
||||
* @param[in] _size for the image when Verctorial image loading is requested
|
||||
*/
|
||||
void setSource(const std::string& _newFile, int32_t _size=32) {
|
||||
setSource(_newFile, vec2(_size,_size));
|
||||
void setSource(const etk::Uri& _uri, int32_t _size=32) {
|
||||
setSource(_uri, vec2(_size,_size));
|
||||
};
|
||||
void setSource(const std::string& _newFile, const vec2& _size);
|
||||
void setSource(const etk::Uri& _uri, const vec2& _size);
|
||||
void setSource(egami::Image _image);
|
||||
/**
|
||||
* @brief Sometimes the user declare an image but not allocate the ressources all the time, this is to know it ..
|
||||
* @return the validity od the resources.
|
||||
|
@ -1,30 +1,37 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <etk/os/FSNode.hpp>
|
||||
#include <etk/uri/uri.hpp>
|
||||
#include <ewol/debug.hpp>
|
||||
#include <ewol/compositing/Shaper.hpp>
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::compositing::Shaper);
|
||||
|
||||
ewol::compositing::Shaper::Shaper(const std::string& _shaperName) :
|
||||
m_name(_shaperName),
|
||||
m_config(nullptr),
|
||||
// VBO table property:
|
||||
const int32_t ewol::compositing::Shaper::m_vboIdCoord(0);
|
||||
const int32_t ewol::compositing::Shaper::m_vboIdPos(1);
|
||||
#define NB_VBO (2)
|
||||
|
||||
ewol::compositing::Shaper::Shaper(const etk::Uri& _uri) :
|
||||
m_uri(_uri),
|
||||
m_config(null),
|
||||
m_confIdMode(-1),
|
||||
m_confIdDisplayOutside(-1),
|
||||
m_confIdChangeTime(-1),
|
||||
m_confProgramFile(-1),
|
||||
m_confColorFile(-1),
|
||||
m_confImageFile(-1),
|
||||
m_GLprogram(nullptr),
|
||||
m_GLprogram(null),
|
||||
m_GLPosition(-1),
|
||||
m_GLMatrix(-1),
|
||||
m_GLStateActivate(-1),
|
||||
m_GLStateOld(-1),
|
||||
m_GLStateNew(-1),
|
||||
m_GLStateTransition(-1),
|
||||
m_resourceTexture(nullptr),
|
||||
m_resourceTexture(null),
|
||||
m_nextStatusRequested(-1),
|
||||
m_propertyOrigin(0,0),
|
||||
m_propertySize(0,0),
|
||||
@ -40,10 +47,14 @@ ewol::compositing::Shaper::Shaper(const std::string& _shaperName) :
|
||||
m_confIdBorder[iii] = -1;
|
||||
m_confIdPaddingIn[iii] = -1;
|
||||
}
|
||||
for (size_t iii=0; iii<SHAPER_NB_MAX_VERTEX; ++iii) {
|
||||
m_coord[iii] = vec2(0,0);
|
||||
m_pos[iii] = vec2(0,0);
|
||||
// Create the VBO:
|
||||
m_VBO = gale::resource::VirtualBufferObject::create(NB_VBO);
|
||||
if (m_VBO == null) {
|
||||
EWOL_ERROR("can not instanciate VBO ...");
|
||||
return;
|
||||
}
|
||||
// TO facilitate some debugs we add a name of the VBO:
|
||||
m_VBO->setName("[VBO] of ewol::compositing::Shaper");
|
||||
loadProgram();
|
||||
}
|
||||
|
||||
@ -61,10 +72,7 @@ void ewol::compositing::Shaper::unLoadProgram() {
|
||||
m_confIdBorder[iii] = -1;
|
||||
m_confIdPaddingIn[iii] = -1;
|
||||
}
|
||||
for (size_t iii=0; iii<SHAPER_NB_MAX_VERTEX; ++iii) {
|
||||
m_coord[iii] = vec2(0,0);
|
||||
m_pos[iii] = vec2(0,0);
|
||||
}
|
||||
m_VBO->clear();
|
||||
m_confIdMode = -1;
|
||||
m_confIdDisplayOutside = -1;
|
||||
m_nbVertexToDisplay = 0;
|
||||
@ -75,12 +83,12 @@ void ewol::compositing::Shaper::unLoadProgram() {
|
||||
}
|
||||
|
||||
void ewol::compositing::Shaper::loadProgram() {
|
||||
if (m_name == "") {
|
||||
if (m_uri.isEmpty() == true) {
|
||||
EWOL_DEBUG("no Shaper set for loading resources ...");
|
||||
return;
|
||||
}
|
||||
m_config = ewol::resource::ConfigFile::create(m_name);
|
||||
if (m_config != nullptr) {
|
||||
m_config = ewol::resource::ConfigFile::create(m_uri.get());
|
||||
if (m_config != null) {
|
||||
m_confIdMode = m_config->request("mode");
|
||||
m_confIdDisplayOutside = m_config->request("display-outside");
|
||||
m_confIdPaddingOut[shaperPosLeft] = m_config->request("padding-out-left");
|
||||
@ -100,13 +108,14 @@ void ewol::compositing::Shaper::loadProgram() {
|
||||
m_confImageFile = m_config->request("image");
|
||||
m_confColorFile = m_config->request("color");
|
||||
}
|
||||
std::string basicShaderFile = m_config->getString(m_confProgramFile);
|
||||
etk::String basicShaderFile = m_config->getString(m_confProgramFile);
|
||||
if (basicShaderFile != "") {
|
||||
std::string tmpFilename(basicShaderFile);
|
||||
if (tmpFilename.find(':') == std::string::npos) {
|
||||
etk::String tmpFilename(basicShaderFile);
|
||||
if (tmpFilename.find(':') == etk::String::npos) {
|
||||
// get the relative position of the current file ...
|
||||
etk::FSNode file(m_name);
|
||||
tmpFilename = file.getRelativeFolder() + basicShaderFile;
|
||||
etk::Uri tmpUri = m_uri;
|
||||
tmpUri.setPath(m_uri.getPath().getParent() / basicShaderFile);
|
||||
tmpFilename = tmpUri.get();
|
||||
EWOL_DEBUG("Shaper try load shader : '" << tmpFilename << "' with base : '" << basicShaderFile << "'");
|
||||
} else {
|
||||
EWOL_DEBUG("Shaper try load shader : '" << tmpFilename << "'");
|
||||
@ -114,7 +123,7 @@ void ewol::compositing::Shaper::loadProgram() {
|
||||
// get the shader resource :
|
||||
m_GLPosition = 0;
|
||||
m_GLprogram = gale::resource::Program::create(tmpFilename);
|
||||
if (m_GLprogram != nullptr) {
|
||||
if (m_GLprogram != null) {
|
||||
m_GLPosition = m_GLprogram->getAttribute("EW_coord2d");
|
||||
m_GLMatrix = m_GLprogram->getUniform("EW_MatrixTransformation");
|
||||
// Widget property == > for the Vertex shader
|
||||
@ -127,13 +136,14 @@ void ewol::compositing::Shaper::loadProgram() {
|
||||
// for the texture ID :
|
||||
m_GLtexID = m_GLprogram->getUniform("EW_texID");
|
||||
}
|
||||
std::string basicImageFile = m_config->getString(m_confImageFile);
|
||||
etk::String basicImageFile = m_config->getString(m_confImageFile);
|
||||
if (basicImageFile != "") {
|
||||
std::string tmpFilename(basicImageFile);
|
||||
if (tmpFilename.find(':') == std::string::npos) {
|
||||
etk::String tmpFilename(basicImageFile);
|
||||
if (tmpFilename.find(':') == etk::String::npos) {
|
||||
// get the relative position of the current file ...
|
||||
etk::FSNode file(m_name);
|
||||
tmpFilename = file.getRelativeFolder() + basicImageFile;
|
||||
etk::Uri tmpUri = m_uri;
|
||||
tmpUri.setPath(m_uri.getPath().getParent() / basicImageFile);
|
||||
tmpFilename = tmpUri.get();
|
||||
EWOL_DEBUG("Shaper try load shaper image : '" << tmpFilename << "' with base : '" << basicImageFile << "'");
|
||||
} else {
|
||||
EWOL_DEBUG("Shaper try load shaper image : '" << tmpFilename << "'");
|
||||
@ -142,48 +152,52 @@ void ewol::compositing::Shaper::loadProgram() {
|
||||
m_resourceTexture = ewol::resource::TextureFile::create(tmpFilename, size);
|
||||
}
|
||||
}
|
||||
std::string basicColorFile = m_config->getString(m_confColorFile);
|
||||
etk::String basicColorFile = m_config->getString(m_confColorFile);
|
||||
if (basicColorFile != "") {
|
||||
std::string tmpFilename(basicColorFile);
|
||||
if (tmpFilename.find(':') == std::string::npos) {
|
||||
etk::String tmpFilename(basicColorFile);
|
||||
if (tmpFilename.find(':') == etk::String::npos) {
|
||||
// get the relative position of the current file ...
|
||||
etk::FSNode file(m_name);
|
||||
tmpFilename = file.getRelativeFolder() + basicColorFile;
|
||||
etk::Uri tmpUri = m_uri;
|
||||
tmpUri.setPath(m_uri.getPath().getParent() / basicColorFile);
|
||||
tmpFilename = tmpUri.get();
|
||||
EWOL_DEBUG("Shaper try load colorFile : '" << tmpFilename << "' with base : '" << basicColorFile << "'");
|
||||
} else {
|
||||
EWOL_DEBUG("Shaper try load colorFile : '" << tmpFilename << "'");
|
||||
}
|
||||
m_colorProperty = ewol::resource::ColorFile::create(tmpFilename);
|
||||
if ( m_GLprogram != nullptr
|
||||
&& m_colorProperty != nullptr) {
|
||||
std::vector<std::string> listColor = m_colorProperty->getColors();
|
||||
if ( m_GLprogram != null
|
||||
&& m_colorProperty != null) {
|
||||
etk::Vector<etk::String> listColor = m_colorProperty->getColors();
|
||||
for (auto tmpColor : listColor) {
|
||||
int32_t glId = m_GLprogram->getUniform(tmpColor);
|
||||
int32_t colorID = m_colorProperty->request(tmpColor);
|
||||
m_listAssiciatedId.push_back(ivec2(glId, colorID));
|
||||
m_listAssiciatedId.pushBack(ivec2(glId, colorID));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::compositing::Shaper::draw(bool _disableDepthTest) {
|
||||
if (m_config == nullptr) {
|
||||
if (m_config == null) {
|
||||
// this is a normale case ... the user can choice to have no config basic file ...
|
||||
return;
|
||||
}
|
||||
if (m_GLprogram == nullptr) {
|
||||
if (m_GLprogram == null) {
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
if (m_VBO->bufferSize(m_vboIdCoord) <= 0) {
|
||||
return;
|
||||
}
|
||||
//glScalef(m_scaling.x, m_scaling.y, 1.0);
|
||||
m_GLprogram->use();
|
||||
// set Matrix : translation/positionMatrix
|
||||
mat4 tmpMatrix = gale::openGL::getMatrix();
|
||||
m_GLprogram->uniformMatrix(m_GLMatrix, tmpMatrix);
|
||||
// position :
|
||||
m_GLprogram->sendAttribute(m_GLPosition, 2/*x,y*/, m_coord);
|
||||
// position:
|
||||
m_GLprogram->sendAttributePointer(m_GLPosition, m_VBO, m_vboIdCoord);
|
||||
// property
|
||||
m_GLprogram->sendAttribute(m_GLPropertyPos, 2/*x,y*/, m_pos);
|
||||
m_GLprogram->sendAttributePointer(m_GLPropertyPos, m_VBO, m_vboIdPos);
|
||||
// all entry parameters :
|
||||
m_GLprogram->uniform1i(m_GLStateActivate, m_stateActivate);
|
||||
m_GLprogram->uniform1i(m_GLStateOld, m_stateOld);
|
||||
@ -192,7 +206,7 @@ void ewol::compositing::Shaper::draw(bool _disableDepthTest) {
|
||||
for (auto element : m_listAssiciatedId) {
|
||||
m_GLprogram->uniform(element.x(), m_colorProperty->get(element.y()));
|
||||
}
|
||||
if (m_resourceTexture != nullptr) {
|
||||
if (m_resourceTexture != null) {
|
||||
// TextureID
|
||||
m_GLprogram->setTexture0(m_GLtexID, m_resourceTexture->getRendererId());
|
||||
}
|
||||
@ -208,7 +222,7 @@ void ewol::compositing::Shaper::clear() {
|
||||
m_propertyOrigin = vec2(0,0);
|
||||
m_propertyInsidePosition = vec2(0,0);
|
||||
m_propertyInsideSize = vec2(0,0);
|
||||
memset(m_coord, 0, sizeof(m_coord));
|
||||
m_VBO->clear();
|
||||
}
|
||||
|
||||
bool ewol::compositing::Shaper::setState(int32_t _newState) {
|
||||
@ -261,12 +275,12 @@ bool ewol::compositing::Shaper::periodicCall(const ewol::event::Time& _event) {
|
||||
}
|
||||
}
|
||||
float timeRelativity = 0.0f;
|
||||
if (m_config != nullptr) {
|
||||
if (m_config != null) {
|
||||
timeRelativity = m_config->getNumber(m_confIdChangeTime) / 1000.0;
|
||||
}
|
||||
m_stateTransition += _event.getDeltaCall() / timeRelativity;
|
||||
//m_stateTransition += _event.getDeltaCall();
|
||||
m_stateTransition = std::avg(0.0f, m_stateTransition, 1.0f);
|
||||
m_stateTransition = etk::avg(0.0f, m_stateTransition, 1.0f);
|
||||
EWOL_VERBOSE("relative=" << timeRelativity << " Transition : " << m_stateTransition);
|
||||
}
|
||||
return true;
|
||||
@ -289,101 +303,104 @@ void ewol::compositing::Shaper::addVertexLine(float _yTop,
|
||||
bool _displayOutside) {
|
||||
if (m_nbVertexToDisplay != 0) {
|
||||
// change line ...
|
||||
m_coord[m_nbVertexToDisplay] = m_coord[m_nbVertexToDisplay-1];
|
||||
m_pos[m_nbVertexToDisplay] = m_pos[m_nbVertexToDisplay-1];
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord,
|
||||
m_VBO->getOnBufferVec2(m_vboIdCoord, m_nbVertexToDisplay-1));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos,
|
||||
m_VBO->getOnBufferVec2(m_vboIdPos, m_nbVertexToDisplay-1));
|
||||
|
||||
m_nbVertexToDisplay++;
|
||||
if (_displayOutside == true) {
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x1, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[0],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x1, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[0],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
} else {
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x2, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[1],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x2, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[1],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
}
|
||||
}
|
||||
|
||||
if (_displayOutside == true) {
|
||||
// A
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x1, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[0],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x1, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[0],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x1, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[0],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x1, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[0],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x2, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[1],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x2, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[1],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
// B
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x2, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[1],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x2, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[1],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
|
||||
// C
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x3, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[2],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x3, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[2],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
} else {
|
||||
// C
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x2, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[1],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x2, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[1],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x2, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[1],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x2, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[1],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x3, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[2],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x3, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[2],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
}
|
||||
// D
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x3, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[2],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x3, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[2],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
|
||||
// E
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x4, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[3],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x4, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[3],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
// F
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x4, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[3],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x4, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[3],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
|
||||
// G
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x5, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[4],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x5, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[4],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
// H
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x5, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[4],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x5, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[4],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
|
||||
// I
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x6, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[5],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x6, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[5],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
// J
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x6, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[5],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x6, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[5],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
|
||||
// K
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x7, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[6],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x7, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[6],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
// L
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x7, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[6],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x7, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[6],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
|
||||
if (_displayOutside == true) {
|
||||
// M
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x8, _yButtom);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[7],_yValButtom);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x8, _yButtom));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[7],_yValButtom));
|
||||
m_nbVertexToDisplay++;
|
||||
// N
|
||||
m_coord[m_nbVertexToDisplay].setValue(_x8, _yTop);
|
||||
m_pos[m_nbVertexToDisplay].setValue(_table[7],_yValTop);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, vec2(_x8, _yTop));
|
||||
m_VBO->pushOnBuffer(m_vboIdPos, vec2(_table[7],_yValTop));
|
||||
m_nbVertexToDisplay++;
|
||||
}
|
||||
}
|
||||
@ -435,6 +452,7 @@ const float modeDisplay[][8] = {
|
||||
};
|
||||
|
||||
void ewol::compositing::Shaper::setShape(const vec2& _origin, const vec2& _size, const vec2& _insidePos, const vec2& _insideSize) {
|
||||
m_VBO->clear();
|
||||
ewol::Padding borderTmp = getBorder();
|
||||
ewol::Padding paddingIn = getPaddingIn();
|
||||
ewol::Padding paddingOut = getPaddingOut();
|
||||
@ -465,10 +483,10 @@ void ewol::compositing::Shaper::setShape(const vec2& _origin, const vec2& _size,
|
||||
border.yTop() - borderTmp.yTop(),
|
||||
border.xRight() - borderTmp.xRight(),
|
||||
border.yButtom() + borderTmp.yButtom());
|
||||
ewol::Padding inside(insideBorder.xLeft() + std::max(0.0f, paddingIn.xLeft()),
|
||||
insideBorder.yTop() - std::max(0.0f, paddingIn.yTop()),
|
||||
insideBorder.xRight() - std::max(0.0f, paddingIn.xRight()),
|
||||
insideBorder.yButtom() + std::max(0.0f, paddingIn.yButtom()));
|
||||
ewol::Padding inside(insideBorder.xLeft() + etk::max(0.0f, paddingIn.xLeft()),
|
||||
insideBorder.yTop() - etk::max(0.0f, paddingIn.yTop()),
|
||||
insideBorder.xRight() - etk::max(0.0f, paddingIn.xRight()),
|
||||
insideBorder.yButtom() + etk::max(0.0f, paddingIn.yButtom()));
|
||||
|
||||
#endif
|
||||
/*
|
||||
@ -478,7 +496,7 @@ void ewol::compositing::Shaper::setShape(const vec2& _origin, const vec2& _size,
|
||||
*/
|
||||
int32_t mode = 0;
|
||||
bool displayOutside = false;
|
||||
if (m_config != nullptr) {
|
||||
if (m_config != null) {
|
||||
mode = m_config->getNumber(m_confIdMode);
|
||||
displayOutside = m_config->getBoolean(m_confIdDisplayOutside);
|
||||
}
|
||||
@ -571,6 +589,7 @@ void ewol::compositing::Shaper::setShape(const vec2& _origin, const vec2& _size,
|
||||
modeDisplay[mode],
|
||||
displayOutside);
|
||||
}
|
||||
m_VBO->flush();
|
||||
}
|
||||
|
||||
ewol::Padding ewol::compositing::Shaper::getPadding() {
|
||||
@ -579,7 +598,7 @@ ewol::Padding ewol::compositing::Shaper::getPadding() {
|
||||
|
||||
ewol::Padding ewol::compositing::Shaper::getPaddingIn() {
|
||||
ewol::Padding padding(0,0,0,0);
|
||||
if (m_config != nullptr) {
|
||||
if (m_config != null) {
|
||||
padding.setValue(m_config->getNumber(m_confIdPaddingIn[shaperPosLeft]),
|
||||
m_config->getNumber(m_confIdPaddingIn[shaperPosTop]),
|
||||
m_config->getNumber(m_confIdPaddingIn[shaperPosRight]),
|
||||
@ -590,7 +609,7 @@ ewol::Padding ewol::compositing::Shaper::getPaddingIn() {
|
||||
|
||||
ewol::Padding ewol::compositing::Shaper::getPaddingOut() {
|
||||
ewol::Padding padding(0,0,0,0);
|
||||
if (m_config != nullptr) {
|
||||
if (m_config != null) {
|
||||
padding.setValue(m_config->getNumber(m_confIdPaddingOut[shaperPosLeft]),
|
||||
m_config->getNumber(m_confIdPaddingOut[shaperPosTop]),
|
||||
m_config->getNumber(m_confIdPaddingOut[shaperPosRight]),
|
||||
@ -601,7 +620,7 @@ ewol::Padding ewol::compositing::Shaper::getPaddingOut() {
|
||||
|
||||
ewol::Padding ewol::compositing::Shaper::getBorder() {
|
||||
ewol::Padding padding(0,0,0,0);
|
||||
if (m_config != nullptr) {
|
||||
if (m_config != null) {
|
||||
padding.setValue(m_config->getNumber(m_confIdBorder[shaperPosLeft]),
|
||||
m_config->getNumber(m_confIdBorder[shaperPosTop]),
|
||||
m_config->getNumber(m_confIdBorder[shaperPosRight]),
|
||||
@ -610,38 +629,38 @@ ewol::Padding ewol::compositing::Shaper::getBorder() {
|
||||
return padding;
|
||||
}
|
||||
|
||||
void ewol::compositing::Shaper::setSource(const std::string& _newFile) {
|
||||
void ewol::compositing::Shaper::setSource(const etk::Uri& _uri) {
|
||||
clear();
|
||||
unLoadProgram();
|
||||
m_name = _newFile;
|
||||
m_uri = _uri;
|
||||
loadProgram();
|
||||
}
|
||||
|
||||
bool ewol::compositing::Shaper::hasSources() {
|
||||
return m_GLprogram!=nullptr;
|
||||
return m_GLprogram != null;
|
||||
}
|
||||
|
||||
|
||||
const etk::Color<float>& ewol::compositing::Shaper::getColor(int32_t _id) {
|
||||
static const etk::Color<float> errorValue(0,0,0,0);
|
||||
if (m_colorProperty == nullptr) {
|
||||
EWOL_WARNING("nullptr of m_colorProperty ==> return #0000 for id " << _id);
|
||||
if (m_colorProperty == null) {
|
||||
EWOL_WARNING("null of m_colorProperty ==> return #0000 for id " << _id);
|
||||
return errorValue;
|
||||
}
|
||||
return m_colorProperty->get(_id);
|
||||
}
|
||||
|
||||
int32_t ewol::compositing::Shaper::requestColor(const std::string& _name) {
|
||||
if (m_colorProperty == nullptr) {
|
||||
EWOL_WARNING("nullptr of m_colorProperty ==> return -1 for name " << _name);
|
||||
int32_t ewol::compositing::Shaper::requestColor(const etk::String& _name) {
|
||||
if (m_colorProperty == null) {
|
||||
EWOL_WARNING("null of m_colorProperty ==> return -1 for name " << _name);
|
||||
return -1;
|
||||
}
|
||||
return m_colorProperty->request(_name);
|
||||
}
|
||||
|
||||
int32_t ewol::compositing::Shaper::requestConfig(const std::string& _name) {
|
||||
if (m_config == nullptr) {
|
||||
EWOL_WARNING("nullptr of m_config ==> return -1 for name " << _name);
|
||||
int32_t ewol::compositing::Shaper::requestConfig(const etk::String& _name) {
|
||||
if (m_config == null) {
|
||||
EWOL_WARNING("null of m_config ==> return -1 for name " << _name);
|
||||
return -1;
|
||||
}
|
||||
return m_config->request(_name);
|
||||
@ -649,8 +668,8 @@ int32_t ewol::compositing::Shaper::requestConfig(const std::string& _name) {
|
||||
|
||||
double ewol::compositing::Shaper::getConfigNumber(int32_t _id) {
|
||||
if ( _id == -1
|
||||
|| m_config == nullptr) {
|
||||
EWOL_WARNING("nullptr of m_config ==> return 0.0 for id " << _id);
|
||||
|| m_config == null) {
|
||||
EWOL_WARNING("null of m_config ==> return 0.0 for id " << _id);
|
||||
return 0.0;
|
||||
}
|
||||
return m_config->getNumber(_id);
|
||||
@ -658,17 +677,17 @@ double ewol::compositing::Shaper::getConfigNumber(int32_t _id) {
|
||||
|
||||
|
||||
namespace etk {
|
||||
template<> std::string to_string<ewol::compositing::Shaper>(const ewol::compositing::Shaper& _obj) {
|
||||
return _obj.getSource();
|
||||
template<> etk::String toString<ewol::compositing::Shaper>(const ewol::compositing::Shaper& _obj) {
|
||||
return _obj.getSource().get();
|
||||
}
|
||||
template<> std::u32string to_u32string<ewol::compositing::Shaper>(const ewol::compositing::Shaper& _obj) {
|
||||
return etk::to_u32string(etk::to_string(_obj));
|
||||
template<> etk::UString toUString<ewol::compositing::Shaper>(const ewol::compositing::Shaper& _obj) {
|
||||
return etk::toUString(etk::toString(_obj));
|
||||
}
|
||||
template<> bool from_string<ewol::compositing::Shaper>(ewol::compositing::Shaper& _variableRet, const std::string& _value) {
|
||||
template<> bool from_string<ewol::compositing::Shaper>(ewol::compositing::Shaper& _variableRet, const etk::String& _value) {
|
||||
_variableRet.setSource(_value);
|
||||
return true;
|
||||
}
|
||||
template<> bool from_string<ewol::compositing::Shaper>(ewol::compositing::Shaper& _variableRet, const std::u32string& _value) {
|
||||
return from_string(_variableRet, etk::to_string(_value));
|
||||
template<> bool from_string<ewol::compositing::Shaper>(ewol::compositing::Shaper& _variableRet, const etk::UString& _value) {
|
||||
return from_string(_variableRet, etk::toString(_value));
|
||||
}
|
||||
};
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
#include <gale/resource/Program.hpp>
|
||||
#include <ewol/resource/ConfigFile.hpp>
|
||||
#include <ewol/resource/ColorFile.hpp>
|
||||
#include <ewol/resource/Image.hpp>
|
||||
#include <ewol/resource/TextureFile.hpp>
|
||||
#include <ewol/event/Time.hpp>
|
||||
#include <ewol/Padding.hpp>
|
||||
|
||||
@ -38,7 +38,7 @@ namespace ewol {
|
||||
// TODO : Abstaraction between states (call by name and the system greate IDs
|
||||
class Shaper : public ewol::Compositing {
|
||||
private:
|
||||
std::string m_name; //!< Name of the configuration of the shaper.
|
||||
etk::Uri m_uri; //!< Name of the configuration of the shaper.
|
||||
// External theme config:
|
||||
ememory::SharedPtr<ewol::resource::ConfigFile> m_config; //!< pointer on the config file resources
|
||||
int32_t m_confIdPaddingOut[shaperPosCount]; //!< Padding out property : X-left X-right Y-top Y-buttom
|
||||
@ -72,12 +72,14 @@ namespace ewol {
|
||||
int32_t m_stateOld; //!< previous state
|
||||
int32_t m_stateNew; //!< destination state
|
||||
float m_stateTransition; //!< working state between 2 states
|
||||
vec2 m_coord[SHAPER_NB_MAX_VERTEX]; //!< coordonate of the display ...
|
||||
vec2 m_pos[SHAPER_NB_MAX_VERTEX]; //!< podition to display property
|
||||
int32_t m_nbVertexToDisplay;
|
||||
// color management theme:
|
||||
ememory::SharedPtr<ewol::resource::ColorFile> m_colorProperty; //!< input resource for color management
|
||||
std::vector<ivec2> m_listAssiciatedId; //!< Corellation ID between ColorProperty (Y) and OpenGL Program (X)
|
||||
etk::Vector<ivec2> m_listAssiciatedId; //!< Corellation ID between ColorProperty (Y) and OpenGL Program (X)
|
||||
protected:
|
||||
static const int32_t m_vboIdCoord;
|
||||
static const int32_t m_vboIdPos;
|
||||
ememory::SharedPtr<gale::resource::VirtualBufferObject> m_VBO;
|
||||
private:
|
||||
/**
|
||||
* @brief load the openGL program and get all the ID needed
|
||||
@ -90,9 +92,9 @@ namespace ewol {
|
||||
public:
|
||||
/**
|
||||
* @brief generic constructor
|
||||
* @param[in] _shaperName Name of the file that might be loaded
|
||||
* @param[in] _uri URI of the file that might be loaded
|
||||
*/
|
||||
Shaper(const std::string& _shaperName="");
|
||||
Shaper(const etk::Uri& _uri="");
|
||||
/**
|
||||
* @brief generic destructor
|
||||
*/
|
||||
@ -162,15 +164,15 @@ namespace ewol {
|
||||
ewol::Padding getBorder();
|
||||
/**
|
||||
* @brief change the shaper Source
|
||||
* @param[in] _newFile New file of the shaper
|
||||
* @param[in] _uri New file of the shaper
|
||||
*/
|
||||
void setSource(const std::string& _newFile);
|
||||
void setSource(const etk::Uri& _uri);
|
||||
/**
|
||||
* @brief get the shaper file Source
|
||||
* @return the shapper file name
|
||||
*/
|
||||
const std::string& getSource() const {
|
||||
return m_name;
|
||||
const etk::Uri& getSource() const {
|
||||
return m_uri;
|
||||
};
|
||||
/**
|
||||
* @brief Sometimes the user declare an image but not allocate the ressources all the time, this is to know it ..
|
||||
@ -234,7 +236,7 @@ namespace ewol {
|
||||
* @param[in] _name Name of the element requested
|
||||
* @return The Id of the color
|
||||
*/
|
||||
int32_t requestColor(const std::string& _name);
|
||||
int32_t requestColor(const etk::String& _name);
|
||||
/**
|
||||
* @brief Get The color associated at an ID.
|
||||
* @param[in] _id Id of the color
|
||||
@ -247,7 +249,7 @@ namespace ewol {
|
||||
* @param[in] _name Name of the element requested
|
||||
* @return The Id of the element
|
||||
*/
|
||||
int32_t requestConfig(const std::string& _name);
|
||||
int32_t requestConfig(const etk::String& _name);
|
||||
/**
|
||||
* @brief Get The number associated at an ID.
|
||||
* @param[in] _id Id of the parameter
|
||||
@ -282,10 +284,10 @@ namespace ewol {
|
||||
* == operator
|
||||
*****************************************************/
|
||||
bool operator== (const Shaper& _obj) const {
|
||||
return _obj.m_name == m_name;
|
||||
return _obj.m_uri == m_uri;
|
||||
}
|
||||
bool operator!= (const Shaper& _obj) const {
|
||||
return _obj.m_name != m_name;
|
||||
return _obj.m_uri != m_uri;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -1,13 +1,16 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
#include <ewol/compositing/Sprite.hpp>
|
||||
|
||||
ewol::compositing::Sprite::Sprite(const std::string& _imageName, const ivec2& _nbSprite, int32_t _size) :
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::compositing::Sprite);
|
||||
|
||||
ewol::compositing::Sprite::Sprite(const etk::String& _imageName, const ivec2& _nbSprite, int32_t _size) :
|
||||
ewol::compositing::Image(_imageName, false, _size),
|
||||
m_nbSprite(_nbSprite),
|
||||
m_unitarySpriteSize(0,0) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -15,7 +15,7 @@ namespace ewol {
|
||||
ivec2 m_nbSprite; //!< number of sprite in vertical and horizontal
|
||||
vec2 m_unitarySpriteSize; //!< size of a unique sprite
|
||||
public:
|
||||
Sprite(const std::string& _imageName,
|
||||
Sprite(const etk::String& _imageName,
|
||||
const ivec2& _nbSprite,
|
||||
int32_t _size=ewol::compositing::Image::sizeAuto);
|
||||
virtual ~Sprite() {};
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
@ -9,8 +9,11 @@
|
||||
#include <ewol/context/Context.hpp>
|
||||
#include <etk/types.hpp>
|
||||
|
||||
ewol::compositing::Text::Text(const std::string& _fontName, int32_t _fontSize) :
|
||||
m_font(nullptr) {
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::compositing::Text);
|
||||
|
||||
ewol::compositing::Text::Text(const etk::String& _fontName, int32_t _fontSize) :
|
||||
m_font(null) {
|
||||
setFont(_fontName, _fontSize);
|
||||
}
|
||||
|
||||
@ -23,16 +26,17 @@ void ewol::compositing::Text::drawMT(const mat4& _transformationMatrix, bool _en
|
||||
// draw BG in any case:
|
||||
m_vectorialDraw.draw();
|
||||
|
||||
if (m_coord.size() <= 0 || m_font == nullptr) {
|
||||
// TODO : a remÃtre ...
|
||||
if ( m_VBO->bufferSize(m_vboIdCoord) <= 0
|
||||
|| m_font == null) {
|
||||
// TODO : set it back ...
|
||||
//EWOL_WARNING("Nothink to draw...");
|
||||
return;
|
||||
}
|
||||
if (m_font == nullptr) {
|
||||
if (m_font == null) {
|
||||
EWOL_WARNING("no font...");
|
||||
return;
|
||||
}
|
||||
if (m_GLprogram == nullptr) {
|
||||
if (m_GLprogram == null) {
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
@ -45,18 +49,18 @@ void ewol::compositing::Text::drawMT(const mat4& _transformationMatrix, bool _en
|
||||
mat4 tmpMatrix = projMatrix * camMatrix * _transformationMatrix;
|
||||
m_GLprogram->use();
|
||||
m_GLprogram->uniformMatrix(m_GLMatrix, tmpMatrix);
|
||||
// Texture :
|
||||
// Texture:
|
||||
m_GLprogram->setTexture0(m_GLtexID, m_font->getRendererId());
|
||||
m_GLprogram->uniform1i(m_GLtextWidth, m_font->getOpenGlSize().x());
|
||||
m_GLprogram->uniform1i(m_GLtextHeight, m_font->getOpenGlSize().x());
|
||||
// position :
|
||||
m_GLprogram->sendAttribute(m_GLPosition, 3/*x,y,z*/, &m_coord[0]);
|
||||
// Texture :
|
||||
m_GLprogram->sendAttribute(m_GLtexture, 2/*u,v*/, &m_coordTex[0]);
|
||||
// color :
|
||||
m_GLprogram->sendAttribute(m_GLColor, 4/*r,g,b,a*/, &m_coordColor[0]);
|
||||
// Request the draw od the elements :
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_coord.size());
|
||||
// position:
|
||||
m_GLprogram->sendAttributePointer(m_GLPosition, m_VBO, m_vboIdCoord);
|
||||
// Texture:
|
||||
m_GLprogram->sendAttributePointer(m_GLtexture, m_VBO, m_vboIdCoordText);
|
||||
// color:
|
||||
m_GLprogram->sendAttributePointer(m_GLColor, m_VBO, m_vboIdColor);
|
||||
// Request the draw od the elements:
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_VBO->bufferSize(m_vboIdCoord));
|
||||
m_GLprogram->unUse();
|
||||
if (_enableDepthTest == true) {
|
||||
gale::openGL::disable(gale::openGL::flag_depthTest);
|
||||
@ -67,15 +71,16 @@ void ewol::compositing::Text::drawD(bool _disableDepthTest) {
|
||||
// draw BG in any case:
|
||||
m_vectorialDraw.draw(_disableDepthTest);
|
||||
|
||||
if (m_coord.size() <= 0 || m_font == nullptr) {
|
||||
if ( m_VBO->bufferSize(m_vboIdCoord) <= 0
|
||||
|| m_font == null) {
|
||||
//EWOL_WARNING("Nothink to draw...");
|
||||
return;
|
||||
}
|
||||
if (m_font == nullptr) {
|
||||
if (m_font == null) {
|
||||
EWOL_WARNING("no font...");
|
||||
return;
|
||||
}
|
||||
if (m_GLprogram == nullptr) {
|
||||
if (m_GLprogram == null) {
|
||||
EWOL_ERROR("No shader ...");
|
||||
return;
|
||||
}
|
||||
@ -87,43 +92,43 @@ void ewol::compositing::Text::drawD(bool _disableDepthTest) {
|
||||
m_GLprogram->setTexture0(m_GLtexID, m_font->getRendererId());
|
||||
m_GLprogram->uniform1i(m_GLtextWidth, m_font->getOpenGlSize().x());
|
||||
m_GLprogram->uniform1i(m_GLtextHeight, m_font->getOpenGlSize().x());
|
||||
// position :
|
||||
m_GLprogram->sendAttribute(m_GLPosition, m_coord);
|
||||
// Texture :
|
||||
m_GLprogram->sendAttribute(m_GLtexture, m_coordTex);
|
||||
// color :
|
||||
m_GLprogram->sendAttribute(m_GLColor, m_coordColor);
|
||||
// position:
|
||||
m_GLprogram->sendAttributePointer(m_GLPosition, m_VBO, m_vboIdCoord);
|
||||
// Texture:
|
||||
m_GLprogram->sendAttributePointer(m_GLtexture, m_VBO, m_vboIdCoordText);
|
||||
// color:
|
||||
m_GLprogram->sendAttributePointer(m_GLColor, m_VBO, m_vboIdColor);
|
||||
// Request the draw od the elements :
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_coord.size());
|
||||
gale::openGL::drawArrays(gale::openGL::renderMode::triangle, 0, m_VBO->bufferSize(m_vboIdCoord));
|
||||
m_GLprogram->unUse();
|
||||
}
|
||||
|
||||
float ewol::compositing::Text::getSize() {
|
||||
if (m_font == nullptr) {
|
||||
if (m_font == null) {
|
||||
EWOL_WARNING("no font...");
|
||||
return 1.0f;
|
||||
}
|
||||
return m_font->getFontSize();
|
||||
}
|
||||
float ewol::compositing::Text::getHeight() {
|
||||
if (m_font == nullptr) {
|
||||
if (m_font == null) {
|
||||
EWOL_WARNING("no font...");
|
||||
return 10.0f;
|
||||
}
|
||||
return m_font->getHeight(m_mode);
|
||||
}
|
||||
ewol::GlyphProperty * ewol::compositing::Text::getGlyphPointer(char32_t _charcode) {
|
||||
if (m_font == nullptr) {
|
||||
if (m_font == null) {
|
||||
EWOL_WARNING("no font...");
|
||||
return nullptr;
|
||||
return null;
|
||||
}
|
||||
return m_font->getGlyphPointer(_charcode, m_mode);
|
||||
}
|
||||
|
||||
void ewol::compositing::Text::setFontSize(int32_t _fontSize) {
|
||||
// get old size
|
||||
std::string fontName = "";
|
||||
if (m_font != nullptr) {
|
||||
etk::String fontName = "";
|
||||
if (m_font != null) {
|
||||
fontName = m_font->getName();
|
||||
// Remove the :XX for the size ...
|
||||
size_t pos = fontName.rfind(':');
|
||||
@ -132,16 +137,16 @@ void ewol::compositing::Text::setFontSize(int32_t _fontSize) {
|
||||
setFont(fontName, _fontSize);
|
||||
}
|
||||
|
||||
void ewol::compositing::Text::setFontName(const std::string& _fontName) {
|
||||
void ewol::compositing::Text::setFontName(const etk::String& _fontName) {
|
||||
// get old size
|
||||
int32_t fontSize = -1;
|
||||
if (m_font != nullptr) {
|
||||
if (m_font != null) {
|
||||
fontSize = m_font->getFontSize();
|
||||
}
|
||||
setFont(_fontName, fontSize);
|
||||
}
|
||||
|
||||
void ewol::compositing::Text::setFont(std::string _fontName, int32_t _fontSize) {
|
||||
void ewol::compositing::Text::setFont(etk::String _fontName, int32_t _fontSize) {
|
||||
clear();
|
||||
// remove old one
|
||||
ememory::SharedPtr<ewol::resource::TexturedFont> previousFont = m_font;
|
||||
@ -152,18 +157,18 @@ void ewol::compositing::Text::setFont(std::string _fontName, int32_t _fontSize)
|
||||
_fontName = ewol::getContext().getFontDefault().getName();
|
||||
}
|
||||
_fontName += ":";
|
||||
_fontName += etk::to_string(_fontSize);
|
||||
_fontName += etk::toString(_fontSize);
|
||||
EWOL_VERBOSE("plop : " << _fontName << " size=" << _fontSize << " result :" << _fontName);
|
||||
// link to new one
|
||||
m_font = ewol::resource::TexturedFont::create(_fontName);
|
||||
if (m_font == nullptr) {
|
||||
if (m_font == null) {
|
||||
EWOL_ERROR("Can not get font resource");
|
||||
m_font = previousFont;
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::compositing::Text::setFontMode(enum ewol::font::mode _mode) {
|
||||
if (m_font != nullptr) {
|
||||
if (m_font != null) {
|
||||
m_mode = m_font->getWrappingMode(_mode);
|
||||
}
|
||||
}
|
||||
@ -171,7 +176,7 @@ void ewol::compositing::Text::setFontMode(enum ewol::font::mode _mode) {
|
||||
void ewol::compositing::Text::printChar(const char32_t& _charcode) {
|
||||
// get a pointer on the glyph property :
|
||||
ewol::GlyphProperty* myGlyph = getGlyphPointer(_charcode);
|
||||
if (nullptr == myGlyph) {
|
||||
if (null == myGlyph) {
|
||||
EWOL_ERROR(" font does not really existed ...");
|
||||
return;
|
||||
}
|
||||
@ -180,7 +185,7 @@ void ewol::compositing::Text::printChar(const char32_t& _charcode) {
|
||||
|
||||
// get the kerning ofset :
|
||||
float kerningOffset = 0;
|
||||
if (true == m_kerning) {
|
||||
if (m_kerning == true) {
|
||||
kerningOffset = myGlyph->kerningGet(m_previousCharcode);
|
||||
if (kerningOffset != 0) {
|
||||
//EWOL_DEBUG("Kerning between : '" << m_previousCharcode << "'&'" << myGlyph->m_UVal << "' value : " << kerningOffset);
|
||||
@ -292,17 +297,17 @@ void ewol::compositing::Text::printChar(const char32_t& _charcode) {
|
||||
*
|
||||
*/
|
||||
// set texture coordonates :
|
||||
m_coordTex.push_back(texturePos[0]);
|
||||
m_coordTex.push_back(texturePos[1]);
|
||||
m_coordTex.push_back(texturePos[2]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, texturePos[0]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, texturePos[1]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, texturePos[2]);
|
||||
// set display positions :
|
||||
m_coord.push_back(bitmapDrawPos[0]);
|
||||
m_coord.push_back(bitmapDrawPos[1]);
|
||||
m_coord.push_back(bitmapDrawPos[2]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, bitmapDrawPos[0]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, bitmapDrawPos[1]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, bitmapDrawPos[2]);
|
||||
// set the color
|
||||
m_coordColor.push_back(m_color);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
/* Step 2 :
|
||||
*
|
||||
* **
|
||||
@ -311,17 +316,17 @@ void ewol::compositing::Text::printChar(const char32_t& _charcode) {
|
||||
* ********
|
||||
*/
|
||||
// set texture coordonates :
|
||||
m_coordTex.push_back(texturePos[0]);
|
||||
m_coordTex.push_back(texturePos[2]);
|
||||
m_coordTex.push_back(texturePos[3]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, texturePos[0]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, texturePos[2]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoordText, texturePos[3]);
|
||||
// set display positions :
|
||||
m_coord.push_back(bitmapDrawPos[0]);
|
||||
m_coord.push_back(bitmapDrawPos[2]);
|
||||
m_coord.push_back(bitmapDrawPos[3]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, bitmapDrawPos[0]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, bitmapDrawPos[2]);
|
||||
m_VBO->pushOnBuffer(m_vboIdCoord, bitmapDrawPos[3]);
|
||||
// set the color
|
||||
m_coordColor.push_back(m_color);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_coordColor.push_back(m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
m_VBO->pushOnBuffer(m_vboIdColor, m_color);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -332,6 +337,7 @@ void ewol::compositing::Text::printChar(const char32_t& _charcode) {
|
||||
//EWOL_DEBUG(" 6 print '" << charcode << "' : start=" << m_sizeDisplayStart << " stop=" << m_sizeDisplayStop << " pos=" << m_position);
|
||||
// Register the previous character
|
||||
m_previousCharcode = _charcode;
|
||||
m_VBO->flush();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -340,8 +346,8 @@ vec3 ewol::compositing::Text::calculateSizeChar(const char32_t& _charcode) {
|
||||
// get a pointer on the glyph property :
|
||||
ewol::GlyphProperty * myGlyph = getGlyphPointer(_charcode);
|
||||
int32_t fontHeigh = getHeight();
|
||||
if (myGlyph == nullptr) {
|
||||
if (m_font == nullptr) {
|
||||
if (myGlyph == null) {
|
||||
if (m_font == null) {
|
||||
EWOL_WARNING("no Glyph... in no font");
|
||||
} else {
|
||||
EWOL_WARNING("no Glyph... in font : " << m_font->getName());
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
#include <ewol/resource/TexturedFont.hpp>
|
||||
#include <ewol/compositing/TextBase.hpp>
|
||||
#include <exml/exml.hpp>
|
||||
#include <string>
|
||||
#include <etk/String.hpp>
|
||||
|
||||
#include <etk/Color.hpp>
|
||||
|
||||
@ -28,7 +28,7 @@ namespace ewol {
|
||||
* @param[in] _fontName Name of the font that might be loaded
|
||||
* @param[in] _fontSize size of the font that might be loaded
|
||||
*/
|
||||
Text(const std::string& _fontName="", int32_t _fontSize=-1);
|
||||
Text(const etk::String& _fontName="", int32_t _fontSize=-1);
|
||||
/**
|
||||
* @brief generic destructor
|
||||
*/
|
||||
@ -45,8 +45,8 @@ namespace ewol {
|
||||
|
||||
public:
|
||||
virtual void setFontSize(int32_t _fontSize);
|
||||
virtual void setFontName(const std::string& _fontName);
|
||||
virtual void setFont(std::string _fontName, int32_t _fontSize);
|
||||
virtual void setFontName(const etk::String& _fontName);
|
||||
virtual void setFont(etk::String _fontName, int32_t _fontSize);
|
||||
virtual void setFontMode(enum ewol::font::mode _mode);
|
||||
virtual void printChar(const char32_t& _charcode);
|
||||
virtual vec3 calculateSizeChar(const char32_t& _charcode);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <ewol/debug.hpp>
|
||||
@ -9,7 +9,16 @@
|
||||
#include <ewol/context/Context.hpp>
|
||||
#include <etk/types.hpp>
|
||||
|
||||
ewol::compositing::TextBase::TextBase(const std::string& _shaderName, bool _loadProgram) :
|
||||
#include <etk/typeInfo.hpp>
|
||||
ETK_DECLARE_TYPE(ewol::compositing::TextBase);
|
||||
|
||||
const int32_t ewol::compositing::TextBase::m_vboIdCoord(0);
|
||||
const int32_t ewol::compositing::TextBase::m_vboIdCoordText(1);
|
||||
const int32_t ewol::compositing::TextBase::m_vboIdColor(2);
|
||||
const int32_t ewol::compositing::TextBase::m_vboIdGlyphLevel(3);
|
||||
#define NB_VBO (4)
|
||||
|
||||
ewol::compositing::TextBase::TextBase(const etk::String& _shaderName, bool _loadProgram) :
|
||||
m_position(0.0, 0.0, 0.0),
|
||||
m_clippingPosStart(0.0, 0.0, 0.0),
|
||||
m_clippingPosStop(0.0, 0.0, 0.0),
|
||||
@ -26,7 +35,7 @@ ewol::compositing::TextBase::TextBase(const std::string& _shaderName, bool _load
|
||||
m_startTextpos(0),
|
||||
m_stopTextPos(0),
|
||||
m_alignement(alignDisable),
|
||||
m_GLprogram(nullptr),
|
||||
m_GLprogram(null),
|
||||
m_GLPosition(-1),
|
||||
m_GLMatrix(-1),
|
||||
m_GLColor(-1),
|
||||
@ -37,6 +46,14 @@ ewol::compositing::TextBase::TextBase(const std::string& _shaderName, bool _load
|
||||
if (_loadProgram == true) {
|
||||
loadProgram(_shaderName);
|
||||
}
|
||||
// Create the VBO:
|
||||
m_VBO = gale::resource::VirtualBufferObject::create(NB_VBO);
|
||||
if (m_VBO == null) {
|
||||
EWOL_ERROR("can not instanciate VBO ...");
|
||||
return;
|
||||
}
|
||||
// TO facilitate some debugs we add a name of the VBO:
|
||||
m_VBO->setName("[VBO] of ewol::compositing::TextBase");
|
||||
}
|
||||
|
||||
|
||||
@ -44,12 +61,12 @@ ewol::compositing::TextBase::~TextBase() {
|
||||
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::loadProgram(const std::string& _shaderName) {
|
||||
// get the shader resource :
|
||||
void ewol::compositing::TextBase::loadProgram(const etk::String& _shaderName) {
|
||||
// get the shader resource:
|
||||
m_GLPosition = 0;
|
||||
ememory::SharedPtr<gale::resource::Program> old = m_GLprogram;
|
||||
m_GLprogram = gale::resource::Program::create(_shaderName);
|
||||
if (m_GLprogram != nullptr) {
|
||||
if (m_GLprogram != null) {
|
||||
m_GLPosition = m_GLprogram->getAttribute("EW_coord3d");
|
||||
m_GLColor = m_GLprogram->getAttribute("EW_color");
|
||||
m_GLtexture = m_GLprogram->getAttribute("EW_texture2d");
|
||||
@ -60,7 +77,7 @@ void ewol::compositing::TextBase::loadProgram(const std::string& _shaderName) {
|
||||
} else {
|
||||
EWOL_ERROR("Can not load the program => create previous one...");
|
||||
m_GLprogram = old;
|
||||
old = nullptr;
|
||||
old = null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -84,11 +101,9 @@ void ewol::compositing::TextBase::clear() {
|
||||
ewol::Compositing::clear();
|
||||
// remove sub draw system
|
||||
m_vectorialDraw.clear();
|
||||
// reset Buffer :
|
||||
m_coord.clear();
|
||||
m_coordTex.clear();
|
||||
m_coordColor.clear();
|
||||
// reset temporal variables :
|
||||
// reset Buffer:
|
||||
m_VBO->clear();
|
||||
// reset temporal variables:
|
||||
reset();
|
||||
}
|
||||
|
||||
@ -119,10 +134,10 @@ void ewol::compositing::TextBase::setPos(const vec3& _pos) {
|
||||
// check min max for display area
|
||||
if (m_nbCharDisplayed != 0) {
|
||||
EWOL_VERBOSE("update size 1 " << m_sizeDisplayStart << " " << m_sizeDisplayStop);
|
||||
m_sizeDisplayStop.setX(std::max(m_position.x(), m_sizeDisplayStop.x()));
|
||||
m_sizeDisplayStop.setY(std::max(m_position.y(), m_sizeDisplayStop.y()));
|
||||
m_sizeDisplayStart.setX(std::min(m_position.x(), m_sizeDisplayStart.x()));
|
||||
m_sizeDisplayStart.setY(std::min(m_position.y(), m_sizeDisplayStart.y()));
|
||||
m_sizeDisplayStop.setX(etk::max(m_position.x(), m_sizeDisplayStop.x()));
|
||||
m_sizeDisplayStop.setY(etk::max(m_position.y(), m_sizeDisplayStop.y()));
|
||||
m_sizeDisplayStart.setX(etk::min(m_position.x(), m_sizeDisplayStart.x()));
|
||||
m_sizeDisplayStart.setY(etk::min(m_position.y(), m_sizeDisplayStart.y()));
|
||||
EWOL_VERBOSE("update size 2 " << m_sizeDisplayStart << " " << m_sizeDisplayStop);
|
||||
}
|
||||
// update position
|
||||
@ -137,10 +152,10 @@ void ewol::compositing::TextBase::setPos(const vec3& _pos) {
|
||||
EWOL_VERBOSE("update size 0 " << m_sizeDisplayStart << " " << m_sizeDisplayStop);
|
||||
} else {
|
||||
EWOL_VERBOSE("update size 3 " << m_sizeDisplayStart << " " << m_sizeDisplayStop);
|
||||
m_sizeDisplayStop.setX(std::max(m_position.x(), m_sizeDisplayStop.x()));
|
||||
m_sizeDisplayStop.setY(std::max(m_position.y(), m_sizeDisplayStop.y()));
|
||||
m_sizeDisplayStart.setX(std::min(m_position.x(), m_sizeDisplayStart.x()));
|
||||
m_sizeDisplayStart.setY(std::min(m_position.y(), m_sizeDisplayStart.y()));
|
||||
m_sizeDisplayStop.setX(etk::max(m_position.x(), m_sizeDisplayStop.x()));
|
||||
m_sizeDisplayStop.setY(etk::max(m_position.y(), m_sizeDisplayStop.y()));
|
||||
m_sizeDisplayStart.setX(etk::min(m_position.x(), m_sizeDisplayStart.x()));
|
||||
m_sizeDisplayStart.setY(etk::min(m_position.y(), m_sizeDisplayStart.y()));
|
||||
EWOL_VERBOSE("update size 4 " << m_sizeDisplayStart << " " << m_sizeDisplayStop);
|
||||
}
|
||||
}
|
||||
@ -228,13 +243,13 @@ void ewol::compositing::TextBase::setKerningMode(bool _newMode) {
|
||||
m_kerning = _newMode;
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::print(const std::u32string& _text) {
|
||||
std::vector<TextDecoration> decorationEmpty;
|
||||
void ewol::compositing::TextBase::print(const etk::UString& _text) {
|
||||
etk::Vector<TextDecoration> decorationEmpty;
|
||||
print(_text, decorationEmpty);
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::print(const std::string& _text) {
|
||||
std::vector<TextDecoration> decorationEmpty;
|
||||
void ewol::compositing::TextBase::print(const etk::String& _text) {
|
||||
etk::Vector<TextDecoration> decorationEmpty;
|
||||
print(_text, decorationEmpty);
|
||||
}
|
||||
|
||||
@ -250,7 +265,7 @@ void ewol::compositing::TextBase::parseHtmlNode(const exml::Element& _element) {
|
||||
// nothing to do ...
|
||||
continue;
|
||||
} else if (it.isText() == true) {
|
||||
htmlAddData(etk::to_u32string(it.getValue()));
|
||||
htmlAddData(etk::toUString(it.getValue()));
|
||||
EWOL_VERBOSE("XML add : " << it.getValue());
|
||||
continue;
|
||||
} else if (it.isElement() == false) {
|
||||
@ -269,7 +284,7 @@ void ewol::compositing::TextBase::parseHtmlNode(const exml::Element& _element) {
|
||||
} else if (etk::compare_no_case(elem.getValue(), "font") == true) {
|
||||
EWOL_VERBOSE("XML Font ...");
|
||||
TextDecoration tmpDeco = m_htmlDecoTmp;
|
||||
std::string colorValue = elem.attributes["color"];
|
||||
etk::String colorValue = elem.attributes["color"];
|
||||
if (colorValue.size() != 0) {
|
||||
m_htmlDecoTmp.m_colorFg = colorValue;
|
||||
}
|
||||
@ -339,23 +354,23 @@ void ewol::compositing::TextBase::parseHtmlNode(const exml::Element& _element) {
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::printDecorated(const std::string& _text) {
|
||||
std::string tmpData("<html>\n<body>\n");
|
||||
void ewol::compositing::TextBase::printDecorated(const etk::String& _text) {
|
||||
etk::String tmpData("<html>\n<body>\n");
|
||||
tmpData += _text;
|
||||
tmpData += "\n</body>\n</html>\n";
|
||||
//EWOL_DEBUG("plop : " << tmpData);
|
||||
printHTML(tmpData);
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::printDecorated(const std::u32string& _text) {
|
||||
std::u32string tmpData(U"<html>\n<body>\n");
|
||||
void ewol::compositing::TextBase::printDecorated(const etk::UString& _text) {
|
||||
etk::UString tmpData(U"<html>\n<body>\n");
|
||||
tmpData += _text;
|
||||
tmpData += U"\n</body>\n</html>\n";
|
||||
//EWOL_DEBUG("plop : " << tmpData);
|
||||
printHTML(tmpData);
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::printHTML(const std::string& _text) {
|
||||
void ewol::compositing::TextBase::printHTML(const etk::String& _text) {
|
||||
exml::Document doc;
|
||||
|
||||
// reset parameter :
|
||||
@ -383,15 +398,15 @@ void ewol::compositing::TextBase::printHTML(const std::string& _text) {
|
||||
htmlFlush();
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::printHTML(const std::u32string& _text) {
|
||||
void ewol::compositing::TextBase::printHTML(const etk::UString& _text) {
|
||||
exml::Document doc;
|
||||
|
||||
// reset parameter :
|
||||
m_htmlDecoTmp.m_colorBg = m_defaultColorBg;
|
||||
m_htmlDecoTmp.m_colorFg = m_defaultColorFg;
|
||||
m_htmlDecoTmp.m_mode = ewol::font::Regular;
|
||||
// TODO : Create an instance of xml parser to manage std::u32string...
|
||||
if (doc.parse(etk::to_string(_text)) == false) {
|
||||
// TODO : Create an instance of xml parser to manage etk::UString...
|
||||
if (doc.parse(etk::toString(_text)) == false) {
|
||||
EWOL_ERROR( "can not load XML: PARSING error: Decorated text ");
|
||||
return;
|
||||
}
|
||||
@ -411,7 +426,7 @@ void ewol::compositing::TextBase::printHTML(const std::u32string& _text) {
|
||||
htmlFlush();
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::print(const std::string& _text, const std::vector<TextDecoration>& _decoration) {
|
||||
void ewol::compositing::TextBase::print(const etk::String& _text, const etk::Vector<TextDecoration>& _decoration) {
|
||||
etk::Color<> tmpFg(m_color);
|
||||
etk::Color<> tmpBg(m_colorBg);
|
||||
if (m_alignement == alignDisable) {
|
||||
@ -596,7 +611,7 @@ void ewol::compositing::TextBase::print(const std::string& _text, const std::vec
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::print(const std::u32string& _text, const std::vector<TextDecoration>& _decoration) {
|
||||
void ewol::compositing::TextBase::print(const etk::UString& _text, const etk::Vector<TextDecoration>& _decoration) {
|
||||
etk::Color<> tmpFg(m_color);
|
||||
etk::Color<> tmpBg(m_colorBg);
|
||||
if (m_alignement == alignDisable) {
|
||||
@ -794,7 +809,8 @@ void ewol::compositing::TextBase::setTextAlignement(float _startTextpos, float _
|
||||
m_stopTextPos = _stopTextPos+1;
|
||||
m_alignement = _alignement;
|
||||
if (m_startTextpos >= m_stopTextPos) {
|
||||
EWOL_ERROR("Request allignement with Borne position error : " << _startTextpos << " => " << _stopTextPos);
|
||||
// TODO: understand why this flush ...
|
||||
EWOL_VERBOSE("Request allignement with Borne position error : " << _startTextpos << " => " << _stopTextPos);
|
||||
}
|
||||
}
|
||||
|
||||
@ -806,7 +822,7 @@ void ewol::compositing::TextBase::disableAlignement() {
|
||||
m_alignement = alignDisable;
|
||||
}
|
||||
|
||||
vec3 ewol::compositing::TextBase::calculateSizeHTML(const std::string& _text) {
|
||||
vec3 ewol::compositing::TextBase::calculateSizeHTML(const etk::String& _text) {
|
||||
// remove intermediate result
|
||||
reset();
|
||||
//EWOL_DEBUG(" 0 size for=\n" << text);
|
||||
@ -820,11 +836,11 @@ vec3 ewol::compositing::TextBase::calculateSizeHTML(const std::string& _text) {
|
||||
//EWOL_DEBUG(" 1 Stop pos=" << m_sizeDisplayStop);
|
||||
|
||||
// get the last elements
|
||||
m_sizeDisplayStop.setValue(std::max(m_position.x(), m_sizeDisplayStop.x()) ,
|
||||
std::max(m_position.y(), m_sizeDisplayStop.y()) ,
|
||||
m_sizeDisplayStop.setValue(etk::max(m_position.x(), m_sizeDisplayStop.x()) ,
|
||||
etk::max(m_position.y(), m_sizeDisplayStop.y()) ,
|
||||
0);
|
||||
m_sizeDisplayStart.setValue(std::min(m_position.x(), m_sizeDisplayStart.x()) ,
|
||||
std::min(m_position.y(), m_sizeDisplayStart.y()) ,
|
||||
m_sizeDisplayStart.setValue(etk::min(m_position.x(), m_sizeDisplayStart.x()) ,
|
||||
etk::min(m_position.y(), m_sizeDisplayStart.y()) ,
|
||||
0);
|
||||
|
||||
//EWOL_DEBUG(" 2 Start pos=" << m_sizeDisplayStart);
|
||||
@ -837,7 +853,7 @@ vec3 ewol::compositing::TextBase::calculateSizeHTML(const std::string& _text) {
|
||||
m_sizeDisplayStop.z()-m_sizeDisplayStart.z());
|
||||
}
|
||||
|
||||
vec3 ewol::compositing::TextBase::calculateSizeHTML(const std::u32string& _text) {
|
||||
vec3 ewol::compositing::TextBase::calculateSizeHTML(const etk::UString& _text) {
|
||||
// remove intermediate result
|
||||
reset();
|
||||
//EWOL_DEBUG(" 0 size for=\n" << text);
|
||||
@ -851,11 +867,11 @@ vec3 ewol::compositing::TextBase::calculateSizeHTML(const std::u32string& _text)
|
||||
//EWOL_DEBUG(" 1 Stop pos=" << m_sizeDisplayStop);
|
||||
|
||||
// get the last elements
|
||||
m_sizeDisplayStop.setValue(std::max(m_position.x(), m_sizeDisplayStop.x()) ,
|
||||
std::max(m_position.y(), m_sizeDisplayStop.y()) ,
|
||||
m_sizeDisplayStop.setValue(etk::max(m_position.x(), m_sizeDisplayStop.x()) ,
|
||||
etk::max(m_position.y(), m_sizeDisplayStop.y()) ,
|
||||
0);
|
||||
m_sizeDisplayStart.setValue(std::min(m_position.x(), m_sizeDisplayStart.x()) ,
|
||||
std::min(m_position.y(), m_sizeDisplayStart.y()) ,
|
||||
m_sizeDisplayStart.setValue(etk::min(m_position.x(), m_sizeDisplayStart.x()) ,
|
||||
etk::min(m_position.y(), m_sizeDisplayStart.y()) ,
|
||||
0);
|
||||
|
||||
//EWOL_DEBUG(" 2 Start pos=" << m_sizeDisplayStart);
|
||||
@ -868,29 +884,29 @@ vec3 ewol::compositing::TextBase::calculateSizeHTML(const std::u32string& _text)
|
||||
m_sizeDisplayStop.z()-m_sizeDisplayStart.z());
|
||||
}
|
||||
|
||||
vec3 ewol::compositing::TextBase::calculateSizeDecorated(const std::string& _text) {
|
||||
vec3 ewol::compositing::TextBase::calculateSizeDecorated(const etk::String& _text) {
|
||||
if (_text.size() == 0) {
|
||||
return vec3(0,0,0);
|
||||
}
|
||||
std::string tmpData("<html><body>\n");
|
||||
etk::String tmpData("<html><body>\n");
|
||||
tmpData+=_text;
|
||||
tmpData+="\n</body></html>\n";
|
||||
vec3 tmpVal = calculateSizeHTML(tmpData);
|
||||
return tmpVal;
|
||||
}
|
||||
|
||||
vec3 ewol::compositing::TextBase::calculateSizeDecorated(const std::u32string& _text) {
|
||||
vec3 ewol::compositing::TextBase::calculateSizeDecorated(const etk::UString& _text) {
|
||||
if (_text.size() == 0) {
|
||||
return vec3(0,0,0);
|
||||
}
|
||||
std::u32string tmpData(U"<html><body>\n");
|
||||
etk::UString tmpData(U"<html><body>\n");
|
||||
tmpData += _text;
|
||||
tmpData += U"\n</body></html>\n";
|
||||
vec3 tmpVal = calculateSizeHTML(tmpData);
|
||||
return tmpVal;
|
||||
}
|
||||
|
||||
vec3 ewol::compositing::TextBase::calculateSize(const std::string& _text) {
|
||||
vec3 ewol::compositing::TextBase::calculateSize(const etk::String& _text) {
|
||||
vec3 outputSize(0, 0, 0);
|
||||
for(auto element : _text) {
|
||||
vec3 tmpp = calculateSize(element);
|
||||
@ -902,7 +918,7 @@ vec3 ewol::compositing::TextBase::calculateSize(const std::string& _text) {
|
||||
return outputSize;
|
||||
}
|
||||
|
||||
vec3 ewol::compositing::TextBase::calculateSize(const std::u32string& _text) {
|
||||
vec3 ewol::compositing::TextBase::calculateSize(const etk::UString& _text) {
|
||||
vec3 outputSize(0, 0, 0);
|
||||
for(auto element : _text) {
|
||||
vec3 tmpp = calculateSize(element);
|
||||
@ -925,7 +941,7 @@ void ewol::compositing::TextBase::printCursor(bool _isInsertMode, float _cursorS
|
||||
}
|
||||
}
|
||||
|
||||
bool ewol::compositing::TextBase::extrapolateLastId(const std::string& _text,
|
||||
bool ewol::compositing::TextBase::extrapolateLastId(const etk::String& _text,
|
||||
const int32_t _start,
|
||||
int32_t& _stop,
|
||||
int32_t& _space,
|
||||
@ -988,7 +1004,7 @@ bool ewol::compositing::TextBase::extrapolateLastId(const std::string& _text,
|
||||
}
|
||||
}
|
||||
|
||||
bool ewol::compositing::TextBase::extrapolateLastId(const std::u32string& _text,
|
||||
bool ewol::compositing::TextBase::extrapolateLastId(const etk::UString& _text,
|
||||
const int32_t _start,
|
||||
int32_t& _stop,
|
||||
int32_t& _space,
|
||||
@ -1051,20 +1067,20 @@ bool ewol::compositing::TextBase::extrapolateLastId(const std::u32string& _text,
|
||||
}
|
||||
}
|
||||
|
||||
void ewol::compositing::TextBase::htmlAddData(const std::u32string& _data) {
|
||||
void ewol::compositing::TextBase::htmlAddData(const etk::UString& _data) {
|
||||
if( m_htmlCurrrentLine.size()>0
|
||||
&& m_htmlCurrrentLine[m_htmlCurrrentLine.size()-1] != ' ') {
|
||||
m_htmlCurrrentLine += U" ";
|
||||
if(m_htmlDecoration.size()>0) {
|
||||
TextDecoration tmp = m_htmlDecoration[m_htmlDecoration.size()-1];
|
||||
m_htmlDecoration.push_back(tmp);
|
||||
m_htmlDecoration.pushBack(tmp);
|
||||
} else {
|
||||
m_htmlDecoration.push_back(m_htmlDecoTmp);
|
||||
m_htmlDecoration.pushBack(m_htmlDecoTmp);
|
||||
}
|
||||
}
|
||||
m_htmlCurrrentLine += _data;
|
||||
for(size_t iii=0; iii<_data.size() ; iii++) {
|
||||
m_htmlDecoration.push_back(m_htmlDecoTmp);
|
||||
m_htmlDecoration.pushBack(m_htmlDecoTmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
* @license APACHE v2.0 (see license file)
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
#include <ewol/compositing/Drawing.hpp>
|
||||
#include <ewol/resource/TexturedFont.hpp>
|
||||
#include <exml/exml.hpp>
|
||||
#include <string>
|
||||
#include <etk/String.hpp>
|
||||
|
||||
namespace ewol {
|
||||
namespace compositing {
|
||||
@ -22,8 +22,8 @@ namespace ewol {
|
||||
*/
|
||||
class TextDecoration {
|
||||
public:
|
||||
etk::Color<> m_colorBg; //!< display background color
|
||||
etk::Color<> m_colorFg; //!< display foreground color
|
||||
etk::Color<float,4> m_colorBg; //!< display background color
|
||||
etk::Color<float,4> m_colorFg; //!< display foreground color
|
||||
enum ewol::font::mode m_mode; //!< display mode Regular/Bold/Italic/BoldItalic
|
||||
TextDecoration() {
|
||||
m_colorBg = etk::color::blue;
|
||||
@ -57,13 +57,13 @@ namespace ewol {
|
||||
vec3 m_clippingPosStop; //!< Clipping stop position
|
||||
bool m_clippingEnable; //!< true if the clipping must be activated
|
||||
protected:
|
||||
etk::Color<> m_defaultColorFg; //!< The text foreground color
|
||||
etk::Color<> m_defaultColorBg; //!< The text background color
|
||||
etk::Color<float,4> m_defaultColorFg; //!< The text foreground color
|
||||
etk::Color<float,4> m_defaultColorBg; //!< The text background color
|
||||
protected:
|
||||
etk::Color<> m_color; //!< The text foreground color
|
||||
etk::Color<> m_colorBg; //!< The text background color
|
||||
etk::Color<> m_colorCursor; //!< The text cursor color
|
||||
etk::Color<> m_colorSelection; //!< The text Selection color
|
||||
etk::Color<float,4> m_color; //!< The text foreground color
|
||||
etk::Color<float,4> m_colorBg; //!< The text background color
|
||||
etk::Color<float,4> m_colorCursor; //!< The text cursor color
|
||||
etk::Color<float,4> m_colorSelection; //!< The text Selection color
|
||||
protected:
|
||||
enum ewol::font::mode m_mode; //!< font display property : Regular/Bold/Italic/BoldItalic
|
||||
bool m_kerning; //!< Kerning enable or disable on the next elements displayed
|
||||
@ -85,19 +85,21 @@ namespace ewol {
|
||||
int32_t m_selectionStartPos; //!< start position of the Selection (if == m_cursorPos ==> no selection)
|
||||
int32_t m_cursorPos; //!< Cursor position (default no cursor == > -100)
|
||||
protected: // Text
|
||||
std::vector<vec3 > m_coord; //!< internal coord of the object
|
||||
std::vector<vec2 > m_coordTex; //!< internal texture coordinate for every point
|
||||
std::vector<etk::Color<float> > m_coordColor; //!< internal color of the different point
|
||||
static const int32_t m_vboIdCoord;
|
||||
static const int32_t m_vboIdCoordText;
|
||||
static const int32_t m_vboIdColor;
|
||||
static const int32_t m_vboIdGlyphLevel;
|
||||
ememory::SharedPtr<gale::resource::VirtualBufferObject> m_VBO;
|
||||
public:
|
||||
/**
|
||||
* @brief load the openGL program and get all the ID needed
|
||||
*/
|
||||
virtual void loadProgram(const std::string& _shaderName);
|
||||
virtual void loadProgram(const etk::String& _shaderName);
|
||||
public:
|
||||
/**
|
||||
* @brief generic constructor
|
||||
*/
|
||||
TextBase(const std::string& _shaderName = "{ewol}DATA:text.prog", bool _loadProgram = true);
|
||||
TextBase(const etk::String& _shaderName = "DATA:///text.prog?lib=ewol", bool _loadProgram = true);
|
||||
/**
|
||||
* @brief generic destructor
|
||||
*/
|
||||
@ -219,13 +221,13 @@ namespace ewol {
|
||||
* @brief Specify the font name (this reset the internal element of the current text (system requirement)
|
||||
* @param[in] _fontName Current name of the selected font
|
||||
*/
|
||||
virtual void setFontName(const std::string& _fontName) = 0;
|
||||
virtual void setFontName(const etk::String& _fontName) = 0;
|
||||
/**
|
||||
* @brief Specify the font property (this reset the internal element of the current text (system requirement)
|
||||
* @param[in] fontName Current name of the selected font
|
||||
* @param[in] fontSize New font size
|
||||
*/
|
||||
virtual void setFont(std::string _fontName, int32_t _fontSize) = 0;
|
||||
virtual void setFont(etk::String _fontName, int32_t _fontSize) = 0;
|
||||
/**
|
||||
* @brief Specify the font mode for the next @ref print
|
||||
* @param[in] mode The font mode requested
|
||||
@ -260,9 +262,9 @@ namespace ewol {
|
||||
* @brief display a compleat string in the current element.
|
||||
* @param[in] _text The string to display.
|
||||
*/
|
||||
void print(const std::string& _text);
|
||||
void print(const etk::String& _text);
|
||||
//! @previous
|
||||
void print(const std::u32string& _text);
|
||||
void print(const etk::UString& _text);
|
||||
/**
|
||||
* @brief display a compleat string in the current element with the generic decoration specification. (basic html data)
|
||||
*
|
||||
@ -292,9 +294,9 @@ namespace ewol {
|
||||
* @param[in] _text The string to display.
|
||||
* @TODO : implementation not done ....
|
||||
*/
|
||||
void printDecorated(const std::string& _text);
|
||||
void printDecorated(const etk::String& _text);
|
||||
//! @previous
|
||||
void printDecorated(const std::u32string& _text);
|
||||
void printDecorated(const etk::UString& _text);
|
||||
/**
|
||||
* @brief display a compleat string in the current element with the generic decoration specification. (basic html data)
|
||||
*
|
||||
@ -328,17 +330,17 @@ namespace ewol {
|
||||
* @param[in] _text The string to display.
|
||||
* @TODO : implementation not done ....
|
||||
*/
|
||||
void printHTML(const std::string& _text);
|
||||
void printHTML(const etk::String& _text);
|
||||
//! @previous
|
||||
void printHTML(const std::u32string& _text);
|
||||
void printHTML(const etk::UString& _text);
|
||||
/**
|
||||
* @brief display a compleat string in the current element whith specific decorations (advence mode).
|
||||
* @param[in] _text The string to display.
|
||||
* @param[in] _decoration The text decoration for the text that might be display (if the vector is smaller, the last parameter is get)
|
||||
*/
|
||||
void print(const std::string& _text, const std::vector<TextDecoration>& _decoration);
|
||||
void print(const etk::String& _text, const etk::Vector<TextDecoration>& _decoration);
|
||||
//! @previous
|
||||
void print(const std::u32string& _text, const std::vector<TextDecoration>& _decoration);
|
||||
void print(const etk::UString& _text, const etk::Vector<TextDecoration>& _decoration);
|
||||
/**
|
||||
* @brief display the current char in the current element (note that the kerning is availlable if the position is not changed)
|
||||
* @param[in] _charcode Char that might be dispalyed
|
||||
@ -377,28 +379,28 @@ namespace ewol {
|
||||
* @param[in] _text The string to calculate dimention.
|
||||
* @return The theoric size used.
|
||||
*/
|
||||
vec3 calculateSizeHTML(const std::string& _text);
|
||||
vec3 calculateSizeHTML(const etk::String& _text);
|
||||
//! @previous
|
||||
vec3 calculateSizeHTML(const std::u32string& _text);
|
||||
vec3 calculateSizeHTML(const etk::UString& _text);
|
||||
/**
|
||||
* @brief calculate a theoric text size
|
||||
* @param[in] _text The string to calculate dimention.
|
||||
* @return The theoric size used.
|
||||
*/
|
||||
vec3 calculateSizeDecorated(const std::string& _text);
|
||||
vec3 calculateSizeDecorated(const etk::String& _text);
|
||||
//! @previous
|
||||
vec3 calculateSizeDecorated(const std::u32string& _text);
|
||||
vec3 calculateSizeDecorated(const etk::UString& _text);
|
||||
/**
|
||||
* @brief calculate a theoric text size
|
||||
* @param[in] _text The string to calculate dimention.
|
||||
* @return The theoric size used.
|
||||
*/
|
||||
vec3 calculateSize(const std::string& _text);
|
||||
vec3 calculateSize(const etk::String& _text);
|
||||
//! @previous
|
||||
vec3 calculateSize(const std::u32string& _text);
|
||||
vec3 calculateSize(const etk::UString& _text);
|
||||
/**
|
||||
* @brief calculate a theoric charcode size
|
||||
* @param[in] _charcode The µUnicode value to calculate dimention.
|
||||
* @param[in] _charcode The Unicode value to calculate dimention.
|
||||
* @return The theoric size used.
|
||||
*/
|
||||
inline vec3 calculateSize(const char32_t& _charcode) {
|
||||
@ -426,19 +428,19 @@ namespace ewol {
|
||||
* @return true if the rifht has free space that can be use for jystify.
|
||||
* @return false if we find '\n'
|
||||
*/
|
||||
bool extrapolateLastId(const std::string& _text, const int32_t _start, int32_t& _stop, int32_t& _space, int32_t& _freeSpace);
|
||||
bool extrapolateLastId(const etk::String& _text, const int32_t _start, int32_t& _stop, int32_t& _space, int32_t& _freeSpace);
|
||||
//! @previous
|
||||
bool extrapolateLastId(const std::u32string& _text, const int32_t _start, int32_t& _stop, int32_t& _space, int32_t& _freeSpace);
|
||||
bool extrapolateLastId(const etk::UString& _text, const int32_t _start, int32_t& _stop, int32_t& _space, int32_t& _freeSpace);
|
||||
protected:
|
||||
// this section is reserved for HTML parsing and display:
|
||||
std::u32string m_htmlCurrrentLine; //!< current line for HTML display
|
||||
std::vector<TextDecoration> m_htmlDecoration; //!< current decoration for the HTML display
|
||||
etk::UString m_htmlCurrrentLine; //!< current line for HTML display
|
||||
etk::Vector<TextDecoration> m_htmlDecoration; //!< current decoration for the HTML display
|
||||
TextDecoration m_htmlDecoTmp; //!< current decoration
|
||||
/**
|
||||
* @brief add a line with the current m_htmlDecoTmp decoration
|
||||
* @param[in] _data The cuurent data to add.
|
||||
*/
|
||||
void htmlAddData(const std::u32string& _data);
|
||||
void htmlAddData(const etk::UString& _data);
|
||||
/**
|
||||
* @brief draw the current line
|
||||
*/
|
||||
|