From 1caab194af6afa82c5d7d33aff0cf0f98b48cd78 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Thu, 18 Nov 2021 18:01:07 +0100 Subject: [PATCH] TabbedPane: - added styling support for properties added in PR #343 - updated change log --- CHANGELOG.md | 1 + .../main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java | 5 +++-- .../java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java | 2 ++ .../test/java/com/formdev/flatlaf/ui/TestFlatStyling.java | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e1a7501..e0358cac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,7 @@ FlatLaf Change Log incompatible changes in FlatLaf properties files. - Slider: Support specifying width of thumb border (see UI value `Slider.thumbBorderWidth`). +- TabbedPane: Optionally paint selected tab as card. (PR #343) - Added more color functions to class `ColorFunctions` for easy use in applications: `lighten()`, `darken()`, `saturate()`, `desaturate()`, `spin()`, `tint()`, `shade()` and `luma()`. diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java index 59525696..66931abf 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java @@ -209,14 +209,14 @@ public class FlatTabbedPaneUI @Styleable protected int maximumTabWidth; @Styleable protected int tabHeight; @Styleable protected int tabSelectionHeight; - /** @since 2 */ protected int cardTabSelectionHeight; + /** @since 2 */ @Styleable protected int cardTabSelectionHeight; @Styleable protected int contentSeparatorHeight; @Styleable protected boolean showTabSeparators; @Styleable protected boolean tabSeparatorsFullHeight; @Styleable protected boolean hasFullBorder; @Styleable protected boolean tabsOpaque = true; - private int tabType; + @Styleable(type=String.class) private int tabType; @Styleable(type=String.class) private int tabsPopupPolicy; @Styleable(type=String.class) private int scrollButtonsPolicy; @Styleable(type=String.class) private int scrollButtonsPlacement; @@ -638,6 +638,7 @@ public class FlatTabbedPaneUI if( value instanceof String ) { switch( key ) { + case "tabType": value = parseTabType( (String) value ); break; case "tabsPopupPolicy": value = parseTabsPopupPolicy( (String) value ); break; case "scrollButtonsPolicy": value = parseScrollButtonsPolicy( (String) value ); break; case "scrollButtonsPlacement": value = parseScrollButtonsPlacement( (String) value ); break; diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java index c85f6003..2a4f2c1a 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyleableInfo.java @@ -685,12 +685,14 @@ public class TestFlatStyleableInfo "maximumTabWidth", int.class, "tabHeight", int.class, "tabSelectionHeight", int.class, + "cardTabSelectionHeight", int.class, "contentSeparatorHeight", int.class, "showTabSeparators", boolean.class, "tabSeparatorsFullHeight", boolean.class, "hasFullBorder", boolean.class, "tabsOpaque", boolean.class, + "tabType", String.class, "tabsPopupPolicy", String.class, "scrollButtonsPolicy", String.class, "scrollButtonsPlacement", String.class, diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java index 4aa654ab..ea783889 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/ui/TestFlatStyling.java @@ -849,12 +849,14 @@ public class TestFlatStyling ui.applyStyle( "maximumTabWidth: 100" ); ui.applyStyle( "tabHeight: 30" ); ui.applyStyle( "tabSelectionHeight: 3" ); + ui.applyStyle( "cardTabSelectionHeight: 2" ); ui.applyStyle( "contentSeparatorHeight: 1" ); ui.applyStyle( "showTabSeparators: false" ); ui.applyStyle( "tabSeparatorsFullHeight: false" ); ui.applyStyle( "hasFullBorder: false" ); ui.applyStyle( "tabsOpaque: false" ); + ui.applyStyle( "tabType: card" ); ui.applyStyle( "tabsPopupPolicy: asNeeded" ); ui.applyStyle( "scrollButtonsPolicy: asNeeded" ); ui.applyStyle( "scrollButtonsPlacement: both" );