mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 23:37:13 -06:00
DesktopIcon: use derived color for icon background, based on background color of JDesktopPane
This commit is contained in:
@@ -16,10 +16,12 @@
|
|||||||
|
|
||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Container;
|
import java.awt.Container;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.EventQueue;
|
import java.awt.EventQueue;
|
||||||
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
@@ -33,6 +35,7 @@ import javax.swing.BorderFactory;
|
|||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JDesktopPane;
|
||||||
import javax.swing.event.MouseInputAdapter;
|
import javax.swing.event.MouseInputAdapter;
|
||||||
import javax.swing.event.MouseInputListener;
|
import javax.swing.event.MouseInputListener;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
@@ -229,6 +232,21 @@ public class FlatDesktopIconUI
|
|||||||
return getPreferredSize( c );
|
return getPreferredSize( c );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update( Graphics g, JComponent c ) {
|
||||||
|
if( c.isOpaque() ) {
|
||||||
|
// fill background with color derived from desktop pane
|
||||||
|
Color background = c.getBackground();
|
||||||
|
JDesktopPane desktopPane = desktopIcon.getDesktopPane();
|
||||||
|
g.setColor( (desktopPane != null)
|
||||||
|
? FlatUIUtils.deriveColor( background, desktopPane.getBackground() )
|
||||||
|
: background );
|
||||||
|
g.fillRect( 0, 0, c.getWidth(), c.getHeight() );
|
||||||
|
}
|
||||||
|
|
||||||
|
paint( g, c );
|
||||||
|
}
|
||||||
|
|
||||||
void updateDockIcon() {
|
void updateDockIcon() {
|
||||||
// use invoke later to make sure that components are updated when switching LaF
|
// use invoke later to make sure that components are updated when switching LaF
|
||||||
EventQueue.invokeLater( () -> {
|
EventQueue.invokeLater( () -> {
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ Desktop.background = #3E434C
|
|||||||
|
|
||||||
#---- DesktopIcon ----
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
DesktopIcon.background = lighten($Desktop.background,10%)
|
DesktopIcon.background = lighten($Desktop.background,10%,derived)
|
||||||
|
|
||||||
|
|
||||||
#---- InternalFrame ----
|
#---- InternalFrame ----
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ Desktop.background = #E6EBF0
|
|||||||
|
|
||||||
#---- DesktopIcon ----
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
DesktopIcon.background = darken($Desktop.background,10%)
|
DesktopIcon.background = darken($Desktop.background,10%,derived)
|
||||||
|
|
||||||
|
|
||||||
#---- HelpButton ----
|
#---- HelpButton ----
|
||||||
|
|||||||
@@ -88,6 +88,11 @@ ComboBox.buttonPressedArrowColor = ComboBox.buttonArrowColor
|
|||||||
Component.custom.borderColor = null
|
Component.custom.borderColor = null
|
||||||
|
|
||||||
|
|
||||||
|
#---- HelpButton ----
|
||||||
|
|
||||||
|
DesktopIcon.background = Desktop.background
|
||||||
|
|
||||||
|
|
||||||
#---- HelpButton ----
|
#---- HelpButton ----
|
||||||
|
|
||||||
HelpButton.disabledBackground = HelpButton.background
|
HelpButton.disabledBackground = HelpButton.background
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ Desktop.minOnScreenInsets 3,3,3,3 javax.swing.plaf.InsetsUIResource [UI]
|
|||||||
|
|
||||||
#---- DesktopIcon ----
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
DesktopIcon.background #555c68 javax.swing.plaf.ColorUIResource [UI]
|
DesktopIcon.background #555c68 com.formdev.flatlaf.util.DerivedColor [UI] lighten(10% autoInverse)
|
||||||
DesktopIcon.border [lazy] 4,4,4,4 false com.formdev.flatlaf.ui.FlatEmptyBorder [UI]
|
DesktopIcon.border [lazy] 4,4,4,4 false com.formdev.flatlaf.ui.FlatEmptyBorder [UI]
|
||||||
DesktopIcon.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
|
DesktopIcon.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
|
||||||
DesktopIcon.closeSize 20,20 javax.swing.plaf.DimensionUIResource [UI]
|
DesktopIcon.closeSize 20,20 javax.swing.plaf.DimensionUIResource [UI]
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ Desktop.minOnScreenInsets 3,3,3,3 javax.swing.plaf.InsetsUIResource [UI]
|
|||||||
|
|
||||||
#---- DesktopIcon ----
|
#---- DesktopIcon ----
|
||||||
|
|
||||||
DesktopIcon.background #c6d2dd javax.swing.plaf.ColorUIResource [UI]
|
DesktopIcon.background #c6d2dd com.formdev.flatlaf.util.DerivedColor [UI] darken(10% autoInverse)
|
||||||
DesktopIcon.border [lazy] 4,4,4,4 false com.formdev.flatlaf.ui.FlatEmptyBorder [UI]
|
DesktopIcon.border [lazy] 4,4,4,4 false com.formdev.flatlaf.ui.FlatEmptyBorder [UI]
|
||||||
DesktopIcon.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
|
DesktopIcon.closeIcon [lazy] 24,24 com.formdev.flatlaf.icons.FlatInternalFrameCloseIcon [UI]
|
||||||
DesktopIcon.closeSize 20,20 javax.swing.plaf.DimensionUIResource [UI]
|
DesktopIcon.closeSize 20,20 javax.swing.plaf.DimensionUIResource [UI]
|
||||||
|
|||||||
@@ -446,7 +446,9 @@ public class FlatTestFrame
|
|||||||
Color green = dark ? Color.green.darker() : Color.green;
|
Color green = dark ? Color.green.darker() : Color.green;
|
||||||
|
|
||||||
updateComponentsRecur( content, (c, type) -> {
|
updateComponentsRecur( content, (c, type) -> {
|
||||||
if( type == "view" || type == "tab" || c instanceof JSlider ) {
|
if( type == "view" || type == "tab" || c instanceof JSlider || c instanceof JInternalFrame ) {
|
||||||
|
if( c instanceof JInternalFrame )
|
||||||
|
c = ((JInternalFrame)c).getContentPane();
|
||||||
c.setForeground( explicit ? magenta : restoreColor );
|
c.setForeground( explicit ? magenta : restoreColor );
|
||||||
c.setBackground( explicit ? orange : restoreColor );
|
c.setBackground( explicit ? orange : restoreColor );
|
||||||
} else {
|
} else {
|
||||||
@@ -620,7 +622,7 @@ public class FlatTestFrame
|
|||||||
|
|
||||||
public static void updateComponentsRecur( Container container, BiConsumer<Component, String> action ) {
|
public static void updateComponentsRecur( Container container, BiConsumer<Component, String> action ) {
|
||||||
for( Component c : container.getComponents() ) {
|
for( Component c : container.getComponents() ) {
|
||||||
if( c instanceof JPanel || c instanceof JDesktopPane ) {
|
if( c instanceof JPanel ) {
|
||||||
updateComponentsRecur( (Container) c, action );
|
updateComponentsRecur( (Container) c, action );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -639,6 +641,9 @@ public class FlatTestFrame
|
|||||||
if( tab != null )
|
if( tab != null )
|
||||||
action.accept( tab, "tab" );
|
action.accept( tab, "tab" );
|
||||||
}
|
}
|
||||||
|
} else if( c instanceof JDesktopPane ) {
|
||||||
|
for( JInternalFrame f : ((JDesktopPane)c).getAllFrames() )
|
||||||
|
action.accept( f, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( c instanceof JToolBar )
|
if( c instanceof JToolBar )
|
||||||
|
|||||||
Reference in New Issue
Block a user