macOS light and dark themes (issue #497)

This commit is contained in:
Karl Tauber
2022-05-09 23:31:21 +02:00
parent bfede219d0
commit b459715cb5
20 changed files with 4039 additions and 43 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,81 @@
import Cocoa
func colorToHex( color: NSColor ) -> String {
return String( format: (color.alphaComponent != 1 ? "#%02x%02x%02x%02x" : "#%02x%02x%02x"),
Int( 255 * color.redComponent ),
Int( 255 * color.greenComponent ),
Int( 255 * color.blueComponent ),
Int( 255 * color.alphaComponent ) )
}
func printColorHex( color: NSColor, space: NSColorSpace ) {
print( "@ns", color.colorNameComponent.prefix(1).capitalized, color.colorNameComponent.dropFirst(),
" = ", colorToHex( color: color.usingColorSpace( space )! ),
separator: "" )
}
func printColorsHex( space: NSColorSpace ) {
print( "#----", space, "----" )
// order is the same as in Xcode color chooser (Color Palettes > Developer)
printColorHex( color: NSColor.labelColor, space: space )
printColorHex( color: NSColor.secondaryLabelColor, space: space )
printColorHex( color: NSColor.tertiaryLabelColor, space: space )
printColorHex( color: NSColor.quaternaryLabelColor, space: space )
printColorHex( color: NSColor.systemRed, space: space )
printColorHex( color: NSColor.systemGreen, space: space )
printColorHex( color: NSColor.systemBlue, space: space )
printColorHex( color: NSColor.systemOrange, space: space )
printColorHex( color: NSColor.systemYellow, space: space )
printColorHex( color: NSColor.systemBrown, space: space )
printColorHex( color: NSColor.systemPink, space: space )
printColorHex( color: NSColor.systemPurple, space: space )
printColorHex( color: NSColor.systemTeal, space: space )
printColorHex( color: NSColor.systemIndigo, space: space )
printColorHex( color: NSColor.systemMint, space: space )
printColorHex( color: NSColor.systemCyan, space: space )
printColorHex( color: NSColor.systemGray, space: space )
printColorHex( color: NSColor.linkColor, space: space )
printColorHex( color: NSColor.placeholderTextColor, space: space )
printColorHex( color: NSColor.windowFrameTextColor, space: space )
printColorHex( color: NSColor.selectedMenuItemTextColor, space: space )
printColorHex( color: NSColor.alternateSelectedControlTextColor, space: space )
printColorHex( color: NSColor.headerTextColor, space: space )
printColorHex( color: NSColor.separatorColor, space: space )
printColorHex( color: NSColor.gridColor, space: space )
printColorHex( color: NSColor.textColor, space: space )
printColorHex( color: NSColor.textBackgroundColor, space: space )
printColorHex( color: NSColor.selectedTextColor, space: space )
printColorHex( color: NSColor.selectedTextBackgroundColor, space: space )
printColorHex( color: NSColor.unemphasizedSelectedTextBackgroundColor, space: space )
printColorHex( color: NSColor.unemphasizedSelectedTextColor, space: space )
printColorHex( color: NSColor.windowBackgroundColor, space: space )
printColorHex( color: NSColor.underPageBackgroundColor, space: space )
printColorHex( color: NSColor.controlBackgroundColor, space: space )
printColorHex( color: NSColor.selectedContentBackgroundColor, space: space )
printColorHex( color: NSColor.unemphasizedSelectedContentBackgroundColor, space: space )
print( "# alternatingContentBackgroundColors =", NSColor.alternatingContentBackgroundColors )
printColorHex( color: NSColor.findHighlightColor, space: space )
printColorHex( color: NSColor.controlColor, space: space )
printColorHex( color: NSColor.controlTextColor, space: space )
printColorHex( color: NSColor.selectedControlColor, space: space )
printColorHex( color: NSColor.selectedControlTextColor, space: space )
printColorHex( color: NSColor.disabledControlTextColor, space: space )
printColorHex( color: NSColor.keyboardFocusIndicatorColor, space: space )
printColorHex( color: NSColor.controlAccentColor, space: space )
print()
}
// printColorsHex( space: NSColorSpace.genericRGB )
printColorsHex( space: NSColorSpace.deviceRGB )

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='5.0' target-platform='macos'>
<timeline fileName='timeline.xctimeline'/>
</playground>

View File

@@ -1077,7 +1077,7 @@ public class FlatPaintingTest
private void paintArrow( Graphics2D g, int width, int height ) {
FlatUIUtils.paintArrow( g, 0, 0, width, height,
direction, chevron, arrowSize, xOffset, yOffset );
direction, chevron, arrowSize, 1, xOffset, yOffset );
if( button ) {
FlatArrowButton arrowButton = new FlatArrowButton( direction,

View File

@@ -65,6 +65,7 @@ import javax.swing.plaf.basic.BasicLookAndFeel;
import com.formdev.flatlaf.*;
import com.formdev.flatlaf.intellijthemes.FlatAllIJThemes;
import com.formdev.flatlaf.testing.FlatTestLaf;
import com.formdev.flatlaf.themes.*;
import com.formdev.flatlaf.ui.FlatLineBorder;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.ColorFunctions.ColorFunction;
@@ -103,6 +104,9 @@ public class UIDefaultsDump
if( SystemInfo.isWindows ) {
dump( FlatIntelliJLaf.class.getName(), dir, false );
dump( FlatDarculaLaf.class.getName(), dir, false );
dump( FlatMacLightLaf.class.getName(), dir, false );
dump( FlatMacDarkLaf.class.getName(), dir, false );
}
dump( FlatTestLaf.class.getName(), dir, false );
@@ -463,9 +467,9 @@ public class UIDefaultsDump
if( resolvedColor != color && resolvedColor.getRGB() != color.getRGB() ) {
if( !isIntelliJTheme ) {
System.err.println( "Key '" + key + "': derived colors not equal" );
System.err.println( " Default color: " + dumpColorHexAndHSL( color ) );
System.err.println( " Resolved color: " + dumpColorHexAndHSL( resolvedColor ) );
System.err.println( " Base of resolved color: " + dumpColorHexAndHSL( retBaseColor[0] ) );
System.err.println( " Default color: " + dumpColorHexAndHSL( color ) );
System.err.println( " Resolved color: " + dumpColorHexAndHSL( resolvedColor ) );
System.err.println( " Base color: " + dumpColorHexAndHSL( retBaseColor[0] ) );
}
out.printf( "%s / ",