mirror of
https://github.com/elasota/Aerofoil.git
synced 2025-09-22 22:45:39 +00:00
Add license browser, improve touchscreen UI
This commit is contained in:
@@ -1,36 +0,0 @@
|
||||
Open Sans font:
|
||||
(c)2011 Google
|
||||
Distributed under the Apache License (see Resources/Fonts/OpenSans/LICENSE)
|
||||
|
||||
|
||||
stb_image_write:
|
||||
Created by Sean Barrett
|
||||
|
||||
|
||||
MacRomanConversion uses a table from LIBICONV:
|
||||
Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc.
|
||||
|
||||
Distributed under the LGPLv2 license (See MacRomanConversion/LICENSE.txt)
|
||||
|
||||
|
||||
RapidJSON:
|
||||
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
|
||||
|
||||
Distributed under the MIT license (See rapidjson/license.txt)
|
||||
|
||||
|
||||
zlib:
|
||||
(C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||
Distributed under zlib license (See zlib/README)
|
||||
|
||||
|
||||
The Unarchiver:
|
||||
Copyright (C) 2006-2013 Dag Ågren
|
||||
|
||||
Distributed under the LGPLv2 license (See unpacktool/LICENSE.txt)
|
||||
|
||||
|
||||
MACE Audio decoder:
|
||||
Copyright (c) 2002 Laszlo Torok <torokl@alpha.dfmk.hu>
|
||||
|
||||
Distributed under the LGPLv2 license (See macedec.cpp comments)
|
@@ -8,6 +8,14 @@
|
||||
"size" : [ 58, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "Third Party/Licensing Info...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 176, 240 ],
|
||||
"size" : [ 190, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
}
|
||||
]
|
||||
}
|
181
ApplicationResourcePatches/DITL/2005.json
Normal file
181
ApplicationResourcePatches/DITL/2005.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"items" :
|
||||
[
|
||||
{
|
||||
"name" : "Okay",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 438, 292 ],
|
||||
"size" : [ 58, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "Export Source Code to ZIP Archive...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 205, 292 ],
|
||||
"size" : [ 226, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : false
|
||||
},
|
||||
{
|
||||
"name" : "Aerofoil (c)2019-2020 Eric Lasota",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 21 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 16 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "Based on Glider PRO (c)1994-2000 Casady & Greene, Inc., created by John Calhoun",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 44 ],
|
||||
"size" : [ 398, 28 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 44 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "Open Sans font (c)2011 Google",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 77 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 72 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "Roboto Mono font (c)2011 Google",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 101 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 96 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "Gochi Hand font (c)2011 Juan Pablo del Peral",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 125 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 120 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "LIBICONV (c)1999-2001, 2016 Free Software Foundation, Inc.",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 149 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 144 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "RapidJSON (c) 2015 THL A29 Limited, a Tencent company, and Milo Yip.",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 172 ],
|
||||
"size" : [ 406, 28 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 172 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "zlib (c)1995-2017 Jean-loup Gailly and Mark Adler",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 205 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 200 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "FreeType (c)2020 The FreeType Project",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 229 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 224 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "Simple DirectMedia Layer (c)1997-2020 Sam Lantinga",
|
||||
"itemType" : "Label",
|
||||
"pos" : [ 16, 253 ],
|
||||
"size" : [ 406, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
},
|
||||
{
|
||||
"name" : "License...",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 430, 248 ],
|
||||
"size" : [ 66, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
}
|
||||
]
|
||||
}
|
13
ApplicationResourcePatches/DITL/2006.json
Normal file
13
ApplicationResourcePatches/DITL/2006.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"items" :
|
||||
[
|
||||
{
|
||||
"name" : "Okay",
|
||||
"itemType" : "Button",
|
||||
"pos" : [ 454, 360 ],
|
||||
"size" : [ 58, 20 ],
|
||||
"id" : 1,
|
||||
"enabled" : true
|
||||
}
|
||||
]
|
||||
}
|
202
ApplicationResourcePatches/LICS/1000.txt
Normal file
202
ApplicationResourcePatches/LICS/1000.txt
Normal file
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache 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
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
339
ApplicationResourcePatches/LICS/1001.txt
Normal file
339
ApplicationResourcePatches/LICS/1001.txt
Normal file
@@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
165
ApplicationResourcePatches/LICS/1002.txt
Normal file
165
ApplicationResourcePatches/LICS/1002.txt
Normal file
@@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
91
ApplicationResourcePatches/LICS/1003.txt
Normal file
91
ApplicationResourcePatches/LICS/1003.txt
Normal file
@@ -0,0 +1,91 @@
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
107
ApplicationResourcePatches/LICS/1004.txt
Normal file
107
ApplicationResourcePatches/LICS/1004.txt
Normal file
@@ -0,0 +1,107 @@
|
||||
Tencent is pleased to support the open source community by making RapidJSON
|
||||
available.
|
||||
|
||||
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All
|
||||
rights reserved.
|
||||
|
||||
If you have downloaded a copy of the RapidJSON binary from Tencent, please
|
||||
note that the RapidJSON binary is licensed under the MIT License.
|
||||
If you have downloaded a copy of the RapidJSON source code from Tencent,
|
||||
please note that RapidJSON source code is licensed under the MIT License,
|
||||
except for the third-party components listed below which are subject to
|
||||
different license terms. Your integration of RapidJSON into your own
|
||||
projects may require compliance with the MIT License, as well as the other
|
||||
licenses applicable to the third-party components included within RapidJSON.
|
||||
To avoid the problematic JSON license in your own projects, it's sufficient
|
||||
to exclude the bin/jsonchecker/ directory, as it's the only code under the
|
||||
JSON license.
|
||||
A copy of the MIT License is included in this file.
|
||||
|
||||
Other dependencies and licenses:
|
||||
|
||||
Open Source Software Licensed Under the BSD License:
|
||||
--------------------------------------------------------------------
|
||||
|
||||
The msinttypes r29
|
||||
Copyright (c) 2006-2013 Alexander Chemeris
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of copyright holder nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Open Source Software Licensed Under the JSON License:
|
||||
--------------------------------------------------------------------
|
||||
|
||||
json.org
|
||||
Copyright (c) 2002 JSON.org
|
||||
All Rights Reserved.
|
||||
|
||||
JSON_checker
|
||||
Copyright (c) 2002 JSON.org
|
||||
All Rights Reserved.
|
||||
|
||||
|
||||
Terms of the JSON License:
|
||||
---------------------------------------------------
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
The Software shall be used for Good, not Evil.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
Terms of the MIT License:
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
17
ApplicationResourcePatches/LICS/1005.txt
Normal file
17
ApplicationResourcePatches/LICS/1005.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
(C) 1995-2017 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
20
ApplicationResourcePatches/LICS/1006.txt
Normal file
20
ApplicationResourcePatches/LICS/1006.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
@@ -7,6 +7,8 @@
|
||||
"DITL/2002.json" : "ApplicationResourcePatches/DITL/2002.json",
|
||||
"DITL/2003.json" : "ApplicationResourcePatches/DITL/2003.json",
|
||||
"DITL/2004.json" : "ApplicationResourcePatches/DITL/2004.json",
|
||||
"DITL/2005.json" : "ApplicationResourcePatches/DITL/2005.json",
|
||||
"DITL/2006.json" : "ApplicationResourcePatches/DITL/2006.json",
|
||||
"PICT/1973.bmp" : "ApplicationResourcePatches/PICT/1973.bmp",
|
||||
"PICT/1974.bmp" : "ApplicationResourcePatches/PICT/1974.bmp",
|
||||
"PICT/1975.bmp" : "ApplicationResourcePatches/PICT/1975.bmp",
|
||||
@@ -21,7 +23,14 @@
|
||||
"PICT/1984.bmp" : "ApplicationResourcePatches/PICT/1984.bmp",
|
||||
"PICT/1985.bmp" : "ApplicationResourcePatches/PICT/1985.bmp",
|
||||
"PICT/1986.bmp" : "ApplicationResourcePatches/PICT/1986.bmp",
|
||||
"PICT/1987.bmp" : "ApplicationResourcePatches/PICT/1987.bmp"
|
||||
"PICT/1987.bmp" : "ApplicationResourcePatches/PICT/1987.bmp",
|
||||
"LICS/1000.txt" : "ApplicationResourcePatches/LICS/1000.txt",
|
||||
"LICS/1001.txt" : "ApplicationResourcePatches/LICS/1001.txt",
|
||||
"LICS/1002.txt" : "ApplicationResourcePatches/LICS/1002.txt",
|
||||
"LICS/1003.txt" : "ApplicationResourcePatches/LICS/1003.txt",
|
||||
"LICS/1004.txt" : "ApplicationResourcePatches/LICS/1004.txt",
|
||||
"LICS/1005.txt" : "ApplicationResourcePatches/LICS/1005.txt",
|
||||
"LICS/1006.txt" : "ApplicationResourcePatches/LICS/1006.txt"
|
||||
},
|
||||
"delete" :
|
||||
[
|
||||
|
94
Documentation/license_ofl.txt
Normal file
94
Documentation/license_ofl.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
Copyright (c) 2011, Juan Pablo del Peral (juan@huertatipografica.com.ar),
|
||||
with Reserved Font Names "Gochi" and "Gochi Hand"
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
@@ -16,10 +16,11 @@ IN-GAME SHORTCUT COMMANDS
|
||||
- Alt-Enter toggles full screen.
|
||||
|
||||
|
||||
GAMEPAD SUPPORT
|
||||
GAMEPAD SUPPORT (WINDOWS)
|
||||
-------------------------------------------------------------------------------
|
||||
XInput gamepads are supported. Other gamepads may be supported via third-party
|
||||
software that maps them to XInput (i.e. PS4 gamepads are supported via DS4Windows)
|
||||
software that maps them to XInput (i.e. PS4 gamepads are supported via
|
||||
DS4Windows)
|
||||
|
||||
|
||||
LEGAL NOTICES
|
||||
@@ -62,8 +63,8 @@ ADDITIONAL CREDITS
|
||||
* PICT resource 3975 (Ozma) is derived from an illustration by John R. Neill
|
||||
from [Ozma of Oz](https://www.gutenberg.org/files/33361/33361-h/33361-h.htm).
|
||||
* PICT resource 153 (About box) features a portion of
|
||||
[this Little Nemo comic](http://www.comicstriplibrary.org/display/116) by Winsor
|
||||
McCay.
|
||||
[this Little Nemo comic](http://www.comicstriplibrary.org/display/116)
|
||||
byWinsor McCay.
|
||||
|
||||
|
||||
Aerofoil uses the following third-party software:
|
||||
@@ -73,6 +74,16 @@ Open Sans font:
|
||||
Distributed under the Apache License (see license_apache.txt)
|
||||
|
||||
|
||||
Roboto Mono font:
|
||||
(c)2015 Google
|
||||
Distributed under the Apache License (see license_apache.txt)
|
||||
|
||||
|
||||
Gochi Hand font:
|
||||
(c) 2011 Juan Pablo del Peral
|
||||
Distributed under the Open Font License (see license_ofl.txt)
|
||||
|
||||
|
||||
stb_image_write:
|
||||
Created by Sean Barrett
|
||||
|
||||
@@ -84,7 +95,8 @@ Distributed under the LGPLv2 license (See license_lgplv2.txt)
|
||||
|
||||
|
||||
RapidJSON:
|
||||
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
|
||||
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All
|
||||
rights reserved.
|
||||
|
||||
Distributed under the MIT license (See license_rapidjson.txt)
|
||||
|
||||
@@ -115,7 +127,8 @@ zlib:
|
||||
|
||||
FreeType:
|
||||
|
||||
Portions of this software are copyright (c)2020 The FreeType Project (www.freetype.org).
|
||||
Portions of this software are copyright (c)2020 The FreeType Project
|
||||
(www.freetype.org).
|
||||
All rights reserved.
|
||||
|
||||
Distributed under the GPLv2 license (see license_gplv2.txt)
|
||||
|
397
GpApp/About.cpp
397
GpApp/About.cpp
@@ -14,6 +14,7 @@
|
||||
#include "PLResources.h"
|
||||
#include "PLSound.h"
|
||||
#include "PLPasStr.h"
|
||||
#include "PLScrollBarWidget.h"
|
||||
#include "PLStandardColors.h"
|
||||
#include "PLSysCalls.h"
|
||||
#include "PLTimeTaggedVOSEvent.h"
|
||||
@@ -40,6 +41,9 @@ static void UnHiLiteOkayButton (DrawSurface *surface);
|
||||
static void UpdateMainPict (Dialog *);
|
||||
static int16_t AboutFilter(void *context, Dialog *, const TimeTaggedVOSEvent *evt);
|
||||
static int16_t AboutFrameworkFilter(void *context, Dialog *, const TimeTaggedVOSEvent *evt);
|
||||
static int16_t LicenseReaderFilter(void *context, Dialog *, const TimeTaggedVOSEvent *evt);
|
||||
static void DrawLicenseReader(Window *window);
|
||||
void DoLicenseReader(int licenseResID);
|
||||
|
||||
|
||||
static Point okayButtLowerV, okayButtUpperV;
|
||||
@@ -47,6 +51,45 @@ static Rect okayButtonBounds, mainPICTBounds;
|
||||
static Boolean okayButtIsHiLit, clickedDownInOkay;
|
||||
|
||||
|
||||
struct LicenseReaderLine
|
||||
{
|
||||
PortabilityLayer::PascalStr<80> m_text;
|
||||
};
|
||||
|
||||
static const unsigned int kLicenseReaderPointHistoryLength = 3;
|
||||
static Boolean licenseReaderIsScrolling;
|
||||
static Point licenseReaderPointHistory[kLicenseReaderPointHistoryLength];
|
||||
|
||||
static int32_t licenseReaderVelocity;
|
||||
static unsigned int licenseReaderTextScroll;
|
||||
static unsigned int licenseReaderTextScrollMax;
|
||||
static unsigned int licenseReaderNumLines;
|
||||
static THandle<LicenseReaderLine> licenseReaderLines;
|
||||
static const unsigned int kLicenseReaderTextSpacing = 10;
|
||||
static const Rect licenseReaderTextRect = Rect::Create(16, 16, 344, 496);
|
||||
static PortabilityLayer::ScrollBarWidget *licenseReaderScrollBarWidget;
|
||||
|
||||
static void InitLicenseReader(unsigned int numLines)
|
||||
{
|
||||
for (unsigned int i = 0; i < kLicenseReaderPointHistoryLength; i++)
|
||||
licenseReaderPointHistory[i] = Point::Create(0, 0);
|
||||
|
||||
licenseReaderIsScrolling = false;
|
||||
|
||||
licenseReaderTextScroll = 0;
|
||||
licenseReaderVelocity = 0;
|
||||
licenseReaderTextScrollMax = numLines * kLicenseReaderTextSpacing;
|
||||
if (licenseReaderTextScrollMax < licenseReaderTextRect.Height())
|
||||
licenseReaderTextScrollMax = 0;
|
||||
else
|
||||
licenseReaderTextScrollMax -= licenseReaderTextRect.Height();
|
||||
|
||||
licenseReaderNumLines = numLines;
|
||||
licenseReaderScrollBarWidget = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//============================================================== Functions
|
||||
//-------------------------------------------------------------- DoAbout
|
||||
// Brings up the About dialog box.
|
||||
@@ -98,9 +141,168 @@ void DoAbout (void)
|
||||
aboutDialog->Destroy();
|
||||
}
|
||||
|
||||
void DoLicenseReader(int resID)
|
||||
{
|
||||
static const int kLicenseReaderDialogTemplateID = 2006;
|
||||
|
||||
THandle<uint8_t> licenseTextHandle = PortabilityLayer::ResourceManager::GetInstance()->GetAppResource('LICS', resID).StaticCast<uint8_t>();
|
||||
|
||||
if (!licenseTextHandle)
|
||||
return;
|
||||
|
||||
// Count lines
|
||||
unsigned int numLines = 1;
|
||||
const uint8_t *licenseText = *licenseTextHandle;
|
||||
const size_t licenseTextLength = licenseTextHandle.MMBlock()->m_size;
|
||||
|
||||
for (size_t i = 0; i < licenseTextLength; i++)
|
||||
{
|
||||
if (licenseText[i] == '\n')
|
||||
numLines++;
|
||||
}
|
||||
|
||||
licenseReaderLines = NewHandle(sizeof(LicenseReaderLine) * numLines).StaticCast<LicenseReaderLine>();
|
||||
if (!licenseReaderLines)
|
||||
{
|
||||
licenseTextHandle.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
LicenseReaderLine *lines = *licenseReaderLines;
|
||||
unsigned int lineIndex = 0;
|
||||
size_t lineStart = 0;
|
||||
for (size_t i = 0; i < licenseTextLength; i++)
|
||||
{
|
||||
if (licenseText[i] == '\n')
|
||||
{
|
||||
assert(i - lineStart <= 80);
|
||||
lines[lineIndex++].m_text.Set(i - lineStart, reinterpret_cast<const char*>(licenseText + lineStart));
|
||||
lineStart = i + 1;
|
||||
}
|
||||
}
|
||||
assert(licenseTextLength - lineStart <= 80);
|
||||
lines[lineIndex++].m_text.Set(licenseTextLength - lineStart, reinterpret_cast<const char*>(licenseText + lineStart));
|
||||
|
||||
assert(lineIndex == numLines);
|
||||
|
||||
licenseTextHandle.Dispose();
|
||||
|
||||
const Rect windowRect = Rect::Create(0, 0, 396, 528);
|
||||
|
||||
PortabilityLayer::WindowDef wdef = PortabilityLayer::WindowDef::Create(windowRect, PortabilityLayer::WindowStyleFlags::kAlert, true, 0, 0, PSTR(""));
|
||||
|
||||
PortabilityLayer::DialogManager *dialogManager = PortabilityLayer::DialogManager::GetInstance();
|
||||
Dialog *dialog = dialogManager->LoadDialogFromTemplate(kLicenseReaderDialogTemplateID, windowRect, true, false, 0, 0, PL_GetPutInFrontWindowPtr(), PSTR(""), nullptr);
|
||||
|
||||
DrawDefaultButton(dialog);
|
||||
|
||||
int16_t hit = 0;
|
||||
|
||||
InitLicenseReader(numLines);
|
||||
DrawLicenseReader(dialog->GetWindow());
|
||||
|
||||
if (licenseReaderTextScrollMax != 0)
|
||||
{
|
||||
PortabilityLayer::WidgetBasicState state;
|
||||
state.m_rect = Rect::Create(licenseReaderTextRect.top, licenseReaderTextRect.right, licenseReaderTextRect.bottom, licenseReaderTextRect.right + 16);
|
||||
state.m_refConstant = 2;
|
||||
state.m_window = dialog->GetWindow();
|
||||
state.m_max = licenseReaderTextScrollMax;
|
||||
state.m_state = 0;
|
||||
licenseReaderScrollBarWidget = PortabilityLayer::ScrollBarWidget::Create(state, nullptr);
|
||||
}
|
||||
|
||||
dialog->GetWindow()->DrawControls();
|
||||
|
||||
do
|
||||
{
|
||||
hit = dialog->ExecuteModal(nullptr, LicenseReaderFilter);
|
||||
} while (hit != kOkayButton);
|
||||
|
||||
dialog->Destroy();
|
||||
licenseReaderLines.Dispose();
|
||||
}
|
||||
|
||||
void DoAboutOpenSource(void)
|
||||
{
|
||||
static const int kExportSourceItem = 2;
|
||||
static const int kAerofoilLicenseButton = 4;
|
||||
static const int kGliderPROLicenseButton = 6;
|
||||
static const int kOpenSansLicenseButton = 8;
|
||||
static const int kRobotoMonoLicenseButton = 10;
|
||||
static const int kGochiHandLicenseButton = 12;
|
||||
static const int kLibIConvLicenseButton = 14;
|
||||
static const int kRapidJSONLicenseButton = 16;
|
||||
static const int kZLibLicenseButton = 18;
|
||||
static const int kFreeTypeLicenseButton = 20;
|
||||
static const int kSDLLicenseButton = 22;
|
||||
|
||||
static const int kLicenseResourceApache = 1000;
|
||||
static const int kLicenseResourceGPLv2 = 1001;
|
||||
static const int kLicenseResourceLGPLv3 = 1002;
|
||||
static const int kLicenseResourceOFL = 1003;
|
||||
static const int kLicenseResourceRapidJSON = 1004;
|
||||
static const int kLicenseResourceZLib = 1005;
|
||||
static const int kLicenseResourceSDL = 1006;
|
||||
|
||||
static const int kAboutOpenSourceDialogTemplateID = 2005;
|
||||
|
||||
const Rect windowRect = Rect::Create(0, 0, 324, 512);
|
||||
|
||||
PortabilityLayer::WindowDef wdef = PortabilityLayer::WindowDef::Create(windowRect, PortabilityLayer::WindowStyleFlags::kAlert, true, 0, 0, PSTR(""));
|
||||
|
||||
PortabilityLayer::DialogManager *dialogManager = PortabilityLayer::DialogManager::GetInstance();
|
||||
Dialog *dialog = dialogManager->LoadDialogFromTemplate(kAboutOpenSourceDialogTemplateID, windowRect, true, false, 0, 0, PL_GetPutInFrontWindowPtr(), PSTR(""), nullptr);
|
||||
|
||||
DrawDefaultButton(dialog);
|
||||
|
||||
if (thisMac.isTouchscreen)
|
||||
dialog->GetItems()[kExportSourceItem - 1].GetWidget()->SetEnabled(true);
|
||||
|
||||
int16_t hit = 0;
|
||||
|
||||
do
|
||||
{
|
||||
hit = dialog->ExecuteModal(nullptr, AboutFrameworkFilter);
|
||||
|
||||
switch (hit)
|
||||
{
|
||||
case kExportSourceItem:
|
||||
DoExportSourceCode();
|
||||
break;
|
||||
case kAerofoilLicenseButton:
|
||||
case kGliderPROLicenseButton:
|
||||
DoLicenseReader(kLicenseResourceGPLv2);
|
||||
break;
|
||||
case kOpenSansLicenseButton:
|
||||
case kRobotoMonoLicenseButton:
|
||||
DoLicenseReader(kLicenseResourceApache);
|
||||
break;
|
||||
case kGochiHandLicenseButton:
|
||||
DoLicenseReader(kLicenseResourceOFL);
|
||||
break;
|
||||
case kLibIConvLicenseButton:
|
||||
case kFreeTypeLicenseButton:
|
||||
DoLicenseReader(kLicenseResourceLGPLv3);
|
||||
break;
|
||||
case kZLibLicenseButton:
|
||||
DoLicenseReader(kLicenseResourceZLib);
|
||||
break;
|
||||
case kSDLLicenseButton:
|
||||
DoLicenseReader(kLicenseResourceSDL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} while (hit != kOkayButton);
|
||||
|
||||
dialog->Destroy();
|
||||
}
|
||||
|
||||
void DoAboutFramework (void)
|
||||
{
|
||||
#define kAboutFrameworkDialogTemplateID 2000
|
||||
static const int kAboutFrameworkDialogTemplateID = 2000;
|
||||
static const int kAboutOpenSourceButton = 2;
|
||||
|
||||
const Rect windowRect = Rect::Create(0, 0, 272, 450);
|
||||
|
||||
@@ -153,6 +355,9 @@ void DoAboutFramework (void)
|
||||
do
|
||||
{
|
||||
hit = dialog->ExecuteModal(nullptr, AboutFrameworkFilter);
|
||||
|
||||
if (hit == kAboutOpenSourceButton)
|
||||
DoAboutOpenSource();
|
||||
} while (hit != kOkayButton);
|
||||
|
||||
dialog->Destroy();
|
||||
@@ -366,3 +571,193 @@ static int16_t AboutFrameworkFilter(void *context, Dialog *dialog, const TimeTag
|
||||
return hit;
|
||||
}
|
||||
|
||||
void DrawLicenseReader(Window *window)
|
||||
{
|
||||
PortabilityLayer::RenderedFont *rfont = GetMonospaceFont(10, PortabilityLayer::FontFamilyFlag_None, true);
|
||||
if (!rfont)
|
||||
return;
|
||||
|
||||
PortabilityLayer::ResolveCachingColor whiteColor(StdColors::White());
|
||||
PortabilityLayer::ResolveCachingColor blackColor(StdColors::Black());
|
||||
|
||||
DrawSurface *surface = window->GetDrawSurface();
|
||||
surface->FillRect(licenseReaderTextRect, whiteColor);
|
||||
|
||||
int32_t ascent = rfont->GetMetrics().m_ascent;
|
||||
|
||||
const LicenseReaderLine *lines = *licenseReaderLines;
|
||||
|
||||
for (unsigned int i = 0; i < licenseReaderNumLines; i++)
|
||||
{
|
||||
int32_t lineY = licenseReaderTextRect.top + ascent + static_cast<int32_t>(kLicenseReaderTextSpacing * i);
|
||||
lineY -= static_cast<int32_t>(licenseReaderTextScroll);
|
||||
|
||||
surface->DrawStringConstrained(Point::Create(licenseReaderTextRect.left, lineY), lines[i].m_text.ToShortStr(), licenseReaderTextRect, blackColor, rfont);
|
||||
}
|
||||
}
|
||||
|
||||
static void CycleLicenseReaderMouseHistory()
|
||||
{
|
||||
for (unsigned int ri = 1; ri < kLicenseReaderPointHistoryLength; ri++)
|
||||
{
|
||||
unsigned int i = kLicenseReaderPointHistoryLength - ri;
|
||||
licenseReaderPointHistory[i] = licenseReaderPointHistory[i - 1];
|
||||
}
|
||||
}
|
||||
|
||||
static void HandleLicenseReaderScroll(Window *window, int32_t offset)
|
||||
{
|
||||
int32_t newScroll = static_cast<int32_t>(licenseReaderTextScroll) + offset;
|
||||
if (newScroll < 0)
|
||||
newScroll = 0;
|
||||
else if (newScroll > static_cast<int32_t>(licenseReaderTextScrollMax))
|
||||
newScroll = licenseReaderTextScrollMax;
|
||||
|
||||
if (newScroll != licenseReaderTextScroll)
|
||||
{
|
||||
licenseReaderTextScroll = newScroll;
|
||||
licenseReaderScrollBarWidget->SetState(newScroll);
|
||||
DrawLicenseReader(window);
|
||||
}
|
||||
}
|
||||
|
||||
static void AutoScrollLicenseReader(Window *window)
|
||||
{
|
||||
if (licenseReaderIsScrolling)
|
||||
return;
|
||||
|
||||
int32_t decayRate = 2;
|
||||
if (licenseReaderVelocity < 0)
|
||||
{
|
||||
HandleLicenseReaderScroll(window, licenseReaderVelocity);
|
||||
licenseReaderVelocity += decayRate;
|
||||
if (licenseReaderVelocity > 0)
|
||||
licenseReaderVelocity = 0;
|
||||
}
|
||||
else if (licenseReaderVelocity > 0)
|
||||
{
|
||||
HandleLicenseReaderScroll(window, licenseReaderVelocity);
|
||||
licenseReaderVelocity -= decayRate;
|
||||
if (licenseReaderVelocity < 0)
|
||||
licenseReaderVelocity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void ComputeLicenseReaderVelocity()
|
||||
{
|
||||
int32_t velocity = licenseReaderPointHistory[kLicenseReaderPointHistoryLength - 1].v - licenseReaderPointHistory[0].v;
|
||||
licenseReaderVelocity = velocity;
|
||||
}
|
||||
|
||||
static void LicenseReaderScrollBarUpdate(void *captureContext, PortabilityLayer::Widget *widget, int part)
|
||||
{
|
||||
Window *window = static_cast<Window*>(captureContext); // This is stupid and very lazy...
|
||||
|
||||
|
||||
const int incrementalStepping = kLicenseReaderTextSpacing;
|
||||
const int pageStepping = 20;
|
||||
|
||||
switch (part)
|
||||
{
|
||||
case kControlUpButtonPart:
|
||||
widget->SetState(widget->GetState() - incrementalStepping);
|
||||
break;
|
||||
case kControlDownButtonPart:
|
||||
widget->SetState(widget->GetState() + incrementalStepping);
|
||||
break;
|
||||
case kControlPageUpPart:
|
||||
widget->SetState(widget->GetState() - pageStepping * incrementalStepping);
|
||||
break;
|
||||
case kControlPageDownPart:
|
||||
widget->SetState(widget->GetState() + pageStepping * incrementalStepping);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
|
||||
licenseReaderTextScroll = widget->GetState();
|
||||
DrawLicenseReader(window);
|
||||
}
|
||||
|
||||
static int16_t LicenseReaderFilter(void *context, Dialog *dialog, const TimeTaggedVOSEvent *evt)
|
||||
{
|
||||
bool handledIt = false;
|
||||
int16_t hit = -1;
|
||||
|
||||
if (!evt)
|
||||
{
|
||||
if (licenseReaderIsScrolling)
|
||||
CycleLicenseReaderMouseHistory();
|
||||
else
|
||||
AutoScrollLicenseReader(dialog->GetWindow());
|
||||
return -1;
|
||||
}
|
||||
|
||||
Window *window = dialog->GetWindow();
|
||||
DrawSurface *surface = window->GetDrawSurface();
|
||||
|
||||
if (evt->IsKeyDownEvent())
|
||||
{
|
||||
switch (PackVOSKeyCode(evt->m_vosEvent.m_event.m_keyboardInputEvent))
|
||||
{
|
||||
case PL_KEY_SPECIAL(kEnter):
|
||||
case PL_KEY_NUMPAD_SPECIAL(kEnter):
|
||||
dialog->GetItems()[kOkayButton - 1].GetWidget()->SetHighlightStyle(kControlButtonPart, true);
|
||||
PLSysCalls::Sleep(8);
|
||||
dialog->GetItems()[kOkayButton - 1].GetWidget()->SetHighlightStyle(kControlButtonPart, false);
|
||||
hit = kOkayButton;
|
||||
handledIt = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
handledIt = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (evt->m_vosEvent.m_eventType == GpVOSEventTypes::kMouseInput)
|
||||
{
|
||||
const GpMouseInputEvent &mouseEvt = evt->m_vosEvent.m_event.m_mouseInputEvent;
|
||||
|
||||
Point mouseLocalPt = window->MouseToLocal(mouseEvt);
|
||||
|
||||
switch (mouseEvt.m_eventType)
|
||||
{
|
||||
case GpMouseEventTypes::kDown:
|
||||
if (licenseReaderTextRect.Contains(mouseLocalPt))
|
||||
{
|
||||
for (unsigned int i = 0; i < kLicenseReaderPointHistoryLength; i++)
|
||||
licenseReaderPointHistory[i] = mouseLocalPt;
|
||||
licenseReaderIsScrolling = true;
|
||||
}
|
||||
else if (licenseReaderScrollBarWidget->GetRect().Contains(mouseLocalPt))
|
||||
{
|
||||
licenseReaderScrollBarWidget->Capture(dialog->GetWindow(), mouseLocalPt, LicenseReaderScrollBarUpdate);
|
||||
licenseReaderTextScroll = licenseReaderScrollBarWidget->GetState();
|
||||
DrawLicenseReader(dialog->GetWindow());
|
||||
}
|
||||
break;
|
||||
case GpMouseEventTypes::kLeave:
|
||||
case GpMouseEventTypes::kUp:
|
||||
licenseReaderIsScrolling = false;
|
||||
ComputeLicenseReaderVelocity();
|
||||
break;
|
||||
case GpMouseEventTypes::kMove:
|
||||
if (licenseReaderIsScrolling)
|
||||
{
|
||||
Point prevPoint = licenseReaderPointHistory[0];
|
||||
licenseReaderPointHistory[0] = mouseLocalPt;
|
||||
HandleLicenseReaderScroll(window, prevPoint.v - mouseLocalPt.v);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!handledIt)
|
||||
return -1;
|
||||
|
||||
return hit;
|
||||
}
|
||||
|
||||
|
@@ -42,6 +42,7 @@ LOCAL_SRC_FILES := \
|
||||
InterfaceInit.cpp \
|
||||
Link.cpp \
|
||||
Main.cpp \
|
||||
MainMenuUI.cpp \
|
||||
MainWindow.cpp \
|
||||
Map.cpp \
|
||||
Marquee.cpp \
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#include "Environ.h"
|
||||
#include "House.h"
|
||||
#include "InputManager.h"
|
||||
#include "MainMenuUI.h"
|
||||
#include "ObjectEdit.h"
|
||||
#include "Rect2i.h"
|
||||
#include "WindowManager.h"
|
||||
@@ -125,7 +126,7 @@ void HandleMouseEvent (const GpMouseInputEvent &theEvent, uint32_t tick)
|
||||
if (vDelta < 0)
|
||||
vDelta = -vDelta;
|
||||
if (((tick - lastUp) < doubleTime) && (hDelta < 5) &&
|
||||
(vDelta < 5))
|
||||
(vDelta < 5))
|
||||
isDoubleClick = true;
|
||||
else
|
||||
{
|
||||
@@ -141,6 +142,9 @@ void HandleMouseEvent (const GpMouseInputEvent &theEvent, uint32_t tick)
|
||||
HandleToolsClick(evtPoint);
|
||||
else if (whichWindow == linkWindow)
|
||||
HandleLinkClick(evtPoint);
|
||||
else if (HandleMainMenuUIClick(whichWindow, evtPoint))
|
||||
{
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -328,6 +332,8 @@ void HandleSplashResolutionChange(void)
|
||||
InitScoreboardMap();
|
||||
//RefreshScoreboard(wasScoreboardTitleMode);
|
||||
//DumpScreenOn(&justRoomsRect);
|
||||
|
||||
HandleMainMenuUIResolutionChange();
|
||||
}
|
||||
|
||||
void KeepWindowInBounds(Window *window)
|
||||
@@ -401,6 +407,8 @@ void HandleIdleTask (void)
|
||||
HandleSplashResolutionChange();
|
||||
}
|
||||
}
|
||||
|
||||
TickMainMenuUI();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------- HandleEvent
|
||||
@@ -410,7 +418,7 @@ void HandleIdleTask (void)
|
||||
void HandleEvent (void)
|
||||
{
|
||||
TimeTaggedVOSEvent theEvent;
|
||||
uint32_t sleep = 2;
|
||||
uint32_t sleep = 1;
|
||||
bool itHappened = true;
|
||||
|
||||
const KeyDownStates *eventKeys = PortabilityLayer::InputManager::GetInstance()->GetKeys();
|
||||
@@ -456,12 +464,13 @@ void HandleEvent (void)
|
||||
}
|
||||
else
|
||||
HandleIdleTask();
|
||||
|
||||
|
||||
if ((theMode == kSplashMode) && doAutoDemo && !switchedOut)
|
||||
{
|
||||
if (TickCount() >= incrementModeTime)
|
||||
DoDemoGame();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------- IgnoreThisClick
|
||||
|
@@ -166,6 +166,7 @@ void FillScreenRed (void);
|
||||
void DumpToResEditFile (Ptr, long);
|
||||
|
||||
void HandleEvent (void); // --- Event.c
|
||||
void HandleIdleTask (void);
|
||||
void IgnoreThisClick (void);
|
||||
|
||||
void SwitchToDepth (short, Boolean); // --- Environs.c
|
||||
|
@@ -4,7 +4,7 @@
|
||||
// GliderDefines.h
|
||||
//----------------------------------------------------------------------------
|
||||
//============================================================================
|
||||
|
||||
#pragma once
|
||||
|
||||
//============================================================== Defines
|
||||
|
||||
|
@@ -1,9 +1,12 @@
|
||||
|
||||
//============================================================================
|
||||
//----------------------------------------------------------------------------
|
||||
// GliderProtos.h
|
||||
//----------------------------------------------------------------------------
|
||||
//============================================================================
|
||||
#pragma once
|
||||
|
||||
#include "PLCore.h"
|
||||
#include "GliderStructs.h"
|
||||
|
||||
struct GpMouseInputEvent;
|
||||
|
||||
|
@@ -3,8 +3,9 @@
|
||||
// GliderStructs.h
|
||||
//----------------------------------------------------------------------------
|
||||
//============================================================================
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "GliderDefines.h"
|
||||
#include "PLQDOffscreen.h"
|
||||
#include "GpVOSEvent.h"
|
||||
#include "ByteSwap.h"
|
||||
|
@@ -103,6 +103,7 @@
|
||||
<ClCompile Include="InterfaceInit.cpp" />
|
||||
<ClCompile Include="Link.cpp" />
|
||||
<ClCompile Include="Main.cpp" />
|
||||
<ClCompile Include="MainMenuUI.cpp" />
|
||||
<ClCompile Include="MainWindow.cpp" />
|
||||
<ClCompile Include="Map.cpp" />
|
||||
<ClCompile Include="Marquee.cpp" />
|
||||
@@ -162,6 +163,7 @@
|
||||
<ClInclude Include="GliderStructs.h" />
|
||||
<ClInclude Include="GliderVars.h" />
|
||||
<ClInclude Include="House.h" />
|
||||
<ClInclude Include="MainMenuUI.h" />
|
||||
<ClInclude Include="MainWindow.h" />
|
||||
<ClInclude Include="Map.h" />
|
||||
<ClInclude Include="Marquee.h" />
|
||||
|
@@ -219,6 +219,9 @@
|
||||
<ClCompile Include="SourceExport.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="MainMenuUI.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="SoundSync.h">
|
||||
@@ -302,5 +305,8 @@
|
||||
<ClInclude Include="Utilities.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="MainMenuUI.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
@@ -67,9 +67,12 @@ void InitializeMenus (void)
|
||||
if (optionsMenu == nil)
|
||||
RedAlert(kErrFailedResourceLoad);
|
||||
InsertMenu(optionsMenu, 0);
|
||||
|
||||
menusUp = true;
|
||||
PortabilityLayer::MenuManager::GetInstance()->SetMenuVisible(true);
|
||||
|
||||
if (!thisMac.isTouchscreen)
|
||||
{
|
||||
menusUp = true;
|
||||
PortabilityLayer::MenuManager::GetInstance()->SetMenuVisible(true);
|
||||
}
|
||||
|
||||
houseMenu = GetMenu(kHouseMenuID);
|
||||
if (houseMenu == nil)
|
||||
|
@@ -19,6 +19,7 @@
|
||||
#include "IGpDisplayDriver.h"
|
||||
#include "GpIOStream.h"
|
||||
#include "House.h"
|
||||
#include "MainMenuUI.h"
|
||||
#include "MenuManager.h"
|
||||
#include "RenderedFont.h"
|
||||
#include "ResolveCachingColor.h"
|
||||
@@ -523,8 +524,12 @@ int gpAppMain()
|
||||
|
||||
UpdateMainWindow();
|
||||
|
||||
if (thisMac.isTouchscreen)
|
||||
StartMainMenuUI();
|
||||
|
||||
while (!quitting) // this is the main loop
|
||||
HandleEvent();
|
||||
|
||||
/*
|
||||
#if BUILD_ARCADE_VERSION
|
||||
ShowMenuBarOld();
|
||||
|
489
GpApp/MainMenuUI.cpp
Normal file
489
GpApp/MainMenuUI.cpp
Normal file
@@ -0,0 +1,489 @@
|
||||
#include "MainMenuUI.h"
|
||||
|
||||
#include "FontFamily.h"
|
||||
#include "GpApplicationName.h"
|
||||
#include "HostDisplayDriver.h"
|
||||
#include "GliderProtos.h"
|
||||
#include "Externs.h"
|
||||
#include "IGpDisplayDriver.h"
|
||||
#include "PLCore.h"
|
||||
#include "PLQDraw.h"
|
||||
#include "PLStandardColors.h"
|
||||
#include "PLSysCalls.h"
|
||||
#include "RenderedFont.h"
|
||||
#include "GpRenderedFontMetrics.h"
|
||||
#include "ResolveCachingColor.h"
|
||||
#include "PLTimeTaggedVOSEvent.h"
|
||||
#include "WindowDef.h"
|
||||
#include "WindowManager.h"
|
||||
#include "Vec2i.h"
|
||||
|
||||
struct MainMenuControlState
|
||||
{
|
||||
Window *m_window;
|
||||
|
||||
int m_targetHorizontalCoordinate;
|
||||
Point m_dimensions;
|
||||
int m_page;
|
||||
};
|
||||
|
||||
struct MainMenuUIState
|
||||
{
|
||||
enum ControlID
|
||||
{
|
||||
Control_NewGame,
|
||||
Control_LoadSavedGame,
|
||||
Control_HighScores,
|
||||
Control_Page0To1,
|
||||
|
||||
Control_LoadHouse,
|
||||
Control_Demo,
|
||||
Control_Page1To2,
|
||||
|
||||
Control_AboutApplication,
|
||||
Control_AboutFramework,
|
||||
Control_Page2To0,
|
||||
|
||||
Control_Count,
|
||||
};
|
||||
|
||||
enum ControlStyle
|
||||
{
|
||||
ControlStyle_Icon,
|
||||
ControlStyle_Text,
|
||||
};
|
||||
|
||||
MainMenuControlState m_controls[Control_Count];
|
||||
int m_scrollInOffset;
|
||||
int m_scrollInStep;
|
||||
int m_scrollOutDistance;
|
||||
int m_currentPage;
|
||||
|
||||
ControlID m_activeControl;
|
||||
|
||||
static const unsigned int kControlHeight = 40;
|
||||
static const unsigned int kControlFontSize = 24;
|
||||
static const unsigned int kControlLeftSpacing = 20;
|
||||
static const unsigned int kControlBottomSpacing = 20;
|
||||
static const unsigned int kControlIntermediateSpacing = 16;
|
||||
static const unsigned int kControlInteriorSpacing = 6;
|
||||
static const unsigned int kControlScrollInDecay = 2;
|
||||
static const unsigned int kControlScrollInDecayFalloffBits = 0;
|
||||
};
|
||||
|
||||
static MainMenuUIState mainMenu;
|
||||
|
||||
static MainMenuUIState::ControlStyle GetControlStyleForControl(MainMenuUIState::ControlID controlID)
|
||||
{
|
||||
switch (controlID)
|
||||
{
|
||||
case MainMenuUIState::Control_Page0To1:
|
||||
case MainMenuUIState::Control_Page1To2:
|
||||
case MainMenuUIState::Control_Page2To0:
|
||||
return MainMenuUIState::ControlStyle_Icon;
|
||||
|
||||
default:
|
||||
return MainMenuUIState::ControlStyle_Text;
|
||||
};
|
||||
}
|
||||
|
||||
static PLPasStr GetTextForControl(MainMenuUIState::ControlID controlID)
|
||||
{
|
||||
switch (controlID)
|
||||
{
|
||||
case MainMenuUIState::Control_NewGame:
|
||||
return PSTR("New Game");
|
||||
case MainMenuUIState::Control_LoadSavedGame:
|
||||
return PSTR("Resume Game");
|
||||
case MainMenuUIState::Control_LoadHouse:
|
||||
return PSTR("Load House");
|
||||
case MainMenuUIState::Control_Demo:
|
||||
return PSTR("Demo");
|
||||
case MainMenuUIState::Control_HighScores:
|
||||
return PSTR("High Scores");
|
||||
case MainMenuUIState::Control_AboutApplication:
|
||||
return PSTR("About Glider PRO");
|
||||
case MainMenuUIState::Control_AboutFramework:
|
||||
return PSTR("About " GP_APPLICATION_NAME);
|
||||
|
||||
default:
|
||||
return PSTR("");
|
||||
};
|
||||
}
|
||||
|
||||
static void DrawMainMenuControl(DrawSurface *surface, MainMenuUIState::ControlID controlID, bool clicked)
|
||||
{
|
||||
Rect surfaceRect = surface->m_port.GetRect();
|
||||
|
||||
PortabilityLayer::ResolveCachingColor blackColor(StdColors::Black());
|
||||
PortabilityLayer::ResolveCachingColor whiteColor(StdColors::White());
|
||||
PortabilityLayer::ResolveCachingColor borderColor1(PortabilityLayer::RGBAColor::Create(255, 51, 51, 255));
|
||||
PortabilityLayer::ResolveCachingColor borderColor2(PortabilityLayer::RGBAColor::Create(255, 153, 51, 255));
|
||||
|
||||
surface->FrameRect(surfaceRect, blackColor);
|
||||
surface->FrameRect(surfaceRect.Inset(1, 1), borderColor1);
|
||||
surface->FrameRect(surfaceRect.Inset(2, 2), borderColor2);
|
||||
|
||||
if (clicked)
|
||||
surface->FillRect(surfaceRect.Inset(3, 3), borderColor2);
|
||||
else
|
||||
surface->FillRect(surfaceRect.Inset(3, 3), whiteColor);
|
||||
|
||||
switch (GetControlStyleForControl(controlID))
|
||||
{
|
||||
case MainMenuUIState::ControlStyle_Text:
|
||||
{
|
||||
PortabilityLayer::RenderedFont *rfont = GetHandwritingFont(MainMenuUIState::kControlFontSize, PortabilityLayer::FontFamilyFlag_None, true);
|
||||
if (!rfont)
|
||||
return;
|
||||
|
||||
int32_t verticalOffset = (static_cast<int32_t>(surface->m_port.GetRect().Height()) + rfont->GetMetrics().m_ascent) / 2;
|
||||
|
||||
surface->DrawString(Point::Create(MainMenuUIState::kControlInteriorSpacing, verticalOffset), GetTextForControl(controlID), blackColor, rfont);
|
||||
}
|
||||
break;
|
||||
case MainMenuUIState::ControlStyle_Icon:
|
||||
{
|
||||
const int dotSize = 4;
|
||||
const int dotSpacing = 2;
|
||||
|
||||
const int dotCount = 3;
|
||||
const int dotTotalSize = dotSpacing * (dotCount - 1) + dotSize * dotCount;
|
||||
|
||||
int32_t dotHorizontalOffset = (static_cast<int32_t>(surface->m_port.GetRect().Width()) - dotTotalSize) / 2;
|
||||
int32_t dotVerticalOffset = (static_cast<int32_t>(surface->m_port.GetRect().Height()) - dotSize) / 2;
|
||||
|
||||
for (int i = 0; i < dotCount; i++)
|
||||
{
|
||||
int32_t hCoord = dotHorizontalOffset + i * (dotSize + dotSpacing);
|
||||
surface->FillEllipse(Rect::Create(dotVerticalOffset, hCoord, dotVerticalOffset + dotSize, hCoord + dotSize), blackColor);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void StartScrollForPage()
|
||||
{
|
||||
unsigned int displayHeight = 0;
|
||||
PortabilityLayer::HostDisplayDriver::GetInstance()->GetDisplayResolution(nullptr, &displayHeight);
|
||||
|
||||
DismissMainMenuUI();
|
||||
|
||||
int page = mainMenu.m_currentPage;
|
||||
|
||||
PortabilityLayer::WindowManager *wm = PortabilityLayer::WindowManager::GetInstance();
|
||||
|
||||
int totalWidth = 0;
|
||||
|
||||
for (int controlID = 0; controlID < MainMenuUIState::Control_Count; controlID++)
|
||||
{
|
||||
if (mainMenu.m_controls[controlID].m_page == page)
|
||||
totalWidth = mainMenu.m_controls[controlID].m_targetHorizontalCoordinate + mainMenu.m_controls[controlID].m_dimensions.h;
|
||||
}
|
||||
|
||||
mainMenu.m_scrollInStep = 1;
|
||||
mainMenu.m_scrollInOffset = 0;
|
||||
while (mainMenu.m_scrollInOffset < totalWidth)
|
||||
{
|
||||
mainMenu.m_scrollInOffset += (mainMenu.m_scrollInStep >> MainMenuUIState::kControlScrollInDecayFalloffBits);
|
||||
mainMenu.m_scrollInStep += MainMenuUIState::kControlScrollInDecay;
|
||||
}
|
||||
|
||||
mainMenu.m_scrollOutDistance = totalWidth;
|
||||
|
||||
for (int i = 0; i < MainMenuUIState::Control_Count; i++)
|
||||
{
|
||||
MainMenuControlState &control = mainMenu.m_controls[i];
|
||||
|
||||
if (control.m_page == page)
|
||||
{
|
||||
|
||||
const uint16_t styleFlags = PortabilityLayer::WindowStyleFlags::kBorderless;
|
||||
|
||||
PortabilityLayer::WindowDef wdef = PortabilityLayer::WindowDef::Create(Rect::Create(0, 0, control.m_dimensions.v, control.m_dimensions.h), styleFlags, true, 0, 0, PSTR(""));
|
||||
|
||||
control.m_window = wm->CreateWindow(wdef);
|
||||
control.m_window->SetPosition(PortabilityLayer::Vec2i(control.m_targetHorizontalCoordinate - mainMenu.m_scrollInOffset, displayHeight - MainMenuUIState::kControlBottomSpacing - control.m_dimensions.v));
|
||||
wm->PutWindowBehind(control.m_window, wm->GetPutInFrontSentinel());
|
||||
|
||||
DrawMainMenuControl(control.m_window->GetDrawSurface(), static_cast<MainMenuUIState::ControlID>(i), false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StartMainMenuUI()
|
||||
{
|
||||
DismissMainMenuUI();
|
||||
|
||||
PortabilityLayer::RenderedFont *rfont = GetHandwritingFont(MainMenuUIState::kControlFontSize, PortabilityLayer::FontFamilyFlag_None, true);
|
||||
if (!rfont)
|
||||
return;
|
||||
|
||||
for (int controlID = 0; controlID < MainMenuUIState::Control_Count; controlID++)
|
||||
{
|
||||
MainMenuControlState &control = mainMenu.m_controls[controlID];
|
||||
|
||||
MainMenuUIState::ControlStyle controlStyle = GetControlStyleForControl(static_cast<MainMenuUIState::ControlID>(controlID));
|
||||
|
||||
if (controlStyle == MainMenuUIState::ControlStyle_Text)
|
||||
{
|
||||
size_t textLength = rfont->MeasurePStr(GetTextForControl(static_cast<MainMenuUIState::ControlID>(controlID)));
|
||||
|
||||
control.m_dimensions.h = textLength + MainMenuUIState::kControlInteriorSpacing * 2;
|
||||
control.m_dimensions.v = MainMenuUIState::kControlHeight;
|
||||
}
|
||||
else
|
||||
control.m_dimensions.h = control.m_dimensions.v = MainMenuUIState::kControlHeight;
|
||||
}
|
||||
|
||||
mainMenu.m_controls[MainMenuUIState::Control_LoadHouse].m_page = 1;
|
||||
mainMenu.m_controls[MainMenuUIState::Control_Demo].m_page = 1;
|
||||
mainMenu.m_controls[MainMenuUIState::Control_Page1To2].m_page = 1;
|
||||
|
||||
mainMenu.m_controls[MainMenuUIState::Control_AboutApplication].m_page = 2;
|
||||
mainMenu.m_controls[MainMenuUIState::Control_AboutFramework].m_page = 2;
|
||||
mainMenu.m_controls[MainMenuUIState::Control_Page2To0].m_page = 2;
|
||||
|
||||
for (int i = 0; i < MainMenuUIState::Control_Count; i++)
|
||||
{
|
||||
if (i == 0 || mainMenu.m_controls[i].m_page != mainMenu.m_controls[i - 1].m_page)
|
||||
mainMenu.m_controls[i].m_targetHorizontalCoordinate = MainMenuUIState::kControlLeftSpacing;
|
||||
else
|
||||
mainMenu.m_controls[i].m_targetHorizontalCoordinate = mainMenu.m_controls[i - 1].m_targetHorizontalCoordinate + mainMenu.m_controls[i - 1].m_dimensions.h + MainMenuUIState::kControlIntermediateSpacing;
|
||||
}
|
||||
|
||||
mainMenu.m_currentPage = 0;
|
||||
StartScrollForPage();
|
||||
}
|
||||
|
||||
static void DismissMainMenuUIPage()
|
||||
{
|
||||
unsigned int displayHeight = 0;
|
||||
PortabilityLayer::HostDisplayDriver::GetInstance()->GetDisplayResolution(nullptr, &displayHeight);
|
||||
|
||||
PortabilityLayer::WindowManager *wm = PortabilityLayer::WindowManager::GetInstance();
|
||||
|
||||
while (mainMenu.m_scrollInOffset < mainMenu.m_scrollOutDistance)
|
||||
{
|
||||
mainMenu.m_scrollInOffset += (mainMenu.m_scrollInStep >> MainMenuUIState::kControlScrollInDecayFalloffBits);
|
||||
mainMenu.m_scrollInStep += MainMenuUIState::kControlScrollInDecay;
|
||||
|
||||
for (int i = 0; i < MainMenuUIState::Control_Count; i++)
|
||||
{
|
||||
MainMenuControlState &control = mainMenu.m_controls[i];
|
||||
if (control.m_page == mainMenu.m_currentPage)
|
||||
control.m_window->SetPosition(PortabilityLayer::Vec2i(control.m_targetHorizontalCoordinate - mainMenu.m_scrollInOffset, displayHeight - MainMenuUIState::kControlBottomSpacing - control.m_dimensions.v));
|
||||
}
|
||||
|
||||
Delay(1, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TickMainMenuUI()
|
||||
{
|
||||
if (mainMenu.m_scrollInOffset > 0)
|
||||
{
|
||||
PortabilityLayer::WindowManager *wm = PortabilityLayer::WindowManager::GetInstance();
|
||||
|
||||
unsigned int displayHeight = 0;
|
||||
PortabilityLayer::HostDisplayDriver::GetInstance()->GetDisplayResolution(nullptr, &displayHeight);
|
||||
|
||||
mainMenu.m_scrollInStep -= MainMenuUIState::kControlScrollInDecay;
|
||||
mainMenu.m_scrollInOffset -= (mainMenu.m_scrollInStep >> MainMenuUIState::kControlScrollInDecayFalloffBits);
|
||||
|
||||
for (int i = 0; i < MainMenuUIState::Control_Count; i++)
|
||||
{
|
||||
MainMenuControlState &control = mainMenu.m_controls[i];
|
||||
if (control.m_page == mainMenu.m_currentPage)
|
||||
control.m_window->SetPosition(PortabilityLayer::Vec2i(control.m_targetHorizontalCoordinate - mainMenu.m_scrollInOffset, displayHeight - MainMenuUIState::kControlBottomSpacing - control.m_dimensions.v));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DismissMainMenuUI()
|
||||
{
|
||||
PortabilityLayer::WindowManager *wm = PortabilityLayer::WindowManager::GetInstance();
|
||||
|
||||
for (int i = 0; i < MainMenuUIState::Control_Count; i++)
|
||||
{
|
||||
MainMenuControlState &control = mainMenu.m_controls[i];
|
||||
|
||||
if (control.m_window)
|
||||
{
|
||||
wm->DestroyWindow(control.m_window);
|
||||
control.m_window = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void HandleMainMenuUIResolutionChange()
|
||||
{
|
||||
PortabilityLayer::WindowManager *wm = PortabilityLayer::WindowManager::GetInstance();
|
||||
|
||||
unsigned int displayHeight = 0;
|
||||
PortabilityLayer::HostDisplayDriver::GetInstance()->GetDisplayResolution(nullptr, &displayHeight);
|
||||
|
||||
for (int i = 0; i < MainMenuUIState::Control_Count; i++)
|
||||
{
|
||||
MainMenuControlState &control = mainMenu.m_controls[i];
|
||||
|
||||
if (control.m_window)
|
||||
{
|
||||
PortabilityLayer::Vec2i pos = control.m_window->GetPosition();
|
||||
pos.m_y = displayHeight - MainMenuUIState::kControlBottomSpacing - MainMenuUIState::kControlHeight;
|
||||
control.m_window->SetPosition(pos);
|
||||
|
||||
wm->PutWindowBehind(control.m_window, wm->GetPutInFrontSentinel());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void MainMenuUIMouseMove(Window *window, MainMenuUIState::ControlID controlID, const Point &localPoint)
|
||||
{
|
||||
if (window->GetSurfaceRect().Contains(localPoint))
|
||||
{
|
||||
if (mainMenu.m_activeControl != controlID)
|
||||
{
|
||||
DrawMainMenuControl(window->GetDrawSurface(), controlID, true);
|
||||
mainMenu.m_activeControl = controlID;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mainMenu.m_activeControl == controlID)
|
||||
{
|
||||
DrawMainMenuControl(window->GetDrawSurface(), controlID, false);
|
||||
mainMenu.m_activeControl = MainMenuUIState::Control_Count;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void HandleMainMenuUISelection(MainMenuUIState::ControlID controlID)
|
||||
{
|
||||
switch (controlID)
|
||||
{
|
||||
case MainMenuUIState::Control_NewGame:
|
||||
DismissMainMenuUIPage();
|
||||
DoGameMenu(iNewGame);
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_LoadSavedGame:
|
||||
DismissMainMenuUIPage();
|
||||
DoGameMenu(iOpenSavedGame);
|
||||
StartMainMenuUI();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_HighScores:
|
||||
DismissMainMenuUIPage();
|
||||
DoOptionsMenu(iHighScores);
|
||||
StartMainMenuUI();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_LoadHouse:
|
||||
DismissMainMenuUIPage();
|
||||
DoGameMenu(iLoadHouse);
|
||||
StartMainMenuUI();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_Demo:
|
||||
DismissMainMenuUIPage();
|
||||
DoOptionsMenu(iHelp);
|
||||
StartMainMenuUI();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_AboutApplication:
|
||||
DismissMainMenuUIPage();
|
||||
DoAppleMenu(iAbout);
|
||||
StartScrollForPage();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_AboutFramework:
|
||||
DismissMainMenuUIPage();
|
||||
DoAppleMenu(iAboutAerofoil);
|
||||
StartScrollForPage();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_Page0To1:
|
||||
DismissMainMenuUIPage();
|
||||
mainMenu.m_currentPage = 1;
|
||||
StartScrollForPage();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_Page1To2:
|
||||
DismissMainMenuUIPage();
|
||||
mainMenu.m_currentPage = 2;
|
||||
StartScrollForPage();
|
||||
break;
|
||||
|
||||
case MainMenuUIState::Control_Page2To0:
|
||||
DismissMainMenuUIPage();
|
||||
mainMenu.m_currentPage = 0;
|
||||
StartScrollForPage();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool HandleMainMenuUIClick(Window *window, const Point &pt)
|
||||
{
|
||||
MainMenuUIState::ControlID controlID = MainMenuUIState::Control_Count;
|
||||
|
||||
if (mainMenu.m_scrollInOffset != 0)
|
||||
return true;
|
||||
|
||||
for (int i = 0; i < MainMenuUIState::Control_Count; i++)
|
||||
{
|
||||
const MainMenuControlState &control = mainMenu.m_controls[i];
|
||||
|
||||
if (control.m_window == window)
|
||||
{
|
||||
controlID = static_cast<MainMenuUIState::ControlID>(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (controlID == MainMenuUIState::Control_Count)
|
||||
return false;
|
||||
|
||||
DrawMainMenuControl(mainMenu.m_controls[controlID].m_window->GetDrawSurface(), controlID, true);
|
||||
|
||||
mainMenu.m_activeControl = controlID;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
TimeTaggedVOSEvent evt;
|
||||
if (WaitForEvent(&evt, 1))
|
||||
{
|
||||
if (evt.m_vosEvent.m_eventType == GpVOSEventTypes::kMouseInput)
|
||||
{
|
||||
const GpMouseInputEvent &mouseEvt = evt.m_vosEvent.m_event.m_mouseInputEvent;
|
||||
|
||||
if (mouseEvt.m_eventType == GpMouseEventTypes::kLeave)
|
||||
return true;
|
||||
|
||||
if (mouseEvt.m_eventType == GpMouseEventTypes::kMove || mouseEvt.m_eventType == GpMouseEventTypes::kDown || mouseEvt.m_eventType == GpMouseEventTypes::kUp)
|
||||
{
|
||||
MainMenuUIMouseMove(window, controlID, window->MouseToLocal(mouseEvt));
|
||||
}
|
||||
|
||||
if (mouseEvt.m_eventType == GpMouseEventTypes::kUp)
|
||||
{
|
||||
if (mainMenu.m_activeControl != MainMenuUIState::Control_Count)
|
||||
{
|
||||
DrawMainMenuControl(mainMenu.m_controls[controlID].m_window->GetDrawSurface(), controlID, false);
|
||||
HandleMainMenuUISelection(controlID);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
10
GpApp/MainMenuUI.h
Normal file
10
GpApp/MainMenuUI.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
struct Point;
|
||||
struct Window;
|
||||
|
||||
void StartMainMenuUI();
|
||||
void TickMainMenuUI();
|
||||
void DismissMainMenuUI();
|
||||
void HandleMainMenuUIResolutionChange();
|
||||
bool HandleMainMenuUIClick(Window *window, const Point &pt);
|
@@ -30,8 +30,6 @@
|
||||
|
||||
|
||||
void DrawOnSplash (DrawSurface *surface);
|
||||
void SetPaletteToGrays (void);
|
||||
void HardDrawMainWindow (void);
|
||||
void KeepWindowInBounds(Window *window);
|
||||
|
||||
CTabHandle theCTab;
|
||||
@@ -53,6 +51,7 @@ Boolean fadeGraysOut, isDoColorFade, splashDrawn;
|
||||
extern short toolSelected;
|
||||
extern Boolean noRoomAtAll, isUseSecondScreen;
|
||||
extern Boolean quickerTransitions, houseIsReadOnly;
|
||||
extern Boolean menusUp;
|
||||
|
||||
//============================================================== Functions
|
||||
//-------------------------------------------------------------- DrawOnSplash
|
||||
@@ -111,7 +110,12 @@ void RedrawSplashScreen (void)
|
||||
CopyRectMainToWork(&workSrcRect);
|
||||
|
||||
mainWindow->GetDrawSurface()->m_port.SetDirty(PortabilityLayer::QDPortDirtyFlag_Contents);
|
||||
PortabilityLayer::MenuManager::GetInstance()->SetMenuVisible(true);
|
||||
|
||||
if (!thisMac.isTouchscreen)
|
||||
{
|
||||
menusUp = true;
|
||||
PortabilityLayer::MenuManager::GetInstance()->SetMenuVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------- UpdateMainWindow
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#include "DialogManager.h"
|
||||
#include "DialogUtils.h"
|
||||
#include "Externs.h"
|
||||
#include "Environ.h"
|
||||
#include "House.h"
|
||||
#include "MenuManager.h"
|
||||
#include "ObjectEdit.h"
|
||||
@@ -417,6 +418,13 @@ void DoOptionsMenu (short theItem)
|
||||
}
|
||||
}
|
||||
CloseMainWindow();
|
||||
|
||||
if (thisMac.isTouchscreen)
|
||||
{
|
||||
menusUp = false;
|
||||
PortabilityLayer::MenuManager::GetInstance()->SetMenuVisible(false);
|
||||
}
|
||||
|
||||
OpenMainWindow();
|
||||
incrementModeTime = TickCount() + kIdleSplashTicks;
|
||||
}
|
||||
@@ -425,6 +433,10 @@ void DoOptionsMenu (short theItem)
|
||||
theMode = kEditMode;
|
||||
StopTheMusic();
|
||||
CloseMainWindow();
|
||||
|
||||
menusUp = true;
|
||||
PortabilityLayer::MenuManager::GetInstance()->SetMenuVisible(true);
|
||||
|
||||
OpenMainWindow();
|
||||
OpenCloseEditWindows();
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@
|
||||
#include "PLStandardColors.h"
|
||||
#include "PLSysCalls.h"
|
||||
#include "RenderedFont.h"
|
||||
#include "GpApplicationName.h"
|
||||
#include "GpRenderedFontMetrics.h"
|
||||
#include "ResolveCachingColor.h"
|
||||
#include "ZipFile.h"
|
||||
@@ -711,7 +712,7 @@ bool ExportSourceToStream (GpIOStream *stream)
|
||||
|
||||
void DoExportSourceCode (void)
|
||||
{
|
||||
GpIOStream *stream = PortabilityLayer::HostFileSystem::GetInstance()->OpenFile(PortabilityLayer::VirtualDirectories::kSourceExport, "SourceExport.zip", true, GpFileCreationDispositions::kCreateOrOverwrite);
|
||||
GpIOStream *stream = PortabilityLayer::HostFileSystem::GetInstance()->OpenFile(PortabilityLayer::VirtualDirectories::kSourceExport, GP_APPLICATION_NAME "SourceCode.zip", true, GpFileCreationDispositions::kCreateOrOverwrite);
|
||||
if (!stream)
|
||||
return;
|
||||
|
||||
|
@@ -25,6 +25,8 @@ namespace PortabilityLayer
|
||||
|
||||
FontFamily *GetSystemFont(int textSize, int variationFlags) const override;
|
||||
FontFamily *GetApplicationFont(int textSize, int variationFlags) const override;
|
||||
FontFamily *GetHandwritingFont(int textSize, int variationFlags) const override;
|
||||
FontFamily *GetMonospaceFont(int textSize, int variationFlags) const override;
|
||||
|
||||
RenderedFont *GetRenderedFont(IGpFont *font, int size, bool aa, FontHacks fontHacks) override;
|
||||
RenderedFont *GetRenderedFontFromFamily(FontFamily *font, int size, bool aa, int flags) override;
|
||||
@@ -38,6 +40,8 @@ namespace PortabilityLayer
|
||||
static const unsigned int kNumCachedRenderedFonts = 32;
|
||||
static const int kSystemFontCacheID = 1;
|
||||
static const int kApplicationFontCacheID = 2;
|
||||
static const int kHandwritingFontCacheID = 3;
|
||||
static const int kMonospaceFontCacheID = 3;
|
||||
static const int kFontCacheVersion = 1;
|
||||
static const int kFontCacheNameSize = 64;
|
||||
|
||||
@@ -59,6 +63,8 @@ namespace PortabilityLayer
|
||||
|
||||
FontFamily *m_systemFont;
|
||||
FontFamily *m_applicationFont;
|
||||
FontFamily *m_handwritingFont;
|
||||
FontFamily *m_monospaceFont;
|
||||
uint32_t m_usageCounter;
|
||||
|
||||
CachedRenderedFont m_cachedRenderedFonts[kNumCachedRenderedFonts];
|
||||
@@ -70,6 +76,8 @@ namespace PortabilityLayer
|
||||
{
|
||||
m_systemFont = FontFamily::Create(kSystemFontCacheID);
|
||||
m_applicationFont = FontFamily::Create(kApplicationFontCacheID);
|
||||
m_handwritingFont = FontFamily::Create(kHandwritingFontCacheID);
|
||||
m_monospaceFont = FontFamily::Create(kMonospaceFontCacheID);
|
||||
|
||||
if (m_systemFont)
|
||||
m_systemFont->AddFont(FontFamilyFlag_None, "Fonts/OpenSans/OpenSans-ExtraBold.ttf", FontHacks_None);
|
||||
@@ -80,6 +88,12 @@ namespace PortabilityLayer
|
||||
m_applicationFont->AddFont(FontFamilyFlag_Bold, "Fonts/OpenSans/OpenSans-Bold.ttf", FontHacks_None);
|
||||
}
|
||||
|
||||
if (m_handwritingFont)
|
||||
m_handwritingFont->AddFont(FontFamilyFlag_None, "Fonts/GochiHand/GochiHand-Regular.ttf", FontHacks_None);
|
||||
|
||||
if (m_monospaceFont)
|
||||
m_monospaceFont->AddFont(FontFamilyFlag_None, "Fonts/Roboto/RobotoMono-Regular.ttf", FontHacks_None);
|
||||
|
||||
memset(m_cachedRenderedFonts, 0, sizeof(m_cachedRenderedFonts));
|
||||
}
|
||||
|
||||
@@ -91,13 +105,13 @@ namespace PortabilityLayer
|
||||
if (m_applicationFont)
|
||||
m_applicationFont->Destroy();
|
||||
|
||||
IGpFontHandler *hfh = HostFontHandler::GetInstance();
|
||||
if (m_handwritingFont)
|
||||
m_handwritingFont->Destroy();
|
||||
|
||||
if (m_systemFont)
|
||||
{
|
||||
m_systemFont->Destroy();
|
||||
m_systemFont = nullptr;
|
||||
}
|
||||
if (m_monospaceFont)
|
||||
m_monospaceFont->Destroy();
|
||||
|
||||
IGpFontHandler *hfh = HostFontHandler::GetInstance();
|
||||
|
||||
for (int i = 0; i < sizeof(m_cachedRenderedFonts) / sizeof(m_cachedRenderedFonts[0]); i++)
|
||||
{
|
||||
@@ -109,7 +123,6 @@ namespace PortabilityLayer
|
||||
|
||||
FontFamily *FontManagerImpl::GetSystemFont(int textSize, int variationFlags) const
|
||||
{
|
||||
(void)textSize;
|
||||
return m_systemFont;
|
||||
}
|
||||
|
||||
@@ -121,6 +134,16 @@ namespace PortabilityLayer
|
||||
return m_applicationFont;
|
||||
}
|
||||
|
||||
FontFamily *FontManagerImpl::GetHandwritingFont(int textSize, int variationFlags) const
|
||||
{
|
||||
return m_handwritingFont;
|
||||
}
|
||||
|
||||
FontFamily *FontManagerImpl::GetMonospaceFont(int textSize, int variationFlags) const
|
||||
{
|
||||
return m_monospaceFont;
|
||||
}
|
||||
|
||||
RenderedFont *FontManagerImpl::GetRenderedFont(IGpFont *font, int size, bool aa, FontHacks fontHacks)
|
||||
{
|
||||
CachedRenderedFont *newCacheSlot = &m_cachedRenderedFonts[0];
|
||||
|
@@ -17,6 +17,8 @@ namespace PortabilityLayer
|
||||
|
||||
virtual FontFamily *GetSystemFont(int fontSize, int variationFlags) const = 0;
|
||||
virtual FontFamily *GetApplicationFont(int fontSize, int variationFlags) const = 0;
|
||||
virtual FontFamily *GetHandwritingFont(int fontSize, int variationFlags) const = 0;
|
||||
virtual FontFamily *GetMonospaceFont(int fontSize, int variationFlags) const = 0;
|
||||
|
||||
virtual RenderedFont *GetRenderedFont(IGpFont *font, int size, bool aa, FontHacks fontHacks) = 0;
|
||||
virtual RenderedFont *GetRenderedFontFromFamily(FontFamily *fontFamily, int fontSize, bool aa, int flags) = 0;
|
||||
|
@@ -208,12 +208,12 @@ namespace PortabilityLayer
|
||||
|
||||
static const unsigned int kIconResID = 128;
|
||||
static const unsigned int kMenuFontSize = 12;
|
||||
static const unsigned int kTouchScreenMenuFontSize = 24;
|
||||
static const unsigned int kTouchScreenMenuFontSize = 40;
|
||||
static const unsigned int kMenuBarIconYOffset = 2;
|
||||
static const unsigned int kMenuBarTextYOffset = 14;
|
||||
static const unsigned int kTouchScreenMenuBarTextYOffset = 26;
|
||||
static const unsigned int kTouchScreenMenuBarTextYOffset = 40;
|
||||
static const unsigned int kMenuBarHeight = 20;
|
||||
static const unsigned int kTouchscreenMenuBarHeight = 38;
|
||||
static const unsigned int kTouchscreenMenuBarHeight = 54;
|
||||
static const unsigned int kMenuBarItemPadding = 6;
|
||||
static const unsigned int kMenuBarInitialPadding = 16;
|
||||
|
||||
@@ -645,6 +645,9 @@ namespace PortabilityLayer
|
||||
|
||||
bool MenuManagerImpl::IsPointInMenuBar(const Vec2i &point) const
|
||||
{
|
||||
if (!m_menuBarVisible)
|
||||
return false;
|
||||
|
||||
return IsYInMenuBarRange(point.m_y);
|
||||
}
|
||||
|
||||
|
@@ -647,6 +647,9 @@ bool WaitForEvent(TimeTaggedVOSEvent *eventOut, uint32_t ticks)
|
||||
Delay(1, nullptr);
|
||||
|
||||
ticks--;
|
||||
|
||||
if (ticks == 0)
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@@ -2026,6 +2026,24 @@ PortabilityLayer::RenderedFont *GetSystemFont(int size, int variationFlags, bool
|
||||
return PortabilityLayer::FontManager::GetInstance()->GetRenderedFontFromFamily(fontFamily, size, aa, variationFlags);
|
||||
}
|
||||
|
||||
PortabilityLayer::RenderedFont *GetHandwritingFont(int size, int variationFlags, bool aa)
|
||||
{
|
||||
PortabilityLayer::FontFamily *fontFamily = PortabilityLayer::FontManager::GetInstance()->GetHandwritingFont(size, variationFlags);
|
||||
if (!fontFamily)
|
||||
return nullptr;
|
||||
|
||||
return PortabilityLayer::FontManager::GetInstance()->GetRenderedFontFromFamily(fontFamily, size, aa, variationFlags);
|
||||
}
|
||||
|
||||
PortabilityLayer::RenderedFont *GetMonospaceFont(int size, int variationFlags, bool aa)
|
||||
{
|
||||
PortabilityLayer::FontFamily *fontFamily = PortabilityLayer::FontManager::GetInstance()->GetMonospaceFont(size, variationFlags);
|
||||
if (!fontFamily)
|
||||
return nullptr;
|
||||
|
||||
return PortabilityLayer::FontManager::GetInstance()->GetRenderedFontFromFamily(fontFamily, size, aa, variationFlags);
|
||||
}
|
||||
|
||||
#include "stb_image_write.h"
|
||||
|
||||
void DebugPixMap(PixMap **pixMapH, const char *outName)
|
||||
|
@@ -93,6 +93,8 @@ Boolean SectRect(const Rect *rectA, const Rect *rectB, Rect *outIntersection);
|
||||
|
||||
PortabilityLayer::RenderedFont *GetApplicationFont(int size, int variationFlags, bool aa);
|
||||
PortabilityLayer::RenderedFont *GetSystemFont(int size, int variationFlags, bool aa);
|
||||
PortabilityLayer::RenderedFont *GetHandwritingFont(int size, int variationFlags, bool aa);
|
||||
PortabilityLayer::RenderedFont *GetMonospaceFont(int size, int variationFlags, bool aa);
|
||||
|
||||
|
||||
inline RGBColor::RGBColor(uint8_t r, uint8_t g, uint8_t b)
|
||||
|
@@ -276,7 +276,7 @@ namespace PortabilityLayer
|
||||
extension = kPICTExtension;
|
||||
outValidationRule = ResourceValidationRules::kBMP;
|
||||
}
|
||||
else if (resTypeID == ResTypeID('STR#'))
|
||||
else if (resTypeID == ResTypeID('STR#') || resTypeID == ResTypeID('LICS'))
|
||||
extension = ".txt";
|
||||
else if (resTypeID == ResTypeID('DITL') || resTypeID == ResTypeID('muvi'))
|
||||
extension = ".json";
|
||||
|
@@ -1108,7 +1108,8 @@ namespace PortabilityLayer
|
||||
|
||||
void WindowManagerImpl::FindWindow(const Point &point, Window **outWindow, short *outRegion) const
|
||||
{
|
||||
if (PortabilityLayer::MenuManager::GetInstance()->IsPointInMenuBar(PortabilityLayer::Vec2i(point.h, point.v)))
|
||||
PortabilityLayer::MenuManager *menuManager = PortabilityLayer::MenuManager::GetInstance();
|
||||
if (menuManager->IsPointInMenuBar(PortabilityLayer::Vec2i(point.h, point.v)))
|
||||
{
|
||||
if (outWindow)
|
||||
*outWindow = nullptr;
|
||||
|
BIN
Resources/Fonts/GochiHand/GochiHand-Regular.ttf
Normal file
BIN
Resources/Fonts/GochiHand/GochiHand-Regular.ttf
Normal file
Binary file not shown.
94
Resources/Fonts/GochiHand/OFL.txt
Normal file
94
Resources/Fonts/GochiHand/OFL.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
Copyright (c) 2011, Juan Pablo del Peral (juan@huertatipografica.com.ar),
|
||||
with Reserved Font Names "Gochi" and "Gochi Hand"
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
202
Resources/Fonts/Roboto/LICENSE.txt
Normal file
202
Resources/Fonts/Roboto/LICENSE.txt
Normal file
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache 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
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
BIN
Resources/Fonts/Roboto/RobotoMono-Regular.ttf
Normal file
BIN
Resources/Fonts/Roboto/RobotoMono-Regular.ttf
Normal file
Binary file not shown.
Reference in New Issue
Block a user