From 518d39b690ef65b2912aa2bf3c3fa771cb72f0a6 Mon Sep 17 00:00:00 2001 From: Clochard Pagan Date: Mon, 23 Mar 2015 09:12:51 +0300 Subject: [PATCH] Few last steps left - looks much better %) --- fonts/master_palett | 116 ++++++++++++++++++ manifest.mf | 2 +- src/org/idp/laf/Kernel.java | 102 ++++++++++++++- src/org/idp/laf/Keys.java | 54 ++++++++ .../idp/laf/gui/ColorEditorTopComponent.java | 1 - update/org-idp-laf-1.0.4.nbm | Bin 0 -> 21963 bytes update/updates.xml | 6 +- 7 files changed, 275 insertions(+), 6 deletions(-) create mode 100644 fonts/master_palett create mode 100644 update/org-idp-laf-1.0.4.nbm diff --git a/fonts/master_palett b/fonts/master_palett new file mode 100644 index 0000000..cdd8d11 --- /dev/null +++ b/fonts/master_palett @@ -0,0 +1,116 @@ + +http://paletton.com/#uid=15C0u0k005X009i007G00450021 +http://paletton.com/#uid=15C0u0k009i00cf00aO007H005X +http://paletton.com/#uid=1000u0k00cb00eS00dz00aL009e + +http://paletton.com/#uid=73U1q0kmNnTght5jWq2oUkZrQhw +http://paletton.com/#uid=74B1q0kmNnTght5jWq2oUkZrQhw +http://paletton.com/#uid=1001q0kmNnTght5jWq2oUkZrQhw + + +B/W + +ACCENT --- shade 1 = #ECECEC = rgb(236,236,236) = rgba(236,236,236,1) = rgb0(0.925,0.925,0.925) + shade 2 = #E2E2E2 = rgb(226,226,226) = rgba(226,226,226,1) = rgb0(0.886,0.886,0.886) + shade 0 = #D7D7D7 = rgb(215,215,215) = rgba(215,215,215,1) = rgb0(0.843,0.843,0.843) + shade 3 = #CECECE = rgb(206,206,206) = rgba(206,206,206,1) = rgb0(0.808,0.808,0.808) + + shade 1 = #C4C4C4 = rgb(196,196,196) = rgba(196,196,196,1) = rgb0(0.769,0.769,0.769) +COMMON TEXT -- shade 2 = #BABABA = rgb(186,186,186) = rgba(186,186,186,1) = rgb0(0.729,0.729,0.729) + shade 0 = #B1B1B1 = rgb(177,177,177) = rgba(177,177,177,1) = rgb0(0.694,0.694,0.694) + shade 3 = #A7A7A7 = rgb(167,167,167) = rgba(167,167,167,1) = rgb0(0.655,0.655,0.655) + + shade 1 = #9E9E9E = rgb(158,158,158) = rgba(158,158,158,1) = rgb0(0.62,0.62,0.62) + shade 2 = #949494 = rgb(148,148,148) = rgba(148,148,148,1) = rgb0(0.58,0.58,0.58) +FOLDING BAR -- #8A8A8A = rgb(138,138,138) = rgba(138,138,138,1) = rgb0(0.541,0.541,0.541) + shade 2 = #818181 = rgb(129,129,129) = rgba(129,129,129,1) = rgb0(0.506,0.506,0.506) + shade 1 = #767676 = rgb(118,118,118) = rgba(118,118,118,1) = rgb0(0.463,0.463,0.463) + +FOLD / COMMENT -- shade 2 = #6C6C6C = rgb(108,108,108) = rgba(108,108,108,1) = rgb0(0.424,0.424,0.424) + +// shade 3 = #616161 = rgb( 97, 97, 97) = rgba( 97, 97, 97,1) = rgb0(0.38,0.38,0.38) +SELECTED TEXT -- #555555 = rgb( 85, 85, 85) = rgba( 85, 85, 85,1) = rgb0(0.333,0.333,0.333) +SEARCH BLOCK -- #494949 = rgb( 73, 73, 73) = rgba( 73, 73, 73,1) = rgb0(0.286,0.286,0.286) +TEXT COLOR ON HIGHLIGHTS & SEACH & BRACES -- #3D3D3D = rgb( 61, 61, 61) = rgba( 61, 61, 61,1) = rgb0(0.239,0.239,0.239) +HIGHLIGHT CARET ROW -- #2F2F2F = rgb( 47, 47, 47) = rgba( 47, 47, 47,1) = rgb0(0.184,0.184,0.184) +INDENT GUIDE LINES -- #202020 = rgb( 32, 32, 32) = rgba( 32, 32, 32,1) = rgb0(0.125,0.125,0.125) +BACKGROUND -- #101010 = rgb( 16, 16, 16) = rgba( 16, 16, 16,1) = rgb0(0.063,0.063,0.063) + + +BRACES MATCH -- #BE6C37 = rgb(190,108, 55) = rgba(190,108, 55,1) = rgb0(0.745,0.424,0.216) +BRACES NOT MATCH -- #BEB937 = rgb(190,185, 55) = rgba(190,185, 55,1) = rgb0(0.745,0.725,0.216) + + + +Purple + +* shade 0 = #5A2B80 = rgb( 90, 43,128) = rgba( 90, 43,128,1) = rgb0(0.353,0.169,0.502) + shade 1 = #7B529C = rgb(123, 82,156) = rgba(123, 82,156,1) = rgb0(0.482,0.322,0.612) +// shade 2 = #673A8C = rgb(103, 58,140) = rgba(103, 58,140,1) = rgb0(0.404,0.227,0.549) +// shade 3 = #4C1F70 = rgb( 76, 31,112) = rgba( 76, 31,112,1) = rgb0(0.298,0.122,0.439) + shade 4 = #3C125E = rgb( 60, 18, 94) = rgba( 60, 18, 94,1) = rgb0(0.235,0.071,0.369) + +Orange + +* shade 0 = #BE6C37 = rgb(190,108, 55) = rgba(190,108, 55,1) = rgb0(0.745,0.424,0.216) + shade 1 = #E8A072 = rgb(232,160,114) = rgba(232,160,114,1) = rgb0(0.91,0.627,0.447) +// shade 2 = #CF814E = rgb(207,129, 78) = rgba(207,129, 78,1) = rgb0(0.812,0.506,0.306) +// shade 3 = #A75825 = rgb(167, 88, 37) = rgba(167, 88, 37,1) = rgb0(0.655,0.345,0.145) + shade 4 = #8B4212 = rgb(139, 66, 18) = rgba(139, 66, 18,1) = rgb0(0.545,0.259,0.071) + +Cyan + +* shade 0 = #237A69 = rgb( 35,122,105) = rgba( 35,122,105,1) = rgb0(0.137,0.478,0.412) + shade 1 = #499485 = rgb( 73,148,133) = rgba( 73,148,133,1) = rgb0(0.286,0.58,0.522) +// shade 2 = #328574 = rgb( 50,133,116) = rgba( 50,133,116,1) = rgb0(0.196,0.522,0.455) +// shade 3 = #186B5B = rgb( 24,107, 91) = rgba( 24,107, 91,1) = rgb0(0.094,0.42,0.357) + shade 4 = #0C594A = rgb( 12, 89, 74) = rgba( 12, 89, 74,1) = rgb0(0.047,0.349,0.29) + +Yellow + +* shade 0 = #BEB937 = rgb(190,185, 55) = rgba(190,185, 55,1) = rgb0(0.745,0.725,0.216) + shade 1 = #E8E372 = rgb(232,227,114) = rgba(232,227,114,1) = rgb0(0.91,0.89,0.447) +// shade 2 = #CFCB4E = rgb(207,203, 78) = rgba(207,203, 78,1) = rgb0(0.812,0.796,0.306) +// shade 3 = #A7A225 = rgb(167,162, 37) = rgba(167,162, 37,1) = rgb0(0.655,0.635,0.145) + shade 4 = #8B8712 = rgb(139,135, 18) = rgba(139,135, 18,1) = rgb0(0.545,0.529,0.071) + +Blue + +* shade 0 = #323D83 = rgb( 50, 61,131) = rgba( 50, 61,131,1) = rgb0(0.196,0.239,0.514) + shade 1 = #59629F = rgb( 89, 98,159) = rgba( 89, 98,159,1) = rgb0(0.349,0.384,0.624) +// shade 2 = #414C8E = rgb( 65, 76,142) = rgba( 65, 76,142,1) = rgb0(0.255,0.298,0.557) +// shade 3 = #253073 = rgb( 37, 48,115) = rgba( 37, 48,115,1) = rgb0(0.145,0.188,0.451) + shade 4 = #172160 = rgb( 23, 33, 96) = rgba( 23, 33, 96,1) = rgb0(0.09,0.129,0.376) + +Pink + +* shade 0 = #A32F5E = rgb(163, 47, 94) = rgba(163, 47, 94,1) = rgb0(0.639,0.184,0.369) + shade 1 = #C7628B = rgb(199, 98,139) = rgba(199, 98,139,1) = rgb0(0.78,0.384,0.545) +// shade 2 = #B24370 = rgb(178, 67,112) = rgba(178, 67,112,1) = rgb0(0.698,0.263,0.439) +// shade 3 = #90204D = rgb(144, 32, 77) = rgba(144, 32, 77,1) = rgb0(0.565,0.125,0.302) + shade 4 = #78103A = rgb(120, 16, 58) = rgba(120, 16, 58,1) = rgb0(0.471,0.063,0.227) + +Green + +* shade 0 = #76AD32 = rgb(118,173, 50) = rgba(118,173, 50,1) = rgb0(0.463,0.678,0.196) + shade 1 = #A3D368 = rgb(163,211,104) = rgba(163,211,104,1) = rgb0(0.639,0.827,0.408) +// shade 2 = #88BD47 = rgb(136,189, 71) = rgba(136,189, 71,1) = rgb0(0.533,0.741,0.278) +// shade 3 = #639822 = rgb( 99,152, 34) = rgba( 99,152, 34,1) = rgb0(0.388,0.596,0.133) + shade 4 = #4D7F11 = rgb( 77,127, 17) = rgba( 77,127, 17,1) = rgb0(0.302,0.498,0.067) + +Orange + +* shade 0 = #BE9837 = rgb(190,152, 55) = rgba(190,152, 55,1) = rgb0(0.745,0.596,0.216) + shade 1 = #E8C672 = rgb(232,198,114) = rgba(232,198,114,1) = rgb0(0.91,0.776,0.447) +// shade 2 = #CFAB4E = rgb(207,171, 78) = rgba(207,171, 78,1) = rgb0(0.812,0.671,0.306) +// shade 3 = #A78225 = rgb(167,130, 37) = rgba(167,130, 37,1) = rgb0(0.655,0.51,0.145) + shade 4 = #8B6912 = rgb(139,105, 18) = rgba(139,105, 18,1) = rgb0(0.545,0.412,0.071) + +RED + +* shade 0 = #BE3737 = rgb(190, 55, 55) = rgba(190, 55, 55,1) = rgb0(0.745,0.216,0.216) + shade 1 = #E87272 = rgb(232,114,114) = rgba(232,114,114,1) = rgb0(0.91,0.447,0.447) + shade 2 = #CF4E4E = rgb(207, 78, 78) = rgba(207, 78, 78,1) = rgb0(0.812,0.306,0.306) + shade 3 = #A72525 = rgb(167, 37, 37) = rgba(167, 37, 37,1) = rgb0(0.655,0.145,0.145) + shade 4 = #8B1212 = rgb(139, 18, 18) = rgba(139, 18, 18,1) = rgb0(0.545,0.071,0.071) + diff --git a/manifest.mf b/manifest.mf index efa6c80..bfc2d75 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: 3 +OpenIDE-Module-Implementation-Version: 4 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/src/org/idp/laf/Kernel.java b/src/org/idp/laf/Kernel.java index 762dd0b..e61218a 100644 --- a/src/org/idp/laf/Kernel.java +++ b/src/org/idp/laf/Kernel.java @@ -5,6 +5,8 @@ */ package org.idp.laf; +import com.sun.java.swing.plaf.windows.WindowsBorders; +import java.awt.BasicStroke; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; @@ -19,11 +21,21 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Random; +import java.util.Set; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.border.BevelBorder; +import javax.swing.border.CompoundBorder; +import javax.swing.border.EmptyBorder; +import javax.swing.border.EtchedBorder; +import javax.swing.border.LineBorder; +import javax.swing.border.MatteBorder; +import javax.swing.border.StrokeBorder; +import javax.swing.plaf.BorderUIResource.CompoundBorderUIResource; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.metal.DefaultMetalTheme; import javax.swing.plaf.metal.MetalLookAndFeel; @@ -44,7 +56,6 @@ public class Kernel { String nb_etc = retrieve_netbeans_etc_dir(); setup_font_antialiaing_hints(nb_etc); - String cfh_dir = retrieve_app_folder(); boolean a = (new File (cfh_dir).mkdirs()); load_setup (cfh_dir); @@ -55,6 +66,95 @@ public class Kernel { + "modifications done. Follow your ugly way of live."); } + String [] letsNULLit = { +// "Button.border", +// "ToggleButton.border", + "CheckBox.border", + "DesktopIcon.border", + "ToggleButton.border", + "FormattedTextField.border", + "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", +//, +"RadioButtonMenuItem.border", +"PopupMenu.border" + }; + + + javax.swing.border.EmptyBorder eb = new EmptyBorder(0,0,0,0); + 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); + + UIManager.put ("EditorPane.border", eb); // Editor FUCKING LINE! + + UIManager.put ("TabbedContainer.editor.outerBorder", eb); // 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! + + javax.swing.border.EmptyBorder mainMenuBorder = new EmptyBorder(2,4,2,4); + javax.swing.border.EmptyBorder itemBorder = new EmptyBorder(2,2,2,2); + UIManager.put ("MenuBar.border", cpp); + UIManager.put ("Menu.border", mainMenuBorder); + UIManager.put ("MenuItem.border", itemBorder); + + for (String o : letsNULLit) + { + UIManager.put(o, cpp); + } + + for (String o : menuShit) + { + UIManager.put(o, eb); + } + + + + for (String o : Keys.borders) + { + System.out.println(o + " : " + UIManager.getDefaults().get(o)); + } + +// javax.swing.border.EmptyBorder bd = new EmptyBorder(0,0,0,0); +// UIManager.put("TabbedContainer.view.outerBorder", bd); + + + + } private static String retrieve_app_folder () diff --git a/src/org/idp/laf/Keys.java b/src/org/idp/laf/Keys.java index d73199e..655158a 100644 --- a/src/org/idp/laf/Keys.java +++ b/src/org/idp/laf/Keys.java @@ -10,6 +10,60 @@ package org.idp.laf; */ public class Keys { + public static final String [] borders = { + "Button.border", + "CheckBox.border", + "CheckBoxMenuItem.border", + "DesktopIcon.border", + "EditorPane.border", + "FormattedTextField.border", + "Menu.border", + "List.focusCellHighlightBorder", + "MenuBar.border", + "MenuItem.border", + "OptionPane.border", + "PasswordField.border", + "PopupMenu.border", + "ProgressBar.border", + "RadioButton.border", + "RadioButtonMenuItem.border", + "ScrollPane.border", + "SplitPane.border", + //"TabbedPane.tabsOverlapBorder", boolean WTF?! + "Table.focusCellHighlightBorder", + "Table.scrollPaneBorder", + "TableHeader.cellBorder", + "TextArea.border", + "TextField.border", + "TextPane.border", + "TitledBorder.border", + "ToggleButton.border", + "ToolBar.border", + "ToolTip.border", + "Tree.editorBorder", + "Nb.Editor.Status.leftBorder", + "Nb.Editor.Status.innerBorder", + "Nb.Editor.Status.rightBorder", + "Nb.Editor.Status.onlyOneBorder", + "Nb.Editor.Toolbar.border", + "Nb.Explorer.Status.border", + "Nb.Desktop.border", +// "TabbedContainer.editor.contentBorder", null +// "TabbedContainer.editor.tabsBorder", null + "TabbedContainer.editor.outerBorder", +// "TabbedContainer.view.contentBorder", null +// "TabbedContainer.view.tabsBorder", null + "TabbedContainer.view.outerBorder", +// "TabbedContainer.sliding.contentBorder", null +// "TabbedContainer.sliding.tabsBorder", null +// "TabbedContainer.sliding.outerBorder", null + "nb.explorer.ministatusbar.border", +// "nb.desktop.splitpane.border", null + "CheckBox.border" + }; + + + public static final String [] color_keys = { "Button.background", diff --git a/src/org/idp/laf/gui/ColorEditorTopComponent.java b/src/org/idp/laf/gui/ColorEditorTopComponent.java index 3b32633..4127d40 100644 --- a/src/org/idp/laf/gui/ColorEditorTopComponent.java +++ b/src/org/idp/laf/gui/ColorEditorTopComponent.java @@ -16,7 +16,6 @@ import org.openide.awt.ActionID; import org.openide.awt.ActionReference; import org.openide.windows.TopComponent; import org.openide.util.NbBundle.Messages; -import sun.swing.PrintColorUIResource; /** * @author Edward M. Kagan diff --git a/update/org-idp-laf-1.0.4.nbm b/update/org-idp-laf-1.0.4.nbm new file mode 100644 index 0000000000000000000000000000000000000000..24449c21414b7f2e7b063528a7bab68d14b9bde1 GIT binary patch literal 21963 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 - + - - + +