From 857b0b5d508a506b4becae321d3c6881b3453b5f Mon Sep 17 00:00:00 2001 From: Clochard Pagan Date: Thu, 26 Mar 2015 23:14:52 +0300 Subject: [PATCH] Mass update - new L&F written. Public Betta --- manifest.mf | 2 +- nbproject/project.properties | 2 +- src/org/idp/laf/Bundle.properties | 2 + src/org/idp/laf/Color.java | 27 +- src/org/idp/laf/DarkIconFilter.java | 88 +++ src/org/idp/laf/Installer.java | 34 + src/org/idp/laf/Kernel.java | 462 +++++++------ src/org/idp/laf/Keys.java | 915 +++++++++++++++++++++++++- src/org/idp/laf/TitanLookAndFeel.java | 48 ++ src/org/idp/laf/TitanTheme.java | 141 ++++ theme/.idp_scheme/.ui_colors | 271 -------- theme/.idp_scheme/.ui_fonts | 40 -- theme/.idp_scheme/.ui_gradients | 0 theme/.idp_scheme/123/.ui_colors | 293 --------- theme/.idp_scheme/123/.ui_fonts | 40 -- theme/.idp_scheme/123/.ui_gradients | 0 theme/editor.zip | Bin 0 -> 30722 bytes theme/theme.zip | Bin 84132 -> 0 bytes update/org-idp-laf-1.2.0.nbm | Bin 0 -> 28033 bytes update/updates.xml | 4 +- 20 files changed, 1480 insertions(+), 889 deletions(-) create mode 100644 src/org/idp/laf/DarkIconFilter.java create mode 100644 src/org/idp/laf/TitanLookAndFeel.java create mode 100644 src/org/idp/laf/TitanTheme.java delete mode 100644 theme/.idp_scheme/.ui_colors delete mode 100644 theme/.idp_scheme/.ui_fonts delete mode 100644 theme/.idp_scheme/.ui_gradients delete mode 100644 theme/.idp_scheme/123/.ui_colors delete mode 100644 theme/.idp_scheme/123/.ui_fonts delete mode 100644 theme/.idp_scheme/123/.ui_gradients create mode 100644 theme/editor.zip delete mode 100644 theme/theme.zip create mode 100644 update/org-idp-laf-1.2.0.nbm diff --git a/manifest.mf b/manifest.mf index 9cc33e4..a9adfd1 100644 --- a/manifest.mf +++ b/manifest.mf @@ -1,7 +1,7 @@ Manifest-Version: 1.0 AutoUpdate-Show-In-Client: true OpenIDE-Module: org.idp.laf/1 -OpenIDE-Module-Implementation-Version: 1 +OpenIDE-Module-Implementation-Version: 0 OpenIDE-Module-Localizing-Bundle: org/idp/laf/Bundle.properties OpenIDE-Module-Install: org/idp/laf/Installer.class OpenIDE-Module-Requires: org.openide.windows.WindowManager diff --git a/nbproject/project.properties b/nbproject/project.properties index 4c2c3b8..03bf977 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -5,4 +5,4 @@ javadoc.arch=${basedir}/arch.xml nbm.homepage=http://idp-crew.com/index.php/projects/laf/ nbm.module.author=Clochard Pagan nbm.needs.restart=true -spec.version.base=1.1 +spec.version.base=1.2 diff --git a/src/org/idp/laf/Bundle.properties b/src/org/idp/laf/Bundle.properties index 01516f3..6ffaf46 100644 --- a/src/org/idp/laf/Bundle.properties +++ b/src/org/idp/laf/Bundle.properties @@ -2,4 +2,6 @@ OpenIDE-Module-Display-Category=Base IDE OpenIDE-Module-Long-Description=\ This plugin was designed only to compose well readable and enoght radk theme for Netbeans, But day by day it was enlarging - and now it is what it is. OpenIDE-Module-Name=[idP!] Crew LAF +LBL_TITAN=[idP!] Titan Theme +LBL_TITAN_EDITOR=idP! OpenIDE-Module-Short-Description=Editor for Netbeans Metal Look and Feel diff --git a/src/org/idp/laf/Color.java b/src/org/idp/laf/Color.java index d2187f6..61b3303 100644 --- a/src/org/idp/laf/Color.java +++ b/src/org/idp/laf/Color.java @@ -9,8 +9,7 @@ import java.io.Serializable; import javax.swing.plaf.ColorUIResource; import static org.idp.laf.Color.ColorClass.AT; import static org.idp.laf.Color.ColorClass.SF; -import static org.idp.laf.Color.ColorClass.SS; -import sun.swing.PrintColorUIResource; +//import static org.idp.laf.Color.ColorClass.SS; /** * @author Edward M. Kagan @@ -21,7 +20,7 @@ public class Color implements Serializable{ public enum ColorClass { SF (javax.swing.plaf.ColorUIResource.class), - SS (sun.swing.PrintColorUIResource.class), + // SS (sun.swing.PrintColorUIResource.class), AT (java.awt.Color.class); private final Class cls; @@ -86,10 +85,10 @@ public class Color implements Serializable{ { this.cls = SF; } - else if (vals[1].equals("SS")) - { - this.cls = SS; - } +// else if (vals[1].equals("SS")) +// { +// this.cls = SS; +// } else if (vals[1].equals("AT")) { this.cls = AT; @@ -125,10 +124,10 @@ public class Color implements Serializable{ javax.swing.plaf.ColorUIResource res = new ColorUIResource(cc); return res; } - case SS : { - sun.swing.PrintColorUIResource res = new PrintColorUIResource(cc.getRGB(), cc); - return res; - } +// case SS : { +// sun.swing.PrintColorUIResource res = new PrintColorUIResource(cc.getRGB(), cc); +// return res; +// } case AT : { return cc; } @@ -178,6 +177,12 @@ public class Color implements Serializable{ this.G = obj.getGreen(); this.R = obj.getRed(); } + + public String getHEX () + { + java.awt.Color cc = new java.awt.Color(R, G, B, A); + return String.format("#%06X", (0xFFFFFF & cc.getRGB())); + } } diff --git a/src/org/idp/laf/DarkIconFilter.java b/src/org/idp/laf/DarkIconFilter.java new file mode 100644 index 0000000..7d9e01d --- /dev/null +++ b/src/org/idp/laf/DarkIconFilter.java @@ -0,0 +1,88 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2013 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + * + * Portions Copyrighted 2013 Sun Microsystems, Inc. + */ +package org.idp.laf; + +import java.awt.Color; +import java.awt.image.RGBImageFilter; + +/** + * For dark LaFs it inverts icon brightness (=inverts icon image to obtain dark icon, + * then inverts its hue to restore original colors). + * + * @author P. Somol + */ +public class DarkIconFilter extends RGBImageFilter { + + /** in dark LaFs brighten all icons; 0.0f = no change, 1.0f = maximum brightening */ + private static final float DARK_ICON_BRIGHTEN = 0.1f; + + @Override + public int filterRGB(int x, int y, int color) { + int a = color & 0xff000000; + int rgb[] = decode(color); + int inverted[] = invert(rgb); + int result[] = invertHueBrighten(inverted, DARK_ICON_BRIGHTEN); + return a | encode(result); + } + + private int[] invert(int[] rgb) { + return new int[]{255-rgb[0], 255-rgb[1], 255-rgb[2]}; + } + + private int[] invertHueBrighten(int[] rgb, float brighten) { + float hsb[] = new float[3]; + Color.RGBtoHSB(rgb[0], rgb[1], rgb[2], hsb); + return decode(Color.HSBtoRGB(hsb[0] > 0.5f ? hsb[0]-0.5f : hsb[0]+0.5f, hsb[1], hsb[2]+(1.0f-hsb[2])*brighten)); + } + + private int[] decode(int rgb) { + return new int[]{(rgb & 0x00ff0000) >> 16, (rgb & 0x0000ff00) >> 8, rgb & 0x000000ff}; + } + private int encode(int[] rgb) { + return (toBoundaries(rgb[0]) << 16) | (toBoundaries(rgb[1]) << 8) | toBoundaries(rgb[2]); + } + + private int toBoundaries(int color) { + return Math.max(0,Math.min(255,color)); + } + +} diff --git a/src/org/idp/laf/Installer.java b/src/org/idp/laf/Installer.java index 15cdeec..4b9602e 100644 --- a/src/org/idp/laf/Installer.java +++ b/src/org/idp/laf/Installer.java @@ -5,17 +5,25 @@ */ package org.idp.laf; +import java.util.prefs.Preferences; import javax.swing.SwingUtilities; +import javax.swing.UIManager; import org.openide.modules.ModuleInstall; +import org.openide.util.NbBundle; +import org.openide.util.NbPreferences; +import org.openide.windows.WindowManager; /** * @author Edward M. Kagan */ public class Installer extends ModuleInstall { + private static boolean try_to_load_companion_colors = false; + @Override public void restored() { + SwingUtilities.invokeLater(new Runnable() { @Override @@ -24,6 +32,32 @@ public class Installer extends ModuleInstall Kernel.load_kernel(); } }); + + + WindowManager.getDefault().invokeWhenUIReady( new Runnable() + { + @Override + public void run() { + Kernel.load_companion (); + } + }); + + + } + + + + @Override + public void validate() throws IllegalStateException + { + Preferences prefs = NbPreferences.root().node( "laf" ); //NOI18N + if( !prefs.getBoolean("idp.titan.installed", false) ) { //NOI18N + prefs.put( "laf", TitanLookAndFeel.class.getName() ); //NOI18N + } + prefs.putBoolean("idp.titan.installed", true ); //NOI18N + TitanLookAndFeel.self_install(); } + + } diff --git a/src/org/idp/laf/Kernel.java b/src/org/idp/laf/Kernel.java index ba64fe0..b568f9a 100644 --- a/src/org/idp/laf/Kernel.java +++ b/src/org/idp/laf/Kernel.java @@ -5,6 +5,7 @@ */ package org.idp.laf; +import java.awt.Font; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; @@ -13,6 +14,7 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Method; import java.nio.charset.Charset; import java.nio.file.FileSystems; import java.nio.file.Files; @@ -21,7 +23,14 @@ import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Random; +import java.util.concurrent.Callable; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.SwingUtilities; +import javax.swing.UIDefaults; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.CompoundBorder; @@ -30,7 +39,11 @@ import javax.swing.border.LineBorder; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.metal.DefaultMetalTheme; import javax.swing.plaf.metal.MetalLookAndFeel; +import javax.swing.text.html.HTMLEditorKit; +import javax.swing.text.html.StyleSheet; import org.openide.util.Exceptions; +import org.openide.util.Lookup; +import org.openide.util.NbBundle; import org.openide.windows.WindowManager; /** @@ -38,11 +51,13 @@ import org.openide.windows.WindowManager; */ public class Kernel { + public static Color[] color_scheme_loaded; + private static final String scheme_file_name = "netbeans.idp_scheme"; public static void load_kernel () { - if (prepare_metal_laf ()) + if (prepare_titan_laf ()) { String nb_etc = retrieve_netbeans_etc_dir(); setup_font_antialiaing_hints(nb_etc); @@ -50,21 +65,111 @@ public class Kernel { String cfh_dir = retrieve_app_folder(); boolean a = (new File (cfh_dir).mkdirs()); load_setup (cfh_dir); + TitanTheme.self_tuneup(color_scheme_loaded); + reset_html_link_color(); + apply_border_managment_hints(); + reloadUI(); } else { - System.err.println("Unable to set Metall Look And Feel - no " - + "modifications done. Follow your ugly way of live."); + String message = "\"Titan\" Look and Feel is not selected" + + " - no modifications done. Follow your ugly way of live."; + JOptionPane.showMessageDialog(new JFrame(), message, "Titan is not selected!", + JOptionPane.ERROR_MESSAGE); } + } + + private static boolean prepare_titan_laf () + { + UIManager.put("nb.forceui", true); + UIManager.put("netbeans.plaf.disable.ui.customizations", false); + return UIManager.getLookAndFeel().getName().equals(NbBundle.getMessage(TitanLookAndFeel.class, "LBL_TITAN")); + } + + private static boolean setup_font_antialiaing_hints (String nb_etc) + { + try + { + System.setProperty("awt.useSystemAAFontSettings","lcd"); + System.setProperty("swing.aatext", "true"); + + Path path = FileSystems.getDefault().getPath(nb_etc, "netbeans.conf"); + if( Files.isWritable(path)) + { + + List linesL = Files.readAllLines(path); + String [] lines = new String[linesL.size()]; + + int i = 0; + for (String str : linesL) + { + lines[i] = str; + i++; + } + + for (i =0; i < lines.length; i ++) + { + if (lines[i].contains("netbeans_default_options=")) + { + if (!lines[i].contains("-J-Dawt.useSystemAAFontSettings")) + { + System.err.println("No rendering hints defined - fixing..."); + String [] parts = lines[i].split("\""); + String new_line = parts[0] + "\"" + parts[1] + " -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd" + "\""; + lines[i] = new_line; + write_scheme(nb_etc + "netbeans.conf", lines); + System.out.println("Restart Netbeabs to see the effect."); + } + } + } + return true; + } + else + { + System.err.println("Unable to fix config - bye-bye :("); + return false; + } + } + catch (IOException ex) + { + Exceptions.printStackTrace(ex); + System.err.println("Unable to apply rendering hints :( Sorry..."); + return false; + } + } + + private static void apply_border_managment_hints () + { + +// UIManager.put("ComboBoxUI", "javax.swing.plaf.basic.BasicComboBoxUI"); +// UIManager.put("SliderUI", "javax.swing.plaf.basic.BasicSliderUI"); +// UIManager.put("TreeUI", "javax.swing.plaf.basic.BasicTreeUI"); + + javax.swing.border.EmptyBorder invisable_border = new EmptyBorder(0,0,0,0); + UIManager.put ("EditorPane.border", invisable_border); // Editor FUCKING LINE! + + javax.swing.border.EmptyBorder spinner_border = new EmptyBorder(1,1,1,1); + UIManager.put("Spinner.border", spinner_border); + UIManager.put("Spinner.arrowButtonBorder", spinner_border); - UIManager.put("ComboBoxUI", "javax.swing.plaf.basic.BasicComboBoxUI"); - UIManager.put("SliderUI", "javax.swing.plaf.basic.BasicSliderUI"); + + + UIManager.put ("TabbedContainer.editor.outerBorder", + new LineBorder(new java.awt.Color(24, 24, 24, 255), 1)); // Editor border + + javax.swing.border.LineBorder light_dark_bodrer = + new LineBorder(new java.awt.Color(0, 0, 0, 31), 2); + UIManager.put ("TabbedContainer.view.outerBorder", light_dark_bodrer); // Navigator/Project/etc. round border!! + // + + javax.swing.border.CompoundBorder buttons_border = + new CompoundBorder(light_dark_bodrer, new EmptyBorder(4,6,4,6)); - String [] letsNULLit = { -// "Button.border", -// "ToggleButton.border", + String [] buttonized_components = { + "ToggleButton.border", + "Button.border", "CheckBox.border", "DesktopIcon.border", "ToggleButton.border", @@ -72,139 +177,83 @@ public class Kernel { "PasswordField.border", "TextField.border", "RadioButton.border", - //, "TextArea.border", "TextPane.border", "SplitPane.border" - - - //"Nb.Desktop.border", - //"TabbedContainer.editor.outerBorder", - //"TabbedContainer.view.outerBorder", - //"nb.explorer.ministatusbar.border" - - -} ; - String [] menuShit ={ - -"CheckBoxMenuItem.border", -"ScrollPane.border", -"RadioButtonMenuItem.border", -"PopupMenu.border" - }; + } ; - - String [] status = + for (String o : buttonized_components) { - "Nb.Editor.Toolbar.border", - "Nb.Editor.Status.leftBorder", - "Nb.Editor.Status.rightBorder", - "Nb.Editor.Status.onlyOneBorder", - "Nb.Explorer.Status.border", - "Nb.Editor.Status.innerBorder", - "Table.scrollPaneBorder", - "TableHeader.cellBorder", - - //"ToolBar.border", - - "OptionPane.border", -//"TitledBorder.border", -"Tree.editorBorder", -"Table.focusCellHighlightBorder", -"ToolTip.border", -"List.focusCellHighlightBorder" -//"ProgressBar.border" - - - - }; - - javax.swing.border.EmptyBorder spbd = new EmptyBorder(1,1,1,1); - - UIManager.put("Spinner.border", spbd); - UIManager.put("Spinner.arrowButtonBorder", spbd); - - - javax.swing.border.EmptyBorder eb = new EmptyBorder(1,1,1,1); - javax.swing.border.LineBorder bdT = new LineBorder(java.awt.Color.RED, 1); - javax.swing.border.LineBorder bd1 = new LineBorder(java.awt.Color.BLUE, 1); - javax.swing.border.LineBorder bd2 = new LineBorder(java.awt.Color.GREEN, 1); - javax.swing.border.LineBorder bd3 = new LineBorder(java.awt.Color.PINK, 1); - - java.awt.Color cc = new java.awt.Color(0, 0, 0, 31); - - javax.swing.border.LineBorder lb1 = new LineBorder(cc, 2); - javax.swing.border.LineBorder lb2 = new LineBorder(cc, 2); - javax.swing.border.EmptyBorder epp = new EmptyBorder(4,6,4,6); - javax.swing.border.CompoundBorder cpp = new CompoundBorder(lb2, epp); - - - - - java.awt.Color ebdc = new java.awt.Color(24, 24, 24, 255); - javax.swing.border.LineBorder TabbedContainerEditoBrd = new LineBorder(ebdc, 1); - UIManager.put ("TabbedContainer.editor.outerBorder", TabbedContainerEditoBrd); // Editor round border!! - - - UIManager.put ("TabbedContainer.view.outerBorder", lb1); // Navigator/Project/etc. round border!! - - // Button managment here! - UIManager.put ("ToggleButton.border", cpp); - UIManager.put ("Button.border", cpp); - - - // Menu managment NP! + UIManager.put(o, buttons_border); + } + // + // + javax.swing.border.EmptyBorder mainMenuBorder = new EmptyBorder(2,4,2,4); javax.swing.border.EmptyBorder itemBorder = new EmptyBorder(4,4,4,4); - UIManager.put ("MenuBar.border", cpp); + UIManager.put ("MenuBar.border", buttons_border); UIManager.put ("Menu.border", mainMenuBorder); UIManager.put ("MenuItem.border", itemBorder); - UIManager.put ("ComboBox.border", itemBorder); + + - for (String o : letsNULLit) - { - UIManager.put(o, cpp); - } + + String [] side_components ={ + "CheckBoxMenuItem.border", + "ScrollPane.border", + "RadioButtonMenuItem.border", + "PopupMenu.border", + "ComboBox.border" + }; - for (String o : menuShit) + javax.swing.border.EmptyBorder empty_1p_border = new EmptyBorder(1,1,1,1); + + for (String o : side_components) { - UIManager.put(o, eb); + UIManager.put(o, empty_1p_border); } + // + // + javax.swing.border.EmptyBorder ministatusbarBorder = new EmptyBorder(2,4,2,4); UIManager.put ("nb.explorer.ministatusbar.border", ministatusbarBorder); - - - javax.swing.border.EmptyBorder status_border = new EmptyBorder(4,2,4,2); + + String [] status = + { + "Nb.Editor.Toolbar.border", + "Nb.Editor.Status.leftBorder", + "Nb.Editor.Status.rightBorder", + "Nb.Editor.Status.onlyOneBorder", + "Nb.Explorer.Status.border", + "Nb.Editor.Status.innerBorder", + "Table.scrollPaneBorder", + "TableHeader.cellBorder", + "OptionPane.border", + "Tree.editorBorder", + "Table.focusCellHighlightBorder", + "ToolTip.border", + "List.focusCellHighlightBorder", + "nb.quicksearch.border" + }; for (String o : status) { UIManager.put(o, status_border); } + // - - - - javax.swing.border.EmptyBorder ceb = new EmptyBorder(0,0,0,0); - UIManager.put ("EditorPane.border", ceb); // Editor FUCKING LINE! - -// -// Obejct[] ooo = new Obejct[] -// -// for (String o : Keys.borders) -// { -// UIManager.put(o, ceb); -// //System.out.println(o + " : " + UIManager.getDefaults().get(o)); -// } - - - +// UIManager.put("nb.forceui", true); +// UIManager.put("netbeans.plaf.disable.ui.customizations", false); } + + // + private static String retrieve_app_folder () { if (System.getProperty("os.name").startsWith("Windows")) { @@ -214,90 +263,16 @@ public class Kernel { } } - - private static boolean prepare_metal_laf () - { - try { - UIManager.getDefaults().clear(); - MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme()); - UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); - return true; - } catch (ClassNotFoundException ex) { - Exceptions.printStackTrace(ex); - return false; - } catch (InstantiationException ex) { - Exceptions.printStackTrace(ex); - return false; - } catch (IllegalAccessException ex) { - Exceptions.printStackTrace(ex); - return false; - } catch (UnsupportedLookAndFeelException ex) { - Exceptions.printStackTrace(ex); - return false; - } - } - - private static String retrieve_netbeans_etc_dir () { String nb_home = System.getProperty("netbeans.home"); String nb_conf = nb_home.substring(0, nb_home.length() - "platform".length()) + "etc" + File.separator; return nb_conf; } + // + - - private static boolean setup_font_antialiaing_hints (String nb_etc) - { - try - { - System.setProperty("awt.useSystemAAFontSettings","lcd"); - System.setProperty("swing.aatext", "true"); - System.setProperty("nb.useSwingHtmlRendering", "true"); - - Path path = FileSystems.getDefault().getPath(nb_etc, "netbeans.conf"); - if( Files.isWritable(path)) - { - - List linesL = Files.readAllLines(path); - String [] lines = new String[linesL.size()]; - - int i = 0; - for (String str : linesL) - { - lines[i] = str; - i++; - } - - for (i =0; i < lines.length; i ++) - { - if (lines[i].contains("netbeans_default_options=")) - { - if (!lines[i].contains("-J-Dawt.useSystemAAFontSettings")) - { - System.err.println("No rendering hints defined - fixing..."); - String [] parts = lines[i].split("\""); - String new_line = parts[0] + "\"" + parts[1] + " -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd" + "\""; - lines[i] = new_line; - write_scheme(nb_etc + "netbeans.conf", lines); - System.out.println("Restart Netbeabs to see the effect."); - } - } - } - return true; - } - else - { - System.err.println("Unable to fix config - bye-bye :("); - return false; - } - } - catch (IOException ex) - { - Exceptions.printStackTrace(ex); - System.err.println("Unable to apply rendering hints :( Sorry..."); - return false; - } - } + // private static boolean load_setup (String nb_etc) { @@ -309,7 +284,11 @@ public class Kernel { init_scheme(); if (save_scheme(path)) { - return read_scheme (path); + if (read_scheme (path)) + { + reloadUI(); + return true; + } } else { @@ -318,10 +297,13 @@ public class Kernel { } else { - return read_scheme (path); + if (read_scheme (path)) + { + reloadUI(); + return true; + } } - - + return false; } private static Random rand = new Random(System.currentTimeMillis()); @@ -340,11 +322,13 @@ public class Kernel { File scheme_file = new File(nb_etc + File.separator + scheme_file_name); String path = scheme_file.getAbsolutePath(); read_scheme (path); + reloadUI(); } public static void load (String path) { read_scheme (path); + reloadUI(); } private static void init_scheme () @@ -360,14 +344,12 @@ public class Kernel { ColorUIResource oo = (ColorUIResource) o; Color c = new Color(Keys.color_keys[i], Color.ColorClass.SF, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); color_map.add(c); - //System.out.println( "\"" + Keys.color_keys[i] + "\","); } else if (o.getClass().equals(java.awt.Color.class)) { java.awt.Color oo = (java.awt.Color) o; Color c = new Color(Keys.color_keys[i], Color.ColorClass.AT, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); color_map.add(c); - //System.out.println( "\"" + Keys.color_keys[i] + "\","); } } else @@ -375,7 +357,6 @@ public class Kernel { ColorUIResource oo = new ColorUIResource(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); Color c = new Color(Keys.color_keys[i], Color.ColorClass.SF, oo.getRed(), oo.getGreen(), oo.getBlue(), oo.getAlpha(),"..."); color_map.add(c); - //System.out.println( " \"" + Keys.color_keys[i] + "\","); } } @@ -416,8 +397,6 @@ public class Kernel { // } } - public static Color[] color_scheme_loaded; - private static boolean read_scheme(String scheme_file) { try @@ -427,14 +406,20 @@ public class Kernel { for (String s : C) { - color_map.add(new Color (s)); + Color toLoad = new Color(s); + for (String key : Keys.color_keys) + { + if (toLoad.getName().equals(key)) + { + color_map.add(toLoad); + break; + } + } } color_scheme_loaded = new Color[color_map.size()]; color_map.toArray(color_scheme_loaded); - reloadUI(); - return true; } catch (IOException ex) @@ -476,7 +461,10 @@ public class Kernel { bw.close(); } - public static Color[] getColors() { + // + + public static Color[] getColors() + { if (color_scheme_loaded == null) { return new Color[0]; @@ -486,5 +474,73 @@ public class Kernel { return color_scheme_loaded; } } + + + private static void reset_html_link_color() + { + for (int i = 0; i < color_scheme_loaded.length; i ++) + { + if (color_scheme_loaded[i].getName().equals("nb.laf.postinstall.callable.httplink"))// NOI18N + { + final int index = i; + UIManager.put( "nb.laf.postinstall.callable", new Callable() { //NOI18N + + @Override + public Object call() throws Exception { + HTMLEditorKit kit = new HTMLEditorKit(); + StyleSheet newStyleSheet = new StyleSheet(); + Font f = new JLabel().getFont(); + newStyleSheet.addRule(new StringBuffer("body { font-size: ").append(f.getSize()) // NOI18N + .append("; font-family: ").append(f.getName()).append("; }").toString()); // NOI18N + newStyleSheet.addRule( "a { color: " +color_scheme_loaded[index].getHEX() + "; text-decoration: underline}"); //NOI18N + newStyleSheet.addStyleSheet(kit.getStyleSheet()); + kit.setStyleSheet(newStyleSheet); + return null; + } + }); + break; + } + } + } + + + private static final String COLOR_MODEL = "org.netbeans.modules.options.colors.ColorModel"; //NOI18N + private static final String TITAN_THEME_NAME = NbBundle.getMessage(Kernel.class, "LBL_TITAN_EDITOR"); + static void load_companion() { + + ClassLoader cl = Lookup.getDefault().lookup( ClassLoader.class ); + if( null == cl ) + { + cl = Installer.class.getClassLoader(); + } + + try + { + Class clazz = cl.loadClass( COLOR_MODEL ); + Object colorModel = clazz.newInstance(); + Method get_profile_method = clazz.getDeclaredMethod( "getCurrentProfile", new Class[0] ); //NOI18N + Object res = get_profile_method.invoke( colorModel, new Object[0] ); + + if (res != null && !TITAN_THEME_NAME.equals(res)) + { + + Method set_profile = clazz.getDeclaredMethod( "setCurrentProfile", String.class ); //NOI18N + set_profile.invoke( colorModel, TITAN_THEME_NAME ); + } + else + { + String message = "\"Titan\" Editor Theme is not available - please, download it from:" + + "http://idp-crew.com/index.php/projects/laf/"; + JOptionPane.showMessageDialog(new JFrame(), message, "Titan Editor Theme is not available!", + JOptionPane.ERROR_MESSAGE); + } + } catch( Exception ex ) {} + + + } + + + + } diff --git a/src/org/idp/laf/Keys.java b/src/org/idp/laf/Keys.java index cc049bc..65bc8ed 100644 --- a/src/org/idp/laf/Keys.java +++ b/src/org/idp/laf/Keys.java @@ -5,6 +5,9 @@ */ package org.idp.laf; +import javax.swing.UIManager; +import javax.swing.plaf.ColorUIResource; + /** * @author Edward M. Kagan */ @@ -90,6 +93,7 @@ public class Keys { "TabbedContainer.sliding.tabsBorder", "TabbedContainer.sliding.outerBorder", "nb.explorer.ministatusbar.border", + "nb.quicksearch.border" }; @@ -350,32 +354,32 @@ public class Keys { "Viewport.background", "Viewport.foreground", - "activeCaption", - "activeCaptionBorder", - "activeCaptionText", - "control", - "controlDkShadow", - "controlHighlight", - "controlLtHighlight", - "controlShadow", - "controlText", - "desktop", - "inactiveCaption", - "inactiveCaptionBorder", - "inactiveCaptionText", - "info", - "infoText", - "menu", - "menuText", - "scrollbar", - "text", - "textHighlight", - "textHighlightText", - "textInactiveText", - "textText", - "window", - "windowBorder", - "windowText", + "activeCaption", + "activeCaptionBorder", + "activeCaptionText", + "control", + "controlDkShadow", + "controlHighlight", + "controlLtHighlight", + "controlShadow", + "controlText", + "desktop", + "inactiveCaption", + "inactiveCaptionBorder", + "inactiveCaptionText", + "info", + "infoText", + "menu", + "menuText", + "scrollbar", +// "text", + "textHighlight", + "textHighlightText", + "textInactiveText", + "textText", + "window", + "windowBorder", + "windowText", "PropSheet.setBackground", "PropSheet.selectedSetBackground", "PropSheet.setForeground", @@ -447,7 +451,864 @@ public class Keys { "ToggleButton.focus", "ToggleButton.select", "ToolTip.backgroundInactive", - "ToolTip.foregroundInactive" + "ToolTip.foregroundInactive", + "primary1", + "primary2", + "primary3", + "secondary1", + "secondary2", + "secondary3", + "black", + "white", + "Nb.ScrollPane.Border.color", + "nb.explorer.unfocusedSelBg", + "nb.explorer.unfocusedSelFg", + + "nb.heapview.border1", + "nb.heapview.border2", + "nb.heapview.border3", + "nb.heapview.foreground", + "nb.heapview.background1", + "nb.heapview.background2", + "nb.heapview.grid1.start", + "nb.heapview.grid1.end", + "nb.heapview.grid2.start" + ,"nb.heapview.grid2.end", + "nb.heapview.grid3.start", + "nb.heapview.grid3.end", + "nb.heapview.grid4.start", + "nb.heapview.grid4.end", + + + + //////////////////////////////////////////////// + "nb.bugtracking.comment.background", + "nb.bugtracking.comment.foreground", + "nb.bugtracking.label.highlight", + "nb.bugtracking.table.background", + "nb.bugtracking.table.background.alternate", + "nb.bugtracking.new.color", + "nb.bugtracking.modified.color", + "nb.bugtracking.obsolete.color", + "nb.bugtracking.conflict.color", + "nb.html.link.foreground", + "nb.html.link.foreground.hover", + "nb.html.link.foreground.visited", + "nb.html.link.foreground.focus", + "nb.startpage.bottombar.background", + "nb.startpage.topbar.background", + "nb.startpage.border.color", + "nb.startpage.tab.border1.color", + "nb.startpage.tab.border2.color", + "nb.startpage.rss.details.color", + "nb.startpage.rss.header.color", + "nb.startpage.contentheader.color1", + "nb.startpage.contentheader.color2", + "nb.editor.errorstripe.caret.color", + "nb.diff.added.color", + "nb.diff.changed.color", + "nb.diff.deleted.color", + "nb.diff.applied.color", + "nb.diff.notapplied.color", + "nb.diff.unresolved.color", + "nb.diff.sidebar.changed.color", + "nb.diff.sidebar.deleted.color", + "nb.versioning.tooltip.background.color", + "nb.formdesigner.gap.fixed.color", + "nb.formdesigner.gap.resizing.color", + "nb.formdesigner.gap.min.color", + "nbProgressBar.Foreground", + "nbProgressBar.popupDynaText.foreground", + "nb.debugger.debugging.currentThread", + "nb.debugger.debugging.highlightColor", + "nb.debugger.debugging.BPHits", + "nb.debugger.debugging.bars.BPHits", + "nb.debugger.debugging.bars.currentThread", + "nb.versioning.added.color", + "nb.versioning.modified.color", + "nb.versioning.deleted.color", + "nb.versioning.conflicted.color", + "nb.versioning.ignored.color", + "nb.versioning.remotemodification.color", + "nb.dataview.tablecell.edited.selected.foreground", + "nb.dataview.tablecell.edited.unselected.foreground", + "nb.autoupdate.search.highlight", + "selection.highlight", + "textArea.background", + "Nb.browser.picker.background.light", + "Nb.browser.picker.foreground.light", + "nb.search.sandbox.highlight", + "nb.search.sandbox.regexp.wrong", + + "nb.laf.postinstall.callable.httplink" + }; + + + + public static String [] all_keys = { + "AbstractButton.clickText", +"AbstractDocument.additionText", +"AbstractDocument.deletionText", +"AbstractDocument.redoText", +"AbstractDocument.styleChangeText", +"AbstractDocument.undoText", +"AbstractUndoableEdit.redoText", +"AbstractUndoableEdit.undoText", +"AuditoryCues.allAuditoryCues", +"AuditoryCues.cueList", +"AuditoryCues.noAuditoryCues", +"Button.background", +"Button.border", +"Button.darkShadow", +"Button.defaultButtonFollowsFocus", +"Button.disabledText", +"Button.focusInputMap", +"Button.font", +"Button.foreground", +"Button.highlight", +"Button.light", +"Button.margin", +"Button.opaque", +"Button.select", +"Button.shadow", +"Button.textIconGap", +"Button.textShiftOffset", +"ButtonUI", +"CheckBox.background", +"CheckBox.border", +"CheckBox.disabledText", +"CheckBox.focusInputMap", +"CheckBox.font", +"CheckBox.foreground", +"CheckBox.icon", +"CheckBox.margin", +"CheckBox.select", +"CheckBox.textIconGap", +"CheckBox.textShiftOffset", +"CheckBoxMenuItem.acceleratorDelimiter", +"CheckBoxMenuItem.acceleratorFont", +"CheckBoxMenuItem.acceleratorForeground", +"CheckBoxMenuItem.acceleratorSelectionForeground", +"CheckBoxMenuItem.arrowIcon", +"CheckBoxMenuItem.background", +"CheckBoxMenuItem.border", +"CheckBoxMenuItem.borderPainted", +"CheckBoxMenuItem.checkIcon", +"CheckBoxMenuItem.dashIcon", +"CheckBoxMenuItem.disabledBackground", +"CheckBoxMenuItem.disabledForeground", +"CheckBoxMenuItem.font", +"CheckBoxMenuItem.foreground", +"CheckBoxMenuItem.margin", +"CheckBoxMenuItem.selectionBackground", +"CheckBoxMenuItem.selectionForeground", +"CheckBoxMenuItemUI", +"CheckBoxUI", +"ColorChooser.background", +"ColorChooser.cancelText", +"ColorChooser.font", +"ColorChooser.foreground", +"ColorChooser.hsbBlueText", +"ColorChooser.hsbBrightnessText", +"ColorChooser.hsbDisplayedMnemonicIndex", +"ColorChooser.hsbGreenText", +"ColorChooser.hsbHueText", +"ColorChooser.hsbMnemonic", +"ColorChooser.hsbNameText", +"ColorChooser.hsbRedText", +"ColorChooser.hsbSaturationText", +"ColorChooser.okText", +"ColorChooser.previewText", +"ColorChooser.resetMnemonic", +"ColorChooser.resetText", +"ColorChooser.rgbBlueMnemonic", +"ColorChooser.rgbBlueText", +"ColorChooser.rgbDisplayedMnemonicIndex", +"ColorChooser.rgbGreenMnemonic", +"ColorChooser.rgbGreenText", +"ColorChooser.rgbMnemonic", +"ColorChooser.rgbNameText", +"ColorChooser.rgbRedMnemonic", +"ColorChooser.rgbRedText", +"ColorChooser.sampleText", +"ColorChooser.swatchesDefaultRecentColor", +"ColorChooser.swatchesDisplayedMnemonicIndex", +"ColorChooser.swatchesMnemonic", +"ColorChooser.swatchesNameText", +"ColorChooser.swatchesRecentSwatchSize", +"ColorChooser.swatchesRecentText", +"ColorChooser.swatchesSwatchSize", +"ColorChooserUI", +"ComboBox.ancestorInputMap", +"ComboBox.background", +"ComboBox.buttonBackground", +"ComboBox.buttonDarkShadow", +"ComboBox.buttonHighlight", +"ComboBox.buttonShadow", +"ComboBox.disabledBackground", +"ComboBox.disabledForeground", +"ComboBox.font", +"ComboBox.foreground", +"ComboBox.isEnterSelectablePopup", +"ComboBox.selectionBackground", +"ComboBox.selectionForeground", +"ComboBox.timeFactor", +"ComboBox.togglePopupText", +"ComboBoxUI", +"Desktop.ancestorInputMap", +"Desktop.background", +"Desktop.minOnScreenInsets", +"DesktopIcon.border", +"DesktopIconUI", +"DesktopPaneUI", +"EditorPane.background", +"EditorPane.border", +"EditorPane.caretBlinkRate", +"EditorPane.caretForeground", +"EditorPane.focusInputMap", +"EditorPane.font", +"EditorPane.foreground", +"EditorPane.inactiveBackground", +"EditorPane.inactiveForeground", +"EditorPane.margin", +"EditorPane.selectionBackground", +"EditorPane.selectionForeground", +"EditorPaneUI", +"FileChooser.acceptAllFileFilterText", +"FileChooser.ancestorInputMap", +"FileChooser.byDateText", +"FileChooser.byNameText", +"FileChooser.cancelButtonMnemonic", +"FileChooser.cancelButtonText", +"FileChooser.chooseButtonText", +"FileChooser.createButtonText", +"FileChooser.desktopName", +"FileChooser.detailsViewIcon", +"FileChooser.directoryDescriptionText", +"FileChooser.directoryOpenButtonMnemonic", +"FileChooser.directoryOpenButtonText", +"FileChooser.fileDescriptionText", +"FileChooser.fileNameLabelMnemonic", +"FileChooser.fileNameLabelText", +"FileChooser.fileSizeGigaBytes", +"FileChooser.fileSizeKiloBytes", +"FileChooser.fileSizeMegaBytes", +"FileChooser.filesOfTypeLabelMnemonic", +"FileChooser.filesOfTypeLabelText", +"FileChooser.helpButtonMnemonic", +"FileChooser.helpButtonText", +"FileChooser.homeFolderIcon", +"FileChooser.listViewIcon", +"FileChooser.lookInLabelMnemonic", +"FileChooser.mac.newFolder", +"FileChooser.mac.newFolder.subsequent", +"FileChooser.newFolderAccessibleName", +"FileChooser.newFolderButtonText", +"FileChooser.newFolderErrorSeparator", +"FileChooser.newFolderErrorText", +"FileChooser.newFolderExistsErrorText", +"FileChooser.newFolderIcon", +"FileChooser.newFolderPromptText", +"FileChooser.newFolderTitleText", +"FileChooser.openButtonMnemonic", +"FileChooser.openButtonText", +"FileChooser.openDialogTitleText", +"FileChooser.openTitleText", +"FileChooser.readOnly", +"FileChooser.saveButtonMnemonic", +"FileChooser.saveButtonText", +"FileChooser.saveDialogFileNameLabelText", +"FileChooser.saveDialogTitleText", +"FileChooser.saveTitleText", +"FileChooser.untitledFileName", +"FileChooser.untitledFolderName", +"FileChooser.upFolderIcon", +"FileChooser.updateButtonMnemonic", +"FileChooser.updateButtonText", +"FileChooser.useSystemExtensionHiding", +"FileChooser.usesSingleFilePane", +"FileChooserUI", +"FileView.computerIcon", +"FileView.directoryIcon", +"FileView.fileIcon", +"FileView.floppyDriveIcon", +"FileView.hardDriveIcon", +"Focus.color", +"FormView.browseFileButtonText", +"FormView.resetButtonText", +"FormView.submitButtonText", +"FormattedTextField.background", +"FormattedTextField.border", +"FormattedTextField.caretBlinkRate", +"FormattedTextField.caretForeground", +"FormattedTextField.focusInputMap", +"FormattedTextField.font", +"FormattedTextField.foreground", +"FormattedTextField.inactiveBackground", +"FormattedTextField.inactiveForeground", +"FormattedTextField.margin", +"FormattedTextField.selectionBackground", +"FormattedTextField.selectionForeground", +"FormattedTextFieldUI", +"IconButton.font", +"InsetBorder.aquaVariant", +"InternalFrame.activeTitleBackground", +"InternalFrame.activeTitleForeground", +"InternalFrame.background", +"InternalFrame.borderColor", +"InternalFrame.borderDarkShadow", +"InternalFrame.borderHighlight", +"InternalFrame.borderLight", +"InternalFrame.borderShadow", +"InternalFrame.closeButtonToolTip", +"InternalFrame.closeIcon", +"InternalFrame.iconButtonToolTip", +"InternalFrame.iconifyIcon", +"InternalFrame.inactiveTitleBackground", +"InternalFrame.inactiveTitleForeground", +"InternalFrame.maxButtonToolTip", +"InternalFrame.maximizeIcon", +"InternalFrame.minimizeIcon", +"InternalFrame.opaque", +"InternalFrame.optionDialogBackground", +"InternalFrame.optionDialogTitleFont", +"InternalFrame.paletteBackground", +"InternalFrame.paletteTitleFont", +"InternalFrame.restoreButtonToolTip", +"InternalFrame.titleFont", +"InternalFrame.windowBindings", +"InternalFrameTitlePane.closeButtonAccessibleName", +"InternalFrameTitlePane.closeButtonOpacity", +"InternalFrameTitlePane.closeButtonText", +"InternalFrameTitlePane.iconifyButtonAccessibleName", +"InternalFrameTitlePane.iconifyButtonOpacity", +"InternalFrameTitlePane.maximizeButtonAccessibleName", +"InternalFrameTitlePane.maximizeButtonOpacity", +"InternalFrameTitlePane.maximizeButtonText", +"InternalFrameTitlePane.minimizeButtonText", +"InternalFrameTitlePane.moveButtonText", +"InternalFrameTitlePane.restoreButtonText", +"InternalFrameTitlePane.sizeButtonText", +"InternalFrameUI", +"IsindexView.prompt", +"Label.background", +"Label.disabledForeground", +"Label.disabledShadow", +"Label.font", +"Label.foreground", +"Label.opaque", +"LabelUI", +"List.background", +"List.cellRenderer", +"List.dropLineColor", +"List.evenRowBackgroundPainter", +"List.focusCellHighlightBorder", +"List.focusInputMap", +"List.focusInputMap.RightToLeft", +"List.font", +"List.foreground", +"List.oddRowBackgroundPainter", +"List.selectionBackground", +"List.selectionForeground", +"List.sourceListBackgroundPainter", +"List.sourceListFocusedSelectionBackgroundPainter", +"List.sourceListSelectionBackgroundPainter", +"List.timeFactor", +"ListUI", +"Menu.acceleratorFont", +"Menu.acceleratorForeground", +"Menu.acceleratorSelectionForeground", +"Menu.arrowIcon", +"Menu.background", +"Menu.border", +"Menu.borderPainted", +"Menu.checkIcon", +"Menu.consumesTabs", +"Menu.crossMenuMnemonic", +"Menu.disabledBackground", +"Menu.disabledForeground", +"Menu.font", +"Menu.foreground", +"Menu.margin", +"Menu.menuPopupOffsetX", +"Menu.menuPopupOffsetY", +"Menu.selectionBackground", +"Menu.selectionForeground", +"Menu.shortcutKeys", +"Menu.submenuPopupOffsetX", +"Menu.submenuPopupOffsetY", +"MenuBar.background", +"MenuBar.backgroundPainter", +"MenuBar.border", +"MenuBar.disabledBackground", +"MenuBar.disabledForeground", +"MenuBar.font", +"MenuBar.foreground", +"MenuBar.highlight", +"MenuBar.margin", +"MenuBar.selectedBackgroundPainter", +"MenuBar.selectionBackground", +"MenuBar.selectionForeground", +"MenuBar.shadow", +"MenuBar.windowBindings", +"MenuBarUI", +"MenuItem.acceleratorDelimiter", +"MenuItem.acceleratorFont", +"MenuItem.acceleratorForeground", +"MenuItem.acceleratorSelectionForeground", +"MenuItem.arrowIcon", +"MenuItem.background", +"MenuItem.border", +"MenuItem.borderPainted", +"MenuItem.checkIcon", +"MenuItem.disabledBackground", +"MenuItem.disabledForeground", +"MenuItem.font", +"MenuItem.foreground", +"MenuItem.margin", +"MenuItem.selectedBackgroundPainter", +"MenuItem.selectionBackground", +"MenuItem.selectionForeground", +"MenuItemUI", +"MenuUI", +"OptionPane.background", +"OptionPane.border", +"OptionPane.buttonAreaBorder", +"OptionPane.buttonClickThreshhold", +"OptionPane.buttonFont", +"OptionPane.cancelButtonMnemonic", +"OptionPane.cancelButtonText", +"OptionPane.errorIcon", +"OptionPane.font", +"OptionPane.foreground", +"OptionPane.informationIcon", +"OptionPane.inputDialogTitle", +"OptionPane.messageAreaBorder", +"OptionPane.messageDialogTitle", +"OptionPane.messageFont", +"OptionPane.messageForeground", +"OptionPane.minimumSize", +"OptionPane.noButtonMnemonic", +"OptionPane.noButtonText", +"OptionPane.okButtonMnemonic", +"OptionPane.okButtonText", +"OptionPane.questionIcon", +"OptionPane.titleText", +"OptionPane.warningIcon", +"OptionPane.windowBindings", +"OptionPane.yesButtonMnemonic", +"OptionPane.yesButtonText", +"OptionPaneUI", +"Panel.background", +"Panel.font", +"Panel.foreground", +"Panel.opaque", +"PanelUI", +"PasswordField.background", +"PasswordField.border", +"PasswordField.caretBlinkRate", +"PasswordField.caretForeground", +"PasswordField.echoChar", +"PasswordField.focusInputMap", +"PasswordField.font", +"PasswordField.foreground", +"PasswordField.inactiveBackground", +"PasswordField.inactiveForeground", +"PasswordField.margin", +"PasswordField.selectionBackground", +"PasswordField.selectionForeground", +"PasswordFieldUI", +"PopupMenu.background", +"PopupMenu.border", +"PopupMenu.consumeEventOnClose", +"PopupMenu.font", +"PopupMenu.foreground", +"PopupMenu.selectedWindowInputMapBindings", +"PopupMenu.selectedWindowInputMapBindings.RightToLeft", +"PopupMenu.selectionBackground", +"PopupMenu.selectionForeground", +"PopupMenuSeparatorUI", +"PopupMenuUI", +"PrintingDialog.abortButtonDisplayedMnemonicIndex", +"PrintingDialog.abortButtonMnemonic", +"PrintingDialog.abortButtonText", +"PrintingDialog.abortButtonToolTipText", +"PrintingDialog.contentAbortingText", +"PrintingDialog.contentInitialText", +"PrintingDialog.contentProgressText", +"PrintingDialog.titleAbortingText", +"PrintingDialog.titleProgressText", +"ProgressBar.background", +"ProgressBar.border", +"ProgressBar.cellLength", +"ProgressBar.cellSpacing", +"ProgressBar.cycleTime", +"ProgressBar.font", +"ProgressBar.foreground", +"ProgressBar.horizontalSize", +"ProgressBar.repaintInterval", +"ProgressBar.selectionBackground", +"ProgressBar.selectionForeground", +"ProgressBar.verticalSize", +"ProgressBarUI", +"ProgressMonitor.progressText", +"RadioButton.background", +"RadioButton.border", +"RadioButton.darkShadow", +"RadioButton.disabledText", +"RadioButton.focusInputMap", +"RadioButton.font", +"RadioButton.foreground", +"RadioButton.highlight", +"RadioButton.icon", +"RadioButton.light", +"RadioButton.margin", +"RadioButton.select", +"RadioButton.shadow", +"RadioButton.textIconGap", +"RadioButton.textShiftOffset", +"RadioButtonMenuItem.acceleratorDelimiter", +"RadioButtonMenuItem.acceleratorFont", +"RadioButtonMenuItem.acceleratorForeground", +"RadioButtonMenuItem.acceleratorSelectionForeground", +"RadioButtonMenuItem.arrowIcon", +"RadioButtonMenuItem.background", +"RadioButtonMenuItem.border", +"RadioButtonMenuItem.borderPainted", +"RadioButtonMenuItem.checkIcon", +"RadioButtonMenuItem.dashIcon", +"RadioButtonMenuItem.disabledBackground", +"RadioButtonMenuItem.disabledForeground", +"RadioButtonMenuItem.font", +"RadioButtonMenuItem.foreground", +"RadioButtonMenuItem.margin", +"RadioButtonMenuItem.selectionBackground", +"RadioButtonMenuItem.selectionForeground", +"RadioButtonMenuItemUI", +"RadioButtonUI", +"RootPane.ancestorInputMap", +"RootPane.defaultButtonWindowKeyBindings", +"RootPaneUI", +"ScrollBar.ancestorInputMap", +"ScrollBar.ancestorInputMap.RightToLeft", +"ScrollBar.background", +"ScrollBar.focusInputMap", +"ScrollBar.focusInputMap.RightToLeft", +"ScrollBar.foreground", +"ScrollBar.maximumThumbSize", +"ScrollBar.minimumThumbSize", +"ScrollBar.thumb", +"ScrollBar.thumbDarkShadow", +"ScrollBar.thumbHighlight", +"ScrollBar.thumbShadow", +"ScrollBar.track", +"ScrollBar.trackHighlight", +"ScrollBar.width", +"ScrollBarUI", +"ScrollPane.ancestorInputMap", +"ScrollPane.ancestorInputMap.RightToLeft", +"ScrollPane.background", +"ScrollPane.border", +"ScrollPane.font", +"ScrollPane.foreground", +"ScrollPaneUI", +"Separator.foreground", +"Separator.highlight", +"Separator.shadow", +"SeparatorUI", +"Slider.background", +"Slider.focus", +"Slider.focusInputMap", +"Slider.focusInputMap.RightToLeft", +"Slider.focusInsets", +"Slider.font", +"Slider.foreground", +"Slider.highlight", +"Slider.horizontalSize", +"Slider.minimumHorizontalSize", +"Slider.minimumVerticalSize", +"Slider.shadow", +"Slider.tickColor", +"Slider.verticalSize", +"SliderUI", +"Spinner.ancestorInputMap", +"Spinner.arrowButtonSize", +"Spinner.background", +"Spinner.editorAlignment", +"Spinner.editorBorderPainted", +"Spinner.font", +"Spinner.foreground", +"SpinnerUI", +"SplitPane.ancestorInputMap", +"SplitPane.background", +"SplitPane.border", +"SplitPane.darkShadow", +"SplitPane.dividerSize", +"SplitPane.highlight", +"SplitPane.leftButtonText", +"SplitPane.rightButtonText", +"SplitPane.shadow", +"SplitPaneDivider.draggingColor", +"SplitPaneDivider.horizontalGradientVariant", +"SplitPaneUI", +"TabbedPane.ancestorInputMap", +"TabbedPane.background", +"TabbedPane.contentBorderInsets", +"TabbedPane.contentOpaque", +"TabbedPane.darkShadow", +"TabbedPane.focus", +"TabbedPane.focusInputMap", +"TabbedPane.font", +"TabbedPane.foreground", +"TabbedPane.highlight", +"TabbedPane.leftTabInsets", +"TabbedPane.light", +"TabbedPane.opaque", +"TabbedPane.rightTabInsets", +"TabbedPane.selectedTabPadInsets", +"TabbedPane.shadow", +"TabbedPane.smallFont", +"TabbedPane.tabAreaInsets", +"TabbedPane.tabInsets", +"TabbedPane.tabRunOverlay", +"TabbedPane.tabsOpaque", +"TabbedPane.tabsOverlapBorder", +"TabbedPane.textIconGap", +"TabbedPane.useSmallLayout", +"TabbedPaneUI", +"Table.ancestorInputMap", +"Table.ancestorInputMap.RightToLeft", +"Table.ascendingSortIcon", +"Table.background", +"Table.descendingSortIcon", +"Table.dropLineColor", +"Table.dropLineShortColor", +"Table.focusCellBackground", +"Table.focusCellForeground", +"Table.focusCellHighlightBorder", +"Table.font", +"Table.foreground", +"Table.gridColor", +"Table.scrollPaneBorder", +"Table.selectionBackground", +"Table.selectionForeground", +"Table.sortIconColor", +"TableHeader.ancestorInputMap", +"TableHeader.background", +"TableHeader.cellBorder", +"TableHeader.focusCellBackground", +"TableHeader.font", +"TableHeader.foreground", +"TableHeaderUI", +"TableUI", +"TextArea.background", +"TextArea.border", +"TextArea.caretBlinkRate", +"TextArea.caretForeground", +"TextArea.focusInputMap", +"TextArea.font", +"TextArea.foreground", +"TextArea.inactiveBackground", +"TextArea.inactiveForeground", +"TextArea.margin", +"TextArea.selectionBackground", +"TextArea.selectionForeground", +"TextAreaUI", +"TextComponent.selectionBackgroundInactive", +"TextField.background", +"TextField.border", +"TextField.caretBlinkRate", +"TextField.caretForeground", +"TextField.darkShadow", +"TextField.focusInputMap", +"TextField.font", +"TextField.foreground", +"TextField.highlight", +"TextField.inactiveBackground", +"TextField.inactiveForeground", +"TextField.light", +"TextField.margin", +"TextField.selectionBackground", +"TextField.selectionForeground", +"TextField.shadow", +"TextFieldUI", +"TextPane.background", +"TextPane.border", +"TextPane.caretBlinkRate", +"TextPane.caretForeground", +"TextPane.focusInputMap", +"TextPane.font", +"TextPane.foreground", +"TextPane.inactiveBackground", +"TextPane.inactiveForeground", +"TextPane.margin", +"TextPane.selectionBackground", +"TextPane.selectionForeground", +"TextPaneUI", +"TitledBorder.aquaVariant", +"TitledBorder.border", +"TitledBorder.font", +"TitledBorder.titleColor", +"ToggleButton.background", +"ToggleButton.border", +"ToggleButton.darkShadow", +"ToggleButton.disabledText", +"ToggleButton.focusInputMap", +"ToggleButton.font", +"ToggleButton.foreground", +"ToggleButton.highlight", +"ToggleButton.light", +"ToggleButton.margin", +"ToggleButton.shadow", +"ToggleButton.textIconGap", +"ToggleButton.textShiftOffset", +"ToggleButtonUI", +"ToolBar.ancestorInputMap", +"ToolBar.background", +"ToolBar.border", +"ToolBar.darkShadow", +"ToolBar.dockingBackground", +"ToolBar.dockingForeground", +"ToolBar.floatingBackground", +"ToolBar.floatingForeground", +"ToolBar.font", +"ToolBar.foreground", +"ToolBar.highlight", +"ToolBar.light", +"ToolBar.shadow", +"ToolBarButton.insets", +"ToolBarButton.margin", +"ToolBarSeparatorUI", +"ToolBarUI", +"ToolTip.background", +"ToolTip.border", +"ToolTip.font", +"ToolTip.foreground", +"ToolTipManager.enableToolTipMode", +"ToolTipUI", +"Tree.ancestorInputMap", +"Tree.background", +"Tree.changeSelectionWithFocus", +"Tree.closedIcon", +"Tree.collapsedIcon", +"Tree.drawsFocusBorderAroundIcon", +"Tree.dropLineColor", +"Tree.editorBorder", +"Tree.expandedIcon", +"Tree.focusInputMap", +"Tree.focusInputMap.RightToLeft", +"Tree.font", +"Tree.foreground", +"Tree.hash", +"Tree.leafIcon", +"Tree.leftChildIndent", +"Tree.line", +"Tree.lineTypeDashed", +"Tree.openIcon", +"Tree.paintLines", +"Tree.rightChildIndent", +"Tree.rightToLeftCollapsedIcon", +"Tree.rowHeight", +"Tree.scrollsOnExpand", +"Tree.selectionBackground", +"Tree.selectionBorderColor", +"Tree.selectionForeground", +"Tree.textBackground", +"Tree.textForeground", +"Tree.timeFactor", +"TreeUI", +"Viewport.background", +"Viewport.font", +"Viewport.foreground", +"ViewportUI", +"_SecurityDecisionIcon", +"activeCaption", +"activeCaptionBorder", +"activeCaptionText", +"control", +"controlDkShadow", +"controlHighlight", +"controlLtHighlight", +"controlShadow", +"controlText", +"desktop", +"html.missingImage", +"html.pendingImage", +"inactiveCaption", +"inactiveCaptionBorder", +"inactiveCaptionText", +"info", +"infoText", +"menu", +"menuText", +"scrollbar", +"text", +"textHighlight", +"textHighlightText", +"textInactiveText", +"textText", +"window", +"windowBorder", +"windowText", + +"nb_workplace_fill", +"customFontSize", +"nbDefaultFontSize", +"Nb.Editor.Status.leftBorder", +"Nb.Editor.Status.innerBorder", +"Nb.Editor.Status.rightBorder", +"Nb.Editor.Status.onlyOneBorder", +"Nb.Editor.Toolbar.border", +"Nb.Editor.ErrorStripe.ScrollBar.Insets", +"Nb.Explorer.Status.border", +"Nb.Explorer.Folder.icon", +"Nb.Explorer.Folder.openedIcon", +"Nb.Desktop.border", +"Nb.Toolbar.ui", +"Nb.Desktop.background", +"nb.output.selectionBackground", +"nb.hyperlink.foreground", +"nb.output.background", +"nb.output.foreground", +"Tree.altbackground", +"PropSheet.setBackground", +"PropSheet.selectedSetBackground", +"PropSheet.setForeground", +"PropSheet.selectedSetForeground", +"PropSheet.disabledForeground", +"PropSheet.selectionBackground", +"PropSheet.selectionForeground", +"PropSheet.customButtonForeground", +"netbeans.ps.buttonColor", +"netbeans.ps.background", +"netbeans.ps.iconmargin", +"netbeans.ps.rowheight", +"nb.errorForeground", +"nb.warningForeground", +"TabbedContainerUI", +"EditorTabDisplayerUI", +"ViewTabDisplayerUI", +"SlidingTabDisplayerUI", +"IndexButtonUI", +"SlidingButtonUI", +"TabbedContainer.editor.contentBorder", +"TabbedContainer.editor.tabsBorder", +"TabbedContainer.editor.outerBorder", +"TabbedContainer.view.contentBorder", +"TabbedContainer.view.tabsBorder", +"TabbedContainer.view.outerBorder", +"TabbedContainer.sliding.contentBorder", +"TabbedContainer.sliding.tabsBorder", +"TabbedContainer.sliding.outerBorder", +"TabRenderer.selectedActivatedBackground", +"TabRenderer.selectedActivatedForeground", +"TabRenderer.selectedForeground", +"TabRenderer.selectedBackground", +"nb.explorer.ministatusbar.border", +"nb.desktop.splitpane.border", +"nb.propertysheet", +"Nb.SplitPane.dividerSize.vertical", +"Nb.SplitPane.dividerSize.horizontal" }; } diff --git a/src/org/idp/laf/TitanLookAndFeel.java b/src/org/idp/laf/TitanLookAndFeel.java new file mode 100644 index 0000000..22b4b82 --- /dev/null +++ b/src/org/idp/laf/TitanLookAndFeel.java @@ -0,0 +1,48 @@ +/* Copyright (C) Edward M. Kagan - All Rights Reserved + * Unauthorized copying of this file, via any medium is strictly prohibited + * Proprietary and confidential + * Written by Edward M. Kagan , 2015 + */ +package org.idp.laf; + +import javax.swing.UIDefaults; +import javax.swing.UIManager; +import javax.swing.plaf.metal.MetalLookAndFeel; +import static javax.swing.plaf.metal.MetalLookAndFeel.getCurrentTheme; +import static javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme; +import org.openide.util.NbBundle; + +/** + * @author Edward M. Kagan + */ +public class TitanLookAndFeel extends MetalLookAndFeel { + + public static void self_install () + { + UIManager.installLookAndFeel(new UIManager.LookAndFeelInfo( NbBundle.getMessage(TitanLookAndFeel.class, "LBL_TITAN"), TitanLookAndFeel.class.getName()) ); + } + + @Override + public String getName() { + return NbBundle.getMessage(TitanLookAndFeel.class, "LBL_TITAN"); + } + + @Override + protected void createDefaultTheme() { + super.createDefaultTheme(); + if( !(getCurrentTheme() instanceof TitanTheme) ) + setCurrentTheme( new TitanTheme() ); + } + + @Override + public UIDefaults getDefaults() { + UIDefaults defaults = super.getDefaults(); + return defaults; + } + + @Override + public void initialize() { + super.initialize(); + } + +} diff --git a/src/org/idp/laf/TitanTheme.java b/src/org/idp/laf/TitanTheme.java new file mode 100644 index 0000000..0bff6f7 --- /dev/null +++ b/src/org/idp/laf/TitanTheme.java @@ -0,0 +1,141 @@ +/* Copyright (C) Edward M. Kagan - All Rights Reserved + * Unauthorized copying of this file, via any medium is strictly prohibited + * Proprietary and confidential + * Written by Edward M. Kagan , 2015 + */ +package org.idp.laf; + +import java.awt.Font; +import javax.swing.UIDefaults; +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.FontUIResource; +import javax.swing.plaf.metal.MetalTheme; + +/** + * @author Edward M. Kagan + */ +public class TitanTheme extends MetalTheme { + + private static ColorUIResource primary1 = new ColorUIResource( 255, 0 , 0 ); + private static ColorUIResource primary2 = new ColorUIResource( 255, 255, 0 ); + private static ColorUIResource primary3 = new ColorUIResource( 255, 0 , 255 ); + private static ColorUIResource secondary1 = new ColorUIResource( 0 , 255, 0 ); + private static ColorUIResource secondary2 = new ColorUIResource( 0 , 255, 255 ); + private static ColorUIResource secondary3 = new ColorUIResource( 0 , 0 , 255 ); + private static ColorUIResource black = new ColorUIResource( 255 , 255 , 255 ); + private static ColorUIResource white = new ColorUIResource( 0 , 0 , 0 ); + + + + + + + + @Override + public void addCustomEntriesToTable(UIDefaults table) { + super.addCustomEntriesToTable(table); //To change body of generated methods, choose Tools | Templates. + table.put( "nb.imageicon.filter", new DarkIconFilter() ); //NOI18N + } + + private final static FontUIResource DEFAULT_FONT = new FontUIResource("Dialog", Font.PLAIN, 11); //NOI18N + + + + public static void self_tuneup (Color[] color_scheme_loaded) + { + for (int i = 0; i < color_scheme_loaded.length; i ++) + { + grep_needed (color_scheme_loaded[i]); + } + } + + private static void grep_needed (Color c) + { + if (c.getName().equals("primary1")) primary1 = (ColorUIResource) c.getObject(); + else if (c.getName().equals("primary2")) primary2 = (ColorUIResource) c.getObject(); + else if (c.getName().equals("primary3")) primary3 = (ColorUIResource) c.getObject(); + else if (c.getName().equals("secondary1")) secondary1 = (ColorUIResource) c.getObject(); + else if (c.getName().equals("secondary2")) secondary2 = (ColorUIResource) c.getObject(); + else if (c.getName().equals("secondary3")) secondary3 = (ColorUIResource) c.getObject(); + else if (c.getName().equals("black")) black = (ColorUIResource) c.getObject(); + else if (c.getName().equals("white")) white = (ColorUIResource) c.getObject(); + } + + @Override + public String getName() { + return "[idP!] Crew Titan Theme"; + } + + // FUCKERS - it's not obligatory to override this - IDIOTS!!! + @Override + protected ColorUIResource getWhite() { + return white; + } + + @Override + protected ColorUIResource getBlack() { + return black; + } + + + @Override + protected ColorUIResource getPrimary1() { + return primary1; + } + + @Override + protected ColorUIResource getPrimary2() { + return primary2; + } + + @Override + protected ColorUIResource getPrimary3() { + return primary3; + } + + @Override + protected ColorUIResource getSecondary1() { + return secondary1; + } + + @Override + protected ColorUIResource getSecondary2() { + return secondary2; + } + + @Override + protected ColorUIResource getSecondary3() { + return secondary3; + } + + @Override + public FontUIResource getControlTextFont() { + return DEFAULT_FONT; + } + + @Override + public FontUIResource getSystemTextFont() { + return DEFAULT_FONT; + } + + @Override + public FontUIResource getUserTextFont() { + return DEFAULT_FONT; + } + + @Override + public FontUIResource getMenuTextFont() { + return DEFAULT_FONT; + } + + @Override + public FontUIResource getWindowTitleFont() { + return DEFAULT_FONT; + } + + @Override + public FontUIResource getSubTextFont() { + return DEFAULT_FONT; + } + +} diff --git a/theme/.idp_scheme/.ui_colors b/theme/.idp_scheme/.ui_colors deleted file mode 100644 index ac94c15..0000000 --- a/theme/.idp_scheme/.ui_colors +++ /dev/null @@ -1,271 +0,0 @@ -C[activeCaption:SF:16,16,16,255] -C[activeCaptionBorder:SF:16,16,16,255] -C[activeCaptionText:SF:208,208,208,255] -C[Button.background:SF:64,64,64,255] -C[Button.darkShadow:SF:102,102,102,255] -C[Button.disabledText:SF:176,176,176,255] -C[Button.focus:SF:64,64,64,255] -C[Button.foreground:SF:208,208,208,255] -C[Button.highlight:SF:48,48,48,255] -C[Button.light:SF:48,48,48,255] -C[Button.select:SF:176,176,176,255] -C[Button.shadow:SF:48,48,48,255] -C[CheckBox.background:SF:32,32,32,255] -C[CheckBox.disabledText:SF:176,176,176,255] -C[CheckBox.focus:SF:32,32,32,255] -C[CheckBox.foreground:SF:208,208,208,255] -C[Checkbox.select:SF:176,176,176,255] -C[CheckBoxMenuItem.acceleratorForeground:SF:208,208,208,255] -C[CheckBoxMenuItem.acceleratorSelectionForeground:SF:176,176,176,255] -C[CheckBoxMenuItem.background:SF:64,64,64,255] -C[CheckBoxMenuItem.disabledForeground:SF:176,176,176,255] -C[CheckBoxMenuItem.foreground:SF:208,208,208,255] -C[CheckBoxMenuItem.selectionBackground:SF:96,96,96,255] -C[CheckBoxMenuItem.selectionForeground:SF:176,176,176,255] -C[ColorChooser.background:SF:32,32,32,255] -C[ColorChooser.foreground:SF:208,208,208,255] -C[ColorChooser.swatchesDefaultRecentColor:SF:208,208,208,255] -C[ComboBox.background:SF:64,64,64,255] -C[ComboBox.buttonBackground:SF:64,64,64,255] -C[ComboBox.buttonDarkShadow:SF:102,102,102,255] -C[ComboBox.buttonHighlight:SF:255,255,255,255] -C[ComboBox.buttonShadow:SF:153,153,153,255] -C[ComboBox.disabledBackground:SF:48,48,48,255] -C[ComboBox.disabledForeground:SF:176,176,176,255] -C[ComboBox.foreground:SF:208,208,208,255] -C[ComboBox.selectionBackground:SF:96,96,96,255] -C[ComboBox.selectionForeground:SF:176,176,176,255] -C[control:SF:32,32,32,255] -C[controlDkShadow:SF:32,32,32,255] -C[controlHighlight:SF:80,80,80,255] -C[controlLtHighlight:SF:32,32,32,255] -C[controlShadow:SF:32,32,32,255] -C[controlText:SF:208,208,208,255] -C[Desktop.background:SF:16,16,16,255] -C[desktop:SF:0,255,0,255] -C[DesktopIcon.background:SF:0,255,0,255] -C[DesktopIcon.foreground:SF:0,255,0,255] -C[EditorPane.background:SF:32,32,32,255] -C[EditorPane.caretForeground:SF:0,0,0,255] -C[EditorPane.foreground:SF:208,208,208,255] -C[EditorPane.inactiveForeground:SF:153,153,153,255] -C[EditorPane.selectionBackground:SF:64,64,64,255] -C[EditorPane.selectionForeground:SF:208,208,208,255] -C[FormattedTextField.background:SF:64,64,64,255] -C[FormattedTextField.caretForeground:SF:240,240,240,255] -C[FormattedTextField.foreground:SF:208,208,208,255] -C[FormattedTextField.inactiveBackground:SF:32,32,32,255] -C[FormattedTextField.inactiveForeground:SF:160,160,160,255] -C[FormattedTextField.selectionBackground:SF:224,224,224,255] -C[FormattedTextField.selectionForeground:SF:32,32,32,255] -C[inactiveCaption:SF:32,32,32,255] -C[inactiveCaptionBorder:SF:32,32,32,255] -C[inactiveCaptionText:SF:176,176,176,255] -C[info:SF:0,255,0,255] -C[infoText:SF:255,0,0,255] -C[InternalFrame.activeTitleBackground:SF:204,204,255,255] -C[InternalFrame.activeTitleForeground:SF:208,208,208,255] -C[InternalFrame.borderColor:SF:32,32,32,255] -C[InternalFrame.borderDarkShadow:SF:102,102,102,255] -C[InternalFrame.borderHighlight:SF:255,255,255,255] -C[InternalFrame.borderLight:SF:255,255,255,255] -C[InternalFrame.borderShadow:SF:32,32,32,255] -C[InternalFrame.inactiveTitleBackground:SF:255,0,0,255] -C[InternalFrame.inactiveTitleForeground:SF:176,176,176,255] -C[Label.background:SF:32,32,32,255] -C[Label.disabledForeground:SF:176,176,176,255] -C[Label.disabledShadow:SF:176,176,176,255] -C[Label.foreground:SF:208,208,208,255] -C[List.background:SF:16,16,16,255] -C[List.dropLineColor:SF:64,64,64,255] -C[List.foreground:SF:208,208,208,255] -C[List.selectionBackground:SF:64,64,64,255] -C[List.selectionForeground:SF:176,176,176,255] -C[Menu.acceleratorForeground:SF:208,208,208,255] -C[Menu.acceleratorSelectionForeground:SF:176,176,176,255] -C[Menu.background:SF:32,32,32,255] -C[Menu.disabledForeground:SF:176,176,176,255] -C[Menu.foreground:SF:208,208,208,255] -C[Menu.selectionBackground:SF:64,64,64,255] -C[Menu.selectionForeground:SF:192,192,192,255] -C[menu:SF:255,0,255,255] -C[MenuBar.background:SF:32,32,32,255] -C[MenuBar.foreground:SF:208,208,208,255] -C[MenuBar.highlight:SF:64,64,64,255] -C[MenuBar.shadow:SF:153,153,153,255] -C[MenuItem.acceleratorForeground:SF:208,208,208,255] -C[MenuItem.acceleratorSelectionForeground:SF:176,176,176,255] -C[MenuItem.background:SF:64,64,64,255] -C[MenuItem.disabledForeground:SF:128,128,128,255] -C[MenuItem.foreground:SF:208,208,208,255] -C[MenuItem.selectionBackground:SF:96,96,96,255] -C[MenuItem.selectionForeground:SF:176,176,176,255] -C[menuText:SF:0,0,255,255] -C[OptionPane.background:SF:32,32,32,255] -C[OptionPane.errorDialog.border.background:SF:32,32,32,255] -C[OptionPane.errorDialog.titlePane.background:SF:255,153,153,255] -C[OptionPane.errorDialog.titlePane.foreground:SF:208,208,208,255] -C[OptionPane.errorDialog.titlePane.shadow:SF:204,102,102,255] -C[OptionPane.foreground:SF:208,208,208,255] -C[OptionPane.messageForeground:SF:208,208,208,255] -C[OptionPane.questionDialog.border.background:SF:32,32,32,255] -C[OptionPane.questionDialog.titlePane.background:SF:153,204,153,255] -C[OptionPane.questionDialog.titlePane.foreground:SF:208,208,208,255] -C[OptionPane.questionDialog.titlePane.shadow:SF:102,153,102,255] -C[OptionPane.warningDialog.border.background:SF:32,32,32,255] -C[OptionPane.warningDialog.titlePane.background:SF:255,204,153,255] -C[OptionPane.warningDialog.titlePane.foreground:SF:208,208,208,255] -C[OptionPane.warningDialog.titlePane.shadow:SF:204,153,102,255] -C[Panel.background:SF:32,32,32,255] -C[Panel.foreground:SF:208,208,208,255] -C[PasswordField.background:SF:64,64,64,255] -C[PasswordField.caretForeground:SF:240,240,240,255] -C[PasswordField.foreground:SF:208,208,208,255] -C[PasswordField.inactiveBackground:SF:32,32,32,255] -C[PasswordField.inactiveForeground:SF:160,160,160,255] -C[PasswordField.selectionBackground:SF:224,224,224,255] -C[PasswordField.selectionForeground:SF:32,32,32,255] -C[PopupMenu.background:SF:64,64,64,255] -C[PopupMenu.foreground:SF:208,208,208,255] -C[ProgressBar.background:SF:16,16,16,255] -C[ProgressBar.foreground:SF:176,176,176,255] -C[ProgressBar.selectionBackground:SF:176,176,176,255] -C[ProgressBar.selectionForeground:SF:16,16,16,255] -C[RadioButton.background:SF:32,32,32,255] -C[RadioButton.darkShadow:SF:102,102,102,255] -C[RadioButton.disabledText:SF:176,176,176,255] -C[RadioButton.focus:SF:32,32,32,255] -C[RadioButton.foreground:SF:208,208,208,255] -C[RadioButton.highlight:SF:255,255,255,255] -C[RadioButton.light:SF:255,255,255,255] -C[RadioButton.select:SF:176,176,176,255] -C[RadioButton.shadow:SF:153,153,153,255] -C[RadioButtonMenuItem.acceleratorForeground:SF:208,208,208,255] -C[RadioButtonMenuItem.acceleratorSelectionForeground:SF:176,176,176,255] -C[RadioButtonMenuItem.background:SF:64,64,64,255] -C[RadioButtonMenuItem.disabledForeground:SF:128,128,128,255] -C[RadioButtonMenuItem.foreground:SF:208,208,208,255] -C[RadioButtonMenuItem.selectionBackground:SF:96,96,96,255] -C[RadioButtonMenuItem.selectionForeground:SF:176,176,176,255] -C[ScrollBar.background:SF:32,32,32,255] -C[ScrollBar.darkShadow:SF:102,102,102,255] -C[ScrollBar.foreground:SF:32,32,32,255] -C[ScrollBar.highlight:SF:255,255,255,255] -C[ScrollBar.shadow:SF:153,153,153,255] -C[ScrollBar.thumb:SF:64,64,64,255] -C[ScrollBar.thumbDarkShadow:SF:102,102,102,255] -C[ScrollBar.thumbHighlight:SF:64,64,64,255] -C[ScrollBar.thumbShadow:SF:96,96,96,255] -C[ScrollBar.track:SF:32,32,32,255] -C[ScrollBar.trackHighlight:SF:102,102,102,255] -C[scrollbar:SF:0,0,255,255] -C[ScrollPane.background:SF:32,32,32,255] -C[ScrollPane.foreground:SF:208,208,208,255] -C[Separator.background:SF:48,48,48,255] -C[Separator.foreground:SF:48,48,48,255] -C[Separator.highlight:SF:48,48,48,255] -C[Separator.shadow:SF:48,48,48,255] -C[Slider.background:SF:64,64,64,255] -C[Slider.focus:SF:96,96,96,255] -C[Slider.foreground:SF:80,80,80,255] -C[Slider.highlight:SF:255,255,255,255] -C[Slider.shadow:SF:153,153,153,255] -C[Slider.tickColor:AT:0,0,0,255] -C[Spinner.background:SF:64,64,64,255] -C[Spinner.foreground:SF:64,64,64,255] -C[SplitPane.background:SF:32,32,32,255] -C[SplitPane.darkShadow:SF:64,64,64,255] -C[SplitPane.dividerFocusColor:SF:64,64,64,255] -C[SplitPane.highlight:SF:64,64,64,255] -C[SplitPane.shadow:SF:64,64,64,255] -C[SplitPaneDivider.draggingColor:SF:32,32,32,255] -C[TabbedPane.background:SF:64,64,64,255] -C[TabbedPane.darkShadow:SF:102,102,102,255] -C[TabbedPane.focus:SF:32,32,32,255] -C[TabbedPane.foreground:SF:208,208,208,255] -C[TabbedPane.highlight:SF:255,255,255,255] -C[TabbedPane.light:SF:32,32,32,255] -C[TabbedPane.selected:SF:32,32,32,255] -C[TabbedPane.selectHighlight:SF:255,255,255,255] -C[TabbedPane.shadow:SF:153,153,153,255] -C[TabbedPane.tabAreaBackground:SF:32,32,32,255] -C[Table.background:SF:16,16,16,255] -C[Table.dropLineColor:SF:102,102,255,255] -C[Table.dropLineShortColor:SF:192,192,192,255] -C[Table.focusCellBackground:SF:64,64,64,255] -C[Table.focusCellForeground:SF:176,176,176,255] -C[Table.foreground:SF:208,208,208,255] -C[Table.gridColor:SF:80,80,80,255] -C[Table.selectionBackground:SF:64,64,64,255] -C[Table.selectionForeground:SF:208,208,208,255] -C[Table.sortIconColor:SF:153,153,153,255] -C[TableHeader.background:SF:64,64,64,255] -C[TableHeader.focusCellBackground:SF:128,128,128,255] -C[TableHeader.foreground:SF:208,208,208,255] -C[text:SF:255,255,0,255] -C[TextArea.background:SF:16,16,16,255] -C[TextArea.caretForeground:SF:208,208,208,255] -C[TextArea.foreground:SF:208,208,208,255] -C[TextArea.inactiveForeground:SF:160,160,160,255] -C[TextArea.selectionBackground:SF:224,224,224,255] -C[TextArea.selectionForeground:SF:32,32,32,255] -C[TextField.background:SF:64,64,64,255] -C[TextField.caretForeground:SF:240,240,240,255] -C[TextField.darkShadow:SF:102,102,102,255] -C[TextField.foreground:SF:208,208,208,255] -C[TextField.highlight:SF:255,255,255,255] -C[TextField.inactiveBackground:SF:48,48,48,255] -C[TextField.inactiveForeground:SF:176,176,176,255] -C[TextField.light:SF:255,255,255,255] -C[TextField.selectionBackground:SF:176,176,176,255] -C[TextField.selectionForeground:SF:16,16,16,255] -C[TextField.shadow:SF:153,153,153,255] -C[textHighlight:SF:153,0,153,255] -C[textHighlightText:SF:255,0,0,255] -C[textInactiveText:AT:128,128,128,255] -C[TextPane.background:SF:16,16,16,255] -C[TextPane.caretForeground:SF:0,0,0,255] -C[TextPane.foreground:SF:208,208,208,255] -C[TextPane.inactiveForeground:SF:153,153,153,255] -C[TextPane.selectionBackground:SF:224,224,224,255] -C[TextPane.selectionForeground:SF:32,32,32,255] -C[textText:SF:208,208,208,255] -C[TitledBorder.titleColor:SF:208,208,208,255] -C[ToggleButton.background:SF:64,64,64,255] -C[ToggleButton.darkShadow:SF:102,102,102,255] -C[ToggleButton.disabledText:SF:153,153,153,255] -C[ToggleButton.focus:SF:153,153,153,255] -C[ToggleButton.foreground:SF:208,208,208,255] -C[ToggleButton.highlight:SF:255,255,255,255] -C[ToggleButton.light:SF:255,255,255,255] -C[ToggleButton.select:SF:128,128,128,255] -C[ToggleButton.shadow:SF:153,153,153,255] -C[ToolBar.background:SF:32,32,32,255] -C[ToolBar.darkShadow:SF:64,64,64,255] -C[ToolBar.dockingBackground:SF:32,32,32,255] -C[ToolBar.dockingForeground:SF:64,64,64,255] -C[ToolBar.floatingBackground:SF:32,32,32,255] -C[ToolBar.floatingForeground:SF:64,64,64,255] -C[ToolBar.foreground:SF:208,208,208,255] -C[ToolBar.highlight:SF:255,255,255,255] -C[ToolBar.light:SF:255,255,255,255] -C[ToolBar.shadow:SF:153,153,153,255] -C[ToolTip.background:SF:208,208,208,255] -C[ToolTip.backgroundInactive:SF:32,32,32,255] -C[ToolTip.foreground:SF:32,32,32,255] -C[ToolTip.foregroundInactive:SF:102,102,102,255] -C[Tree.background:SF:16,16,16,255] -C[Tree.dropLineColor:SF:153,153,153,255] -C[Tree.foreground:SF:176,176,176,255] -C[Tree.hash:SF:176,176,176,255] -C[Tree.line:SF:204,204,204,255] -C[Tree.selectionBackground:SF:64,64,64,255] -C[Tree.selectionBorderColor:SF:96,96,96,255] -C[Tree.selectionForeground:SF:0,0,0,255] -C[Tree.textBackground:SF:255,255,255,255] -C[Tree.textForeground:SF:208,208,208,255] -C[Viewport.background:SF:16,16,16,255] -C[Viewport.foreground:SF:208,208,208,255] -C[window:SF:16,16,16,255] -C[windowBorder:SF:16,16,16,255] -C[windowText:SF:208,208,208,255] diff --git a/theme/.idp_scheme/.ui_fonts b/theme/.idp_scheme/.ui_fonts deleted file mode 100644 index 34b8ba8..0000000 --- a/theme/.idp_scheme/.ui_fonts +++ /dev/null @@ -1,40 +0,0 @@ -F[List.font:FA:Dialog,Dialog,11,0] -F[TableHeader.font:FS:Dialog,Dialog,11,0] -F[Panel.font:FA:Dialog,Dialog,11,0] -F[TextArea.font:FS:Dialog,Dialog,11,0] -F[ToggleButton.font:FS:Dialog,Dialog,11,0] -F[ComboBox.font:FS:Dialog,Dialog,11,0] -F[ScrollPane.font:FS:Dialog,Dialog,11,0] -F[Spinner.font:FA:Dialog,Dialog,11,0] -F[RadioButtonMenuItem.font:FS:Dialog,Dialog,11,0] -F[Slider.font:FS:Dialog,Dialog,12,1] -F[EditorPane.font:FS:Serif,Serif,11,0] -F[OptionPane.font:FS:Dialog,Dialog,11,0] -F[ToolBar.font:FS:Dialog,Dialog,11,0] -F[Tree.font:FA:Dialog,Dialog,11,0] -F[CheckBoxMenuItem.font:FS:Dialog,Dialog,11,0] -F[TitledBorder.font:FS:Dialog,Dialog,11,0] -F[Table.font:FS:Dialog,Dialog,11,0] -F[MenuBar.font:FS:Dialog,Dialog,11,0] -F[PopupMenu.font:FS:Dialog,Dialog,11,0] -F[DesktopIcon.font:FS:Dialog,Dialog,12,1] -F[Label.font:FS:Dialog,Dialog,11,0] -F[MenuItem.font:FS:Dialog,Dialog,11,0] -F[MenuItem.acceleratorFont:FS:Dialog,Dialog,11,0] -F[TextField.font:FS:SansSerif,SansSerif,11,0] -F[TextPane.font:FS:Dialog,Dialog,11,0] -F[CheckBox.font:FS:Dialog,Dialog,11,0] -F[ProgressBar.font:FS:Dialog,Dialog,11,0] -F[FormattedTextField.font:FS:Dialog,Dialog,11,0] -F[CheckBoxMenuItem.acceleratorFont:FS:Dialog,Dialog,10,0] -F[Menu.acceleratorFont:FS:Dialog,Dialog,10,0] -F[ColorChooser.font:FS:Dialog,Dialog,11,0] -F[Menu.font:FS:Dialog,Dialog,11,0] -F[PasswordField.font:FS:Monospaced,Monospaced,11,0] -F[InternalFrame.titleFont:FS:Dialog,Dialog,11,1] -F[RadioButtonMenuItem.acceleratorFont:FS:Dialog,Dialog,10,0] -F[Viewport.font:FS:Dialog,Dialog,11,0] -F[TabbedPane.font:FS:Dialog,Dialog,11,0] -F[RadioButton.font:FS:Dialog,Dialog,11,0] -F[ToolTip.font:FS:SansSerif,SansSerif,11,0] -F[Button.font:FS:Dialog,Dialog,11,0] diff --git a/theme/.idp_scheme/.ui_gradients b/theme/.idp_scheme/.ui_gradients deleted file mode 100644 index e69de29..0000000 diff --git a/theme/.idp_scheme/123/.ui_colors b/theme/.idp_scheme/123/.ui_colors deleted file mode 100644 index 93b6f74..0000000 --- a/theme/.idp_scheme/123/.ui_colors +++ /dev/null @@ -1,293 +0,0 @@ -C[DesktopIcon.foreground:SF:222,222,222,255] -C[OptionPane.errorDialog.titlePane.foreground:SF:51,0,0,255] -C[TextArea.background:SF:18,30,49,255] -C[activeCaption:SF:99,99,99,255] -C[PasswordField.inactiveForeground:SF:91,91,95,255] -C[TabbedPane.focus:SF:121,121,125,255] -C[RadioButton.disabledText:SF:91,91,95,255] -C[MenuItem.acceleratorForeground:AT:198,198,198,255] -C[EditorPane.caretForeground:SF:222,222,222,255] -C[Table.background:SF:18,30,49,255] -C[Menu.selectionForeground:SF:222,222,222,255] -C[OptionPane.errorDialog.border.background:SF:153,51,51,255] -C[ToolBar.floatingBackground:SF:51,51,55,255] -C[RadioButtonMenuItem.selectionBackground:SF:71,71,75,255] -C[DesktopIcon.background:SF:51,51,55,255] -C[CheckBoxMenuItem.selectionForeground:SF:222,222,222,255] -C[List.dropLineColor:SF:91,91,95,255] -C[PropSheet.selectionForeground:SF:222,222,222,255] -C[InternalFrame.borderColor:SF:51,51,55,255] -C[CheckBox.foreground:SF:222,222,222,255] -C[ProgressBar.foreground:SF:71,71,75,255] -C[ComboBox.disabledForeground:SF:91,91,95,255] -C[textInactiveText:AT:128,128,128,255] -C[OptionPane.warningDialog.titlePane.foreground:SF:102,51,0,255] -C[Slider.highlight:SF:18,30,49,255] -C[FormattedTextField.caretForeground:SF:222,222,222,255] -C[PropSheet.selectedSetForeground:SF:222,222,222,255] -C[Menu.selectionBackground:SF:71,71,75,255] -C[TextField.caretForeground:SF:222,222,222,255] -C[OptionPane.messageForeground:SF:222,222,222,255] -C[RadioButton.highlight:SF:18,30,49,255] -C[ToolBar.shadow:SF:91,91,95,255] -C[CheckBoxMenuItem.selectionBackground:SF:71,71,75,255] -C[Menu.acceleratorForeground:SF:121,121,125,255] -C[Label.foreground:SF:222,222,222,255] -C[text:SF:18,30,49,255] -C[PropSheet.selectionBackground:SF:99,99,99,255] -C[nb.heapview.grid3.end:AT:105,103,95,255] -C[ComboBox.disabledBackground:SF:51,51,55,255] -C[Button.focus:SF:71,71,75,255] -C[inactiveCaptionText:SF:222,222,222,255] -C[MenuBar.background:SF:51,51,55,255] -C[PasswordField.selectionForeground:SF:222,222,222,255] -C[CheckBoxMenuItem.acceleratorSelectionForeground:SF:222,222,222,255] -C[controlShadow:SF:91,91,95,255] -C[menu:SF:51,51,55,255] -C[inactiveCaptionBorder:SF:91,91,95,255] -C[PasswordField.foreground:SF:222,222,222,255] -C[TextPane.foreground:SF:222,222,222,255] -C[TabbedPane.tabAreaBackground:SF:51,51,55,255] -C[Viewport.foreground:SF:222,222,222,255] -C[TabbedPane.foreground:SF:222,222,222,255] -C[ToggleButton.focus:SF:71,71,75,255] -C[RadioButton.foreground:SF:222,222,222,255] -C[infoText:SF:222,222,222,255] -C[TabbedPane.selected:SF:51,51,55,255] -C[MenuBar.highlight:SF:18,30,49,255] -C[ScrollBar.highlight:SF:18,30,49,255] -C[InternalFrame.inactiveTitleBackground:SF:51,51,55,255] -C[ScrollBar.thumbDarkShadow:SF:113,113,113,255] -C[ToolBar.light:SF:18,30,49,255] -C[EditorPane.inactiveForeground:SF:91,91,95,255] -C[OptionPane.errorDialog.titlePane.background:SF:255,153,153,255] -C[PasswordField.background:SF:18,30,49,255] -C[TextPane.background:SF:18,30,49,255] -C[RadioButton.select:SF:91,91,95,255] -C[PasswordField.inactiveBackground:SF:51,51,55,255] -C[MenuItem.foreground:SF:222,222,222,255] -C[TableHeader.focusCellBackground:SF:18,30,49,255] -C[RadioButton.background:SF:51,51,55,255] -C[inactiveCaption:SF:51,51,55,255] -C[ScrollBar.trackHighlight:SF:113,113,113,255] -C[OptionPane.questionDialog.titlePane.foreground:SF:0,51,0,255] -C[Tree.textForeground:SF:222,222,222,255] -C[TableHeader.foreground:SF:222,222,222,255] -C[CheckBox.background:SF:51,51,55,255] -C[ProgressBar.background:SF:51,51,55,255] -C[Label.disabledForeground:SF:91,91,95,255] -C[OptionPane.warningDialog.titlePane.background:SF:255,204,153,255] -C[ToggleButton.highlight:SF:18,30,49,255] -C[nb.errorForeground:AT:255,71,71,255] -C[PropSheet.selectedSetBackground:AT:121,121,125,255] -C[ScrollPane.foreground:SF:222,222,222,255] -C[TextArea.caretForeground:SF:222,222,222,255] -C[Label.background:SF:51,51,55,255] -C[Spinner.foreground:SF:51,51,55,255] -C[Slider.tickColor:AT:0,0,0,255] -C[Tree.textBackground:SF:18,30,49,255] -C[nb.heapview.grid1.start:AT:97,95,87,255] -C[InternalFrame.borderLight:SF:18,30,49,255] -C[textHighlightText:SF:222,222,222,255] -C[nb.heapview.grid4.start:AT:107,105,97,255] -C[Separator.shadow:SF:91,91,95,255] -C[CheckBoxMenuItem.disabledForeground:SF:91,91,95,255] -C[controlText:SF:222,222,222,255] -C[InternalFrame.borderDarkShadow:SF:113,113,113,255] -C[TextField.shadow:SF:91,91,95,255] -C[PasswordField.selectionBackground:SF:99,99,99,255] -C[Spinner.background:SF:51,51,55,255] -C[TabbedPane.shadow:SF:91,91,95,255] -C[desktop:SF:71,71,75,255] -C[Tree.dropLineColor:SF:91,91,95,255] -C[OptionPane.questionDialog.titlePane.shadow:SF:102,153,102,255] -C[TabbedPane.darkShadow:SF:113,113,113,255] -C[Viewport.background:SF:51,51,55,255] -C[CheckBox.disabledText:SF:91,91,95,255] -C[ComboBox.foreground:SF:222,222,222,255] -C[RadioButton.darkShadow:SF:113,113,113,255] -C[TabbedPane.background:SF:91,91,95,255] -C[OptionPane.warningDialog.titlePane.shadow:SF:204,153,102,255] -C[activeCaptionBorder:SF:71,71,75,255] -C[InternalFrame.borderShadow:SF:91,91,95,255] -C[MenuItem.selectionForeground:SF:222,222,222,255] -C[TextArea.selectionForeground:SF:222,222,222,255] -C[MenuItem.background:SF:51,51,55,255] -C[ComboBox.buttonShadow:SF:91,91,95,255] -C[ScrollBar.track:SF:51,51,55,255] -C[ScrollBar.thumb:SF:71,71,75,255] -C[MenuItem.acceleratorSelectionForeground:SF:222,222,222,255] -C[Table.dropLineColor:SF:71,71,75,255] -C[control:SF:51,51,55,255] -C[OptionPane.questionDialog.titlePane.background:SF:153,204,153,255] -C[Panel.foreground:SF:222,222,222,255] -C[TabbedPane.light:SF:51,51,55,255] -C[MenuItem.selectionBackground:SF:71,71,75,255] -C[Label.disabledShadow:SF:91,91,95,255] -C[ToolTip.foreground:SF:222,222,222,255] -C[TableHeader.background:SF:51,51,55,255] -C[EditorPane.selectionForeground:SF:222,222,222,255] -C[List.foreground:SF:222,222,222,255] -C[OptionPane.warningDialog.border.background:SF:153,102,51,255] -C[Desktop.background:SF:71,71,75,255] -C[ScrollPane.background:SF:51,51,55,255] -C[activeCaptionText:SF:222,222,222,255] -C[SplitPane.dividerFocusColor:SF:99,99,99,255] -C[Tree.foreground:SF:222,222,222,255] -C[SplitPane.highlight:SF:18,30,49,255] -C[TextField.foreground:SF:222,222,222,255] -C[nb.heapview.grid2.end:AT:101,99,92,255] -C[ScrollBar.thumbShadow:SF:121,121,125,255] -C[TextArea.inactiveForeground:SF:91,91,95,255] -C[ToolTip.foregroundInactive:SF:113,113,113,255] -C[Tree.hash:SF:99,99,99,255] -C[FormattedTextField.selectionForeground:SF:222,222,222,255] -C[textText:SF:222,222,222,255] -C[RadioButton.focus:SF:71,71,75,255] -C[ToggleButton.disabledText:SF:91,91,95,255] -C[Tree.background:SF:18,30,49,255] -C[RadioButtonMenuItem.disabledForeground:SF:91,91,95,255] -C[TextField.background:SF:18,30,49,255] -C[ColorChooser.foreground:SF:222,222,222,255] -C[Button.light:SF:18,30,49,255] -C[ColorChooser.swatchesDefaultRecentColor:SF:51,51,55,255] -C[ComboBox.background:SF:51,51,55,255] -C[Button.shadow:SF:91,91,95,255] -C[Button.foreground:SF:222,222,222,255] -C[Table.focusCellForeground:SF:222,222,222,255] -C[Table.gridColor:SF:91,91,95,255] -C[PasswordField.caretForeground:SF:222,222,222,255] -C[TextPane.selectionForeground:SF:222,222,222,255] -C[menuText:SF:222,222,222,255] -C[SplitPaneDivider.draggingColor:SF:64,64,64,255] -C[InternalFrame.borderHighlight:SF:18,30,49,255] -C[TextArea.selectionBackground:SF:99,99,99,255] -C[ToggleButton.light:SF:18,30,49,255] -C[controlDkShadow:SF:113,113,113,255] -C[TextField.light:SF:18,30,49,255] -C[Button.background:SF:123,51,55,255] -C[TextField.selectionForeground:SF:222,222,222,255] -C[Separator.foreground:SF:121,121,125,255] -C[ToolBar.dockingForeground:SF:121,121,125,255] -C[TextPane.selectionBackground:SF:99,99,99,255] -C[Panel.background:SF:51,51,55,255] -C[ToolTip.background:SF:99,99,99,255] -C[EditorPane.selectionBackground:SF:99,99,99,255] -C[List.background:SF:18,30,49,255] -C[TextPane.inactiveForeground:SF:91,91,95,255] -C[SplitPane.shadow:SF:91,91,95,255] -C[TextField.selectionBackground:SF:99,99,99,255] -C[Menu.disabledForeground:SF:91,91,95,255] -C[ToolBar.dockingBackground:SF:51,51,55,255] -C[List.selectionForeground:SF:222,222,222,255] -C[TextField.inactiveForeground:SF:91,91,95,255] -C[window:SF:18,30,49,255] -C[TextField.darkShadow:SF:113,113,113,255] -C[OptionPane.errorDialog.titlePane.shadow:SF:204,102,102,255] -C[RadioButtonMenuItem.acceleratorSelectionForeground:SF:222,222,222,255] -C[ComboBox.selectionForeground:SF:222,222,222,255] -C[FormattedTextField.selectionBackground:SF:99,99,99,255] -C[Tree.selectionBorderColor:SF:71,71,75,255] -C[Tree.selectionForeground:SF:222,222,222,255] -C[Slider.foreground:SF:71,71,75,255] -C[TabbedPane.selectHighlight:SF:18,30,49,255] -C[ScrollBar.thumbHighlight:SF:99,99,99,255] -C[nb.heapview.grid3.start:AT:102,101,93,255] -C[nb.heapview.background2:SF:71,71,75,255] -C[nb.heapview.background1:SF:121,121,125,255] -C[TextField.highlight:SF:18,30,49,255] -C[TextField.inactiveBackground:SF:51,51,55,255] -C[MenuBar.shadow:SF:91,91,95,255] -C[TextPane.caretForeground:SF:222,222,222,255] -C[Table.selectionForeground:SF:222,222,222,255] -C[ColorChooser.background:SF:51,51,55,255] -C[ToggleButton.shadow:SF:91,91,95,255] -C[Button.darkShadow:SF:113,113,113,255] -C[ComboBox.buttonDarkShadow:SF:113,113,113,255] -C[Table.focusCellBackground:SF:18,30,49,255] -C[ComboBox.buttonBackground:SF:51,51,55,255] -C[ToggleButton.foreground:SF:222,222,222,255] -C[Tree.line:SF:99,99,99,255] -C[windowText:SF:222,222,222,255] -C[FormattedTextField.inactiveForeground:SF:91,91,95,255] -C[scrollbar:SF:51,51,55,255] -C[controlLtHighlight:SF:18,30,49,255] -C[SplitPane.darkShadow:SF:113,113,113,255] -C[Button.select:SF:91,91,95,255] -C[nb.heapview.grid4.end:AT:109,107,99,255] -C[ScrollBar.shadow:SF:91,91,95,255] -C[SplitPane.background:SF:51,51,55,255] -C[controlHighlight:SF:18,30,49,255] -C[Separator.background:SF:18,30,49,255] -C[CheckBoxMenuItem.foreground:SF:222,222,222,255] -C[nb.heapview.border3:SF:18,30,49,255] -C[nb.heapview.border2:SF:91,91,95,255] -C[nb.heapview.border1:SF:113,113,113,255] -C[FormattedTextField.inactiveBackground:SF:51,51,55,255] -C[FormattedTextField.foreground:SF:222,222,222,255] -C[textHighlight:SF:99,99,99,255] -C[Button.highlight:SF:18,30,49,255] -C[PropSheet.setForeground:SF:222,222,222,255] -C[Table.sortIconColor:SF:91,91,95,255] -C[CheckBoxMenuItem.background:SF:51,51,55,255] -C[List.selectionBackground:SF:99,99,99,255] -C[TitledBorder.titleColor:SF:222,222,222,255] -C[ProgressBar.selectionForeground:SF:51,51,55,255] -C[Table.dropLineShortColor:SF:121,121,125,255] -C[EditorPane.foreground:SF:222,222,222,255] -C[MenuItem.disabledForeground:SF:91,91,95,255] -C[CheckBox.focus:SF:71,71,75,255] -C[Slider.focus:SF:71,71,75,255] -C[nb.heapview.foreground:SF:222,222,222,255] -C[ComboBox.selectionBackground:SF:71,71,75,255] -C[InternalFrame.activeTitleForeground:SF:222,222,222,255] -C[Tree.selectionBackground:SF:99,99,99,255] -C[Slider.background:SF:51,51,55,255] -C[TextArea.foreground:SF:222,222,222,255] -C[nb.heapview.grid1.end:AT:98,96,88,255] -C[nb.warningForeground:AT:255,216,0,255] -C[ComboBox.buttonHighlight:SF:18,30,49,255] -C[Separator.highlight:SF:18,30,49,255] -C[PopupMenu.foreground:SF:222,222,222,255] -C[ProgressBar.selectionBackground:SF:121,121,125,255] -C[ScrollBar.foreground:SF:51,51,55,255] -C[OptionPane.foreground:SF:222,222,222,255] -C[Table.selectionBackground:SF:99,99,99,255] -C[info:SF:99,99,99,255] -C[InternalFrame.activeTitleBackground:SF:99,99,99,255] -C[RadioButton.light:SF:18,30,49,255] -C[ToolBar.floatingForeground:SF:99,99,99,255] -C[RadioButtonMenuItem.selectionForeground:SF:222,222,222,255] -C[ToggleButton.darkShadow:SF:113,113,113,255] -C[windowBorder:SF:51,51,55,255] -C[ToggleButton.background:SF:51,51,55,255] -C[TabbedPane.highlight:SF:18,30,49,255] -C[ScrollBar.darkShadow:SF:113,113,113,255] -C[PopupMenu.background:SF:51,51,55,255] -C[ScrollBar.background:SF:51,51,55,255] -C[Menu.acceleratorSelectionForeground:SF:222,222,222,255] -C[OptionPane.background:SF:51,51,55,255] -C[Checkbox.select:SF:91,91,95,255] -C[Menu.foreground:SF:222,222,222,255] -C[nb.heapview.grid2.start:AT:99,97,90,255] -C[RadioButtonMenuItem.acceleratorForeground:AT:198,198,198,255] -C[ToolBar.foreground:SF:222,222,222,255] -C[ToolTip.backgroundInactive:SF:51,51,55,255] -C[RadioButtonMenuItem.foreground:SF:222,222,222,255] -C[ToggleButton.select:SF:91,91,95,255] -C[Slider.shadow:SF:91,91,95,255] -C[Button.disabledText:SF:91,91,95,255] -C[OptionPane.questionDialog.border.background:SF:51,102,51,255] -C[FormattedTextField.background:SF:18,30,49,255] -C[Menu.background:SF:51,51,55,255] -C[ToolBar.darkShadow:SF:113,113,113,255] -C[ToolBar.background:SF:51,51,55,255] -C[RadioButtonMenuItem.background:SF:51,51,55,255] -C[CheckBoxMenuItem.acceleratorForeground:AT:198,198,198,255] -C[MenuBar.foreground:SF:222,222,222,255] -C[ToolBar.highlight:SF:18,30,49,255] -C[PropSheet.setBackground:AT:71,71,75,255] -C[RadioButton.shadow:SF:91,91,95,255] -C[EditorPane.background:SF:18,30,49,255] -C[Table.foreground:SF:222,222,222,255] -C[InternalFrame.inactiveTitleForeground:SF:222,222,222,255] diff --git a/theme/.idp_scheme/123/.ui_fonts b/theme/.idp_scheme/123/.ui_fonts deleted file mode 100644 index da572c0..0000000 --- a/theme/.idp_scheme/123/.ui_fonts +++ /dev/null @@ -1,40 +0,0 @@ -F[List.font:FA:Dialog,Dialog,11,0] -F[TableHeader.font:FS:Dialog,Dialog.plain,11,0] -F[Panel.font:FA:Dialog,Dialog,11,0] -F[TextArea.font:FS:Dialog,Dialog.plain,11,0] -F[ToggleButton.font:FS:Dialog,Dialog.plain,11,0] -F[ComboBox.font:FS:Dialog,Dialog.plain,11,0] -F[ScrollPane.font:FS:Dialog,Dialog.plain,11,0] -F[Spinner.font:FA:Dialog,Dialog,11,0] -F[RadioButtonMenuItem.font:FS:Dialog,Dialog.plain,11,0] -F[Slider.font:FS:Dialog,Dialog,11,0] -F[EditorPane.font:FS:Dialog,Dialog.plain,11,0] -F[OptionPane.font:FS:Dialog,Dialog.plain,11,0] -F[ToolBar.font:FS:Dialog,Dialog.plain,11,0] -F[Tree.font:FA:Dialog,Dialog,11,0] -F[CheckBoxMenuItem.font:FS:Dialog,Dialog.plain,11,0] -F[TitledBorder.font:FS:Dialog,Dialog.plain,11,0] -F[Table.font:FS:Dialog,Dialog.plain,11,0] -F[MenuBar.font:FS:Dialog,Dialog.plain,11,0] -F[PopupMenu.font:FS:Dialog,Dialog.plain,11,0] -F[DesktopIcon.font:FS:Dialog,Dialog,11,0] -F[Label.font:FS:Dialog,Dialog.plain,11,0] -F[MenuItem.font:FS:Dialog,Dialog.plain,11,0] -F[MenuItem.acceleratorFont:FS:Dialog,Dialog.plain,11,0] -F[TextField.font:FS:Dialog,Dialog.plain,11,0] -F[TextPane.font:FS:Dialog,Dialog.plain,11,0] -F[CheckBox.font:FS:Dialog,Dialog.plain,11,0] -F[ProgressBar.font:FS:Dialog,Dialog.plain,11,0] -F[FormattedTextField.font:FS:Dialog,Dialog.plain,11,0] -F[CheckBoxMenuItem.acceleratorFont:FS:Dialog,Dialog,11,0] -F[Menu.acceleratorFont:FS:Dialog,Dialog,11,0] -F[ColorChooser.font:FS:Dialog,Dialog.plain,11,0] -F[Menu.font:FS:Dialog,Dialog.plain,11,0] -F[PasswordField.font:FS:Dialog,Dialog.plain,11,0] -F[InternalFrame.titleFont:FS:Dialog,Dialog.plain,11,0] -F[RadioButtonMenuItem.acceleratorFont:FS:Dialog,Dialog,11,0] -F[Viewport.font:FS:Dialog,Dialog.plain,11,0] -F[TabbedPane.font:FS:Dialog,Dialog.plain,11,0] -F[RadioButton.font:FS:Dialog,Dialog.plain,11,0] -F[ToolTip.font:FS:Dialog,Dialog.plain,11,0] -F[Button.font:FS:Dialog,Dialog.plain,11,0] diff --git a/theme/.idp_scheme/123/.ui_gradients b/theme/.idp_scheme/123/.ui_gradients deleted file mode 100644 index e69de29..0000000 diff --git a/theme/editor.zip b/theme/editor.zip new file mode 100644 index 0000000000000000000000000000000000000000..0554ea68d7fc37e09f879b70f83a24175e16d76e GIT binary patch literal 30722 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 diff --git a/update/org-idp-laf-1.2.0.nbm b/update/org-idp-laf-1.2.0.nbm new file mode 100644 index 0000000000000000000000000000000000000000..5b562bf6d62071f8bb4f70c70db0ab9d7376fd03 GIT binary patch literal 28033 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 z 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 JQMLMg_8)QCDm4HA literal 0 HcmV?d00001 diff --git a/update/updates.xml b/update/updates.xml index 97d7c52..f0b0997 100644 --- a/update/updates.xml +++ b/update/updates.xml @@ -5,8 +5,8 @@ - - + +