UIDefaultsLoader: on color functions use "autoInverse" option by default if "derived" option is set

This commit is contained in:
Karl Tauber
2020-05-20 00:40:05 +02:00
parent 2a0403a988
commit be529655d6
5 changed files with 36 additions and 28 deletions

View File

@@ -572,7 +572,7 @@ class UIDefaultsLoader
* saturate(color,amount[,options]) or desaturate(color,amount[,options])
* - color: a color (e.g. #f00) or a color function
* - amount: percentage 0-100%
* - options: [relative] [autoInverse] [lazy] [derived]
* - options: [relative] [autoInverse] [noAutoInverse] [lazy] [derived]
*/
private static Object parseColorHSLIncreaseDecrease( int hslIndex, boolean increase,
List<String> params, Function<String, String> resolver, boolean reportError )
@@ -590,6 +590,10 @@ class UIDefaultsLoader
autoInverse = options.contains( "autoInverse" );
lazy = options.contains( "lazy" );
derived = options.contains( "derived" );
// use autoInverse by default for derived colors, except if noAutoInverse is set
if( derived && !options.contains( "noAutoInverse" ) )
autoInverse = true;
}
// create function

View File

@@ -72,8 +72,8 @@ controlDkShadow=lighten($controlShadow,10%)
#---- Button ----
Button.background=#4c5052
Button.hoverBackground=lighten($Button.background,3%,derived autoInverse)
Button.pressedBackground=lighten($Button.background,6%,derived autoInverse)
Button.hoverBackground=lighten($Button.background,3%,derived)
Button.pressedBackground=lighten($Button.background,6%,derived)
Button.borderColor=#5e6060
Button.disabledBorderColor=#5e6060
@@ -82,16 +82,16 @@ Button.hoverBorderColor=$Button.focusedBorderColor
Button.default.background=#365880
Button.default.foreground=#bbbbbb
Button.default.hoverBackground=lighten($Button.default.background,3%,derived autoInverse)
Button.default.pressedBackground=lighten($Button.default.background,6%,derived autoInverse)
Button.default.hoverBackground=lighten($Button.default.background,3%,derived)
Button.default.pressedBackground=lighten($Button.default.background,6%,derived)
Button.default.borderColor=#4c708c
Button.default.hoverBorderColor=#537699
Button.default.focusedBorderColor=#537699
Button.default.focusColor=#43688c
Button.default.boldText=true
Button.toolbar.hoverBackground=lighten($Button.background,1%,derived autoInverse)
Button.toolbar.pressedBackground=lighten($Button.background,4%,derived autoInverse)
Button.toolbar.hoverBackground=lighten($Button.background,1%,derived)
Button.toolbar.pressedBackground=lighten($Button.background,4%,derived)
#---- CheckBox ----
@@ -104,8 +104,8 @@ CheckBox.icon.hoverBorderColor=$CheckBox.icon.focusedBorderColor
CheckBox.icon.selectedFocusedBorderColor=#466D94
CheckBox.icon.background=#43494A
CheckBox.icon.disabledBackground=@background
CheckBox.icon.hoverBackground=lighten($CheckBox.icon.background,3%,derived autoInverse)
CheckBox.icon.pressedBackground=lighten($CheckBox.icon.background,6%,derived autoInverse)
CheckBox.icon.hoverBackground=lighten($CheckBox.icon.background,3%,derived)
CheckBox.icon.pressedBackground=lighten($CheckBox.icon.background,6%,derived)
CheckBox.icon.selectedBackground=#43494A
CheckBox.icon.checkmarkColor=#A7A7A7
CheckBox.icon.disabledCheckmarkColor=#606060
@@ -134,7 +134,7 @@ Component.error.borderColor=desaturate($Component.error.focusedBorderColor,25%)
Component.error.focusedBorderColor=#8b3c3c
Component.warning.borderColor=darken(desaturate($Component.warning.focusedBorderColor,20%),10%)
Component.warning.focusedBorderColor=#ac7920
Component.custom.borderColor=desaturate(#f00,50%,relative derived)
Component.custom.borderColor=desaturate(#f00,50%,relative derived noAutoInverse)
#---- Desktop ----
@@ -157,8 +157,8 @@ InternalFrame.inactiveTitleForeground=@disabledText
InternalFrame.activeBorderColor=darken(@background,7%)
InternalFrame.inactiveBorderColor=darken(@background,3%)
InternalFrame.buttonHoverBackground=lighten($InternalFrame.activeTitleBackground,10%,derived autoInverse)
InternalFrame.buttonPressedBackground=lighten($InternalFrame.activeTitleBackground,20%,derived autoInverse)
InternalFrame.buttonHoverBackground=lighten($InternalFrame.activeTitleBackground,10%,derived)
InternalFrame.buttonPressedBackground=lighten($InternalFrame.activeTitleBackground,20%,derived)
InternalFrame.closeHoverBackground=lazy(Actions.Red)
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
InternalFrame.closeHoverForeground=#fff
@@ -233,7 +233,7 @@ Separator.foreground=#515151
Slider.trackColor=#646464
Slider.thumbColor=#A6A6A6
Slider.tickColor=#888888
Slider.hoverColor=darken($Slider.thumbColor,15%,derived autoInverse)
Slider.hoverColor=darken($Slider.thumbColor,15%,derived)
Slider.disabledForeground=#4c5052
@@ -268,11 +268,11 @@ TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
#---- ToggleButton ----
ToggleButton.selectedBackground=lighten($ToggleButton.background,10%,derived autoInverse)
ToggleButton.selectedBackground=lighten($ToggleButton.background,10%,derived)
ToggleButton.selectedForeground=@foreground
ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,3%,derived autoInverse)
ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,3%,derived)
ToggleButton.toolbar.selectedBackground=lighten($ToggleButton.background,7%,derived autoInverse)
ToggleButton.toolbar.selectedBackground=lighten($ToggleButton.background,7%,derived)
#---- ToolTip ----

View File

@@ -73,8 +73,8 @@ controlDkShadow=darken($controlShadow,15%)
Button.background=#ffffff
Button.focusedBackground=#e3f1fa
Button.hoverBackground=darken($Button.background,3%,derived autoInverse)
Button.pressedBackground=darken($Button.background,10%,derived autoInverse)
Button.hoverBackground=darken($Button.background,3%,derived)
Button.pressedBackground=darken($Button.background,10%,derived)
Button.borderColor=$Component.borderColor
Button.disabledBorderColor=$Component.disabledBorderColor
@@ -92,8 +92,8 @@ Button.default.focusedBorderColor=$Button.focusedBorderColor
Button.default.focusColor=$Component.focusColor
Button.default.borderWidth=2
Button.toolbar.hoverBackground=darken($Button.background,12%,derived autoInverse)
Button.toolbar.pressedBackground=darken($Button.background,15%,derived autoInverse)
Button.toolbar.hoverBackground=darken($Button.background,12%,derived)
Button.toolbar.pressedBackground=darken($Button.background,15%,derived)
#---- CheckBox ----
@@ -136,7 +136,7 @@ Component.error.borderColor=lighten(desaturate($Component.error.focusedBorderCol
Component.error.focusedBorderColor=#e53e4d
Component.warning.borderColor=lighten(saturate($Component.warning.focusedBorderColor,25%),20%)
Component.warning.focusedBorderColor=#e2a53a
Component.custom.borderColor=lighten(desaturate(#f00,20%,derived),25%,derived)
Component.custom.borderColor=lighten(desaturate(#f00,20%,derived noAutoInverse),25%,derived noAutoInverse)
#---- Desktop ----
@@ -164,8 +164,8 @@ InternalFrame.inactiveTitleForeground=@disabledText
InternalFrame.activeBorderColor=darken($Component.borderColor,20%)
InternalFrame.inactiveBorderColor=$Component.borderColor
InternalFrame.buttonHoverBackground=darken($InternalFrame.activeTitleBackground,10%,derived autoInverse)
InternalFrame.buttonPressedBackground=darken($InternalFrame.activeTitleBackground,20%,derived autoInverse)
InternalFrame.buttonHoverBackground=darken($InternalFrame.activeTitleBackground,10%,derived)
InternalFrame.buttonPressedBackground=darken($InternalFrame.activeTitleBackground,20%,derived)
InternalFrame.closeHoverBackground=lazy(Actions.Red)
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
InternalFrame.closeHoverForeground=#fff
@@ -240,7 +240,7 @@ Separator.foreground=#d1d1d1
Slider.trackColor=#c4c4c4
Slider.thumbColor=#6e6e6e
Slider.tickColor=#888888
Slider.hoverColor=lighten($Slider.thumbColor,15%,derived autoInverse)
Slider.hoverColor=lighten($Slider.thumbColor,15%,derived)
Slider.disabledForeground=#c0c0c0
@@ -275,9 +275,9 @@ TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
#---- ToggleButton ----
ToggleButton.selectedBackground=darken($ToggleButton.background,20%,derived autoInverse)
ToggleButton.selectedBackground=darken($ToggleButton.background,20%,derived)
ToggleButton.selectedForeground=@foreground
ToggleButton.disabledSelectedBackground=darken($ToggleButton.background,13%,derived autoInverse)
ToggleButton.disabledSelectedBackground=darken($ToggleButton.background,13%,derived)
ToggleButton.toolbar.selectedBackground=$ToggleButton.selectedBackground

View File

@@ -39,8 +39,8 @@ HelpButton.hoverBorderColor=null
ToggleButton.startBackground=$ToggleButton.background
ToggleButton.endBackground=$ToggleButton.background
[dark]ToggleButton.selectedBackground=lighten($ToggleButton.background,15%,derived autoInverse)
[dark]ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,5%,derived autoInverse)
[dark]ToggleButton.selectedBackground=lighten($ToggleButton.background,15%,derived)
[dark]ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,5%,derived)
#---- theme specific ----

View File

@@ -58,11 +58,15 @@ public class FlatThemeTokenMaker
tokenMap.put( "hsla", TOKEN_FUNCTION );
tokenMap.put( "lighten", TOKEN_FUNCTION );
tokenMap.put( "darken", TOKEN_FUNCTION );
tokenMap.put( "saturate", TOKEN_FUNCTION );
tokenMap.put( "desaturate", TOKEN_FUNCTION );
tokenMap.put( "lazy", TOKEN_FUNCTION );
// function options
tokenMap.put( "relative", Token.RESERVED_WORD );
tokenMap.put( "derived", Token.RESERVED_WORD );
tokenMap.put( "autoInverse", Token.RESERVED_WORD );
tokenMap.put( "noAutoInverse", Token.RESERVED_WORD );
}
/**