Merge branch 'hi-res-display'
@ -3,31 +3,52 @@
|
||||
<classpathentry excluding="processing/app/tools/format/" kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="test"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/arduino-core"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
<classpathentry kind="lib" path="lib/apple.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-anim-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-awt-util-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-bridge-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-codec-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-css-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-dom-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-ext-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-gvt-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-parser-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-rasterizer-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-script-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-squiggle-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-svg-dom-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-svgpp-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-transcoder-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-util-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/batik-xml-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/bcpg-jdk15on-152.jar"/>
|
||||
<classpathentry kind="lib" path="lib/bcprov-jdk15on-152.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-codec-1.7.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-compress-1.8.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-exec-1.1.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-httpclient-3.1.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-lang3-3.3.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-logging-1.0.4.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-net-3.3.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jackson-annotations-2.6.3.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jackson-core-2.6.3.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jackson-databind-2.6.3.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jackson-module-mrbean-2.6.3.jar"/>
|
||||
<classpathentry kind="lib" path="lib/java-semver-0.8.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jmdns-3.4.1.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jsch-0.1.50.jar"/>
|
||||
<classpathentry kind="lib" path="lib/jssc-2.8.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/rsyntaxtextarea-2.5.8.1+arduino.jar"/>
|
||||
<classpathentry kind="lib" path="lib/xml-apis-1.3.04.jar"/>
|
||||
<classpathentry kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>
|
||||
<classpathentry kind="lib" path="lib/xmlgraphics-commons-2.0.jar"/>
|
||||
<classpathentry kind="lib" path="test-lib/junit-4.11.jar"/>
|
||||
<classpathentry kind="lib" path="test-lib/fest-assert-1.2.jar"/>
|
||||
<classpathentry kind="lib" path="test-lib/fest-reflect-1.2.jar"/>
|
||||
<classpathentry kind="lib" path="test-lib/fest-swing-1.2.jar"/>
|
||||
<classpathentry kind="lib" path="test-lib/fest-util-1.1.2.jar"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/arduino-core"/>
|
||||
<classpathentry kind="lib" path="test-lib/jcip-annotations-1.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-lang3-3.3.2.jar"/>
|
||||
<classpathentry kind="lib" path="lib/java-semver-0.8.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/rsyntaxtextarea-2.5.8.1+arduino.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
30
app/lib/README.xml-apis-1.3.04.txt
Normal file
@ -0,0 +1,30 @@
|
||||
This distribution includes xml-apis.jar from the XML Commons External
|
||||
1.3.04 binary distribution, which can also be obtained from:
|
||||
|
||||
http://xml.apache.org/mirrors.cgi
|
||||
|
||||
Source code is available from the XML Commons web site:
|
||||
|
||||
http://xml.apache.org/commons/
|
||||
|
||||
xml-apis.jar contains:
|
||||
|
||||
- DOM Level 2 Events
|
||||
- DOM Level 2 HTML
|
||||
- DOM Level 2 Style
|
||||
- DOM Level 2 Traversal and Range
|
||||
- DOM Level 2 Views
|
||||
- DOM Level 3 Core
|
||||
- DOM Level 3 Load and Save
|
||||
- DOM Level 3 XPath
|
||||
- JAXP 1.3 (JSR 206)
|
||||
- SAX
|
||||
|
||||
All DOM code is licensed under the W3C Software License, and DOM documentation
|
||||
under the W3C Document License. See LICENSE.dom-software.txt and
|
||||
LICENSE.dom-documentation.txt.
|
||||
|
||||
The JAXP 1.3 code is licensed under the Apache Software License 2.0, which is
|
||||
in the LICENSE in the root directory of this distribution.
|
||||
|
||||
SAX is public domain. See LICENSE.sax.txt.
|
19
app/lib/README.xml-apis-ext-1.3.04.txt
Normal file
@ -0,0 +1,19 @@
|
||||
This distribution includes xml-apis-ext.jar from the XML Commons External
|
||||
1.3.04 binary distribution, which can also be obtained from:
|
||||
|
||||
http://xml.apache.org/mirrors.cgi
|
||||
|
||||
Source code is available from the XML Commons web site:
|
||||
|
||||
http://xml.apache.org/commons/
|
||||
|
||||
xml-apis-ext.jar contains:
|
||||
|
||||
- SAC 1.3
|
||||
- SMIL Java bindings
|
||||
- SVG 1.1 Java bindings
|
||||
|
||||
SAC 1.3, the SMIL Java bindings and the SVG 1.1 Java bindings are licensed
|
||||
under the W3C Software License. Related documentation is licensed under the
|
||||
W3C Document License. See LICENSE.dom-software.txt and
|
||||
LICENSE.dom-documentation.txt.
|
BIN
app/lib/batik-1.8.jar
Normal file
BIN
app/lib/batik-anim-1.8.jar
Normal file
BIN
app/lib/batik-awt-util-1.8.jar
Normal file
BIN
app/lib/batik-bridge-1.8.jar
Normal file
BIN
app/lib/batik-codec-1.8.jar
Normal file
BIN
app/lib/batik-css-1.8.jar
Normal file
BIN
app/lib/batik-dom-1.8.jar
Normal file
BIN
app/lib/batik-ext-1.8.jar
Normal file
BIN
app/lib/batik-gvt-1.8.jar
Normal file
BIN
app/lib/batik-parser-1.8.jar
Normal file
BIN
app/lib/batik-rasterizer-1.8.jar
Normal file
BIN
app/lib/batik-script-1.8.jar
Normal file
BIN
app/lib/batik-squiggle-1.8.jar
Normal file
BIN
app/lib/batik-svg-dom-1.8.jar
Normal file
BIN
app/lib/batik-svgpp-1.8.jar
Normal file
BIN
app/lib/batik-transcoder-1.8.jar
Normal file
BIN
app/lib/batik-util-1.8.jar
Normal file
BIN
app/lib/batik-xml-1.8.jar
Normal file
201
app/lib/batik.LICENSE.ASL-2.0.txt
Normal file
@ -0,0 +1,201 @@
|
||||
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
app/lib/xml-apis-1.3.04.jar
Normal file
BIN
app/lib/xml-apis-ext-1.3.04.jar
Normal file
BIN
app/lib/xmlgraphics-commons-2.0.jar
Normal file
@ -83,11 +83,11 @@ public class ContributionsSelfCheck extends TimerTask {
|
||||
|
||||
String text;
|
||||
if (updatableLibraries > 0 && updatablePlatforms <= 0) {
|
||||
text = I18n.format(tr("<br/>Update available for some of your {0}libraries{1}"), "<a href=\"http://librarymanager\">", "</a>");
|
||||
text = I18n.format(tr("Updates available for some of your {0}libraries{1}"), "<a href=\"http://librarymanager\">", "</a>");
|
||||
} else if (updatableLibraries <= 0 && updatablePlatforms > 0) {
|
||||
text = I18n.format(tr("<br/>Update available for some of your {0}boards{1}"), "<a href=\"http://boardsmanager\">", "</a>");
|
||||
text = I18n.format(tr("Updates available for some of your {0}boards{1}"), "<a href=\"http://boardsmanager\">", "</a>");
|
||||
} else {
|
||||
text = I18n.format(tr("<br/>Update available for some of your {0}boards{1} and {2}libraries{3}"), "<a href=\"http://boardsmanager\">", "</a>", "<a href=\"http://librarymanager\">", "</a>");
|
||||
text = I18n.format(tr("Updates available for some of your {0}boards{1} and {2}libraries{3}"), "<a href=\"http://boardsmanager\">", "</a>", "<a href=\"http://librarymanager\">", "</a>");
|
||||
}
|
||||
|
||||
if (cancelled) {
|
||||
|
@ -26,6 +26,7 @@ import cc.arduino.contributions.DownloadableContributionVersionComparator;
|
||||
import cc.arduino.contributions.libraries.ContributedLibrary;
|
||||
import cc.arduino.contributions.ui.InstallerTableCell;
|
||||
import processing.app.Base;
|
||||
import processing.app.Theme;
|
||||
|
||||
public class ContributedLibraryTableCellJPanel extends JPanel {
|
||||
|
||||
@ -39,7 +40,7 @@ public class ContributedLibraryTableCellJPanel extends JPanel {
|
||||
final JLabel statusLabel;
|
||||
|
||||
public ContributedLibraryTableCellJPanel(JTable parentTable, Object value,
|
||||
boolean isSelected) {
|
||||
boolean isSelected) {
|
||||
super();
|
||||
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
|
||||
|
||||
@ -217,10 +218,10 @@ public class ContributedLibraryTableCellJPanel extends JPanel {
|
||||
Document doc = description.getDocument();
|
||||
if (doc instanceof HTMLDocument) {
|
||||
HTMLDocument html = (HTMLDocument) doc;
|
||||
StyleSheet stylesheet = html.getStyleSheet();
|
||||
stylesheet.addRule("body { margin: 0; padding: 0;"
|
||||
+ "font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"
|
||||
+ "font-size: 100%;" + "font-size: 0.95em; }");
|
||||
StyleSheet s = html.getStyleSheet();
|
||||
s.addRule("body { margin: 0; padding: 0;"
|
||||
+ "font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"
|
||||
+ "font-size: " + 10 * Theme.getScale() / 100 + "; }");
|
||||
}
|
||||
description.setOpaque(false);
|
||||
description.setBorder(new EmptyBorder(4, 7, 7, 7));
|
||||
|
@ -57,6 +57,7 @@ import cc.arduino.contributions.packages.ContributedHelp;
|
||||
import cc.arduino.contributions.packages.ContributedPlatform;
|
||||
import cc.arduino.contributions.ui.InstallerTableCell;
|
||||
import processing.app.Base;
|
||||
import processing.app.Theme;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ContributedPlatformTableCellJPanel extends JPanel {
|
||||
@ -259,10 +260,10 @@ public class ContributedPlatformTableCellJPanel extends JPanel {
|
||||
Document doc = description.getDocument();
|
||||
if (doc instanceof HTMLDocument) {
|
||||
HTMLDocument html = (HTMLDocument) doc;
|
||||
StyleSheet stylesheet = html.getStyleSheet();
|
||||
stylesheet.addRule("body { margin: 0; padding: 0;"
|
||||
+ "font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"
|
||||
+ "font-size: 100%;" + "font-size: 0.95em; }");
|
||||
StyleSheet s = html.getStyleSheet();
|
||||
s.addRule("body { margin: 0; padding: 0;"
|
||||
+ "font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;"
|
||||
+ "font-size: " + 10 * Theme.getScale() / 100 + "; }");
|
||||
}
|
||||
description.setOpaque(false);
|
||||
description.setBorder(new EmptyBorder(4, 7, 7, 7));
|
||||
|
@ -30,6 +30,7 @@
|
||||
package cc.arduino.contributions.ui;
|
||||
|
||||
import static processing.app.I18n.tr;
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
@ -227,7 +228,7 @@ public abstract class InstallerJDialog<T> extends JDialog {
|
||||
}
|
||||
setProgressVisible(false, "");
|
||||
|
||||
setMinimumSize(new Dimension(800, 450));
|
||||
setMinimumSize(scale(new Dimension(800, 450)));
|
||||
|
||||
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
||||
|
||||
|
@ -1,89 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
|
||||
<Properties>
|
||||
<Property name="defaultCloseOperation" type="int" value="2"/>
|
||||
<Property name="alwaysOnTop" type="boolean" value="true"/>
|
||||
<Property name="focusable" type="boolean" value="false"/>
|
||||
<Property name="focusableWindowState" type="boolean" value="false"/>
|
||||
<Property name="undecorated" type="boolean" value="true"/>
|
||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[350, 70]"/>
|
||||
</Property>
|
||||
<Property name="resizable" type="boolean" value="false"/>
|
||||
<Property name="size" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[350, 70]"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<SyntheticProperties>
|
||||
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
|
||||
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
|
||||
</SyntheticProperties>
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
<AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,0,0,0,2,14"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
|
||||
<Property name="useNullLayout" type="boolean" value="true"/>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JLabel" name="icon">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="new ImageIcon(Paths.get(BaseNoGui.getContentFile("lib").getAbsolutePath(), "arduino_small.png").toFile().getAbsolutePath())" type="code"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="10" y="10" width="50" height="50"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JEditorPane" name="text">
|
||||
<Properties>
|
||||
<Property name="editable" type="boolean" value="false"/>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
|
||||
<LineBorder roundedCorners="true" thickness="0"/>
|
||||
</Border>
|
||||
</Property>
|
||||
<Property name="contentType" type="java.lang.String" value="text/html" noResource="true"/>
|
||||
<Property name="opaque" type="boolean" value="false"/>
|
||||
</Properties>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="70" y="10" width="270" height="50"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="closeButton">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="new ImageIcon(Paths.get(BaseNoGui.getContentFile("lib").getAbsolutePath(), "theme", "close.png").toFile().getAbsolutePath())" type="code"/>
|
||||
</Property>
|
||||
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||
<Border info="null"/>
|
||||
</Property>
|
||||
<Property name="borderPainted" type="boolean" value="false"/>
|
||||
<Property name="hideActionText" type="boolean" value="true"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="closeButtonActionPerformed"/>
|
||||
</Events>
|
||||
<Constraints>
|
||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
|
||||
<AbsoluteConstraints x="328" y="0" width="22" height="22"/>
|
||||
</Constraint>
|
||||
</Constraints>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
@ -29,26 +29,80 @@
|
||||
|
||||
package cc.arduino.view;
|
||||
|
||||
import processing.app.Base;
|
||||
import processing.app.BaseNoGui;
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.HyperlinkEvent;
|
||||
import java.awt.Color;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.Frame;
|
||||
import java.awt.Image;
|
||||
import java.awt.Point;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.WindowConstants;
|
||||
import javax.swing.border.LineBorder;
|
||||
import javax.swing.event.HyperlinkListener;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import processing.app.Theme;
|
||||
|
||||
public class NotificationPopup extends JDialog {
|
||||
|
||||
private final ComponentAdapter parentMovedListener;
|
||||
|
||||
public NotificationPopup(Frame parent, HyperlinkListener hyperlinkListener, String message) {
|
||||
public NotificationPopup(Frame parent, HyperlinkListener hyperlinkListener,
|
||||
String message) {
|
||||
super(parent, false);
|
||||
initComponents();
|
||||
setLayout(new FlowLayout());
|
||||
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
|
||||
setAlwaysOnTop(true);
|
||||
setUndecorated(true);
|
||||
setResizable(false);
|
||||
|
||||
Image arduino = Theme.getLibImage("arduino", this, scale(40), scale(40));
|
||||
JLabel arduinoIcon = new JLabel(new ImageIcon(arduino));
|
||||
add(arduinoIcon);
|
||||
|
||||
JEditorPane text = new JEditorPane();
|
||||
text.setBorder(new LineBorder(new Color(0, 0, 0), 0, true));
|
||||
text.setContentType("text/html"); // NOI18N
|
||||
text.setOpaque(false);
|
||||
text.setEditable(false);
|
||||
text.setText("<html><body style=\"font-family:sans-serif; font-size: "
|
||||
+ scale(14) + ";\"> " + message + " </body></html>");
|
||||
text.addHyperlinkListener(hyperlinkListener);
|
||||
add(text);
|
||||
|
||||
Image close = Theme.getThemeImage("close", this, scale(22), scale(22));
|
||||
JButton closeButton = new JButton(new ImageIcon(close));
|
||||
closeButton.setBorder(null);
|
||||
closeButton.setBorderPainted(false);
|
||||
closeButton.setHideActionText(true);
|
||||
closeButton.setOpaque(false);
|
||||
closeButton.setBackground(new Color(0, 0, 0, 0));
|
||||
add(closeButton);
|
||||
|
||||
MouseAdapter closeOnClick = new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
close();
|
||||
}
|
||||
};
|
||||
addMouseListener(closeOnClick);
|
||||
text.addMouseListener(closeOnClick);
|
||||
arduinoIcon.addMouseListener(closeOnClick);
|
||||
closeButton.addMouseListener(closeOnClick);
|
||||
|
||||
pack();
|
||||
|
||||
updateLocation(parent);
|
||||
parentMovedListener = new ComponentAdapter() {
|
||||
ComponentAdapter parentMovedListener = new ComponentAdapter() {
|
||||
@Override
|
||||
public void componentMoved(ComponentEvent e) {
|
||||
updateLocation(parent);
|
||||
@ -60,35 +114,12 @@ public class NotificationPopup extends JDialog {
|
||||
}
|
||||
};
|
||||
parent.addComponentListener(parentMovedListener);
|
||||
|
||||
text.setText("<html><body style=\"font-family:sans-serif;font-size:12pt\">" + message + "</body></html>");
|
||||
|
||||
text.addHyperlinkListener(hyperlinkListener);
|
||||
text.addHyperlinkListener(e -> {
|
||||
if (e.getEventType() != HyperlinkEvent.EventType.ACTIVATED) {
|
||||
return;
|
||||
}
|
||||
close();
|
||||
});
|
||||
|
||||
addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosed(WindowEvent e) {
|
||||
parent.removeComponentListener(parentMovedListener);
|
||||
}
|
||||
});
|
||||
|
||||
Base.registerWindowCloseKeys(getRootPane(), e -> close());
|
||||
|
||||
MouseAdapter closeOnClick = new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
close();
|
||||
}
|
||||
};
|
||||
addMouseListener(closeOnClick);
|
||||
text.addMouseListener(closeOnClick);
|
||||
icon.addMouseListener(closeOnClick);
|
||||
}
|
||||
|
||||
private void updateLocation(Frame parent) {
|
||||
@ -100,87 +131,6 @@ public class NotificationPopup extends JDialog {
|
||||
}
|
||||
|
||||
public void close() {
|
||||
dispatchEvent(new WindowEvent(NotificationPopup.this, WindowEvent.WINDOW_CLOSING));
|
||||
dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
icon = new javax.swing.JLabel();
|
||||
text = new javax.swing.JEditorPane();
|
||||
closeButton = new javax.swing.JButton();
|
||||
|
||||
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
|
||||
setAlwaysOnTop(true);
|
||||
setFocusable(false);
|
||||
setFocusableWindowState(false);
|
||||
setUndecorated(true);
|
||||
setPreferredSize(new java.awt.Dimension(350, 70));
|
||||
setResizable(false);
|
||||
setSize(new java.awt.Dimension(350, 70));
|
||||
getContentPane().setLayout(null);
|
||||
|
||||
icon.setIcon(new ImageIcon(Paths.get(BaseNoGui.getContentFile("lib").getAbsolutePath(), "arduino_small.png").toFile().getAbsolutePath()));
|
||||
getContentPane().add(icon);
|
||||
icon.setBounds(10, 10, 50, 50);
|
||||
|
||||
text.setEditable(false);
|
||||
text.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 0, true));
|
||||
text.setContentType("text/html"); // NOI18N
|
||||
text.setOpaque(false);
|
||||
getContentPane().add(text);
|
||||
text.setBounds(70, 10, 270, 50);
|
||||
|
||||
closeButton.setIcon(new ImageIcon(Paths.get(BaseNoGui.getContentFile("lib").getAbsolutePath(), "theme", "close.png").toFile().getAbsolutePath()));
|
||||
closeButton.setBorder(null);
|
||||
closeButton.setBorderPainted(false);
|
||||
closeButton.setHideActionText(true);
|
||||
closeButton.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
closeButtonActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
getContentPane().add(closeButton);
|
||||
closeButton.setBounds(328, 0, 22, 22);
|
||||
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed
|
||||
close();
|
||||
}//GEN-LAST:event_closeButtonActionPerformed
|
||||
|
||||
/**
|
||||
* @param args the command line arguments
|
||||
*/
|
||||
public static void main(String args[]) {
|
||||
|
||||
/* Create and display the dialog */
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
NotificationPopup dialog = new NotificationPopup(new JFrame(), System.out::println, "<a href='arduinoide://boardsmanager'>test</a> test test test test test test test test\n" +
|
||||
" test test test test test test test test test test test");
|
||||
dialog.addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
System.exit(0);
|
||||
}
|
||||
});
|
||||
dialog.setVisible(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton closeButton;
|
||||
private javax.swing.JLabel icon;
|
||||
private javax.swing.JEditorPane text;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
}
|
||||
|
@ -35,6 +35,8 @@ import java.awt.*;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.util.Map;
|
||||
|
||||
import processing.app.Theme;
|
||||
|
||||
public class SplashScreenHelper {
|
||||
|
||||
private static final int X_OFFSET = 0;
|
||||
@ -96,7 +98,7 @@ public class SplashScreenHelper {
|
||||
private void prepareTextAreaAndGraphics() {
|
||||
splashTextArea = new Rectangle2D.Double(X_OFFSET, Y_OFFSET, TEXTAREA_WIDTH, TEXTAREA_HEIGHT);
|
||||
|
||||
splashGraphics = splash.createGraphics();
|
||||
splashGraphics = Theme.setupGraphics2D(splash.createGraphics());
|
||||
|
||||
if (desktopHints != null) {
|
||||
splashGraphics.addRenderingHints(desktopHints);
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
|
||||
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
|
||||
<NonVisualComponents>
|
||||
<Component class="javax.swing.ButtonGroup" name="proxyTypeButtonGroup">
|
||||
</Component>
|
||||
@ -42,7 +42,7 @@
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<EmptySpace min="0" pref="610" max="32767" attributes="0"/>
|
||||
<EmptySpace min="0" pref="637" max="32767" attributes="0"/>
|
||||
<Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
|
||||
<Component id="jPanel2" alignment="0" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
@ -94,7 +94,7 @@
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Component id="sketchbookLocationField" max="32767" attributes="0"/>
|
||||
<Component id="sketchbookLocationField" pref="553" max="32767" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="browseButton" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
@ -102,12 +102,26 @@
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="comboWarningsLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="jLabel1" linkSize="1" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="comboWarningsLabel" linkSize="1" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="comboWarnings" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="comboWarnings" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="autoScaleCheckBox" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="scaleSpinner" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
|
||||
<Component id="jLabel3" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="jLabel2" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="showVerboseLabel" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="showVerboseLabel" linkSize="1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="verboseCompilationBox" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
@ -115,8 +129,8 @@
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="comboLanguageLabel" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="fontSizeLabel" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="comboLanguageLabel" linkSize="1" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="fontSizeLabel" linkSize="1" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
@ -169,12 +183,20 @@
|
||||
<Component id="fontSizeField" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="scaleSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="autoScaleCheckBox" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="jLabel3" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="showVerboseLabel" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="verboseCompilationBox" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="verboseUploadBox" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="comboWarningsLabel" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="comboWarnings" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
@ -342,7 +364,7 @@
|
||||
<Component class="javax.swing.JButton" name="extendedAdditionalUrlFieldWindow">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="new ImageIcon(Base.getThemeImage("newwindow.gif", this))" type="code"/>
|
||||
<Connection code="new ImageIcon(Theme.getThemeImage("newwindow", this, Theme.scale(16), Theme.scale(14)))" type="code"/>
|
||||
</Property>
|
||||
<Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
|
||||
<Insets value="[1, 1, 1, 1]"/>
|
||||
@ -460,6 +482,44 @@
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Component class="javax.swing.JLabel" name="jLabel1">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="tr("Interface scale:")" type="code"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="jLabel2">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="tr(" (requires restart of Arduino)")" type="code"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSpinner" name="scaleSpinner">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||
<SpinnerModel initial="100" maximum="200" minimum="100" numberType="java.lang.Integer" stepSize="5" type="number"/>
|
||||
</Property>
|
||||
<Property name="enabled" type="boolean" value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="autoScaleCheckBox">
|
||||
<Properties>
|
||||
<Property name="selected" type="boolean" value="true"/>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="tr("Automatic")" type="code"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="autoScaleCheckBoxItemStateChanged"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="jLabel3">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="%"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Container class="javax.swing.JPanel" name="jPanel4">
|
||||
@ -596,7 +656,7 @@
|
||||
<Component id="manualProxyPassword" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="manualProxyPasswordLabel" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace pref="163" max="32767" attributes="0"/>
|
||||
<EmptySpace pref="190" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
|
@ -36,6 +36,7 @@ import processing.app.Base;
|
||||
import processing.app.BaseNoGui;
|
||||
import processing.app.I18n;
|
||||
import processing.app.PreferencesData;
|
||||
import processing.app.Theme;
|
||||
import processing.app.helpers.FileUtils;
|
||||
import processing.app.legacy.PApplet;
|
||||
|
||||
@ -102,27 +103,27 @@ public class Preferences extends javax.swing.JDialog {
|
||||
manualProxyTypeButtonGroup = new javax.swing.ButtonGroup();
|
||||
javax.swing.JPanel jPanel2 = new javax.swing.JPanel();
|
||||
javax.swing.JTabbedPane jTabbedPane1 = new javax.swing.JTabbedPane();
|
||||
javax.swing.JPanel jPanel1 = new javax.swing.JPanel();
|
||||
javax.swing.JLabel sketchbookLocationLabel = new javax.swing.JLabel();
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
sketchbookLocationLabel = new javax.swing.JLabel();
|
||||
sketchbookLocationField = new javax.swing.JTextField();
|
||||
javax.swing.JButton browseButton = new javax.swing.JButton();
|
||||
javax.swing.JLabel comboLanguageLabel = new javax.swing.JLabel();
|
||||
browseButton = new javax.swing.JButton();
|
||||
comboLanguageLabel = new javax.swing.JLabel();
|
||||
comboLanguage = new JComboBox(Languages.languages);
|
||||
javax.swing.JLabel requiresRestartLabel = new javax.swing.JLabel();
|
||||
javax.swing.JLabel fontSizeLabel = new javax.swing.JLabel();
|
||||
requiresRestartLabel = new javax.swing.JLabel();
|
||||
fontSizeLabel = new javax.swing.JLabel();
|
||||
fontSizeField = new javax.swing.JTextField();
|
||||
javax.swing.JLabel showVerboseLabel = new javax.swing.JLabel();
|
||||
showVerboseLabel = new javax.swing.JLabel();
|
||||
verboseCompilationBox = new javax.swing.JCheckBox();
|
||||
verboseUploadBox = new javax.swing.JCheckBox();
|
||||
javax.swing.JLabel comboWarningsLabel = new javax.swing.JLabel();
|
||||
comboWarningsLabel = new javax.swing.JLabel();
|
||||
comboWarnings = new JComboBox(warningItems);
|
||||
javax.swing.JLabel additionalBoardsManagerLabel = new javax.swing.JLabel();
|
||||
additionalBoardsManagerLabel = new javax.swing.JLabel();
|
||||
additionalBoardsManagerField = new javax.swing.JTextField();
|
||||
javax.swing.JButton extendedAdditionalUrlFieldWindow = new javax.swing.JButton();
|
||||
javax.swing.JLabel morePreferencesLabel = new javax.swing.JLabel();
|
||||
extendedAdditionalUrlFieldWindow = new javax.swing.JButton();
|
||||
morePreferencesLabel = new javax.swing.JLabel();
|
||||
preferencesFileLabel = new javax.swing.JLabel();
|
||||
javax.swing.JLabel arduinoNotRunningLabel = new javax.swing.JLabel();
|
||||
javax.swing.JPanel checkboxesContainer = new javax.swing.JPanel();
|
||||
arduinoNotRunningLabel = new javax.swing.JLabel();
|
||||
checkboxesContainer = new javax.swing.JPanel();
|
||||
displayLineNumbersBox = new javax.swing.JCheckBox();
|
||||
enableCodeFoldingBox = new javax.swing.JCheckBox();
|
||||
verifyUploadBox = new javax.swing.JCheckBox();
|
||||
@ -130,6 +131,11 @@ public class Preferences extends javax.swing.JDialog {
|
||||
checkUpdatesBox = new javax.swing.JCheckBox();
|
||||
updateExtensionBox = new javax.swing.JCheckBox();
|
||||
saveVerifyUploadBox = new javax.swing.JCheckBox();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
jLabel2 = new javax.swing.JLabel();
|
||||
scaleSpinner = new javax.swing.JSpinner();
|
||||
autoScaleCheckBox = new javax.swing.JCheckBox();
|
||||
jLabel3 = new javax.swing.JLabel();
|
||||
javax.swing.JPanel jPanel4 = new javax.swing.JPanel();
|
||||
noProxy = new javax.swing.JRadioButton();
|
||||
autoProxy = new javax.swing.JRadioButton();
|
||||
@ -196,7 +202,7 @@ public class Preferences extends javax.swing.JDialog {
|
||||
|
||||
additionalBoardsManagerField.setToolTipText(tr("Enter a comma separated list of urls"));
|
||||
|
||||
extendedAdditionalUrlFieldWindow.setIcon(new ImageIcon(Base.getThemeImage("newwindow.gif", this)));
|
||||
extendedAdditionalUrlFieldWindow.setIcon(new ImageIcon(Theme.getThemeImage("newwindow", this, Theme.scale(16), Theme.scale(14))));
|
||||
extendedAdditionalUrlFieldWindow.setMargin(new java.awt.Insets(1, 1, 1, 1));
|
||||
extendedAdditionalUrlFieldWindow.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
@ -213,11 +219,9 @@ public class Preferences extends javax.swing.JDialog {
|
||||
public void mousePressed(java.awt.event.MouseEvent evt) {
|
||||
preferencesFileLabelMousePressed(evt);
|
||||
}
|
||||
|
||||
public void mouseExited(java.awt.event.MouseEvent evt) {
|
||||
preferencesFileLabelMouseExited(evt);
|
||||
}
|
||||
|
||||
public void mouseEntered(java.awt.event.MouseEvent evt) {
|
||||
preferencesFileLabelMouseEntered(evt);
|
||||
}
|
||||
@ -249,96 +253,134 @@ public class Preferences extends javax.swing.JDialog {
|
||||
saveVerifyUploadBox.setText(tr("Save when verifying or uploading"));
|
||||
checkboxesContainer.add(saveVerifyUploadBox);
|
||||
|
||||
jLabel1.setText(tr("Interface scale:"));
|
||||
|
||||
jLabel2.setText(tr(" (requires restart of Arduino)"));
|
||||
|
||||
scaleSpinner.setModel(new javax.swing.SpinnerNumberModel(100, 100, 400, 5));
|
||||
scaleSpinner.setEnabled(false);
|
||||
|
||||
autoScaleCheckBox.setSelected(true);
|
||||
autoScaleCheckBox.setText(tr("Automatic"));
|
||||
autoScaleCheckBox.addItemListener(new java.awt.event.ItemListener() {
|
||||
public void itemStateChanged(java.awt.event.ItemEvent evt) {
|
||||
autoScaleCheckBoxItemStateChanged(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jLabel3.setText("%");
|
||||
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
jPanel1Layout.setHorizontalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(sketchbookLocationField)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(browseButton))
|
||||
.addComponent(checkboxesContainer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(comboWarningsLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(comboWarnings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(showVerboseLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(verboseCompilationBox)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(verboseUploadBox))
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(comboLanguageLabel)
|
||||
.addComponent(fontSizeLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(fontSizeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(comboLanguage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(requiresRestartLabel))))
|
||||
.addComponent(arduinoNotRunningLabel)
|
||||
.addComponent(morePreferencesLabel)
|
||||
.addComponent(preferencesFileLabel)
|
||||
.addComponent(sketchbookLocationLabel)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(additionalBoardsManagerLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(additionalBoardsManagerField, javax.swing.GroupLayout.PREFERRED_SIZE, 500, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(extendedAdditionalUrlFieldWindow)))
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(sketchbookLocationField, javax.swing.GroupLayout.DEFAULT_SIZE, 553, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(browseButton))
|
||||
.addComponent(checkboxesContainer, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jLabel1)
|
||||
.addComponent(comboWarningsLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(comboWarnings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(autoScaleCheckBox)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(scaleSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0, 0, 0)
|
||||
.addComponent(jLabel3)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jLabel2))))
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(showVerboseLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(verboseCompilationBox)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(verboseUploadBox))
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(comboLanguageLabel)
|
||||
.addComponent(fontSizeLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(fontSizeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(comboLanguage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(requiresRestartLabel))))
|
||||
.addComponent(arduinoNotRunningLabel)
|
||||
.addComponent(morePreferencesLabel)
|
||||
.addComponent(preferencesFileLabel)
|
||||
.addComponent(sketchbookLocationLabel)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(additionalBoardsManagerLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(additionalBoardsManagerField, javax.swing.GroupLayout.PREFERRED_SIZE, 500, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(extendedAdditionalUrlFieldWindow)))
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboLanguageLabel, comboWarningsLabel, fontSizeLabel, jLabel1, showVerboseLabel});
|
||||
|
||||
jPanel1Layout.setVerticalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(sketchbookLocationLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(sketchbookLocationLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(sketchbookLocationField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(browseButton))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(comboLanguageLabel)
|
||||
.addComponent(comboLanguage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(requiresRestartLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(fontSizeLabel)
|
||||
.addComponent(fontSizeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel1)
|
||||
.addComponent(jLabel2)
|
||||
.addComponent(scaleSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(autoScaleCheckBox)
|
||||
.addComponent(jLabel3))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(showVerboseLabel)
|
||||
.addComponent(verboseCompilationBox)
|
||||
.addComponent(verboseUploadBox))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(comboWarningsLabel)
|
||||
.addComponent(comboWarnings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(checkboxesContainer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(sketchbookLocationField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(browseButton))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(comboLanguageLabel)
|
||||
.addComponent(comboLanguage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(requiresRestartLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(fontSizeLabel)
|
||||
.addComponent(fontSizeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(showVerboseLabel)
|
||||
.addComponent(verboseCompilationBox)
|
||||
.addComponent(verboseUploadBox))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(comboWarningsLabel)
|
||||
.addComponent(comboWarnings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(checkboxesContainer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(additionalBoardsManagerLabel)
|
||||
.addComponent(additionalBoardsManagerField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(extendedAdditionalUrlFieldWindow))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(morePreferencesLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(preferencesFileLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(arduinoNotRunningLabel)
|
||||
.addContainerGap())
|
||||
.addComponent(additionalBoardsManagerLabel)
|
||||
.addComponent(additionalBoardsManagerField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(extendedAdditionalUrlFieldWindow))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(morePreferencesLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(preferencesFileLabel)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(arduinoNotRunningLabel)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
jTabbedPane1.addTab(tr("Settings"), jPanel1);
|
||||
@ -400,96 +442,96 @@ public class Preferences extends javax.swing.JDialog {
|
||||
jPanel4.setLayout(jPanel4Layout);
|
||||
jPanel4Layout.setHorizontalGroup(
|
||||
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGap(12, 12, 12)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyUsePAC)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGap(12, 12, 12)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyUsernameLabel)
|
||||
.addComponent(autoProxyPasswordLabel))))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyPACURL)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(autoProxyPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(0, 0, Short.MAX_VALUE))))
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(noProxy)
|
||||
.addComponent(autoProxy)
|
||||
.addComponent(manualProxy)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGap(12, 12, 12)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addComponent(manualProxyHTTP)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(manualProxySOCKS))
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(manualProxyHostNameLabel)
|
||||
.addComponent(manualProxyPortLabel)
|
||||
.addComponent(manualProxyUsernameLabel)
|
||||
.addComponent(manualProxyPasswordLabel))
|
||||
.addGap(18, 18, 18)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(manualProxyHostName, javax.swing.GroupLayout.PREFERRED_SIZE, 541, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyPort, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addComponent(manualProxyPassword, javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(manualProxyUsername, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)))))))
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGap(12, 12, 12)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyUsePAC)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGap(12, 12, 12)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyUsernameLabel)
|
||||
.addComponent(autoProxyPasswordLabel))))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyPACURL)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(autoProxyUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(autoProxyPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(0, 0, Short.MAX_VALUE))))
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(noProxy)
|
||||
.addComponent(autoProxy)
|
||||
.addComponent(manualProxy)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGap(12, 12, 12)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addComponent(manualProxyHTTP)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(manualProxySOCKS))
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(manualProxyHostNameLabel)
|
||||
.addComponent(manualProxyPortLabel)
|
||||
.addComponent(manualProxyUsernameLabel)
|
||||
.addComponent(manualProxyPasswordLabel))
|
||||
.addGap(18, 18, 18)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(manualProxyHostName, javax.swing.GroupLayout.PREFERRED_SIZE, 541, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyPort, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
||||
.addComponent(manualProxyPassword, javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(manualProxyUsername, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)))))))
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
);
|
||||
jPanel4Layout.setVerticalGroup(
|
||||
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(noProxy)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(autoProxy)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(autoProxyUsePAC)
|
||||
.addComponent(autoProxyPACURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(autoProxyUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(autoProxyUsernameLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(autoProxyPasswordLabel)
|
||||
.addComponent(autoProxyPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(manualProxy)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyHTTP)
|
||||
.addComponent(manualProxySOCKS))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyHostNameLabel)
|
||||
.addComponent(manualProxyHostName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyPortLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyUsernameLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyPasswordLabel))
|
||||
.addContainerGap(163, Short.MAX_VALUE))
|
||||
.addGroup(jPanel4Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(noProxy)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(autoProxy)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(autoProxyUsePAC)
|
||||
.addComponent(autoProxyPACURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(autoProxyUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(autoProxyUsernameLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(autoProxyPasswordLabel)
|
||||
.addComponent(autoProxyPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(manualProxy)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyHTTP)
|
||||
.addComponent(manualProxySOCKS))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyHostNameLabel)
|
||||
.addComponent(manualProxyHostName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyPortLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyUsernameLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(manualProxyPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(manualProxyPasswordLabel))
|
||||
.addContainerGap(190, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
jTabbedPane1.addTab(tr("Network"), jPanel4);
|
||||
@ -514,21 +556,21 @@ public class Preferences extends javax.swing.JDialog {
|
||||
jPanel3.setLayout(jPanel3Layout);
|
||||
jPanel3Layout.setHorizontalGroup(
|
||||
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(okButton)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(cancelButton)
|
||||
.addContainerGap())
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(okButton)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(cancelButton)
|
||||
.addContainerGap())
|
||||
);
|
||||
jPanel3Layout.setVerticalGroup(
|
||||
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(okButton)
|
||||
.addComponent(cancelButton))
|
||||
.addContainerGap())
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(okButton)
|
||||
.addComponent(cancelButton))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
jPanel2.add(jPanel3);
|
||||
@ -537,48 +579,20 @@ public class Preferences extends javax.swing.JDialog {
|
||||
getContentPane().setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 691, Short.MAX_VALUE)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGap(0, 691, Short.MAX_VALUE)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGap(0, 610, Short.MAX_VALUE)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGap(0, 637, Short.MAX_VALUE)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
pack();
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
|
||||
File dflt = new File(sketchbookLocationField.getText());
|
||||
File file = Base.selectFolder(tr("Select new sketchbook location"), dflt, this);
|
||||
if (file != null) {
|
||||
String path = file.getAbsolutePath();
|
||||
sketchbookLocationField.setText(path);
|
||||
}
|
||||
}//GEN-LAST:event_browseButtonActionPerformed
|
||||
|
||||
private void extendedAdditionalUrlFieldWindowActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_extendedAdditionalUrlFieldWindowActionPerformed
|
||||
final AdditionalBoardsManagerURLTextArea additionalBoardsManagerURLTextArea = new AdditionalBoardsManagerURLTextArea(this);
|
||||
additionalBoardsManagerURLTextArea.setText(additionalBoardsManagerField.getText());
|
||||
additionalBoardsManagerURLTextArea.onOk(e -> additionalBoardsManagerField.setText(additionalBoardsManagerURLTextArea.getText()));
|
||||
additionalBoardsManagerURLTextArea.setVisible(true);
|
||||
}//GEN-LAST:event_extendedAdditionalUrlFieldWindowActionPerformed
|
||||
|
||||
private void preferencesFileLabelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_preferencesFileLabelMouseEntered
|
||||
preferencesFileLabel.setForeground(new Color(0, 0, 140));
|
||||
}//GEN-LAST:event_preferencesFileLabelMouseEntered
|
||||
|
||||
private void preferencesFileLabelMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_preferencesFileLabelMousePressed
|
||||
Base.openFolder(PreferencesData.getPreferencesFile().getParentFile());
|
||||
}//GEN-LAST:event_preferencesFileLabelMousePressed
|
||||
|
||||
private void preferencesFileLabelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_preferencesFileLabelMouseExited
|
||||
preferencesFileLabel.setForeground(new Color(76, 76, 76));
|
||||
}//GEN-LAST:event_preferencesFileLabelMouseExited
|
||||
|
||||
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
|
||||
dispatchEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
|
||||
}//GEN-LAST:event_cancelButtonActionPerformed
|
||||
@ -609,8 +623,42 @@ public class Preferences extends javax.swing.JDialog {
|
||||
autoProxyPACFieldsSetEnabled(autoProxyUsePAC.isSelected());
|
||||
}//GEN-LAST:event_autoProxyUsePACItemStateChanged
|
||||
|
||||
private void preferencesFileLabelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_preferencesFileLabelMouseEntered
|
||||
preferencesFileLabel.setForeground(new Color(0, 0, 140));
|
||||
}//GEN-LAST:event_preferencesFileLabelMouseEntered
|
||||
|
||||
private void preferencesFileLabelMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_preferencesFileLabelMouseExited
|
||||
preferencesFileLabel.setForeground(new Color(76, 76, 76));
|
||||
}//GEN-LAST:event_preferencesFileLabelMouseExited
|
||||
|
||||
private void preferencesFileLabelMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_preferencesFileLabelMousePressed
|
||||
Base.openFolder(PreferencesData.getPreferencesFile().getParentFile());
|
||||
}//GEN-LAST:event_preferencesFileLabelMousePressed
|
||||
|
||||
private void extendedAdditionalUrlFieldWindowActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_extendedAdditionalUrlFieldWindowActionPerformed
|
||||
final AdditionalBoardsManagerURLTextArea additionalBoardsManagerURLTextArea = new AdditionalBoardsManagerURLTextArea(this);
|
||||
additionalBoardsManagerURLTextArea.setText(additionalBoardsManagerField.getText());
|
||||
additionalBoardsManagerURLTextArea.onOk(e -> additionalBoardsManagerField.setText(additionalBoardsManagerURLTextArea.getText()));
|
||||
additionalBoardsManagerURLTextArea.setVisible(true);
|
||||
}//GEN-LAST:event_extendedAdditionalUrlFieldWindowActionPerformed
|
||||
|
||||
private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
|
||||
File dflt = new File(sketchbookLocationField.getText());
|
||||
File file = Base.selectFolder(tr("Select new sketchbook location"), dflt, this);
|
||||
if (file != null) {
|
||||
String path = file.getAbsolutePath();
|
||||
sketchbookLocationField.setText(path);
|
||||
}
|
||||
}//GEN-LAST:event_browseButtonActionPerformed
|
||||
|
||||
private void autoScaleCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_autoScaleCheckBoxItemStateChanged
|
||||
scaleSpinner.setEnabled(!autoScaleCheckBox.isSelected());
|
||||
}//GEN-LAST:event_autoScaleCheckBoxItemStateChanged
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JTextField additionalBoardsManagerField;
|
||||
private javax.swing.JLabel additionalBoardsManagerLabel;
|
||||
private javax.swing.JLabel arduinoNotRunningLabel;
|
||||
private javax.swing.JRadioButton autoProxy;
|
||||
private javax.swing.JTextField autoProxyPACURL;
|
||||
private javax.swing.JPasswordField autoProxyPassword;
|
||||
@ -618,13 +666,24 @@ public class Preferences extends javax.swing.JDialog {
|
||||
private javax.swing.JCheckBox autoProxyUsePAC;
|
||||
private javax.swing.JTextField autoProxyUsername;
|
||||
private javax.swing.JLabel autoProxyUsernameLabel;
|
||||
private javax.swing.JCheckBox autoScaleCheckBox;
|
||||
private javax.swing.JButton browseButton;
|
||||
private javax.swing.JCheckBox checkUpdatesBox;
|
||||
private javax.swing.JPanel checkboxesContainer;
|
||||
private javax.swing.JComboBox comboLanguage;
|
||||
private javax.swing.JLabel comboLanguageLabel;
|
||||
private javax.swing.JComboBox comboWarnings;
|
||||
private javax.swing.JLabel comboWarningsLabel;
|
||||
private javax.swing.JCheckBox displayLineNumbersBox;
|
||||
private javax.swing.JCheckBox enableCodeFoldingBox;
|
||||
private javax.swing.JButton extendedAdditionalUrlFieldWindow;
|
||||
private javax.swing.JCheckBox externalEditorBox;
|
||||
private javax.swing.JTextField fontSizeField;
|
||||
private javax.swing.JLabel fontSizeLabel;
|
||||
private javax.swing.JLabel jLabel1;
|
||||
private javax.swing.JLabel jLabel2;
|
||||
private javax.swing.JLabel jLabel3;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JRadioButton manualProxy;
|
||||
private javax.swing.JRadioButton manualProxyHTTP;
|
||||
private javax.swing.JTextField manualProxyHostName;
|
||||
@ -637,11 +696,16 @@ public class Preferences extends javax.swing.JDialog {
|
||||
private javax.swing.ButtonGroup manualProxyTypeButtonGroup;
|
||||
private javax.swing.JTextField manualProxyUsername;
|
||||
private javax.swing.JLabel manualProxyUsernameLabel;
|
||||
private javax.swing.JLabel morePreferencesLabel;
|
||||
private javax.swing.JRadioButton noProxy;
|
||||
private javax.swing.JLabel preferencesFileLabel;
|
||||
private javax.swing.ButtonGroup proxyTypeButtonGroup;
|
||||
private javax.swing.JLabel requiresRestartLabel;
|
||||
private javax.swing.JCheckBox saveVerifyUploadBox;
|
||||
private javax.swing.JSpinner scaleSpinner;
|
||||
private javax.swing.JLabel showVerboseLabel;
|
||||
private javax.swing.JTextField sketchbookLocationField;
|
||||
private javax.swing.JLabel sketchbookLocationLabel;
|
||||
private javax.swing.JCheckBox updateExtensionBox;
|
||||
private javax.swing.JCheckBox verboseCompilationBox;
|
||||
private javax.swing.JCheckBox verboseUploadBox;
|
||||
@ -685,6 +749,12 @@ public class Preferences extends javax.swing.JDialog {
|
||||
System.err.println(I18n.format(tr("ignoring invalid font size {0}"), newSizeText));
|
||||
}
|
||||
|
||||
if (autoScaleCheckBox.isSelected()) {
|
||||
PreferencesData.set("gui.scale", "auto");
|
||||
} else {
|
||||
PreferencesData.set("gui.scale", scaleSpinner.getValue().toString());
|
||||
}
|
||||
|
||||
// put each of the settings into the table
|
||||
PreferencesData.setBoolean("build.verbose", verboseCompilationBox.isSelected());
|
||||
PreferencesData.setBoolean("upload.verbose", verboseUploadBox.isSelected());
|
||||
@ -734,6 +804,16 @@ public class Preferences extends javax.swing.JDialog {
|
||||
Font editorFont = PreferencesData.getFont("editor.font");
|
||||
fontSizeField.setText(String.valueOf(editorFont.getSize()));
|
||||
|
||||
try {
|
||||
int scale = PreferencesData.getInteger("gui.scale", -1);
|
||||
if (scale != -1) {
|
||||
autoScaleCheckBox.setSelected(false);
|
||||
scaleSpinner.setValue(scale);
|
||||
}
|
||||
} catch (NumberFormatException ignore) {
|
||||
// In any case defaults to "auto"
|
||||
}
|
||||
|
||||
verboseCompilationBox.setSelected(PreferencesData.getBoolean("build.verbose"));
|
||||
verboseUploadBox.setSelected(PreferencesData.getBoolean("upload.verbose"));
|
||||
|
||||
|
@ -43,7 +43,7 @@ public abstract class AbstractTextMonitor extends AbstractMonitor {
|
||||
protected void onCreateWindow(Container mainPane) {
|
||||
Font consoleFont = Theme.getFont("console.font");
|
||||
Font editorFont = PreferencesData.getFont("editor.font");
|
||||
Font font = new Font(consoleFont.getName(), consoleFont.getStyle(), editorFont.getSize());
|
||||
Font font = Theme.scale(new Font(consoleFont.getName(), consoleFont.getStyle(), editorFont.getSize()));
|
||||
|
||||
mainPane.setLayout(new BorderLayout());
|
||||
|
||||
|
@ -36,6 +36,7 @@ import cc.arduino.packages.DiscoveryManager;
|
||||
import cc.arduino.view.Event;
|
||||
import cc.arduino.view.JMenuUtils;
|
||||
import cc.arduino.view.SplashScreenHelper;
|
||||
|
||||
import org.apache.commons.compress.utils.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import processing.app.debug.TargetBoard;
|
||||
@ -157,8 +158,6 @@ public class Base {
|
||||
|
||||
BaseNoGui.initParameters(args);
|
||||
|
||||
System.setProperty("swing.aatext", PreferencesData.get("editor.antialias", "true"));
|
||||
|
||||
BaseNoGui.initVersion();
|
||||
|
||||
// if (System.getProperty("mrj.version") != null) {
|
||||
@ -207,6 +206,7 @@ public class Base {
|
||||
|
||||
// setup the theme coloring fun
|
||||
Theme.init();
|
||||
System.setProperty("swing.aatext", PreferencesData.get("editor.antialias", "true"));
|
||||
|
||||
// Set the look and feel before opening the window
|
||||
try {
|
||||
@ -1742,18 +1742,17 @@ public class Base {
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public void handleAbout() {
|
||||
final Image image = getLibImage("about.png", activeEditor);
|
||||
final Image image = Theme.getLibImage("about", activeEditor,
|
||||
Theme.scale(475), Theme.scale(300));
|
||||
final Window window = new Window(activeEditor) {
|
||||
public void paint(Graphics g) {
|
||||
public void paint(Graphics graphics) {
|
||||
Graphics2D g = Theme.setupGraphics2D(graphics);
|
||||
g.drawImage(image, 0, 0, null);
|
||||
|
||||
Graphics2D g2 = (Graphics2D) g;
|
||||
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
|
||||
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
|
||||
|
||||
g.setFont(new Font("SansSerif", Font.PLAIN, 11));
|
||||
Font f = new Font("SansSerif", Font.PLAIN, Theme.scale(11));
|
||||
g.setFont(f);
|
||||
g.setColor(Color.white);
|
||||
g.drawString(BaseNoGui.VERSION_NAME_LONG, 33, 20);
|
||||
g.drawString(BaseNoGui.VERSION_NAME_LONG, Theme.scale(33), Theme.scale(20));
|
||||
}
|
||||
};
|
||||
window.addMouseListener(new MouseAdapter() {
|
||||
@ -2035,32 +2034,6 @@ public class Base {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get an image associated with the current color theme.
|
||||
*/
|
||||
static public Image getThemeImage(String name, Component who) {
|
||||
return getLibImage("theme/" + name, who);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return an Image object from inside the Processing lib folder.
|
||||
*/
|
||||
static public Image getLibImage(String name, Component who) {
|
||||
Toolkit tk = Toolkit.getDefaultToolkit();
|
||||
|
||||
File imageLocation = new File(getContentFile("lib"), name);
|
||||
Image image = tk.getImage(imageLocation.getAbsolutePath());
|
||||
MediaTracker tracker = new MediaTracker(who);
|
||||
tracker.addImage(image, 0);
|
||||
try {
|
||||
tracker.waitForAll();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
|
||||
// ...................................................................
|
||||
|
||||
|
||||
|
@ -54,6 +54,7 @@ import javax.swing.*;
|
||||
import javax.swing.border.MatteBorder;
|
||||
import javax.swing.event.*;
|
||||
import javax.swing.text.BadLocationException;
|
||||
import javax.swing.text.Element;
|
||||
import javax.swing.text.PlainDocument;
|
||||
import javax.swing.undo.CannotRedoException;
|
||||
import javax.swing.undo.CannotUndoException;
|
||||
@ -79,6 +80,7 @@ import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
import static processing.app.I18n.tr;
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
/**
|
||||
* Main editor panel for the Processing Development Environment.
|
||||
@ -304,7 +306,6 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
upper.add(scrollPane);
|
||||
splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, upper, consolePanel);
|
||||
|
||||
splitPane.setOneTouchExpandable(true);
|
||||
// repaint child panes while resizing
|
||||
splitPane.setContinuousLayout(true);
|
||||
// if window increases in size, give all of increase to
|
||||
@ -321,15 +322,11 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
Keys.killBinding(splitPane, Keys.ctrl(KeyEvent.VK_TAB));
|
||||
Keys.killBinding(splitPane, Keys.ctrlShift(KeyEvent.VK_TAB));
|
||||
|
||||
// the default size on windows is too small and kinda ugly
|
||||
int dividerSize = PreferencesData.getInteger("editor.divider.size");
|
||||
if (dividerSize != 0) {
|
||||
splitPane.setDividerSize(dividerSize);
|
||||
}
|
||||
splitPane.setDividerSize(scale(splitPane.getDividerSize()));
|
||||
|
||||
// the following changed from 600, 400 for netbooks
|
||||
// http://code.google.com/p/arduino/issues/detail?id=52
|
||||
splitPane.setMinimumSize(new Dimension(600, 100));
|
||||
splitPane.setMinimumSize(scale(new Dimension(600, 100)));
|
||||
box.add(splitPane);
|
||||
|
||||
// hopefully these are no longer needed w/ swing
|
||||
@ -342,35 +339,23 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
|
||||
pane.setTransferHandler(new FileDropHandler());
|
||||
|
||||
// System.out.println("t1");
|
||||
|
||||
// Finish preparing Editor (formerly found in Base)
|
||||
pack();
|
||||
|
||||
// System.out.println("t2");
|
||||
|
||||
// Set the window bounds and the divider location before setting it visible
|
||||
setPlacement(storedLocation, defaultLocation);
|
||||
|
||||
|
||||
// Set the minimum size for the editor window
|
||||
setMinimumSize(new Dimension(PreferencesData.getInteger("editor.window.width.min"),
|
||||
PreferencesData.getInteger("editor.window.height.min")));
|
||||
// System.out.println("t3");
|
||||
setMinimumSize(scale(new Dimension(
|
||||
PreferencesData.getInteger("editor.window.width.min"),
|
||||
PreferencesData.getInteger("editor.window.height.min"))));
|
||||
|
||||
// Bring back the general options for the editor
|
||||
applyPreferences();
|
||||
|
||||
// System.out.println("t4");
|
||||
// Finish preparing Editor (formerly found in Base)
|
||||
pack();
|
||||
|
||||
// Set the window bounds and the divider location before setting it visible
|
||||
setPlacement(storedLocation, defaultLocation);
|
||||
|
||||
// Open the document that was passed in
|
||||
boolean loaded = handleOpenInternal(file);
|
||||
if (!loaded) sketch = null;
|
||||
|
||||
// System.out.println("t5");
|
||||
|
||||
// All set, now show the window
|
||||
//setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
@ -472,18 +457,6 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Hack for #@#)$(* Mac OS X 10.2.
|
||||
* <p/>
|
||||
* This appears to only be required on OS X 10.2, and is not
|
||||
* even being called on later versions of OS X or Windows.
|
||||
*/
|
||||
// public Dimension getMinimumSize() {
|
||||
// //System.out.println("getting minimum size");
|
||||
// return new Dimension(500, 550);
|
||||
// }
|
||||
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
|
||||
@ -518,10 +491,9 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
}
|
||||
|
||||
// apply changes to the font size for the editor
|
||||
//TextAreaPainter painter = textarea.getPainter();
|
||||
textarea.setFont(PreferencesData.getFont("editor.font"));
|
||||
//Font font = painter.getFont();
|
||||
//textarea.getPainter().setFont(new Font("Courier", Font.PLAIN, 36));
|
||||
Font editorFont = scale(PreferencesData.getFont("editor.font"));
|
||||
textarea.setFont(editorFont);
|
||||
scrollPane.getGutter().setLineNumberFont(editorFont);
|
||||
|
||||
// in case tab expansion stuff has changed
|
||||
// listener.applyPreferences();
|
||||
@ -1041,28 +1013,20 @@ public class Editor extends JFrame implements RunnerListener {
|
||||
textArea.setAntiAliasingEnabled(PreferencesData.getBoolean("editor.antialias"));
|
||||
textArea.setTabsEmulated(PreferencesData.getBoolean("editor.tabs.expand"));
|
||||
textArea.setTabSize(PreferencesData.getInteger("editor.tabs.size"));
|
||||
textArea.addHyperlinkListener(new HyperlinkListener() {
|
||||
@Override
|
||||
public void hyperlinkUpdate(HyperlinkEvent hyperlinkEvent) {
|
||||
try {
|
||||
platform.openURL(sketch.getFolder(), hyperlinkEvent.getURL().toExternalForm());
|
||||
} catch (Exception e) {
|
||||
Base.showWarning(e.getMessage(), e.getMessage(), e);
|
||||
}
|
||||
textArea.addHyperlinkListener(evt -> {
|
||||
try {
|
||||
platform.openURL(sketch.getFolder(), evt.getURL().toExternalForm());
|
||||
} catch (Exception e) {
|
||||
Base.showWarning(e.getMessage(), e.getMessage(), e);
|
||||
}
|
||||
});
|
||||
textArea.addCaretListener(new CaretListener() {
|
||||
|
||||
@Override
|
||||
public void caretUpdate(CaretEvent e) {
|
||||
int lineStart = textArea.getDocument().getDefaultRootElement().getElementIndex(e.getMark());
|
||||
int lineEnd = textArea.getDocument().getDefaultRootElement().getElementIndex(e.getDot());
|
||||
|
||||
lineStatus.set(lineStart, lineEnd);
|
||||
}
|
||||
textArea.addCaretListener(e -> {
|
||||
Element root = textArea.getDocument().getDefaultRootElement();
|
||||
int lineStart = root.getElementIndex(e.getMark());
|
||||
int lineEnd = root.getElementIndex(e.getDot());
|
||||
|
||||
lineStatus.set(lineStart, lineEnd);
|
||||
});
|
||||
|
||||
ToolTipManager.sharedInstance().registerComponent(textArea);
|
||||
|
||||
configurePopupMenu(textArea);
|
||||
|
@ -28,6 +28,8 @@ import javax.swing.text.*;
|
||||
import java.awt.*;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
/**
|
||||
* Message console that sits below the editing area.
|
||||
*/
|
||||
@ -70,7 +72,7 @@ public class EditorConsole extends JScrollPane {
|
||||
|
||||
Font consoleFont = Theme.getFont("console.font");
|
||||
Font editorFont = PreferencesData.getFont("editor.font");
|
||||
Font actualFont = new Font(consoleFont.getName(), consoleFont.getStyle(), editorFont.getSize());
|
||||
Font actualFont = new Font(consoleFont.getName(), consoleFont.getStyle(), scale(editorFont.getSize()));
|
||||
|
||||
SimpleAttributeSet stdOutStyle = new SimpleAttributeSet();
|
||||
StyleConstants.setForeground(stdOutStyle, Theme.getColor("console.output.color"));
|
||||
@ -102,8 +104,8 @@ public class EditorConsole extends JScrollPane {
|
||||
int height = metrics.getAscent() + metrics.getDescent();
|
||||
int lines = PreferencesData.getInteger("console.lines");
|
||||
int sizeFudge = 6; //10; // unclear why this is necessary, but it is
|
||||
setPreferredSize(new Dimension(1024, (height * lines) + sizeFudge));
|
||||
setMinimumSize(new Dimension(1024, (height * 5) + sizeFudge));
|
||||
setPreferredSize(new Dimension(100, (height * lines) + sizeFudge));
|
||||
setMinimumSize(new Dimension(100, (height * 5) + sizeFudge));
|
||||
|
||||
EditorConsole.init(stdOutStyle, System.out, stdErrStyle, System.err);
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ import java.io.IOException;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
/**
|
||||
* Sketch tabs at the top of the editor window.
|
||||
@ -65,15 +66,20 @@ public class EditorHeader extends JComponent {
|
||||
static final int UNSELECTED = 0;
|
||||
static final int SELECTED = 1;
|
||||
|
||||
static final String WHERE[] = { "left", "mid", "right", "menu" };
|
||||
static final String WHERE[] = { "left", "mid", "right" };
|
||||
static final int LEFT = 0;
|
||||
static final int MIDDLE = 1;
|
||||
static final int RIGHT = 2;
|
||||
static final int MENU = 3;
|
||||
|
||||
static final int PIECE_WIDTH = 4;
|
||||
static final int PIECE_WIDTH = scale(4);
|
||||
static final int PIECE_HEIGHT = scale(33);
|
||||
|
||||
// value for the size bars, buttons, etc
|
||||
// TODO: Should be a Theme value?
|
||||
static final int GRID_SIZE = 33;
|
||||
|
||||
static Image[][] pieces;
|
||||
static Image menuButtons[];
|
||||
|
||||
Image offscreen;
|
||||
int sizeW, sizeH;
|
||||
@ -144,11 +150,16 @@ public class EditorHeader extends JComponent {
|
||||
|
||||
if (pieces == null) {
|
||||
pieces = new Image[STATUS.length][WHERE.length];
|
||||
menuButtons = new Image[STATUS.length];
|
||||
for (int i = 0; i < STATUS.length; i++) {
|
||||
for (int j = 0; j < WHERE.length; j++) {
|
||||
String path = "tab-" + STATUS[i] + "-" + WHERE[j] + ".gif";
|
||||
pieces[i][j] = Base.getThemeImage(path, this);
|
||||
String path = "tab-" + STATUS[i] + "-" + WHERE[j];
|
||||
pieces[i][j] = Theme.getThemeImage(path, this, PIECE_WIDTH,
|
||||
PIECE_HEIGHT);
|
||||
}
|
||||
String path = "tab-" + STATUS[i] + "-menu";
|
||||
menuButtons[i] = Theme.getThemeImage(path, this, PIECE_HEIGHT,
|
||||
PIECE_HEIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -212,18 +223,13 @@ public class EditorHeader extends JComponent {
|
||||
offscreen = createImage(imageW, imageH);
|
||||
}
|
||||
|
||||
Graphics g = offscreen.getGraphics();
|
||||
Graphics2D g = Theme.setupGraphics2D(offscreen.getGraphics());
|
||||
if (font == null) {
|
||||
font = Theme.getFont("header.text.font");
|
||||
}
|
||||
g.setFont(font); // need to set this each time through
|
||||
metrics = g.getFontMetrics();
|
||||
fontAscent = metrics.getAscent();
|
||||
//}
|
||||
|
||||
//Graphics2D g2 = (Graphics2D) g;
|
||||
//g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
|
||||
// RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
||||
|
||||
// set the background for the offscreen
|
||||
g.setColor(backgroundColor);
|
||||
@ -235,7 +241,7 @@ public class EditorHeader extends JComponent {
|
||||
tabRight = new int[codeCount];
|
||||
}
|
||||
|
||||
int x = 6; // offset from left edge of the component
|
||||
int x = scale(6); // offset from left edge of the component
|
||||
for (int i = 0; i < sketch.getCodeCount(); i++) {
|
||||
SketchCode code = sketch.getCode(i);
|
||||
|
||||
@ -245,9 +251,8 @@ public class EditorHeader extends JComponent {
|
||||
// if modified, add the li'l glyph next to the name
|
||||
String text = " " + codeName + (code.isModified() ? " \u00A7" : " ");
|
||||
|
||||
Graphics2D g2 = (Graphics2D) g;
|
||||
int textWidth = (int)
|
||||
font.getStringBounds(text, g2.getFontRenderContext()).getWidth();
|
||||
font.getStringBounds(text, g.getFontRenderContext()).getWidth();
|
||||
|
||||
int pieceCount = 2 + (textWidth / PIECE_WIDTH);
|
||||
int pieceWidth = pieceCount * PIECE_WIDTH;
|
||||
@ -274,10 +279,10 @@ public class EditorHeader extends JComponent {
|
||||
x += PIECE_WIDTH - 1; // overlap by 1 pixel
|
||||
}
|
||||
|
||||
menuLeft = sizeW - (16 + pieces[0][MENU].getWidth(this));
|
||||
menuLeft = sizeW - (16 + menuButtons[0].getWidth(this));
|
||||
menuRight = sizeW - 16;
|
||||
// draw the dropdown menu target
|
||||
g.drawImage(pieces[popup.isVisible() ? SELECTED : UNSELECTED][MENU],
|
||||
g.drawImage(menuButtons[popup.isVisible() ? SELECTED : UNSELECTED],
|
||||
menuLeft, 0, null);
|
||||
|
||||
screen.drawImage(offscreen, 0, 0, null);
|
||||
@ -337,17 +342,17 @@ public class EditorHeader extends JComponent {
|
||||
|
||||
|
||||
public Dimension getMinimumSize() {
|
||||
if (OSUtils.isMacOS()) {
|
||||
return new Dimension(300, Preferences.GRID_SIZE);
|
||||
}
|
||||
return new Dimension(300, Preferences.GRID_SIZE - 1);
|
||||
Dimension size = scale(new Dimension(300, GRID_SIZE));
|
||||
if (OSUtils.isMacOS())
|
||||
size.height--;
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
public Dimension getMaximumSize() {
|
||||
if (OSUtils.isMacOS()) {
|
||||
return new Dimension(3000, Preferences.GRID_SIZE);
|
||||
}
|
||||
return new Dimension(3000, Preferences.GRID_SIZE - 1);
|
||||
Dimension size = scale(new Dimension(3000, GRID_SIZE));
|
||||
if (OSUtils.isMacOS())
|
||||
size.height--;
|
||||
return size;
|
||||
}
|
||||
}
|
||||
|
@ -30,35 +30,37 @@ import processing.app.helpers.OSUtils;
|
||||
import processing.app.helpers.PreferencesMap;
|
||||
import static processing.app.I18n.tr;
|
||||
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
/**
|
||||
* Li'l status bar fella that shows the line number.
|
||||
*/
|
||||
public class EditorLineStatus extends JComponent {
|
||||
|
||||
int start = -1, stop;
|
||||
|
||||
Image resize;
|
||||
private static final int RESIZE_IMAGE_SIZE = scale(20);
|
||||
|
||||
Color foreground;
|
||||
Color background;
|
||||
Color messageForeground;
|
||||
|
||||
Font font;
|
||||
int high;
|
||||
int height;
|
||||
|
||||
String text = "";
|
||||
String name = "";
|
||||
String serialport = "";
|
||||
|
||||
|
||||
public EditorLineStatus() {
|
||||
background = Theme.getColor("linestatus.bgcolor");
|
||||
font = Theme.getFont("linestatus.font");
|
||||
foreground = Theme.getColor("linestatus.color");
|
||||
high = Theme.getInteger("linestatus.height");
|
||||
height = Theme.getInteger("linestatus.height");
|
||||
|
||||
if (OSUtils.isMacOS()) {
|
||||
resize = Base.getThemeImage("resize.gif", this);
|
||||
resize = Theme.getThemeImage("resize", this, RESIZE_IMAGE_SIZE, RESIZE_IMAGE_SIZE);
|
||||
}
|
||||
//linestatus.bgcolor = #000000
|
||||
//linestatus.font = SansSerif,plain,10
|
||||
@ -87,7 +89,8 @@ public class EditorLineStatus extends JComponent {
|
||||
repaint();
|
||||
}
|
||||
|
||||
public void paintComponent(Graphics g) {
|
||||
public void paintComponent(Graphics graphics) {
|
||||
Graphics2D g = Theme.setupGraphics2D(graphics);
|
||||
if (name == "" && serialport == "") {
|
||||
PreferencesMap boardPreferences = BaseNoGui.getBoardPreferences();
|
||||
if (boardPreferences != null)
|
||||
@ -102,18 +105,19 @@ public class EditorLineStatus extends JComponent {
|
||||
|
||||
g.setFont(font);
|
||||
g.setColor(foreground);
|
||||
int baseline = (high + g.getFontMetrics().getAscent()) / 2;
|
||||
g.drawString(text, 6, baseline);
|
||||
int baseline = (size.height + g.getFontMetrics().getAscent()) / 2;
|
||||
g.drawString(text, scale(6), baseline);
|
||||
|
||||
g.setColor(messageForeground);
|
||||
String tmp = I18n.format(tr("{0} on {1}"), name, serialport);
|
||||
|
||||
Rectangle2D bounds = g.getFontMetrics().getStringBounds(tmp, null);
|
||||
|
||||
g.drawString(tmp, size.width - (int) bounds.getWidth() -20 , baseline);
|
||||
g.drawString(tmp, size.width - (int) bounds.getWidth() - RESIZE_IMAGE_SIZE,
|
||||
baseline);
|
||||
|
||||
if (OSUtils.isMacOS()) {
|
||||
g.drawImage(resize, size.width - 20, 0, this);
|
||||
g.drawImage(resize, size.width - RESIZE_IMAGE_SIZE, 0, this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -126,7 +130,7 @@ public class EditorLineStatus extends JComponent {
|
||||
}
|
||||
|
||||
public Dimension getPreferredSize() {
|
||||
return new Dimension(300, high);
|
||||
return scale(new Dimension(300, height));
|
||||
}
|
||||
|
||||
public Dimension getMinimumSize() {
|
||||
@ -134,6 +138,6 @@ public class EditorLineStatus extends JComponent {
|
||||
}
|
||||
|
||||
public Dimension getMaximumSize() {
|
||||
return new Dimension(3000, high);
|
||||
return scale(new Dimension(3000, height));
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
import static processing.app.I18n.tr;
|
||||
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
/**
|
||||
* Panel just below the editing area that contains status messages.
|
||||
@ -67,6 +67,10 @@ public class EditorStatus extends JPanel {
|
||||
FGCOLOR[5] = Theme.getColor("status.notice.fgcolor");
|
||||
}
|
||||
|
||||
// value for the size bars, buttons, etc
|
||||
// TODO: Should be a Theme value?
|
||||
static final int GRID_SIZE = 33;
|
||||
|
||||
private final Editor editor;
|
||||
private final Font font;
|
||||
|
||||
@ -215,15 +219,15 @@ public class EditorStatus extends JPanel {
|
||||
offscreen = createImage(imageW, imageH);
|
||||
}
|
||||
|
||||
Graphics graphics = offscreen.getGraphics();
|
||||
graphics.setColor(BGCOLOR[mode]);
|
||||
graphics.fillRect(0, 0, imageW, imageH);
|
||||
graphics.setColor(FGCOLOR[mode]);
|
||||
Graphics2D g = Theme.setupGraphics2D(offscreen.getGraphics());
|
||||
g.setColor(BGCOLOR[mode]);
|
||||
g.fillRect(0, 0, imageW, imageH);
|
||||
g.setColor(FGCOLOR[mode]);
|
||||
|
||||
graphics.setFont(font); // needs to be set each time on osx
|
||||
int ascent = graphics.getFontMetrics().getAscent();
|
||||
g.setFont(font); // needs to be set each time on osx
|
||||
int ascent = g.getFontMetrics().getAscent();
|
||||
assert message != null;
|
||||
graphics.drawString(message, Preferences.GUI_SMALL, (sizeH + ascent) / 2);
|
||||
g.drawString(message, Preferences.GUI_SMALL, (sizeH + ascent) / 2);
|
||||
|
||||
screen.drawImage(offscreen, 0, 0, null);
|
||||
}
|
||||
@ -395,11 +399,11 @@ public class EditorStatus extends JPanel {
|
||||
}
|
||||
|
||||
public Dimension getMinimumSize() {
|
||||
return new Dimension(300, Preferences.GRID_SIZE);
|
||||
return scale(new Dimension(300, GRID_SIZE));
|
||||
}
|
||||
|
||||
public Dimension getMaximumSize() {
|
||||
return new Dimension(3000, Preferences.GRID_SIZE);
|
||||
return scale(new Dimension(3000, GRID_SIZE));
|
||||
}
|
||||
|
||||
public boolean isErr() {
|
||||
|
@ -31,7 +31,7 @@ import java.awt.event.KeyListener;
|
||||
import java.awt.event.MouseEvent;
|
||||
|
||||
import static processing.app.I18n.tr;
|
||||
|
||||
import static processing.app.Theme.scale;
|
||||
|
||||
/**
|
||||
* run/stop/etc buttons for the ide
|
||||
@ -56,19 +56,19 @@ public class EditorToolbar extends JComponent implements MouseInputListener, Key
|
||||
/**
|
||||
* Width of each toolbar button.
|
||||
*/
|
||||
private static final int BUTTON_WIDTH = 27;
|
||||
private static final int BUTTON_WIDTH = scale(27);
|
||||
/**
|
||||
* Height of each toolbar button.
|
||||
*/
|
||||
private static final int BUTTON_HEIGHT = 32;
|
||||
private static final int BUTTON_HEIGHT = scale(32);
|
||||
/**
|
||||
* The amount of space between groups of buttons on the toolbar.
|
||||
*/
|
||||
private static final int BUTTON_GAP = 5;
|
||||
private static final int BUTTON_GAP = scale(5);
|
||||
/**
|
||||
* Size of the button image being chopped up.
|
||||
*/
|
||||
private static final int BUTTON_IMAGE_SIZE = 33;
|
||||
private static final int BUTTON_IMAGE_SIZE = scale(33);
|
||||
|
||||
|
||||
private static final int RUN = 0;
|
||||
@ -139,16 +139,20 @@ public class EditorToolbar extends JComponent implements MouseInputListener, Key
|
||||
}
|
||||
|
||||
private void loadButtons() {
|
||||
Image allButtons = Base.getThemeImage("buttons.gif", this);
|
||||
Image allButtons = Theme.getThemeImage("buttons", this,
|
||||
BUTTON_IMAGE_SIZE * BUTTON_COUNT,
|
||||
BUTTON_IMAGE_SIZE * 3);
|
||||
buttonImages = new Image[BUTTON_COUNT][3];
|
||||
|
||||
for (int i = 0; i < BUTTON_COUNT; i++) {
|
||||
for (int state = 0; state < 3; state++) {
|
||||
Image image = createImage(BUTTON_WIDTH, BUTTON_HEIGHT);
|
||||
Graphics g = image.getGraphics();
|
||||
g.drawImage(allButtons,
|
||||
-(i * BUTTON_IMAGE_SIZE) - 3,
|
||||
(-2 + state) * BUTTON_IMAGE_SIZE, null);
|
||||
g.setColor(bgcolor);
|
||||
g.fillRect(0, 0, BUTTON_WIDTH, BUTTON_HEIGHT);
|
||||
int offset = (BUTTON_IMAGE_SIZE - BUTTON_WIDTH) / 2;
|
||||
g.drawImage(allButtons, -(i * BUTTON_IMAGE_SIZE) - offset,
|
||||
(-2 + state) * BUTTON_IMAGE_SIZE, null);
|
||||
buttonImages[i][state] = image;
|
||||
}
|
||||
}
|
||||
@ -193,7 +197,7 @@ public class EditorToolbar extends JComponent implements MouseInputListener, Key
|
||||
x1[SERIAL] = width - BUTTON_WIDTH - 14;
|
||||
x2[SERIAL] = width - 14;
|
||||
}
|
||||
Graphics g = offscreen.getGraphics();
|
||||
Graphics2D g = Theme.setupGraphics2D(offscreen.getGraphics());
|
||||
g.setColor(bgcolor); //getBackground());
|
||||
g.fillRect(0, 0, width, height);
|
||||
|
||||
@ -437,7 +441,7 @@ public class EditorToolbar extends JComponent implements MouseInputListener, Key
|
||||
|
||||
|
||||
public Dimension getMaximumSize() {
|
||||
return new Dimension(3000, BUTTON_HEIGHT);
|
||||
return new Dimension(scale(3000), BUTTON_HEIGHT);
|
||||
}
|
||||
|
||||
|
||||
|
@ -69,11 +69,6 @@ public class Preferences {
|
||||
*/
|
||||
static public int BUTTON_HEIGHT = 24;
|
||||
|
||||
// value for the size bars, buttons, etc
|
||||
|
||||
static final int GRID_SIZE = 33;
|
||||
|
||||
|
||||
// indents and spacing standards. these probably need to be modified
|
||||
// per platform as well, since macosx is so huge, windows is smaller,
|
||||
// and linux is all over the map
|
||||
|
@ -21,19 +21,39 @@
|
||||
|
||||
package processing.app;
|
||||
|
||||
import processing.app.helpers.OSUtils;
|
||||
import processing.app.helpers.PreferencesHelper;
|
||||
import processing.app.helpers.PreferencesMap;
|
||||
import static processing.app.I18n.tr;
|
||||
|
||||
import javax.swing.text.StyleContext;
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.MediaTracker;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.RenderingHints;
|
||||
import java.awt.SystemColor;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.font.TextAttribute;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Map;
|
||||
|
||||
import static processing.app.I18n.tr;
|
||||
import javax.swing.text.StyleContext;
|
||||
|
||||
import org.apache.batik.transcoder.Transcoder;
|
||||
import org.apache.batik.transcoder.TranscoderException;
|
||||
import org.apache.batik.transcoder.TranscoderInput;
|
||||
import org.apache.batik.transcoder.TranscoderOutput;
|
||||
import org.apache.batik.transcoder.image.PNGTranscoder;
|
||||
|
||||
import processing.app.helpers.OSUtils;
|
||||
import processing.app.helpers.PreferencesHelper;
|
||||
import processing.app.helpers.PreferencesMap;
|
||||
|
||||
/**
|
||||
* Storage class for theme settings. This was separated from the Preferences
|
||||
@ -55,8 +75,9 @@ public class Theme {
|
||||
try {
|
||||
table.load(new File(BaseNoGui.getContentFile("lib"), "theme/theme.txt"));
|
||||
} catch (Exception te) {
|
||||
Base.showError(null, tr("Could not read color theme settings.\n" +
|
||||
"You'll need to reinstall Arduino."), te);
|
||||
Base.showError(null, tr("Could not read color theme settings.\n"
|
||||
+ "You'll need to reinstall Arduino."),
|
||||
te);
|
||||
}
|
||||
|
||||
// other things that have to be set explicitly for the defaults
|
||||
@ -94,6 +115,41 @@ public class Theme {
|
||||
set(key, String.valueOf(value));
|
||||
}
|
||||
|
||||
static public int getScale() {
|
||||
try {
|
||||
int scale = PreferencesData.getInteger("gui.scale", -1);
|
||||
if (scale != -1)
|
||||
return scale;
|
||||
} catch (NumberFormatException ignore) {
|
||||
}
|
||||
return 100;
|
||||
}
|
||||
|
||||
static public int scale(int size) {
|
||||
return size * getScale() / 100;
|
||||
}
|
||||
|
||||
static public Dimension scale(Dimension dim) {
|
||||
return new Dimension(scale(dim.width), scale(dim.height));
|
||||
}
|
||||
|
||||
static public Font scale(Font font) {
|
||||
float size = scale(font.getSize());
|
||||
// size must be float to call the correct Font.deriveFont(float)
|
||||
// method that is different from Font.deriveFont(int)!
|
||||
Font scaled = font.deriveFont(size);
|
||||
return scaled;
|
||||
}
|
||||
|
||||
static public Rectangle scale(Rectangle rect) {
|
||||
Rectangle res = new Rectangle(rect);
|
||||
res.x = scale(res.x);
|
||||
res.y = scale(res.y);
|
||||
res.width = scale(res.width);
|
||||
res.height = scale(res.height);
|
||||
return res;
|
||||
}
|
||||
|
||||
static public Color getColorCycleColor(String name, int i) {
|
||||
int cycleSize = getInteger(name + ".size");
|
||||
name = String.format("%s.%02d", name, i % cycleSize);
|
||||
@ -122,7 +178,7 @@ public class Theme {
|
||||
set(attr, value);
|
||||
font = PreferencesHelper.getFont(table, attr);
|
||||
}
|
||||
return font;
|
||||
return font.deriveFont((float) scale(font.getSize()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -155,7 +211,7 @@ public class Theme {
|
||||
}
|
||||
}
|
||||
|
||||
//System.out.println(font.getFamily() + ", " + font.getName());
|
||||
// System.out.println(font.getFamily() + ", " + font.getName());
|
||||
return font;
|
||||
}
|
||||
|
||||
@ -169,7 +225,8 @@ public class Theme {
|
||||
boolean italic = style.contains("italic");
|
||||
boolean underlined = style.contains("underlined");
|
||||
|
||||
Font styledFont = new Font(font.getFamily(), (bold ? Font.BOLD : 0) | (italic ? Font.ITALIC : 0), font.getSize());
|
||||
Font styledFont = new Font(font.getFamily(),
|
||||
(bold ? Font.BOLD : 0) | (italic ? Font.ITALIC : 0), font.getSize());
|
||||
if (underlined) {
|
||||
Map<TextAttribute, Object> attr = new Hashtable<TextAttribute, Object>();
|
||||
attr.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
|
||||
@ -183,4 +240,89 @@ public class Theme {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an Image object from inside the Processing lib folder.
|
||||
*/
|
||||
static public Image getLibImage(String filename, Component who, int width,
|
||||
int height) {
|
||||
File libFolder = BaseNoGui.getContentFile("lib");
|
||||
Image image = null;
|
||||
|
||||
// Use vector image when available
|
||||
File vectorFile = new File(libFolder, filename + ".svg");
|
||||
if (vectorFile.exists()) {
|
||||
try {
|
||||
image = imageFromSVG(vectorFile.toURI().toURL(), width, height);
|
||||
} catch (Exception e) {
|
||||
System.err.println("Failed to load " + vectorFile.getAbsolutePath()
|
||||
+ ": " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise fall-back to PNG bitmaps
|
||||
if (image == null) {
|
||||
File bitmapFile = new File(libFolder, filename + ".png");
|
||||
File bitmap2xFile = new File(libFolder, filename + "@2x.png");
|
||||
|
||||
File imageFile;
|
||||
if ((getScale() > 125 && bitmap2xFile.exists()) || !bitmapFile.exists()) {
|
||||
imageFile = bitmap2xFile;
|
||||
} else {
|
||||
imageFile = bitmapFile;
|
||||
}
|
||||
Toolkit tk = Toolkit.getDefaultToolkit();
|
||||
image = tk.getImage(imageFile.getAbsolutePath());
|
||||
}
|
||||
|
||||
MediaTracker tracker = new MediaTracker(who);
|
||||
try {
|
||||
tracker.addImage(image, 0);
|
||||
tracker.waitForAll();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
|
||||
if (image.getWidth(null) != width || image.getHeight(null) != height) {
|
||||
image = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);
|
||||
try {
|
||||
tracker.addImage(image, 1);
|
||||
tracker.waitForAll();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
}
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an image associated with the current color theme.
|
||||
*/
|
||||
static public Image getThemeImage(String name, Component who, int width,
|
||||
int height) {
|
||||
return getLibImage("theme/" + name, who, width, height);
|
||||
}
|
||||
|
||||
private static Image imageFromSVG(URL url, int width, int height)
|
||||
throws TranscoderException {
|
||||
Transcoder t = new PNGTranscoder();
|
||||
t.addTranscodingHint(PNGTranscoder.KEY_WIDTH, new Float(width));
|
||||
t.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, new Float(height));
|
||||
|
||||
TranscoderInput input = new TranscoderInput(url.toString());
|
||||
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
|
||||
TranscoderOutput output = new TranscoderOutput(ostream);
|
||||
t.transcode(input, output);
|
||||
|
||||
byte[] imgData = ostream.toByteArray();
|
||||
return Toolkit.getDefaultToolkit().createImage(imgData);
|
||||
}
|
||||
|
||||
static public Graphics2D setupGraphics2D(Graphics graphics) {
|
||||
Graphics2D g = (Graphics2D) graphics;
|
||||
if (PreferencesData.getBoolean("editor.antialias")) {
|
||||
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
|
||||
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
||||
}
|
||||
return g;
|
||||
}
|
||||
|
||||
}
|
||||
|
BIN
build/shared/lib/about@2x.png
Normal file
After Width: | Height: | Size: 40 KiB |
@ -71,6 +71,11 @@ platform.auto_file_type_associations = true
|
||||
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
# GUI - Scaling, edit this to scale to higher dots-per-inch displays
|
||||
# "auto" means autodetect.
|
||||
gui.scale=auto
|
||||
#gui.scale=200
|
||||
|
||||
# default size for the main window
|
||||
editor.window.width.default = 500
|
||||
editor.window.height.default = 600
|
||||
|
Before Width: | Height: | Size: 3.3 KiB |
BIN
build/shared/lib/theme/buttons.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
869
build/shared/lib/theme/buttons.svg
Normal file
@ -0,0 +1,869 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="198px"
|
||||
height="99px"
|
||||
viewBox="0 0 198 99"
|
||||
enable-background="new 0 0 198 99"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="buttons.svg"><metadata
|
||||
id="metadata327"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs325" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview323"
|
||||
showgrid="false"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="4"
|
||||
inkscape:cx="45.252385"
|
||||
inkscape:cy="36.224987"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><g
|
||||
id="g5"
|
||||
transform="translate(-0.12000084,0)"><circle
|
||||
cx="16.620001"
|
||||
cy="16.608999"
|
||||
r="12"
|
||||
id="circle7"
|
||||
style="fill:#ffcc00" /><polyline
|
||||
stroke-miterlimit="10"
|
||||
points="21.453,12.745 15.788,20.571 11.775,16.658 "
|
||||
id="polyline9"
|
||||
style="fill:none;stroke:#655100;stroke-width:2.30489993;stroke-miterlimit:10" /></g><g
|
||||
id="g11"
|
||||
transform="translate(-0.12000084,0)"><circle
|
||||
cx="16.620001"
|
||||
cy="49.465"
|
||||
r="12"
|
||||
id="circle13"
|
||||
style="fill:#ffffff" /><polyline
|
||||
stroke-miterlimit="10"
|
||||
points="21.453,45.601 15.788,53.427 11.775,49.514 "
|
||||
id="polyline15"
|
||||
style="fill:none;stroke:#006468;stroke-width:2.30489993;stroke-miterlimit:10" /></g><g
|
||||
id="g17"
|
||||
transform="translate(-0.12000084,0)"><circle
|
||||
cx="16.620001"
|
||||
cy="82.476997"
|
||||
r="12"
|
||||
id="circle19"
|
||||
style="fill:#4db7bb" /><polyline
|
||||
stroke-miterlimit="10"
|
||||
points="21.453,78.612 15.788,86.438 11.775,82.525 "
|
||||
id="polyline21"
|
||||
style="fill:none;stroke:#006468;stroke-width:2.30489993;stroke-miterlimit:10" /></g><g
|
||||
id="g23"
|
||||
transform="translate(-0.26100159,0)"><circle
|
||||
cx="49.761002"
|
||||
cy="16.608999"
|
||||
r="12"
|
||||
id="circle25"
|
||||
style="fill:#ffcc00" /><polygon
|
||||
points="45.412,15.313 49.307,15.313 49.307,11.53 54.701,16.875 49.331,22.245 49.331,18.563 45.412,18.539 "
|
||||
id="polygon27"
|
||||
style="fill:#655100" /></g><g
|
||||
id="g29"
|
||||
transform="translate(-0.26100159,0)"><circle
|
||||
cx="49.761002"
|
||||
cy="49.465"
|
||||
r="12"
|
||||
id="circle31"
|
||||
style="fill:#ffffff" /><polygon
|
||||
points="45.412,48.169 49.307,48.169 49.307,44.386 54.701,49.731 49.331,55.101 49.331,51.419 45.412,51.394 "
|
||||
id="polygon33"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g35"
|
||||
transform="translate(-0.26100159,0)"><circle
|
||||
cx="49.761002"
|
||||
cy="82.476997"
|
||||
r="12"
|
||||
id="circle37"
|
||||
style="fill:#4db7bb" /><polygon
|
||||
points="45.412,81.18 49.307,81.18 49.307,77.397 54.701,82.743 49.331,88.113 49.331,84.43 45.412,84.406 "
|
||||
id="polygon39"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g41"
|
||||
transform="translate(-0.54399872,0)"><rect
|
||||
x="105.544"
|
||||
y="6.1090002"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect43"
|
||||
style="fill:#ffcc00" /><polygon
|
||||
points="114.44,19.083 114.44,15.116 110.586,15.116 116.032,9.621 121.502,15.091 117.751,15.091 117.726,19.083 "
|
||||
id="polygon45"
|
||||
style="fill:#655100" /><rect
|
||||
x="110.511"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect47"
|
||||
style="fill:#655100" /><rect
|
||||
x="112.518"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect49"
|
||||
style="fill:#655100" /><rect
|
||||
x="114.517"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect51"
|
||||
style="fill:#655100" /><rect
|
||||
x="116.525"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect53"
|
||||
style="fill:#655100" /><rect
|
||||
x="118.524"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect55"
|
||||
style="fill:#655100" /><rect
|
||||
x="120.531"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect57"
|
||||
style="fill:#655100" /></g><g
|
||||
id="g59"
|
||||
transform="translate(-0.68600464,0)"><rect
|
||||
x="138.686"
|
||||
y="6.1090002"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect61"
|
||||
style="fill:#ffcc00" /><polygon
|
||||
points="150.79,9.621 150.79,13.588 154.644,13.588 149.198,19.083 143.728,13.612 147.479,13.613 147.504,9.621 "
|
||||
id="polygon63"
|
||||
style="fill:#655100" /><rect
|
||||
x="143.65199"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect65"
|
||||
style="fill:#655100" /><rect
|
||||
x="145.66"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect67"
|
||||
style="fill:#655100" /><rect
|
||||
x="147.659"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect69"
|
||||
style="fill:#655100" /><rect
|
||||
x="149.666"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect71"
|
||||
style="fill:#655100" /><rect
|
||||
x="151.666"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect73"
|
||||
style="fill:#655100" /><rect
|
||||
x="153.673"
|
||||
y="22.193001"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect75"
|
||||
style="fill:#655100" /></g><g
|
||||
id="g77"
|
||||
transform="translate(-0.54399872,0)"><rect
|
||||
x="105.544"
|
||||
y="38.965"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect79"
|
||||
style="fill:#ffffff" /><polygon
|
||||
points="114.44,51.939 114.44,47.971 110.586,47.971 116.032,42.476 121.502,47.947 117.751,47.947 117.726,51.939 "
|
||||
id="polygon81"
|
||||
style="fill:#006468" /><rect
|
||||
x="110.511"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect83"
|
||||
style="fill:#006468" /><rect
|
||||
x="112.518"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect85"
|
||||
style="fill:#006468" /><rect
|
||||
x="114.517"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect87"
|
||||
style="fill:#006468" /><rect
|
||||
x="116.525"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect89"
|
||||
style="fill:#006468" /><rect
|
||||
x="118.524"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect91"
|
||||
style="fill:#006468" /><rect
|
||||
x="120.531"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect93"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g95"
|
||||
transform="translate(-0.68600464,0)"><rect
|
||||
x="138.686"
|
||||
y="38.965"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect97"
|
||||
style="fill:#ffffff" /><polygon
|
||||
points="150.79,42.476 150.79,46.444 154.644,46.444 149.198,51.939 143.728,46.468 147.479,46.468 147.504,42.477 "
|
||||
id="polygon99"
|
||||
style="fill:#006468" /><rect
|
||||
x="143.65199"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect101"
|
||||
style="fill:#006468" /><rect
|
||||
x="145.66"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect103"
|
||||
style="fill:#006468" /><rect
|
||||
x="147.659"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect105"
|
||||
style="fill:#006468" /><rect
|
||||
x="149.666"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect107"
|
||||
style="fill:#006468" /><rect
|
||||
x="151.666"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect109"
|
||||
style="fill:#006468" /><rect
|
||||
x="153.673"
|
||||
y="55.049"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect111"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g113"
|
||||
transform="translate(-0.54399872,0)"><rect
|
||||
x="105.544"
|
||||
y="71.976997"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect115"
|
||||
style="fill:#4db7bb" /><polygon
|
||||
points="114.44,84.95 114.44,80.983 110.586,80.983 116.032,75.488 121.502,80.959 117.751,80.958 117.726,84.95 "
|
||||
id="polygon117"
|
||||
style="fill:#006468" /><rect
|
||||
x="110.511"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect119"
|
||||
style="fill:#006468" /><rect
|
||||
x="112.518"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect121"
|
||||
style="fill:#006468" /><rect
|
||||
x="114.517"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect123"
|
||||
style="fill:#006468" /><rect
|
||||
x="116.525"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect125"
|
||||
style="fill:#006468" /><rect
|
||||
x="118.524"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect127"
|
||||
style="fill:#006468" /><rect
|
||||
x="120.531"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect129"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g131"
|
||||
transform="translate(-0.68600464,0)"><rect
|
||||
x="138.686"
|
||||
y="71.976997"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect133"
|
||||
style="fill:#4db7bb" /><polygon
|
||||
points="150.79,75.488 150.79,79.455 154.644,79.455 149.198,84.95 143.728,79.48 147.479,79.48 147.504,75.488 "
|
||||
id="polygon135"
|
||||
style="fill:#006468" /><rect
|
||||
x="143.65199"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect137"
|
||||
style="fill:#006468" /><rect
|
||||
x="145.66"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect139"
|
||||
style="fill:#006468" /><rect
|
||||
x="147.659"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect141"
|
||||
style="fill:#006468" /><rect
|
||||
x="149.666"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect143"
|
||||
style="fill:#006468" /><rect
|
||||
x="151.666"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect145"
|
||||
style="fill:#006468" /><rect
|
||||
x="153.673"
|
||||
y="88.060997"
|
||||
width="1"
|
||||
height="1"
|
||||
id="rect147"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g149"
|
||||
transform="translate(-0.40299988,0)"><path
|
||||
d="M 87.445,22.097"
|
||||
id="path151"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#655100" /><rect
|
||||
x="72.403"
|
||||
y="6.1090002"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect153"
|
||||
style="fill:#ffcc00" /><polygon
|
||||
points="83.44,10.094 84.441,10.094 88.421,14.079 88.421,15.057 87.445,15.057 83.44,15.057 "
|
||||
id="polygon155"
|
||||
style="fill:#655100" /><polygon
|
||||
points="78.404,11.093 78.404,22.097 87.445,22.097 87.445,14.87 88.421,14.87 88.421,23.134 77.399,23.134 77.399,10.094 83.562,10.094 83.568,11.093 "
|
||||
id="polygon157"
|
||||
style="fill:#655100" /><rect
|
||||
x="79.399002"
|
||||
y="12.111"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect159"
|
||||
style="fill:#655100" /><rect
|
||||
x="81.394997"
|
||||
y="12.111"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect161"
|
||||
style="fill:#655100" /><rect
|
||||
x="79.399002"
|
||||
y="14.103"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect163"
|
||||
style="fill:#655100" /><rect
|
||||
x="81.394997"
|
||||
y="14.103"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect165"
|
||||
style="fill:#655100" /><rect
|
||||
x="79.399002"
|
||||
y="16.115999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect167"
|
||||
style="fill:#655100" /><rect
|
||||
x="81.394997"
|
||||
y="16.115999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect169"
|
||||
style="fill:#655100" /><rect
|
||||
x="83.403"
|
||||
y="16.115999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect171"
|
||||
style="fill:#655100" /><rect
|
||||
x="85.400002"
|
||||
y="16.115999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect173"
|
||||
style="fill:#655100" /><rect
|
||||
x="79.399002"
|
||||
y="18.118"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect175"
|
||||
style="fill:#655100" /><rect
|
||||
x="81.394997"
|
||||
y="18.118"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect177"
|
||||
style="fill:#655100" /><rect
|
||||
x="79.399002"
|
||||
y="20.132"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect179"
|
||||
style="fill:#655100" /><rect
|
||||
x="81.394997"
|
||||
y="20.132"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect181"
|
||||
style="fill:#655100" /><rect
|
||||
x="83.403"
|
||||
y="18.118"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect183"
|
||||
style="fill:#655100" /><rect
|
||||
x="85.400002"
|
||||
y="18.118"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect185"
|
||||
style="fill:#655100" /><rect
|
||||
x="83.403"
|
||||
y="20.132"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect187"
|
||||
style="fill:#655100" /><rect
|
||||
x="85.400002"
|
||||
y="20.132"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect189"
|
||||
style="fill:#655100" /></g><g
|
||||
id="g191"
|
||||
transform="translate(-0.40299988,0)"><path
|
||||
d="M 87.445,54.953"
|
||||
id="path193"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006468" /><rect
|
||||
x="72.403"
|
||||
y="38.965"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect195"
|
||||
style="fill:#ffffff" /><polygon
|
||||
points="83.44,42.95 84.441,42.95 88.421,46.935 88.421,47.912 87.445,47.912 83.44,47.912 "
|
||||
id="polygon197"
|
||||
style="fill:#006468" /><polygon
|
||||
points="78.404,43.949 78.404,54.953 87.445,54.953 87.445,47.726 88.421,47.726 88.421,55.99 77.399,55.99 77.399,42.95 83.586,42.95 83.599,43.951 "
|
||||
id="polygon199"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="44.966999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect201"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="44.966999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect203"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="46.959"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect205"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="46.959"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect207"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="48.972"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect209"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="48.972"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect211"
|
||||
style="fill:#006468" /><rect
|
||||
x="83.403"
|
||||
y="48.972"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect213"
|
||||
style="fill:#006468" /><rect
|
||||
x="85.400002"
|
||||
y="48.972"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect215"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="50.973999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect217"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="50.973999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect219"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="52.987"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect221"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="52.987"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect223"
|
||||
style="fill:#006468" /><rect
|
||||
x="83.403"
|
||||
y="50.973999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect225"
|
||||
style="fill:#006468" /><rect
|
||||
x="85.400002"
|
||||
y="50.973999"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect227"
|
||||
style="fill:#006468" /><rect
|
||||
x="83.403"
|
||||
y="52.987"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect229"
|
||||
style="fill:#006468" /><rect
|
||||
x="85.400002"
|
||||
y="52.987"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect231"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g233"
|
||||
transform="translate(-0.40299988,0)"><path
|
||||
d="M 87.445,87.965"
|
||||
id="path235"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006468" /><rect
|
||||
x="72.403"
|
||||
y="71.976997"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect237"
|
||||
style="fill:#4db7bb" /><polygon
|
||||
points="83.44,75.961 84.441,75.961 88.421,79.946 88.421,80.924 87.445,80.924 83.44,80.924 "
|
||||
id="polygon239"
|
||||
style="fill:#006468" /><polygon
|
||||
points="78.404,76.961 78.404,87.965 87.445,87.965 87.445,80.738 88.421,80.738 88.421,89.002 77.399,89.002 77.399,75.961 83.586,75.961 83.599,76.963 "
|
||||
id="polygon241"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="77.977997"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect243"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="77.977997"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect245"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="79.970001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect247"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="79.970001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect249"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="81.984001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect251"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="81.984001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect253"
|
||||
style="fill:#006468" /><rect
|
||||
x="83.403"
|
||||
y="81.984001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect255"
|
||||
style="fill:#006468" /><rect
|
||||
x="85.400002"
|
||||
y="81.984001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect257"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="83.986"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect259"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="83.986"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect261"
|
||||
style="fill:#006468" /><rect
|
||||
x="79.399002"
|
||||
y="85.999001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect263"
|
||||
style="fill:#006468" /><rect
|
||||
x="81.394997"
|
||||
y="85.999001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect265"
|
||||
style="fill:#006468" /><rect
|
||||
x="83.403"
|
||||
y="83.986"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect267"
|
||||
style="fill:#006468" /><rect
|
||||
x="85.400002"
|
||||
y="83.986"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect269"
|
||||
style="fill:#006468" /><rect
|
||||
x="83.403"
|
||||
y="85.999001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect271"
|
||||
style="fill:#006468" /><rect
|
||||
x="85.400002"
|
||||
y="85.999001"
|
||||
width="0.995"
|
||||
height="0.99599999"
|
||||
id="rect273"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g275"
|
||||
transform="translate(-0.82800293,0)"><rect
|
||||
x="171.828"
|
||||
y="6.1090002"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect277"
|
||||
style="fill:#ffcc00" /><rect
|
||||
x="187.819"
|
||||
y="16.101"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect279"
|
||||
style="fill:#655100" /><rect
|
||||
x="189.825"
|
||||
y="16.101"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect281"
|
||||
style="fill:#655100" /><rect
|
||||
x="174.83299"
|
||||
y="16.101"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect283"
|
||||
style="fill:#655100" /><circle
|
||||
stroke-miterlimit="10"
|
||||
cx="181.80299"
|
||||
cy="16.101"
|
||||
r="4.0900002"
|
||||
id="circle285"
|
||||
style="fill:none;stroke:#655100;stroke-width:1.95439994;stroke-miterlimit:10" /><rect
|
||||
x="175.895"
|
||||
y="18.427999"
|
||||
transform="matrix(0.6915,0.7224,-0.7224,0.6915,69.5827,-121.6599)"
|
||||
width="2.6800001"
|
||||
height="4.4229999"
|
||||
id="rect287"
|
||||
style="fill:#655100" /><rect
|
||||
x="180.789"
|
||||
y="15.103"
|
||||
width="2.0280001"
|
||||
height="1.9960001"
|
||||
id="rect289"
|
||||
style="fill:#655100" /></g><g
|
||||
id="g291"
|
||||
transform="translate(-0.82800293,0)"><rect
|
||||
x="171.828"
|
||||
y="38.965"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect293"
|
||||
style="fill:#ffffff" /><rect
|
||||
x="187.819"
|
||||
y="48.957001"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect295"
|
||||
style="fill:#006468" /><rect
|
||||
x="189.825"
|
||||
y="48.957001"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect297"
|
||||
style="fill:#006468" /><rect
|
||||
x="174.83299"
|
||||
y="48.957001"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect299"
|
||||
style="fill:#006468" /><circle
|
||||
stroke-miterlimit="10"
|
||||
cx="181.80299"
|
||||
cy="48.957001"
|
||||
r="4.0900002"
|
||||
id="circle301"
|
||||
style="fill:none;stroke:#006468;stroke-width:1.95439994;stroke-miterlimit:10" /><rect
|
||||
x="175.895"
|
||||
y="51.284"
|
||||
transform="matrix(0.6915,0.7224,-0.7224,0.6915,93.3163,-111.5246)"
|
||||
width="2.6800001"
|
||||
height="4.4229999"
|
||||
id="rect303"
|
||||
style="fill:#006468" /><rect
|
||||
x="180.789"
|
||||
y="47.959"
|
||||
width="2.0280001"
|
||||
height="1.9960001"
|
||||
id="rect305"
|
||||
style="fill:#006468" /></g><g
|
||||
id="g307"
|
||||
transform="translate(-0.82800293,0)"><rect
|
||||
x="171.828"
|
||||
y="71.976997"
|
||||
width="21"
|
||||
height="21"
|
||||
id="rect309"
|
||||
style="fill:#4db7bb" /><rect
|
||||
x="187.819"
|
||||
y="81.969002"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect311"
|
||||
style="fill:#006468" /><rect
|
||||
x="189.825"
|
||||
y="81.969002"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect313"
|
||||
style="fill:#006468" /><rect
|
||||
x="174.83299"
|
||||
y="81.969002"
|
||||
width="0.99900001"
|
||||
height="0.99800003"
|
||||
id="rect315"
|
||||
style="fill:#006468" /><circle
|
||||
stroke-miterlimit="10"
|
||||
cx="181.80299"
|
||||
cy="81.969002"
|
||||
r="4.0900002"
|
||||
id="circle317"
|
||||
style="fill:none;stroke:#006468;stroke-width:1.95439994;stroke-miterlimit:10" /><rect
|
||||
x="175.895"
|
||||
y="84.295998"
|
||||
transform="matrix(0.6915,0.7224,-0.7224,0.6915,117.1625,-101.3412)"
|
||||
width="2.6800001"
|
||||
height="4.4229999"
|
||||
id="rect319"
|
||||
style="fill:#006468" /><rect
|
||||
x="180.789"
|
||||
y="80.970001"
|
||||
width="2.0280001"
|
||||
height="1.9960001"
|
||||
id="rect321"
|
||||
style="fill:#006468" /></g></svg>
|
After Width: | Height: | Size: 23 KiB |
BIN
build/shared/lib/theme/buttons@2x.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
76
build/shared/lib/theme/close.svg
Executable file
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="11"
|
||||
height="11"
|
||||
viewBox="0 0 11 11"
|
||||
id="svg3491"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="close.svg">
|
||||
<defs
|
||||
id="defs3493" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="44.8"
|
||||
inkscape:cx="7.9891861"
|
||||
inkscape:cy="3.2726808"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="997"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata3496">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1041.3622)">
|
||||
<g
|
||||
id="g4314"
|
||||
transform="matrix(0.625,0.625,-0.625,0.625,648.22636,400.38584)">
|
||||
<rect
|
||||
y="1030.3622"
|
||||
x="0"
|
||||
height="2"
|
||||
width="6"
|
||||
id="rect3510"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect4312"
|
||||
width="2"
|
||||
height="6"
|
||||
x="2"
|
||||
y="1028.3622" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
BIN
build/shared/lib/theme/close@2x.png
Normal file
After Width: | Height: | Size: 375 B |
13
build/shared/lib/theme/lock.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="48px" height="66px" viewBox="0 0 48 66" enable-background="new 0 0 48 66" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#22A2A4" d="M39.903,66h-32c-4.4,0-8-3.6-8-8V31.724c0-4.4,3.6-8,8-8h32c4.4,0,8,3.6,8,8V58
|
||||
C47.903,62.4,44.303,66,39.903,66z"/>
|
||||
<polygon fill="#FFFFFF" points="21.811,44.767 25.811,44.767 27.874,54.927 19.874,54.927 "/>
|
||||
<ellipse fill="#FFFFFF" cx="23.874" cy="40.43" rx="5.469" ry="5.503"/>
|
||||
<path fill="none" stroke="#22A2A4" stroke-width="5.0157" stroke-miterlimit="10" d="M10.782,24.445V13.66
|
||||
c0,0,0.13-11.112,13.121-11.112s12.926,10.948,12.926,10.948v10.948"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 877 B |
BIN
build/shared/lib/theme/lock@2x.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 91 B |
BIN
build/shared/lib/theme/newwindow.png
Normal file
After Width: | Height: | Size: 335 B |
16
build/shared/lib/theme/newwindow.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="16px" height="14px" viewBox="0 0 16 14" enable-background="new 0 0 16 14" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#6279A1" stroke="#2C4573" stroke-miterlimit="10" points="11.508,13.467 0.522,13.467 0.522,5.247 0.522,3.367
|
||||
11.508,3.367 "/>
|
||||
<line fill="none" stroke="#2C4573" stroke-miterlimit="10" x1="11.508" y1="5.247" x2="0.522" y2="5.247"/>
|
||||
<polygon fill="#FFFFFF" stroke="#2C4573" stroke-miterlimit="10" points="15.533,10.546 4.547,10.546 4.547,2.326 4.547,0.446
|
||||
15.533,0.446 "/>
|
||||
<line fill="none" stroke="#2C4573" stroke-miterlimit="10" x1="15.533" y1="2.326" x2="4.547" y2="2.326"/>
|
||||
</g>
|
||||
<rect x="0" y="0" fill="none" width="16" height="14"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 974 B |
BIN
build/shared/lib/theme/newwindow@2x.png
Normal file
After Width: | Height: | Size: 382 B |
Before Width: | Height: | Size: 73 B |
BIN
build/shared/lib/theme/resize.png
Normal file
After Width: | Height: | Size: 308 B |
32
build/shared/lib/theme/resize.svg
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
|
||||
<rect x="0" y="0" fill="#006468" width="20" height="20"/>
|
||||
<rect x="7.987" y="18" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="8.979" y="17.008" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="10" y="16.016" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="10.992" y="15.024" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="11.984" y="14.032" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="12.976" y="12.985" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="13.968" y="11.993" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="15.038" y="11.001" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="10.992" y="17.991" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="11.984" y="16.999" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="13.005" y="16.007" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="13.997" y="15.015" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="14.989" y="14.023" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="14.032" y="18" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="15.024" y="17.008" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="16.973" y="18" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="17.965" y="17.008" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="16.045" y="16.016" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="17.037" y="15.024" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="18.029" y="14.032" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="15.981" y="12.976" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="16.973" y="11.984" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="18.043" y="10.992" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="16.03" y="10" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="17.022" y="9.008" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
<rect x="18.014" y="8.016" fill="#22A2A4" width="0.992" height="0.992"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
BIN
build/shared/lib/theme/resize@2x.png
Normal file
After Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 73 B |
BIN
build/shared/lib/theme/tab-sel-left.png
Normal file
After Width: | Height: | Size: 291 B |
57
build/shared/lib/theme/tab-sel-left.svg
Normal file
@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="4px"
|
||||
height="33px"
|
||||
viewBox="0 0 4 33"
|
||||
enable-background="new 0 0 4 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-sel-left.svg"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:showpageshadow="false"
|
||||
borderlayer="true"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="3.5649707"
|
||||
inkscape:cy="18.783131"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><path
|
||||
d="M 0.945,35 0.913,9.1392914 C 0.913,8.570369 1.016,7.9992953 1.261,7.4938253 1.634,6.7216391 2.434,6 4,6 l 0,29 -3.055,0 z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" /><rect
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect3339"
|
||||
width="1"
|
||||
height="29"
|
||||
x="4"
|
||||
y="6" /></svg>
|
After Width: | Height: | Size: 2.0 KiB |
BIN
build/shared/lib/theme/tab-sel-left@2x.png
Normal file
After Width: | Height: | Size: 211 B |
Before Width: | Height: | Size: 114 B |
BIN
build/shared/lib/theme/tab-sel-menu.png
Normal file
After Width: | Height: | Size: 333 B |
54
build/shared/lib/theme/tab-sel-menu.svg
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="17px"
|
||||
height="33px"
|
||||
viewBox="0 0 17 33"
|
||||
enable-background="new 0 0 17 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-sel-menu.svg"><metadata
|
||||
id="metadata15"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs13" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview11"
|
||||
showgrid="false"
|
||||
inkscape:zoom="20.227539"
|
||||
inkscape:cx="6.9756954"
|
||||
inkscape:cy="15.780826"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><rect
|
||||
x="0"
|
||||
y="8"
|
||||
width="17"
|
||||
height="17"
|
||||
id="rect3"
|
||||
style="fill:#ffffff" /><polygon
|
||||
fill="#007074"
|
||||
points="3.558,14.029 13.442,14.029 8.5,18.971 "
|
||||
id="polygon9" /></svg>
|
After Width: | Height: | Size: 1.7 KiB |
BIN
build/shared/lib/theme/tab-sel-menu@2x.png
Normal file
After Width: | Height: | Size: 325 B |
Before Width: | Height: | Size: 54 B |
BIN
build/shared/lib/theme/tab-sel-mid.png
Normal file
After Width: | Height: | Size: 279 B |
53
build/shared/lib/theme/tab-sel-mid.svg
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="4px"
|
||||
height="33px"
|
||||
viewBox="0 0 4 33"
|
||||
enable-background="new 0 0 4 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-sel-mid.svg"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:zoom="57.212121"
|
||||
inkscape:cx="-0.9151617"
|
||||
inkscape:cy="0.20061838"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1"
|
||||
inkscape:showpageshadow="false"
|
||||
borderlayer="true" /><rect
|
||||
x="-0.5"
|
||||
y="6"
|
||||
width="5"
|
||||
height="29"
|
||||
id="rect3"
|
||||
style="fill:#ffffff" /></svg>
|
After Width: | Height: | Size: 1.7 KiB |
BIN
build/shared/lib/theme/tab-sel-mid@2x.png
Normal file
After Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 87 B |
BIN
build/shared/lib/theme/tab-sel-right.png
Normal file
After Width: | Height: | Size: 301 B |
59
build/shared/lib/theme/tab-sel-right.svg
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="4px"
|
||||
height="33px"
|
||||
viewBox="0 0 4 33"
|
||||
enable-background="new 0 0 4 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-sel-right.svg"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="-9.114663"
|
||||
inkscape:cy="17.444107"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1"
|
||||
showborder="true"
|
||||
borderlayer="true"
|
||||
inkscape:showpageshadow="false" /><path
|
||||
d="M 2.9689018,35 3,9.1392919 C 3,8.5703688 2.8999028,7.9992953 2.6618076,7.4938253 2.2993197,6.7216391 1.5218659,6 0,6 0,6 0,15.666667 0,20.5 0,25.333333 0,35 0,35 Z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff"
|
||||
sodipodi:nodetypes="ccccscc" /><rect
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="rect3341"
|
||||
width="1"
|
||||
height="29"
|
||||
x="-1"
|
||||
y="6" /></svg>
|
After Width: | Height: | Size: 2.1 KiB |
BIN
build/shared/lib/theme/tab-sel-right@2x.png
Normal file
After Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 73 B |
BIN
build/shared/lib/theme/tab-unsel-left.png
Normal file
After Width: | Height: | Size: 291 B |
55
build/shared/lib/theme/tab-unsel-left.svg
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="4px"
|
||||
height="33px"
|
||||
viewBox="0 0 4 33"
|
||||
enable-background="new 0 0 4 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-unsel-left.svg"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="-9.7695204"
|
||||
inkscape:cy="11.268261"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><path
|
||||
d="M 1.0310981,35 1,9.1392917 C 1,8.570369 1.1000972,7.9992953 1.3381924,7.4938253 1.7006803,6.7216391 2.4781341,6 4,6 l 0,29 -2.9689019,0 z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#4db7bb" /><rect
|
||||
style="fill:#4db7bb;fill-opacity:1;stroke:none"
|
||||
id="rect4139"
|
||||
width="1"
|
||||
height="29"
|
||||
x="3.98"
|
||||
y="6" /></svg>
|
After Width: | Height: | Size: 1.9 KiB |
BIN
build/shared/lib/theme/tab-unsel-left@2x.png
Normal file
After Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 114 B |
BIN
build/shared/lib/theme/tab-unsel-menu.png
Normal file
After Width: | Height: | Size: 333 B |
54
build/shared/lib/theme/tab-unsel-menu.svg
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="17px"
|
||||
height="33px"
|
||||
viewBox="0 0 17 33"
|
||||
enable-background="new 0 0 17 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-unsel-menu.svg"><metadata
|
||||
id="metadata15"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs13" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview11"
|
||||
showgrid="false"
|
||||
inkscape:zoom="28.606061"
|
||||
inkscape:cx="7.8114936"
|
||||
inkscape:cy="20.15176"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><rect
|
||||
x="0"
|
||||
y="8"
|
||||
width="17"
|
||||
height="17"
|
||||
id="rect3"
|
||||
style="fill:#4db7bb" /><polygon
|
||||
fill="#007074"
|
||||
points="3.558,14.029 13.442,14.029 8.5,18.971 "
|
||||
id="polygon9" /></svg>
|
After Width: | Height: | Size: 1.7 KiB |
BIN
build/shared/lib/theme/tab-unsel-menu@2x.png
Normal file
After Width: | Height: | Size: 328 B |
Before Width: | Height: | Size: 54 B |
BIN
build/shared/lib/theme/tab-unsel-mid.png
Normal file
After Width: | Height: | Size: 279 B |
51
build/shared/lib/theme/tab-unsel-mid.svg
Normal file
@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="4px"
|
||||
height="33px"
|
||||
viewBox="0 0 4 33"
|
||||
enable-background="new 0 0 4 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-unsel-mid.svg"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:zoom="20.227539"
|
||||
inkscape:cx="-0.052480132"
|
||||
inkscape:cy="8.6048981"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><rect
|
||||
x="-1"
|
||||
y="6"
|
||||
width="6"
|
||||
height="29"
|
||||
id="rect3"
|
||||
style="fill:#4db7bb" /></svg>
|
After Width: | Height: | Size: 1.6 KiB |
BIN
build/shared/lib/theme/tab-unsel-mid@2x.png
Normal file
After Width: | Height: | Size: 167 B |
Before Width: | Height: | Size: 73 B |
BIN
build/shared/lib/theme/tab-unsel-right.png
Normal file
After Width: | Height: | Size: 292 B |
55
build/shared/lib/theme/tab-unsel-right.svg
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="4px"
|
||||
height="33px"
|
||||
viewBox="0 0 4 33"
|
||||
enable-background="new 0 0 4 33"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="tab-unsel-right.svg"><metadata
|
||||
id="metadata11"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs9" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1215"
|
||||
inkscape:window-height="1000"
|
||||
id="namedview7"
|
||||
showgrid="false"
|
||||
inkscape:zoom="20.22754"
|
||||
inkscape:cx="2.2768329"
|
||||
inkscape:cy="13.953135"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><path
|
||||
d="M 2.9679404,35 3,9.1392919 C 3,8.5703688 2.8999352,7.9992953 2.6619171,7.4938253 2.2985751,6.7216391 1.5213731,6 0,6 l 0,29 2.9679404,0 z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#4db7bb" /><rect
|
||||
style="fill:#4db7bb;fill-opacity:1;stroke:none"
|
||||
id="rect4139"
|
||||
width="1"
|
||||
height="29"
|
||||
x="-0.98000002"
|
||||
y="6" /></svg>
|
After Width: | Height: | Size: 1.9 KiB |
BIN
build/shared/lib/theme/tab-unsel-right@2x.png
Normal file
After Width: | Height: | Size: 222 B |
@ -7,7 +7,6 @@
|
||||
#COMMENTS // COLOR #95A5A6 - LIGHT GREY
|
||||
#COMMENTS /**/ COLOR #434F54 - DARK GREY
|
||||
|
||||
|
||||
# GUI - STATUS
|
||||
status.notice.fgcolor = #002325
|
||||
status.notice.bgcolor = #17A1A5
|
||||
|
@ -1,6 +1,10 @@
|
||||
ARDUINO 1.6.8
|
||||
|
||||
[ide]
|
||||
* Added support for GUI interface scaling for UHD monitors.
|
||||
Thanks to all contributors and testers:
|
||||
https://github.com/arduino/Arduino/pull/4376
|
||||
https://github.com/arduino/Arduino/pull/2776
|
||||
* Editor position is saved when closing with Alt+F4 or clicking on the "X" button. Thanks @willie68
|
||||
* Fixed a NullPointerException when dealing with some rare combination of package_*.json files
|
||||
* Fixed incorrect key bindings handling for changing tab. Thanks @matthijskooijman
|
||||
|
@ -9,6 +9,24 @@
|
||||
<mainClass>processing.app.Base</mainClass>
|
||||
<cp>%EXEDIR%/lib/apple.jar</cp>
|
||||
<cp>%EXEDIR%/lib/arduino-core.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-anim-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-awt-util-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-bridge-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-codec-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-css-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-dom-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-ext-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-gvt-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-parser-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-rasterizer-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-script-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-squiggle-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-svg-dom-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-svgpp-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-transcoder-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-util-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-xml-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/bcpg-jdk15on-152.jar</cp>
|
||||
<cp>%EXEDIR%/lib/bcprov-jdk15on-152.jar</cp>
|
||||
<cp>%EXEDIR%/lib/commons-codec-1.7.jar</cp>
|
||||
@ -30,6 +48,9 @@
|
||||
<cp>%EXEDIR%/lib/jssc-2.8.0.jar</cp>
|
||||
<cp>%EXEDIR%/lib/pde.jar</cp>
|
||||
<cp>%EXEDIR%/lib/rsyntaxtextarea-2.5.8.1+arduino.jar</cp>
|
||||
<cp>%EXEDIR%/lib/xml-apis-1.3.04.jar</cp>
|
||||
<cp>%EXEDIR%/lib/xml-apis-ext-1.3.04.jar</cp>
|
||||
<cp>%EXEDIR%/lib/xmlgraphics-commons-2.0.jar</cp>
|
||||
</classPath>
|
||||
<jre>
|
||||
<path>java</path>
|
||||
@ -38,9 +59,6 @@
|
||||
<opt>-Dsun.java2d.d3d=false</opt>
|
||||
<opt>-DAPP_DIR="%EXEDIR%"</opt>
|
||||
</jre>
|
||||
<splash>
|
||||
<file>lib/splash.bmp</file>
|
||||
</splash>
|
||||
<versionInfo>
|
||||
<fileDescription>Arduino IDE</fileDescription>
|
||||
<copyright>Arduino LLC</copyright>
|
||||
|
@ -9,6 +9,24 @@
|
||||
<mainClass>processing.app.Base</mainClass>
|
||||
<cp>%EXEDIR%/lib/apple.jar</cp>
|
||||
<cp>%EXEDIR%/lib/arduino-core.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-anim-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-awt-util-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-bridge-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-codec-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-css-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-dom-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-ext-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-gvt-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-parser-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-rasterizer-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-script-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-squiggle-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-svg-dom-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-svgpp-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-transcoder-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-util-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/batik-xml-1.8.jar</cp>
|
||||
<cp>%EXEDIR%/lib/bcpg-jdk15on-152.jar</cp>
|
||||
<cp>%EXEDIR%/lib/bcprov-jdk15on-152.jar</cp>
|
||||
<cp>%EXEDIR%/lib/commons-codec-1.7.jar</cp>
|
||||
@ -30,6 +48,9 @@
|
||||
<cp>%EXEDIR%/lib/jssc-2.8.0.jar</cp>
|
||||
<cp>%EXEDIR%/lib/pde.jar</cp>
|
||||
<cp>%EXEDIR%/lib/rsyntaxtextarea-2.5.8.1+arduino.jar</cp>
|
||||
<cp>%EXEDIR%/lib/xml-apis-1.3.04.jar</cp>
|
||||
<cp>%EXEDIR%/lib/xml-apis-ext-1.3.04.jar</cp>
|
||||
<cp>%EXEDIR%/lib/xmlgraphics-commons-2.0.jar</cp>
|
||||
</classPath>
|
||||
<jre>
|
||||
<path>java</path>
|
||||
|