mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-07 22:40:53 +03:00
Compare commits
1 Commits
f8e53c9064
...
linux-roun
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78a8035b92 |
@@ -384,6 +384,7 @@ public interface FlatClientProperties
|
|||||||
* If this value is {@code 1 - 4}, then {@code DWMWCP_ROUNDSMALL} is used.
|
* If this value is {@code 1 - 4}, then {@code DWMWCP_ROUNDSMALL} is used.
|
||||||
* If it is {@code >= 5}, then {@code DWMWCP_ROUND} is used.
|
* If it is {@code >= 5}, then {@code DWMWCP_ROUND} is used.
|
||||||
* <li><strong>macOS</strong> (10.14 and later): Any corner radius is supported.
|
* <li><strong>macOS</strong> (10.14 and later): Any corner radius is supported.
|
||||||
|
* <li><strong>Linux</strong> (since FlatLaf 3.6): Any corner radius is supported.
|
||||||
* </ul>
|
* </ul>
|
||||||
* <strong>Component</strong> {@link javax.swing.JComponent}<br>
|
* <strong>Component</strong> {@link javax.swing.JComponent}<br>
|
||||||
* <strong>Value type</strong> {@link java.lang.Integer}<br>
|
* <strong>Value type</strong> {@link java.lang.Integer}<br>
|
||||||
@@ -402,6 +403,7 @@ public interface FlatClientProperties
|
|||||||
* Supported platforms:
|
* Supported platforms:
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li><strong>macOS</strong> (10.14 and later)
|
* <li><strong>macOS</strong> (10.14 and later)
|
||||||
|
* <li><strong>Linux</strong> (since FlatLaf 3.6)
|
||||||
* </ul>
|
* </ul>
|
||||||
* <strong>Component</strong> {@link javax.swing.JComponent}<br>
|
* <strong>Component</strong> {@link javax.swing.JComponent}<br>
|
||||||
* <strong>Value type</strong> {@link java.lang.Integer} or {@link java.lang.Float}<br>
|
* <strong>Value type</strong> {@link java.lang.Integer} or {@link java.lang.Float}<br>
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import java.awt.Dimension;
|
|||||||
import java.awt.EventQueue;
|
import java.awt.EventQueue;
|
||||||
import java.awt.GraphicsConfiguration;
|
import java.awt.GraphicsConfiguration;
|
||||||
import java.awt.GraphicsDevice;
|
import java.awt.GraphicsDevice;
|
||||||
|
import java.awt.GraphicsDevice.WindowTranslucency;
|
||||||
import java.awt.GraphicsEnvironment;
|
import java.awt.GraphicsEnvironment;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.MouseInfo;
|
import java.awt.MouseInfo;
|
||||||
@@ -117,8 +118,8 @@ public class FlatPopupFactory
|
|||||||
// macOS and Linux adds drop shadow to heavy weight popups
|
// macOS and Linux adds drop shadow to heavy weight popups
|
||||||
if( SystemInfo.isMacOS || SystemInfo.isLinux ) {
|
if( SystemInfo.isMacOS || SystemInfo.isLinux ) {
|
||||||
NonFlashingPopup popup = new NonFlashingPopup( getPopupForScreenOfOwner( owner, contents, x, y, true ), owner, contents );
|
NonFlashingPopup popup = new NonFlashingPopup( getPopupForScreenOfOwner( owner, contents, x, y, true ), owner, contents );
|
||||||
if( popup.popupWindow != null && isMacOSBorderSupported() )
|
if( popup.popupWindow != null && (isMacOSBorderSupported() || isLinuxBorderSupported( popup.popupWindow )) )
|
||||||
setupRoundedBorder( popup.popupWindow, owner, contents );
|
setupRoundedBorder( popup, popup.popupWindow, owner, contents );
|
||||||
return popup;
|
return popup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,7 +129,7 @@ public class FlatPopupFactory
|
|||||||
{
|
{
|
||||||
NonFlashingPopup popup = new NonFlashingPopup( getPopupForScreenOfOwner( owner, contents, x, y, true ), owner, contents );
|
NonFlashingPopup popup = new NonFlashingPopup( getPopupForScreenOfOwner( owner, contents, x, y, true ), owner, contents );
|
||||||
if( popup.popupWindow != null )
|
if( popup.popupWindow != null )
|
||||||
setupRoundedBorder( popup.popupWindow, owner, contents );
|
setupRoundedBorder( popup, popup.popupWindow, owner, contents );
|
||||||
return popup;
|
return popup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -370,7 +371,15 @@ public class FlatPopupFactory
|
|||||||
FlatNativeMacLibrary.isLoaded();
|
FlatNativeMacLibrary.isLoaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setupRoundedBorder( Window popupWindow, Component owner, Component contents ) {
|
private static boolean isLinuxBorderSupported( Window window ) {
|
||||||
|
return SystemInfo.isLinux &&
|
||||||
|
FlatSystemProperties.getBoolean( FlatSystemProperties.USE_ROUNDED_POPUP_BORDER, true ) &&
|
||||||
|
window.getGraphicsConfiguration().getDevice().isWindowTranslucencySupported( WindowTranslucency.PERPIXEL_TRANSPARENT );
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void setupRoundedBorder( NonFlashingPopup popup,
|
||||||
|
Window popupWindow, Component owner, Component contents )
|
||||||
|
{
|
||||||
int borderCornerRadius = getBorderCornerRadius( owner, contents );
|
int borderCornerRadius = getBorderCornerRadius( owner, contents );
|
||||||
float borderWidth = getRoundedBorderWidth( owner, contents );
|
float borderWidth = getRoundedBorderWidth( owner, contents );
|
||||||
|
|
||||||
@@ -397,7 +406,7 @@ public class FlatPopupFactory
|
|||||||
|
|
||||||
if( popupWindow.isDisplayable() ) {
|
if( popupWindow.isDisplayable() ) {
|
||||||
// native window already created
|
// native window already created
|
||||||
setupRoundedBorderImpl( popupWindow, borderCornerRadius, borderWidth, borderColor );
|
setupRoundedBorderImpl( popup, popupWindow, borderCornerRadius, borderWidth, borderColor );
|
||||||
} else {
|
} else {
|
||||||
// native window not yet created --> add listener to set native border after window creation
|
// native window not yet created --> add listener to set native border after window creation
|
||||||
AtomicReference<HierarchyListener> l = new AtomicReference<>();
|
AtomicReference<HierarchyListener> l = new AtomicReference<>();
|
||||||
@@ -405,7 +414,7 @@ public class FlatPopupFactory
|
|||||||
if( e.getID() == HierarchyEvent.HIERARCHY_CHANGED &&
|
if( e.getID() == HierarchyEvent.HIERARCHY_CHANGED &&
|
||||||
(e.getChangeFlags() & HierarchyEvent.DISPLAYABILITY_CHANGED) != 0 )
|
(e.getChangeFlags() & HierarchyEvent.DISPLAYABILITY_CHANGED) != 0 )
|
||||||
{
|
{
|
||||||
setupRoundedBorderImpl( popupWindow, borderCornerRadius, borderWidth, borderColor );
|
setupRoundedBorderImpl( popup, popupWindow, borderCornerRadius, borderWidth, borderColor );
|
||||||
popupWindow.removeHierarchyListener( l.get() );
|
popupWindow.removeHierarchyListener( l.get() );
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
@@ -413,7 +422,9 @@ public class FlatPopupFactory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setupRoundedBorderImpl( Window popupWindow, int borderCornerRadius, float borderWidth, Color borderColor ) {
|
private static void setupRoundedBorderImpl( NonFlashingPopup popup,
|
||||||
|
Window popupWindow, int borderCornerRadius, float borderWidth, Color borderColor )
|
||||||
|
{
|
||||||
if( SystemInfo.isWindows ) {
|
if( SystemInfo.isWindows ) {
|
||||||
// get native window handle
|
// get native window handle
|
||||||
long hwnd = FlatNativeWindowsLibrary.getHWND( popupWindow );
|
long hwnd = FlatNativeWindowsLibrary.getHWND( popupWindow );
|
||||||
@@ -433,6 +444,12 @@ public class FlatPopupFactory
|
|||||||
// set corner radius, border width and color
|
// set corner radius, border width and color
|
||||||
FlatNativeMacLibrary.setWindowRoundedBorder( popupWindow, borderCornerRadius,
|
FlatNativeMacLibrary.setWindowRoundedBorder( popupWindow, borderCornerRadius,
|
||||||
borderWidth, (borderColor != null) ? borderColor.getRGB() : 0 );
|
borderWidth, (borderColor != null) ? borderColor.getRGB() : 0 );
|
||||||
|
} else if( SystemInfo.isLinux ) {
|
||||||
|
if( popupWindow instanceof RootPaneContainer ) {
|
||||||
|
popup.windowRoundedBorder = new FlatWindowRoundedBorder(
|
||||||
|
((RootPaneContainer)popupWindow).getRootPane(),
|
||||||
|
borderCornerRadius, borderWidth, borderColor );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -465,7 +482,7 @@ public class FlatPopupFactory
|
|||||||
"Popup.roundedBorderWidth";
|
"Popup.roundedBorderWidth";
|
||||||
|
|
||||||
Object value = getOption( owner, contents, FlatClientProperties.POPUP_ROUNDED_BORDER_WIDTH, uiKey );
|
Object value = getOption( owner, contents, FlatClientProperties.POPUP_ROUNDED_BORDER_WIDTH, uiKey );
|
||||||
return (value instanceof Number) ? ((Number)value).floatValue() : 0;
|
return (value instanceof Number) ? ((Number)value).floatValue() : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---- fixes --------------------------------------------------------------
|
//---- fixes --------------------------------------------------------------
|
||||||
@@ -578,6 +595,7 @@ public class FlatPopupFactory
|
|||||||
// heavy weight
|
// heavy weight
|
||||||
Window popupWindow;
|
Window popupWindow;
|
||||||
private Color oldPopupWindowBackground;
|
private Color oldPopupWindowBackground;
|
||||||
|
private FlatWindowRoundedBorder windowRoundedBorder;
|
||||||
|
|
||||||
private boolean disposed;
|
private boolean disposed;
|
||||||
|
|
||||||
@@ -603,6 +621,7 @@ public class FlatPopupFactory
|
|||||||
contents = reusePopup.contents;
|
contents = reusePopup.contents;
|
||||||
popupWindow = reusePopup.popupWindow;
|
popupWindow = reusePopup.popupWindow;
|
||||||
oldPopupWindowBackground = reusePopup.oldPopupWindowBackground;
|
oldPopupWindowBackground = reusePopup.oldPopupWindowBackground;
|
||||||
|
windowRoundedBorder = reusePopup.windowRoundedBorder;
|
||||||
}
|
}
|
||||||
|
|
||||||
NonFlashingPopup cloneForReuse() {
|
NonFlashingPopup cloneForReuse() {
|
||||||
@@ -674,6 +693,11 @@ public class FlatPopupFactory
|
|||||||
contents = null;
|
contents = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( windowRoundedBorder != null ) {
|
||||||
|
windowRoundedBorder.uninstall();
|
||||||
|
windowRoundedBorder = null;
|
||||||
|
}
|
||||||
|
|
||||||
if( popupWindow != null ) {
|
if( popupWindow != null ) {
|
||||||
// restore background so that it can not affect other LaFs (when switching)
|
// restore background so that it can not affect other LaFs (when switching)
|
||||||
// because popup windows are cached and reused
|
// because popup windows are cached and reused
|
||||||
|
|||||||
@@ -411,7 +411,8 @@ public class FlatUIUtils
|
|||||||
GraphicsConfiguration gc = c.getGraphicsConfiguration();
|
GraphicsConfiguration gc = c.getGraphicsConfiguration();
|
||||||
GraphicsDevice gd = (gc != null) ? gc.getDevice() : null;
|
GraphicsDevice gd = (gc != null) ? gc.getDevice() : null;
|
||||||
Window fullScreenWindow = (gd != null) ? gd.getFullScreenWindow() : null;
|
Window fullScreenWindow = (gd != null) ? gd.getFullScreenWindow() : null;
|
||||||
return (fullScreenWindow != null && fullScreenWindow == SwingUtilities.windowForComponent( c ));
|
return (fullScreenWindow != null &&
|
||||||
|
(fullScreenWindow == c || fullScreenWindow == SwingUtilities.windowForComponent( c )));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Boolean isRoundRect( Component c ) {
|
public static Boolean isRoundRect( Component c ) {
|
||||||
|
|||||||
@@ -0,0 +1,361 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2025 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
|
import static javax.swing.SwingConstants.*;
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Container;
|
||||||
|
import java.awt.Frame;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.IllegalComponentStateException;
|
||||||
|
import java.awt.Shape;
|
||||||
|
import java.awt.Window;
|
||||||
|
import java.awt.event.ComponentEvent;
|
||||||
|
import java.awt.event.ComponentListener;
|
||||||
|
import java.awt.geom.Area;
|
||||||
|
import java.awt.geom.Path2D;
|
||||||
|
import java.awt.geom.Rectangle2D;
|
||||||
|
import java.awt.geom.RoundRectangle2D;
|
||||||
|
import java.beans.PropertyChangeEvent;
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JLayeredPane;
|
||||||
|
import javax.swing.JRootPane;
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rounded border for {@link Window}.
|
||||||
|
* Used for popups and for FlatLaf window decorations.
|
||||||
|
* <p>
|
||||||
|
* Border is painted only if window is not maximized (in both directions) and
|
||||||
|
* not in full screen mode. If maximized in one direction (vertically or horizontally),
|
||||||
|
* then a square border is painted.
|
||||||
|
* <p>
|
||||||
|
* Note: The rootpane of the window should have a {@link FlatEmptyBorder} with
|
||||||
|
* same insets as border width used in this class.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
* @since 3.6
|
||||||
|
*/
|
||||||
|
public class FlatWindowRoundedBorder
|
||||||
|
implements PropertyChangeListener, ComponentListener
|
||||||
|
{
|
||||||
|
protected final JRootPane rootPane;
|
||||||
|
protected final int borderCornerRadius;
|
||||||
|
protected final float borderWidth;
|
||||||
|
protected final Color borderColor;
|
||||||
|
|
||||||
|
protected final Shape cornerShape;
|
||||||
|
|
||||||
|
// edges
|
||||||
|
protected final RoundedBorderComponent northComp;
|
||||||
|
protected final RoundedBorderComponent southComp;
|
||||||
|
protected final RoundedBorderComponent westComp;
|
||||||
|
protected final RoundedBorderComponent eastComp;
|
||||||
|
|
||||||
|
// corners
|
||||||
|
protected final RoundedBorderComponent northWestComp;
|
||||||
|
protected final RoundedBorderComponent northEastComp;
|
||||||
|
protected final RoundedBorderComponent southWestComp;
|
||||||
|
protected final RoundedBorderComponent southEastComp;
|
||||||
|
|
||||||
|
protected Window window;
|
||||||
|
protected boolean windowIsRounded;
|
||||||
|
|
||||||
|
public FlatWindowRoundedBorder( JRootPane rootPane, int borderCornerRadius,
|
||||||
|
float borderWidth, Color borderColor )
|
||||||
|
{
|
||||||
|
this.rootPane = rootPane;
|
||||||
|
this.borderCornerRadius = borderCornerRadius;
|
||||||
|
this.borderWidth = borderWidth;
|
||||||
|
this.borderColor = borderColor;
|
||||||
|
|
||||||
|
// create shape used to paint rounded corners
|
||||||
|
cornerShape = createCornerShape();
|
||||||
|
|
||||||
|
// create edges
|
||||||
|
northComp = new RoundedBorderComponent( NORTH );
|
||||||
|
southComp = new RoundedBorderComponent( SOUTH );
|
||||||
|
westComp = new RoundedBorderComponent( WEST );
|
||||||
|
eastComp = new RoundedBorderComponent( EAST );
|
||||||
|
|
||||||
|
// create corners
|
||||||
|
northWestComp = new RoundedBorderComponent( NORTH_WEST );
|
||||||
|
northEastComp = new RoundedBorderComponent( NORTH_EAST );
|
||||||
|
southWestComp = new RoundedBorderComponent( SOUTH_WEST );
|
||||||
|
southEastComp = new RoundedBorderComponent( SOUTH_EAST );
|
||||||
|
|
||||||
|
// insert before layered pane
|
||||||
|
int insertIndex = rootPane.getComponentCount() - 1;
|
||||||
|
JLayeredPane layeredPane = rootPane.getLayeredPane();
|
||||||
|
for( int i = insertIndex; i >= 0; i-- ) {
|
||||||
|
if( rootPane.getComponent( insertIndex ) == layeredPane )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add edges
|
||||||
|
rootPane.add( northComp, insertIndex++ );
|
||||||
|
rootPane.add( southComp, insertIndex++ );
|
||||||
|
rootPane.add( westComp, insertIndex++ );
|
||||||
|
rootPane.add( eastComp, insertIndex++ );
|
||||||
|
|
||||||
|
// add corners
|
||||||
|
rootPane.add( northWestComp, insertIndex++ );
|
||||||
|
rootPane.add( northEastComp, insertIndex++ );
|
||||||
|
rootPane.add( southWestComp, insertIndex++ );
|
||||||
|
rootPane.add( southEastComp, insertIndex++ );
|
||||||
|
|
||||||
|
// add listeners
|
||||||
|
rootPane.addComponentListener( this );
|
||||||
|
rootPane.addPropertyChangeListener( "ancestor", this );
|
||||||
|
|
||||||
|
if( rootPane.isDisplayable() )
|
||||||
|
addNotify();
|
||||||
|
else
|
||||||
|
updateVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void uninstall() {
|
||||||
|
removeNotify();
|
||||||
|
|
||||||
|
// remove listeners
|
||||||
|
rootPane.removeComponentListener( this );
|
||||||
|
rootPane.removePropertyChangeListener( "ancestor", this );
|
||||||
|
|
||||||
|
// remove edges
|
||||||
|
rootPane.remove( northComp );
|
||||||
|
rootPane.remove( southComp );
|
||||||
|
rootPane.remove( westComp );
|
||||||
|
rootPane.remove( eastComp );
|
||||||
|
|
||||||
|
// remove corners
|
||||||
|
rootPane.remove( northWestComp );
|
||||||
|
rootPane.remove( northEastComp );
|
||||||
|
rootPane.remove( southWestComp );
|
||||||
|
rootPane.remove( southEastComp );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void doLayout() {
|
||||||
|
if( !northComp.isVisible() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
int x = 0;
|
||||||
|
int y = 0;
|
||||||
|
int width = rootPane.getWidth();
|
||||||
|
int height = rootPane.getHeight();
|
||||||
|
if( width <= 0 || height <= 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
// for layout, round-up scaled border width and radius to ensure that components are large enough
|
||||||
|
int lineWidth = (int) Math.ceil( UIScale.scale( borderWidth ) );
|
||||||
|
int cornerSize = (windowIsRounded && lineWidth > 0)
|
||||||
|
? (int) Math.ceil( UIScale.scale( (float) borderCornerRadius ) )
|
||||||
|
: 0;
|
||||||
|
int cornerSize2x = cornerSize * 2;
|
||||||
|
|
||||||
|
// edges
|
||||||
|
northComp.setBounds( x + cornerSize, y, width - cornerSize2x, lineWidth );
|
||||||
|
southComp.setBounds( x + cornerSize, y + height - lineWidth, width - cornerSize2x, lineWidth );
|
||||||
|
westComp.setBounds( x, y + cornerSize, lineWidth, height - cornerSize2x );
|
||||||
|
eastComp.setBounds( x + width - lineWidth, y + cornerSize, lineWidth, height - cornerSize2x );
|
||||||
|
|
||||||
|
// corners
|
||||||
|
northWestComp.setBounds( x, y, cornerSize, cornerSize );
|
||||||
|
northEastComp.setBounds( x + width - cornerSize, y, cornerSize, cornerSize );
|
||||||
|
southWestComp.setBounds( x, y + height - cornerSize, cornerSize, cornerSize );
|
||||||
|
southEastComp.setBounds( x + width - cornerSize, y + height - cornerSize, cornerSize, cornerSize );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void addNotify() {
|
||||||
|
Container parent = rootPane.getParent();
|
||||||
|
window = (parent instanceof Window) ? (Window) parent : null;
|
||||||
|
|
||||||
|
updateVisibility();
|
||||||
|
updateWindowShape();
|
||||||
|
doLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void removeNotify() {
|
||||||
|
if( window != null ) {
|
||||||
|
window.setShape( null );
|
||||||
|
window = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateVisibility() {
|
||||||
|
boolean visible = needsBorder();
|
||||||
|
if( visible == northComp.isVisible() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
// edges
|
||||||
|
northComp.setVisible( visible );
|
||||||
|
southComp.setVisible( visible );
|
||||||
|
westComp.setVisible( visible );
|
||||||
|
eastComp.setVisible( visible );
|
||||||
|
|
||||||
|
// corners
|
||||||
|
northWestComp.setVisible( visible );
|
||||||
|
northEastComp.setVisible( visible );
|
||||||
|
southWestComp.setVisible( visible );
|
||||||
|
southEastComp.setVisible( visible );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean needsBorder() {
|
||||||
|
if( window == null || FlatUIUtils.isFullScreen( window ) )
|
||||||
|
return false;
|
||||||
|
if( window instanceof Frame )
|
||||||
|
return (((Frame)window).getExtendedState() & Frame.MAXIMIZED_BOTH) != Frame.MAXIMIZED_BOTH;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void updateWindowShape() {
|
||||||
|
windowIsRounded = false;
|
||||||
|
|
||||||
|
if( window == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( !northComp.isVisible() ||
|
||||||
|
(window instanceof Frame && (((Frame)window).getExtendedState() & Frame.MAXIMIZED_BOTH) != 0) )
|
||||||
|
{
|
||||||
|
window.setShape( null );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int arc = UIScale.scale( borderCornerRadius * 2 );
|
||||||
|
|
||||||
|
// use a slightly smaller arc for the shape so that at least parts of
|
||||||
|
// the antialiased arc outside are shown
|
||||||
|
arc -= 2;
|
||||||
|
|
||||||
|
if( arc > 0 ) {
|
||||||
|
try {
|
||||||
|
window.setShape( new RoundRectangle2D.Float( 0, 0,
|
||||||
|
rootPane.getWidth(), rootPane.getHeight(), arc, arc ) );
|
||||||
|
windowIsRounded = true;
|
||||||
|
} catch( IllegalComponentStateException | UnsupportedOperationException ex ) {
|
||||||
|
window.setShape( null );
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
window.setShape( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Shape createCornerShape() {
|
||||||
|
float lineWidth = UIScale.scale( borderWidth );
|
||||||
|
int arc = UIScale.scale( borderCornerRadius * 2 );
|
||||||
|
int wh = arc * 3;
|
||||||
|
float innerArc = arc - (lineWidth * 2);
|
||||||
|
float innerWH = wh - (lineWidth * 2);
|
||||||
|
|
||||||
|
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
|
||||||
|
path.append( new RoundRectangle2D.Float( 0, 0, wh, wh, arc, arc ), false );
|
||||||
|
path.append( new RoundRectangle2D.Float( lineWidth, lineWidth, innerWH, innerWH, innerArc, innerArc ), false );
|
||||||
|
|
||||||
|
Area area = new Area( path );
|
||||||
|
int cornerSize = (int) Math.ceil( UIScale.scale( (float) borderCornerRadius ) );
|
||||||
|
area.intersect( new Area( new Rectangle2D.Float( 0, 0, cornerSize, cornerSize ) ) );
|
||||||
|
return area;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- interface PropertyChangeListener ----
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChange( PropertyChangeEvent e ) {
|
||||||
|
switch( e.getPropertyName() ) {
|
||||||
|
case "ancestor":
|
||||||
|
if( e.getNewValue() != null )
|
||||||
|
addNotify();
|
||||||
|
else
|
||||||
|
removeNotify();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- interface ComponentListener ----
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentResized( ComponentEvent e ) {
|
||||||
|
updateVisibility();
|
||||||
|
updateWindowShape();
|
||||||
|
doLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void componentMoved( ComponentEvent e ) {}
|
||||||
|
@Override public void componentShown( ComponentEvent e ) {}
|
||||||
|
@Override public void componentHidden( ComponentEvent e ) {}
|
||||||
|
|
||||||
|
//---- class RoundedBorderComponent ---------------------------------------
|
||||||
|
|
||||||
|
protected class RoundedBorderComponent
|
||||||
|
extends JComponent
|
||||||
|
{
|
||||||
|
private final int position;
|
||||||
|
|
||||||
|
protected RoundedBorderComponent( int position ) {
|
||||||
|
this.position = position;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paint( Graphics g ) {
|
||||||
|
Graphics2D g2 = (Graphics2D) g;
|
||||||
|
int width = getWidth();
|
||||||
|
int height = getHeight();
|
||||||
|
float lineWidth = UIScale.scale( borderWidth );
|
||||||
|
|
||||||
|
/*debug
|
||||||
|
g.setColor( java.awt.Color.green );
|
||||||
|
g.drawRect( 0, 0, width - 1, height - 1 );
|
||||||
|
debug*/
|
||||||
|
|
||||||
|
Object[] oldRenderingHints = FlatUIUtils.setRenderingHints( g );
|
||||||
|
|
||||||
|
g.setColor( borderColor );
|
||||||
|
switch( position ) {
|
||||||
|
case NORTH: g2.fill( new Rectangle2D.Float( 0, 0, width, lineWidth ) ); break;
|
||||||
|
case SOUTH: g2.fill( new Rectangle2D.Float( 0, height - lineWidth, width, lineWidth ) ); break;
|
||||||
|
case WEST: g2.fill( new Rectangle2D.Float( 0, 0, lineWidth, height ) ); break;
|
||||||
|
case EAST: g2.fill( new Rectangle2D.Float( width - lineWidth, 0, lineWidth, height ) ); break;
|
||||||
|
|
||||||
|
case NORTH_WEST:
|
||||||
|
g2.fill( cornerShape );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NORTH_EAST:
|
||||||
|
g2.translate( width, 0 );
|
||||||
|
g2.rotate( Math.toRadians( 90 ) );
|
||||||
|
g2.fill( cornerShape );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SOUTH_WEST:
|
||||||
|
g2.translate( 0, height );
|
||||||
|
g2.rotate( Math.toRadians( -90 ) );
|
||||||
|
g2.fill( cornerShape );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SOUTH_EAST:
|
||||||
|
g2.translate( width, height );
|
||||||
|
g2.rotate( Math.toRadians( 180 ) );
|
||||||
|
g2.fill( cornerShape );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
FlatUIUtils.resetRenderingHints( g, oldRenderingHints );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -246,7 +246,6 @@ PasswordField.revealIconColor = @foreground
|
|||||||
|
|
||||||
#---- Popup ----
|
#---- Popup ----
|
||||||
|
|
||||||
[mac]Popup.roundedBorderWidth = 1
|
|
||||||
Popup.dropShadowColor = #000
|
Popup.dropShadowColor = #000
|
||||||
Popup.dropShadowOpacity = 0.25
|
Popup.dropShadowOpacity = 0.25
|
||||||
|
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ ComboBox.popupInsets = 0,0,0,0
|
|||||||
ComboBox.selectionInsets = 0,0,0,0
|
ComboBox.selectionInsets = 0,0,0,0
|
||||||
ComboBox.selectionArc = 0
|
ComboBox.selectionArc = 0
|
||||||
ComboBox.borderCornerRadius = $Popup.borderCornerRadius
|
ComboBox.borderCornerRadius = $Popup.borderCornerRadius
|
||||||
[mac]ComboBox.roundedBorderWidth = $Popup.roundedBorderWidth
|
ComboBox.roundedBorderWidth = $Popup.roundedBorderWidth
|
||||||
|
|
||||||
|
|
||||||
#---- Component ----
|
#---- Component ----
|
||||||
@@ -506,7 +506,7 @@ PasswordField.revealIcon = com.formdev.flatlaf.icons.FlatRevealIcon
|
|||||||
#---- Popup ----
|
#---- Popup ----
|
||||||
|
|
||||||
Popup.borderCornerRadius = 4
|
Popup.borderCornerRadius = 4
|
||||||
[mac]Popup.roundedBorderWidth = 0
|
Popup.roundedBorderWidth = 1
|
||||||
Popup.dropShadowPainted = true
|
Popup.dropShadowPainted = true
|
||||||
Popup.dropShadowInsets = -4,-4,4,4
|
Popup.dropShadowInsets = -4,-4,4,4
|
||||||
|
|
||||||
@@ -516,7 +516,7 @@ Popup.dropShadowInsets = -4,-4,4,4
|
|||||||
PopupMenu.border = com.formdev.flatlaf.ui.FlatPopupMenuBorder
|
PopupMenu.border = com.formdev.flatlaf.ui.FlatPopupMenuBorder
|
||||||
PopupMenu.borderInsets = 4,1,4,1
|
PopupMenu.borderInsets = 4,1,4,1
|
||||||
PopupMenu.borderCornerRadius = $Popup.borderCornerRadius
|
PopupMenu.borderCornerRadius = $Popup.borderCornerRadius
|
||||||
[mac]PopupMenu.roundedBorderWidth = $Popup.roundedBorderWidth
|
PopupMenu.roundedBorderWidth = $Popup.roundedBorderWidth
|
||||||
PopupMenu.background = @menuBackground
|
PopupMenu.background = @menuBackground
|
||||||
PopupMenu.scrollArrowColor = @buttonArrowColor
|
PopupMenu.scrollArrowColor = @buttonArrowColor
|
||||||
|
|
||||||
@@ -913,7 +913,7 @@ ToolTipManager.enableToolTipMode = activeApplication
|
|||||||
#---- ToolTip ----
|
#---- ToolTip ----
|
||||||
|
|
||||||
ToolTip.borderCornerRadius = $Popup.borderCornerRadius
|
ToolTip.borderCornerRadius = $Popup.borderCornerRadius
|
||||||
[mac]ToolTip.roundedBorderWidth = $Popup.roundedBorderWidth
|
ToolTip.roundedBorderWidth = $Popup.roundedBorderWidth
|
||||||
|
|
||||||
|
|
||||||
#---- Tree ----
|
#---- Tree ----
|
||||||
|
|||||||
@@ -253,6 +253,7 @@ PasswordField.revealIconColor = tint(@foreground,40%)
|
|||||||
|
|
||||||
#---- Popup ----
|
#---- Popup ----
|
||||||
|
|
||||||
|
[mac]Popup.roundedBorderWidth = 0
|
||||||
Popup.dropShadowColor = #000
|
Popup.dropShadowColor = #000
|
||||||
Popup.dropShadowOpacity = 0.15
|
Popup.dropShadowOpacity = 0.15
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
- Java 1.8.0_202
|
- Java 1.8.0_202
|
||||||
+ Java 1.8.0_292
|
+ Java 1.8.0_322
|
||||||
|
|
||||||
- OS Windows 10
|
- OS Windows 10
|
||||||
+ OS Mac OS X
|
+ OS Mac OS X
|
||||||
|
|
||||||
#---- ComboBox ----
|
#---- ComboBox ----
|
||||||
|
|
||||||
+ ComboBox.roundedBorderWidth 1
|
|
||||||
+ ComboBox.showPopupOnNavigation true
|
+ ComboBox.showPopupOnNavigation true
|
||||||
|
|
||||||
|
|
||||||
@@ -47,16 +46,6 @@
|
|||||||
+ OptionPane.isYesLast true
|
+ OptionPane.isYesLast true
|
||||||
|
|
||||||
|
|
||||||
#---- Popup ----
|
|
||||||
|
|
||||||
+ Popup.roundedBorderWidth 1
|
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenu ----
|
|
||||||
|
|
||||||
+ PopupMenu.roundedBorderWidth 1
|
|
||||||
|
|
||||||
|
|
||||||
#---- ProgressBar ----
|
#---- ProgressBar ----
|
||||||
|
|
||||||
- ProgressBar.font [active] Segoe UI plain 10 javax.swing.plaf.FontUIResource [UI]
|
- ProgressBar.font [active] Segoe UI plain 10 javax.swing.plaf.FontUIResource [UI]
|
||||||
@@ -88,11 +77,6 @@
|
|||||||
|
|
||||||
- TitlePane.small.font [active] Segoe UI plain 11 javax.swing.plaf.FontUIResource [UI]
|
- TitlePane.small.font [active] Segoe UI plain 11 javax.swing.plaf.FontUIResource [UI]
|
||||||
+ TitlePane.small.font [active] Helvetica Neue plain 12 javax.swing.plaf.FontUIResource [UI]
|
+ TitlePane.small.font [active] Helvetica Neue plain 12 javax.swing.plaf.FontUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTip ----
|
|
||||||
|
|
||||||
+ ToolTip.roundedBorderWidth 1
|
|
||||||
- defaultFont Segoe UI plain 12 javax.swing.plaf.FontUIResource [UI]
|
- defaultFont Segoe UI plain 12 javax.swing.plaf.FontUIResource [UI]
|
||||||
+ defaultFont Helvetica Neue plain 13 javax.swing.plaf.FontUIResource [UI]
|
+ defaultFont Helvetica Neue plain 13 javax.swing.plaf.FontUIResource [UI]
|
||||||
|
|
||||||
|
|||||||
@@ -222,6 +222,7 @@ ComboBox.minimumWidth 72
|
|||||||
ComboBox.noActionOnKeyNavigation false
|
ComboBox.noActionOnKeyNavigation false
|
||||||
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
ComboBox.popupInsets 0,0,0,0 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.popupInsets 0,0,0,0 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
ComboBox.roundedBorderWidth 1
|
||||||
ComboBox.selectionArc 0
|
ComboBox.selectionArc 0
|
||||||
ComboBox.selectionBackground #4b6eaf HSL 219 40 49 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionBackground #4b6eaf HSL 219 40 49 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.selectionForeground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionForeground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -744,6 +745,7 @@ Popup.dropShadowColor #000000 HSL 0 0 0 javax.swing.plaf.Colo
|
|||||||
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
Popup.dropShadowOpacity 0.25
|
Popup.dropShadowOpacity 0.25
|
||||||
Popup.dropShadowPainted true
|
Popup.dropShadowPainted true
|
||||||
|
Popup.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenu ----
|
#---- PopupMenu ----
|
||||||
@@ -757,6 +759,7 @@ PopupMenu.consumeEventOnClose false
|
|||||||
PopupMenu.font [active] $defaultFont [UI]
|
PopupMenu.font [active] $defaultFont [UI]
|
||||||
PopupMenu.foreground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.foreground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PopupMenu.hoverScrollArrowBackground #484c4e HSL 200 4 29 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.hoverScrollArrowBackground #484c4e HSL 200 4 29 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
PopupMenu.roundedBorderWidth 1
|
||||||
PopupMenu.scrollArrowColor #9b9b9b HSL 0 0 61 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.scrollArrowColor #9b9b9b HSL 0 0 61 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
@@ -1375,6 +1378,7 @@ ToolTip.border [lazy] 4,6,4,6 false com.formdev.flatlaf.ui.F
|
|||||||
ToolTip.borderCornerRadius 4
|
ToolTip.borderCornerRadius 4
|
||||||
ToolTip.font [active] $defaultFont [UI]
|
ToolTip.font [active] $defaultFont [UI]
|
||||||
ToolTip.foreground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
|
ToolTip.foreground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolTip.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTipManager ----
|
#---- ToolTipManager ----
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
- Java 1.8.0_202
|
- Java 1.8.0_202
|
||||||
+ Java 1.8.0_292
|
+ Java 1.8.0_322
|
||||||
|
|
||||||
- OS Windows 10
|
- OS Windows 10
|
||||||
+ OS Mac OS X
|
+ OS Mac OS X
|
||||||
|
|
||||||
#---- ComboBox ----
|
#---- ComboBox ----
|
||||||
|
|
||||||
|
- ComboBox.roundedBorderWidth 1
|
||||||
+ ComboBox.roundedBorderWidth 0
|
+ ComboBox.roundedBorderWidth 0
|
||||||
|
|
||||||
+ ComboBox.showPopupOnNavigation true
|
+ ComboBox.showPopupOnNavigation true
|
||||||
|
|
||||||
|
|
||||||
@@ -49,11 +51,13 @@
|
|||||||
|
|
||||||
#---- Popup ----
|
#---- Popup ----
|
||||||
|
|
||||||
|
- Popup.roundedBorderWidth 1
|
||||||
+ Popup.roundedBorderWidth 0
|
+ Popup.roundedBorderWidth 0
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenu ----
|
#---- PopupMenu ----
|
||||||
|
|
||||||
|
- PopupMenu.roundedBorderWidth 1
|
||||||
+ PopupMenu.roundedBorderWidth 0
|
+ PopupMenu.roundedBorderWidth 0
|
||||||
|
|
||||||
|
|
||||||
@@ -92,6 +96,7 @@
|
|||||||
|
|
||||||
#---- ToolTip ----
|
#---- ToolTip ----
|
||||||
|
|
||||||
|
- ToolTip.roundedBorderWidth 1
|
||||||
+ ToolTip.roundedBorderWidth 0
|
+ ToolTip.roundedBorderWidth 0
|
||||||
- defaultFont Segoe UI plain 12 javax.swing.plaf.FontUIResource [UI]
|
- defaultFont Segoe UI plain 12 javax.swing.plaf.FontUIResource [UI]
|
||||||
+ defaultFont Helvetica Neue plain 13 javax.swing.plaf.FontUIResource [UI]
|
+ defaultFont Helvetica Neue plain 13 javax.swing.plaf.FontUIResource [UI]
|
||||||
|
|||||||
@@ -226,6 +226,7 @@ ComboBox.minimumWidth 72
|
|||||||
ComboBox.noActionOnKeyNavigation false
|
ComboBox.noActionOnKeyNavigation false
|
||||||
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
ComboBox.popupInsets 0,0,0,0 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.popupInsets 0,0,0,0 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
ComboBox.roundedBorderWidth 1
|
||||||
ComboBox.selectionArc 0
|
ComboBox.selectionArc 0
|
||||||
ComboBox.selectionBackground #2675bf HSL 209 67 45 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionBackground #2675bf HSL 209 67 45 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -749,6 +750,7 @@ Popup.dropShadowColor #000000 HSL 0 0 0 javax.swing.plaf.Colo
|
|||||||
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
Popup.dropShadowOpacity 0.15
|
Popup.dropShadowOpacity 0.15
|
||||||
Popup.dropShadowPainted true
|
Popup.dropShadowPainted true
|
||||||
|
Popup.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenu ----
|
#---- PopupMenu ----
|
||||||
@@ -762,6 +764,7 @@ PopupMenu.consumeEventOnClose false
|
|||||||
PopupMenu.font [active] $defaultFont [UI]
|
PopupMenu.font [active] $defaultFont [UI]
|
||||||
PopupMenu.foreground #000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.foreground #000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PopupMenu.hoverScrollArrowBackground #e5e5e5 HSL 0 0 90 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.hoverScrollArrowBackground #e5e5e5 HSL 0 0 90 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
PopupMenu.roundedBorderWidth 1
|
||||||
PopupMenu.scrollArrowColor #666666 HSL 0 0 40 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.scrollArrowColor #666666 HSL 0 0 40 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
@@ -1380,6 +1383,7 @@ ToolTip.border [lazy] 4,6,4,6 false com.formdev.flatlaf.ui.F
|
|||||||
ToolTip.borderCornerRadius 4
|
ToolTip.borderCornerRadius 4
|
||||||
ToolTip.font [active] $defaultFont [UI]
|
ToolTip.font [active] $defaultFont [UI]
|
||||||
ToolTip.foreground #000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI]
|
ToolTip.foreground #000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolTip.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTipManager ----
|
#---- ToolTipManager ----
|
||||||
|
|||||||
@@ -228,6 +228,7 @@ ComboBox.noActionOnKeyNavigation false
|
|||||||
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
ComboBox.popupBackground #323232 HSL 0 0 20 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.popupBackground #323232 HSL 0 0 20 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.popupInsets 5,0,5,0 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.popupInsets 5,0,5,0 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
ComboBox.roundedBorderWidth 1
|
||||||
ComboBox.selectionArc 8
|
ComboBox.selectionArc 8
|
||||||
ComboBox.selectionBackground #1458b8 HSL 215 80 40 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionBackground #1458b8 HSL 215 80 40 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -752,6 +753,7 @@ Popup.dropShadowColor #000000 HSL 0 0 0 javax.swing.plaf.Colo
|
|||||||
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
Popup.dropShadowOpacity 0.25
|
Popup.dropShadowOpacity 0.25
|
||||||
Popup.dropShadowPainted true
|
Popup.dropShadowPainted true
|
||||||
|
Popup.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenu ----
|
#---- PopupMenu ----
|
||||||
@@ -765,6 +767,7 @@ PopupMenu.consumeEventOnClose false
|
|||||||
PopupMenu.font [active] $defaultFont [UI]
|
PopupMenu.font [active] $defaultFont [UI]
|
||||||
PopupMenu.foreground #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.foreground #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PopupMenu.hoverScrollArrowBackground #2b2b2b HSL 0 0 17 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.hoverScrollArrowBackground #2b2b2b HSL 0 0 17 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
PopupMenu.roundedBorderWidth 1
|
||||||
PopupMenu.scrollArrowColor #b7b7b7 HSL 0 0 72 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.scrollArrowColor #b7b7b7 HSL 0 0 72 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
@@ -1385,6 +1388,7 @@ ToolTip.border [lazy] 4,6,4,6 false com.formdev.flatlaf.ui.F
|
|||||||
ToolTip.borderCornerRadius 4
|
ToolTip.borderCornerRadius 4
|
||||||
ToolTip.font [active] $defaultFont [UI]
|
ToolTip.font [active] $defaultFont [UI]
|
||||||
ToolTip.foreground #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
|
ToolTip.foreground #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolTip.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTipManager ----
|
#---- ToolTipManager ----
|
||||||
|
|||||||
@@ -232,6 +232,7 @@ ComboBox.noActionOnKeyNavigation false
|
|||||||
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
ComboBox.popupBackground #ececec HSL 0 0 93 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.popupBackground #ececec HSL 0 0 93 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.popupInsets 5,0,5,0 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.popupInsets 5,0,5,0 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
ComboBox.roundedBorderWidth 1
|
||||||
ComboBox.selectionArc 8
|
ComboBox.selectionArc 8
|
||||||
ComboBox.selectionBackground #3d9aff HSL 211 100 62 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionBackground #3d9aff HSL 211 100 62 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionForeground #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -756,6 +757,7 @@ Popup.dropShadowColor #000000 HSL 0 0 0 javax.swing.plaf.Colo
|
|||||||
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
Popup.dropShadowInsets -4,-4,4,4 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
Popup.dropShadowOpacity 0.15
|
Popup.dropShadowOpacity 0.15
|
||||||
Popup.dropShadowPainted true
|
Popup.dropShadowPainted true
|
||||||
|
Popup.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenu ----
|
#---- PopupMenu ----
|
||||||
@@ -769,6 +771,7 @@ PopupMenu.consumeEventOnClose false
|
|||||||
PopupMenu.font [active] $defaultFont [UI]
|
PopupMenu.font [active] $defaultFont [UI]
|
||||||
PopupMenu.foreground #262626 HSL 0 0 15 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.foreground #262626 HSL 0 0 15 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PopupMenu.hoverScrollArrowBackground #e9e9e9 HSL 0 0 91 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.hoverScrollArrowBackground #e9e9e9 HSL 0 0 91 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
PopupMenu.roundedBorderWidth 1
|
||||||
PopupMenu.scrollArrowColor #7d7d7d HSL 0 0 49 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.scrollArrowColor #7d7d7d HSL 0 0 49 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
@@ -1389,6 +1392,7 @@ ToolTip.border [lazy] 4,6,4,6 false com.formdev.flatlaf.ui.F
|
|||||||
ToolTip.borderCornerRadius 4
|
ToolTip.borderCornerRadius 4
|
||||||
ToolTip.font [active] $defaultFont [UI]
|
ToolTip.font [active] $defaultFont [UI]
|
||||||
ToolTip.foreground #262626 HSL 0 0 15 javax.swing.plaf.ColorUIResource [UI]
|
ToolTip.foreground #262626 HSL 0 0 15 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolTip.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTipManager ----
|
#---- ToolTipManager ----
|
||||||
|
|||||||
@@ -254,6 +254,7 @@ ComboBox.noActionOnKeyNavigation false
|
|||||||
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
ComboBox.popupBackground #ffffcc HSL 60 100 90 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.popupBackground #ffffcc HSL 60 100 90 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.popupInsets 0,0,0,0 javax.swing.plaf.InsetsUIResource [UI]
|
ComboBox.popupInsets 0,0,0,0 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
|
ComboBox.roundedBorderWidth 1
|
||||||
ComboBox.selectionArc 0
|
ComboBox.selectionArc 0
|
||||||
ComboBox.selectionBackground #00aa00 HSL 120 100 33 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionBackground #00aa00 HSL 120 100 33 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.selectionForeground #ffff00 HSL 60 100 50 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionForeground #ffff00 HSL 60 100 50 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -782,6 +783,7 @@ Popup.dropShadowColor #00ff00 HSL 120 100 50 javax.swing.plaf.Colo
|
|||||||
Popup.dropShadowInsets -6,6,6,6 javax.swing.plaf.InsetsUIResource [UI]
|
Popup.dropShadowInsets -6,6,6,6 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
Popup.dropShadowOpacity 0.5
|
Popup.dropShadowOpacity 0.5
|
||||||
Popup.dropShadowPainted true
|
Popup.dropShadowPainted true
|
||||||
|
Popup.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- PopupMenu ----
|
#---- PopupMenu ----
|
||||||
@@ -795,6 +797,7 @@ PopupMenu.consumeEventOnClose false
|
|||||||
PopupMenu.font [active] $defaultFont [UI]
|
PopupMenu.font [active] $defaultFont [UI]
|
||||||
PopupMenu.foreground #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.foreground #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PopupMenu.hoverScrollArrowBackground #00ff00 HSL 120 100 50 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.hoverScrollArrowBackground #00ff00 HSL 120 100 50 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
PopupMenu.roundedBorderWidth 1
|
||||||
PopupMenu.scrollArrowColor #0000ff HSL 240 100 50 javax.swing.plaf.ColorUIResource [UI]
|
PopupMenu.scrollArrowColor #0000ff HSL 240 100 50 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|
||||||
|
|
||||||
@@ -1438,6 +1441,7 @@ ToolTip.border [lazy] line: #000000 HSL 0 0 0 java.awt
|
|||||||
ToolTip.borderCornerRadius 4
|
ToolTip.borderCornerRadius 4
|
||||||
ToolTip.font [active] $defaultFont [UI]
|
ToolTip.font [active] $defaultFont [UI]
|
||||||
ToolTip.foreground #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI]
|
ToolTip.foreground #ff0000 HSL 0 100 50 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolTip.roundedBorderWidth 1
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTipManager ----
|
#---- ToolTipManager ----
|
||||||
|
|||||||
Reference in New Issue
Block a user