Buttons: made iconTextGap configurable in properties files and scale it

This commit is contained in:
Karl Tauber
2019-09-15 22:25:49 +02:00
parent bf03f57055
commit eff9c50571
3 changed files with 17 additions and 0 deletions

View File

@@ -31,6 +31,7 @@ import javax.swing.Icon;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JToolBar; import javax.swing.JToolBar;
import javax.swing.LookAndFeel;
import javax.swing.UIManager; import javax.swing.UIManager;
import javax.swing.border.Border; import javax.swing.border.Border;
import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ComponentUI;
@@ -44,6 +45,7 @@ import javax.swing.plaf.basic.BasicButtonUI;
* @uiDefault Component.focusWidth int * @uiDefault Component.focusWidth int
* @uiDefault Button.arc int * @uiDefault Button.arc int
* @uiDefault Button.minimumWidth int * @uiDefault Button.minimumWidth int
* @uiDefault Button.iconTextGap int
* @uiDefault Button.focusedBackground Color optional * @uiDefault Button.focusedBackground Color optional
* @uiDefault Button.hoverBackground Color optional * @uiDefault Button.hoverBackground Color optional
* @uiDefault Button.pressedBackground Color optional * @uiDefault Button.pressedBackground Color optional
@@ -64,6 +66,7 @@ public class FlatButtonUI
protected int focusWidth; protected int focusWidth;
protected int arc; protected int arc;
protected int minimumWidth; protected int minimumWidth;
protected int iconTextGap;
protected Color focusedBackground; protected Color focusedBackground;
protected Color hoverBackground; protected Color hoverBackground;
@@ -101,6 +104,7 @@ public class FlatButtonUI
focusWidth = UIManager.getInt( "Component.focusWidth" ); focusWidth = UIManager.getInt( "Component.focusWidth" );
arc = UIManager.getInt( prefix + "arc" ); arc = UIManager.getInt( prefix + "arc" );
minimumWidth = UIManager.getInt( prefix + "minimumWidth" ); minimumWidth = UIManager.getInt( prefix + "minimumWidth" );
iconTextGap = FlatUIUtils.getUIInt( prefix + "iconTextGap", 4 );
focusedBackground = UIManager.getColor( prefix + "focusedBackground" ); focusedBackground = UIManager.getColor( prefix + "focusedBackground" );
hoverBackground = UIManager.getColor( prefix + "hoverBackground" ); hoverBackground = UIManager.getColor( prefix + "hoverBackground" );
@@ -121,6 +125,8 @@ public class FlatButtonUI
defaults_initialized = true; defaults_initialized = true;
} }
LookAndFeel.installProperty( b, "iconTextGap", scale( iconTextGap ) );
MigLayoutVisualPadding.install( b, focusWidth ); MigLayoutVisualPadding.install( b, focusWidth );
} }

View File

@@ -16,11 +16,13 @@
package com.formdev.flatlaf.ui; package com.formdev.flatlaf.ui;
import static com.formdev.flatlaf.util.UIScale.scale;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Rectangle; import java.awt.Rectangle;
import javax.swing.AbstractButton; import javax.swing.AbstractButton;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.LookAndFeel;
import javax.swing.UIManager; import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicRadioButtonUI; import javax.swing.plaf.basic.BasicRadioButtonUI;
@@ -30,6 +32,7 @@ import javax.swing.plaf.basic.BasicRadioButtonUI;
* *
* TODO document used UI defaults of superclass * TODO document used UI defaults of superclass
* *
* @uiDefault Button.iconTextGap int
* @uiDefault Button.disabledText Color * @uiDefault Button.disabledText Color
* *
* @author Karl Tauber * @author Karl Tauber
@@ -37,6 +40,7 @@ import javax.swing.plaf.basic.BasicRadioButtonUI;
public class FlatRadioButtonUI public class FlatRadioButtonUI
extends BasicRadioButtonUI extends BasicRadioButtonUI
{ {
protected int iconTextGap;
protected Color disabledText; protected Color disabledText;
private boolean defaults_initialized = false; private boolean defaults_initialized = false;
@@ -56,11 +60,14 @@ public class FlatRadioButtonUI
if( !defaults_initialized ) { if( !defaults_initialized ) {
String prefix = getPropertyPrefix(); String prefix = getPropertyPrefix();
iconTextGap = FlatUIUtils.getUIInt( prefix + "iconTextGap", 4 );
disabledText = UIManager.getColor( prefix + "disabledText" ); disabledText = UIManager.getColor( prefix + "disabledText" );
defaults_initialized = true; defaults_initialized = true;
} }
LookAndFeel.installProperty( b, "iconTextGap", scale( iconTextGap ) );
MigLayoutVisualPadding.install( b, null ); MigLayoutVisualPadding.install( b, null );
} }

View File

@@ -66,6 +66,7 @@ Button.border=com.formdev.flatlaf.ui.FlatButtonBorder
Button.arc=6 Button.arc=6
Button.minimumWidth=72 Button.minimumWidth=72
Button.margin=2,14,2,14 Button.margin=2,14,2,14
Button.iconTextGap=4
Button.rollover=true Button.rollover=true
Button.defaultButtonFollowsFocus=false Button.defaultButtonFollowsFocus=false
@@ -75,6 +76,7 @@ Button.defaultButtonFollowsFocus=false
CheckBox.border=com.formdev.flatlaf.ui.FlatMarginBorder CheckBox.border=com.formdev.flatlaf.ui.FlatMarginBorder
CheckBox.icon=com.formdev.flatlaf.icons.FlatCheckBoxIcon CheckBox.icon=com.formdev.flatlaf.icons.FlatCheckBoxIcon
CheckBox.margin=2,2,2,2 CheckBox.margin=2,2,2,2
CheckBox.iconTextGap=4
CheckBox.rollover=true CheckBox.rollover=true
@@ -249,6 +251,7 @@ RadioButton.border=com.formdev.flatlaf.ui.FlatMarginBorder
RadioButton.icon=com.formdev.flatlaf.icons.FlatRadioButtonIcon RadioButton.icon=com.formdev.flatlaf.icons.FlatRadioButtonIcon
RadioButton.icon.centerDiameter=8 RadioButton.icon.centerDiameter=8
RadioButton.margin=2,2,2,2 RadioButton.margin=2,2,2,2
RadioButton.iconTextGap=4
RadioButton.rollover=true RadioButton.rollover=true
@@ -373,6 +376,7 @@ TitledBorder.border=1,1,1,1,@@Separator.foreground
ToggleButton.border=com.formdev.flatlaf.ui.FlatButtonBorder ToggleButton.border=com.formdev.flatlaf.ui.FlatButtonBorder
ToggleButton.arc=6 ToggleButton.arc=6
ToggleButton.margin=2,14,2,14 ToggleButton.margin=2,14,2,14
ToggleButton.iconTextGap=4
ToggleButton.rollover=true ToggleButton.rollover=true
ToggleButton.background=@@Button.background ToggleButton.background=@@Button.background