From 03627281d78882c9586fe14954b888c00b3e7bdc Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Fri, 14 Feb 2020 13:59:14 +0100 Subject: [PATCH] ToolBar: added empty space around toolbar (issue #56) --- CHANGELOG.md | 5 +++-- .../formdev/flatlaf/ui/FlatMarginBorder.java | 21 +++++++++++++++---- .../formdev/flatlaf/ui/FlatToolBarBorder.java | 5 +++++ .../com/formdev/flatlaf/FlatLaf.properties | 1 + .../uidefaults/FlatDarkLaf_1.8.0_202.txt | 3 ++- .../uidefaults/FlatLightLaf_1.8.0_202.txt | 3 ++- 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e89241b..7a4d101b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,8 +17,9 @@ FlatLaf Change Log is "..." or a single character. - ToolBar: No longer use special rollover border for buttons in toolbar. (issue #36) -- ToolBar: Added empty space around buttons in toolbar (see UI default value - `Button.toolbar.spacingInsets`). (issue #56) +- ToolBar: Added empty space around buttons in toolbar and toolbar itself (see + UI default values `Button.toolbar.spacingInsets` and `ToolBar.borderMargins`). + (issue #56) - Fixed "illegal reflective access operation" warning on macOS when using Java 12 or later. (issue #60, PR #61) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMarginBorder.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMarginBorder.java index 212b03e0..27240fef 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMarginBorder.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMarginBorder.java @@ -29,13 +29,26 @@ import javax.swing.plaf.basic.BasicBorders; public class FlatMarginBorder extends BasicBorders.MarginBorder { + private final int left, right, top, bottom; + + public FlatMarginBorder() { + left = right = top = bottom = 0; + } + + public FlatMarginBorder( Insets insets ) { + left = insets.left; + top = insets.top; + right = insets.right; + bottom = insets.bottom; + } + @Override public Insets getBorderInsets( Component c, Insets insets ) { insets = super.getBorderInsets( c, insets ); - insets.top = scale( insets.top ); - insets.left = scale( insets.left ); - insets.bottom = scale( insets.bottom ); - insets.right = scale( insets.right ); + insets.top = scale( insets.top + top ); + insets.left = scale( insets.left + left ); + insets.bottom = scale( insets.bottom + bottom ); + insets.right = scale( insets.right + right ); return insets; } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatToolBarBorder.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatToolBarBorder.java index 69423eb4..dce83f7a 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatToolBarBorder.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatToolBarBorder.java @@ -29,6 +29,7 @@ import javax.swing.UIManager; /** * Border for {@link javax.swing.JToolBar}. * + * @uiDefault ToolBar.borderMargins Insets * @uiDefault ToolBar.gripColor Color * * @author Karl Tauber @@ -42,6 +43,10 @@ public class FlatToolBarBorder protected final Color gripColor = UIManager.getColor( "ToolBar.gripColor" ); + public FlatToolBarBorder() { + super( UIManager.getInsets( "ToolBar.borderMargins" ) ); + } + @Override public void paintBorder( Component c, Graphics g, int x, int y, int width, int height ) { // paint grip diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties index 2a509599..622e39f0 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties @@ -505,6 +505,7 @@ ToggleButton.tab.focusBackground=$TabbedPane.focusColor #---- ToolBar ---- ToolBar.border=com.formdev.flatlaf.ui.FlatToolBarBorder +ToolBar.borderMargins=2,2,2,2 ToolBar.isRollover=true ToolBar.gripColor=@icon ToolBar.dockingBackground=@background diff --git a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatDarkLaf_1.8.0_202.txt b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatDarkLaf_1.8.0_202.txt index 3f18ee02..e605b0a9 100644 --- a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatDarkLaf_1.8.0_202.txt +++ b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatDarkLaf_1.8.0_202.txt @@ -1890,8 +1890,9 @@ ToolBar.ancestorInputMap [lazy] 8 javax.swing.plaf.InputMapUIResource [ pressed RIGHT navigateRight pressed UP navigateUp ToolBar.background #3c3f41 javax.swing.plaf.ColorUIResource [UI] -ToolBar.border [lazy] 0,0,0,0 false com.formdev.flatlaf.ui.FlatToolBarBorder [UI] +ToolBar.border [lazy] 2,2,2,2 false com.formdev.flatlaf.ui.FlatToolBarBorder [UI] ToolBar.borderColor #cccccc javax.swing.plaf.ColorUIResource [UI] +ToolBar.borderMargins 2,2,2,2 javax.swing.plaf.InsetsUIResource [UI] ToolBar.darkShadow #7a8a99 javax.swing.plaf.ColorUIResource [UI] ToolBar.dockingBackground #3c3f41 javax.swing.plaf.ColorUIResource [UI] ToolBar.dockingForeground #6382bf javax.swing.plaf.ColorUIResource [UI] diff --git a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatLightLaf_1.8.0_202.txt b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatLightLaf_1.8.0_202.txt index ae367fdb..0d406724 100644 --- a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatLightLaf_1.8.0_202.txt +++ b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/uidefaults/FlatLightLaf_1.8.0_202.txt @@ -1892,8 +1892,9 @@ ToolBar.ancestorInputMap [lazy] 8 javax.swing.plaf.InputMapUIResource [ pressed RIGHT navigateRight pressed UP navigateUp ToolBar.background #f2f2f2 javax.swing.plaf.ColorUIResource [UI] -ToolBar.border [lazy] 0,0,0,0 false com.formdev.flatlaf.ui.FlatToolBarBorder [UI] +ToolBar.border [lazy] 2,2,2,2 false com.formdev.flatlaf.ui.FlatToolBarBorder [UI] ToolBar.borderColor #cccccc javax.swing.plaf.ColorUIResource [UI] +ToolBar.borderMargins 2,2,2,2 javax.swing.plaf.InsetsUIResource [UI] ToolBar.darkShadow #7a8a99 javax.swing.plaf.ColorUIResource [UI] ToolBar.dockingBackground #f2f2f2 javax.swing.plaf.ColorUIResource [UI] ToolBar.dockingForeground #6382bf javax.swing.plaf.ColorUIResource [UI]