From 90af8c0ce8181a6c5c6f899e5d5f72c25bd2721a Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sun, 15 Sep 2019 23:50:45 +0200 Subject: [PATCH] Menus: scale defaultTextIconGap again if iconTextGap property has changed --- .../formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java | 14 ++++++++++++++ .../com/formdev/flatlaf/ui/FlatMenuItemUI.java | 14 ++++++++++++++ .../java/com/formdev/flatlaf/ui/FlatMenuUI.java | 14 ++++++++++++++ .../flatlaf/ui/FlatRadioButtonMenuItemUI.java | 14 ++++++++++++++ 4 files changed, 56 insertions(+) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java index 8d108f08..7b4fac40 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicCheckBoxMenuItemUI; @@ -40,4 +41,17 @@ public class FlatCheckBoxMenuItemUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java index 9652cae8..c8084f72 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuItemUI; @@ -40,4 +41,17 @@ public class FlatMenuItemUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java index 45836975..7f09f7a5 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuUI; @@ -40,4 +41,17 @@ public class FlatMenuUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java index 879293c5..af92f0b2 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicRadioButtonMenuItemUI; @@ -40,4 +41,17 @@ public class FlatRadioButtonMenuItemUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } }