mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-12 15:07:11 -06:00
Merge remote-tracking branch 'origin/main' into styling
# Conflicts: # flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatButtonBorder.java # flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatToolBarUI.java
This commit is contained in:
14
CHANGELOG.md
14
CHANGELOG.md
@@ -10,6 +10,11 @@ FlatLaf Change Log
|
|||||||
- PasswordField: UI delegate `FlatPasswordFieldUI` now extends `FlatTextFieldUI`
|
- PasswordField: UI delegate `FlatPasswordFieldUI` now extends `FlatTextFieldUI`
|
||||||
(instead of `BasicPasswordFieldUI`) to avoid duplicate code and for easier
|
(instead of `BasicPasswordFieldUI`) to avoid duplicate code and for easier
|
||||||
extensibility.
|
extensibility.
|
||||||
|
- Table and PopupFactory: Use `StackWalker` in Java 9+ for better performance.
|
||||||
|
(issue #334)
|
||||||
|
- ToolBar: Paint focus indicator for focused button in toolbar. (issue #346)
|
||||||
|
- ToolBar: Support focusable buttons in toolbar (set UI values
|
||||||
|
`ToolBar.focusableButtons` to `true`). (issue #346)
|
||||||
|
|
||||||
#### Fixed bugs
|
#### Fixed bugs
|
||||||
|
|
||||||
@@ -28,6 +33,15 @@ FlatLaf Change Log
|
|||||||
components by:
|
components by:
|
||||||
- `2px` at `1.75x` in **Light** and **Dark** themes
|
- `2px` at `1.75x` in **Light** and **Dark** themes
|
||||||
- `2px` at `1.25x` and `2.25x` in **IntelliJ** and **Darcula** themes
|
- `2px` at `1.25x` and `2.25x` in **IntelliJ** and **Darcula** themes
|
||||||
|
- OptionPane: Do not make child components, which are derived from `JPanel`,
|
||||||
|
non-opaque. (issue #349)
|
||||||
|
- OptionPane: Align wrapped lines to the right if component orientation is
|
||||||
|
right-to-left. (issue #350)
|
||||||
|
- PasswordField: Caps lock icon no longer painted over long text. (issue #172)
|
||||||
|
- PasswordField: Paint caps lock icon on left side in right-to-left component
|
||||||
|
orientation.
|
||||||
|
- Window decorations: Window title bar width is no longer considered when
|
||||||
|
calculating preferred/minimum width of window. (issue #351)
|
||||||
|
|
||||||
|
|
||||||
## 1.3
|
## 1.3
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class FlatCapsLockIcon
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
<g fill="none" fill-rule="evenodd">
|
<g fill="none" fill-rule="evenodd">
|
||||||
<rect width="16" height="16" fill="#6E6E6E" rx="3"/>
|
<rect width="16" height="16" fill="#6E6E6E" rx="3"/>
|
||||||
<rect width="6" height="2" x="5" y="12" fill="#FFF"/>
|
<rect width="6" height="2" x="5" y="11.5" fill="#FFF"/>
|
||||||
<path fill="#FFF" d="M2,8 L8,2 L14,8 L11,8 L11,10 L5,10 L5,8 L2,8 Z"/>
|
<path fill="#FFF" d="M2,8 L8,2 L14,8 L11,8 L11,10 L5,10 L5,8 L2,8 Z"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
@@ -65,7 +65,7 @@ public class FlatCapsLockIcon
|
|||||||
|
|
||||||
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
|
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
|
||||||
path.append( new RoundRectangle2D.Float( 0, 0, 16, 16, 6, 6 ), false );
|
path.append( new RoundRectangle2D.Float( 0, 0, 16, 16, 6, 6 ), false );
|
||||||
path.append( new Rectangle2D.Float( 5, 12, 6, 2 ), false );
|
path.append( new Rectangle2D.Float( 5, 11.5f, 6, 2 ), false );
|
||||||
path.append( FlatUIUtils.createPath( 2,8, 8,2, 14,8, 11,8, 11,10, 5,10, 5,8 ), false );
|
path.append( FlatUIUtils.createPath( 2,8, 8,2, 14,8, 11,8, 11,10, 5,10, 5,8 ), false );
|
||||||
g.fill( path );
|
g.fill( path );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import java.awt.Color;
|
|||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.GradientPaint;
|
import java.awt.GradientPaint;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.Paint;
|
import java.awt.Paint;
|
||||||
import javax.swing.AbstractButton;
|
import javax.swing.AbstractButton;
|
||||||
@@ -43,11 +44,13 @@ import com.formdev.flatlaf.util.UIScale;
|
|||||||
* @uiDefault Button.default.focusedBorderColor Color
|
* @uiDefault Button.default.focusedBorderColor Color
|
||||||
* @uiDefault Button.default.focusColor Color
|
* @uiDefault Button.default.focusColor Color
|
||||||
* @uiDefault Button.default.hoverBorderColor Color optional
|
* @uiDefault Button.default.hoverBorderColor Color optional
|
||||||
|
* @uiDefault Button.toolbar.focusColor Color optional; defaults to Component.focusColor
|
||||||
* @uiDefault Button.borderWidth int
|
* @uiDefault Button.borderWidth int
|
||||||
* @uiDefault Button.default.borderWidth int
|
* @uiDefault Button.default.borderWidth int
|
||||||
* @uiDefault Button.innerFocusWidth int or float optional; defaults to Component.innerFocusWidth
|
* @uiDefault Button.innerFocusWidth int or float optional; defaults to Component.innerFocusWidth
|
||||||
* @uiDefault Button.toolbar.margin Insets
|
* @uiDefault Button.toolbar.margin Insets
|
||||||
* @uiDefault Button.toolbar.spacingInsets Insets
|
* @uiDefault Button.toolbar.spacingInsets Insets
|
||||||
|
* @uiDefault Button.toolbar.focusWidth int or float optional; default is 1.5
|
||||||
* @uiDefault Button.arc int
|
* @uiDefault Button.arc int
|
||||||
*
|
*
|
||||||
* @author Karl Tauber
|
* @author Karl Tauber
|
||||||
@@ -66,11 +69,15 @@ public class FlatButtonBorder
|
|||||||
@Styleable(dot=true) protected Color defaultFocusedBorderColor = UIManager.getColor( "Button.default.focusedBorderColor" );
|
@Styleable(dot=true) protected Color defaultFocusedBorderColor = UIManager.getColor( "Button.default.focusedBorderColor" );
|
||||||
@Styleable(dot=true) protected Color defaultFocusColor = UIManager.getColor( "Button.default.focusColor" );
|
@Styleable(dot=true) protected Color defaultFocusColor = UIManager.getColor( "Button.default.focusColor" );
|
||||||
@Styleable(dot=true) protected Color defaultHoverBorderColor = UIManager.getColor( "Button.default.hoverBorderColor" );
|
@Styleable(dot=true) protected Color defaultHoverBorderColor = UIManager.getColor( "Button.default.hoverBorderColor" );
|
||||||
|
/** @since 1.4 */
|
||||||
|
protected final Color toolbarFocusColor = UIManager.getColor( "Button.toolbar.focusColor" );
|
||||||
|
|
||||||
@Styleable protected int borderWidth = UIManager.getInt( "Button.borderWidth" );
|
@Styleable protected int borderWidth = UIManager.getInt( "Button.borderWidth" );
|
||||||
@Styleable(dot=true) protected int defaultBorderWidth = UIManager.getInt( "Button.default.borderWidth" );
|
@Styleable(dot=true) protected int defaultBorderWidth = UIManager.getInt( "Button.default.borderWidth" );
|
||||||
@Styleable(dot=true) protected Insets toolbarMargin = UIManager.getInsets( "Button.toolbar.margin" );
|
@Styleable(dot=true) protected Insets toolbarMargin = UIManager.getInsets( "Button.toolbar.margin" );
|
||||||
@Styleable(dot=true) protected Insets toolbarSpacingInsets = UIManager.getInsets( "Button.toolbar.spacingInsets" );
|
@Styleable(dot=true) protected Insets toolbarSpacingInsets = UIManager.getInsets( "Button.toolbar.spacingInsets" );
|
||||||
|
/** @since 1.4 */
|
||||||
|
protected final float toolbarFocusWidth = FlatUIUtils.getUIFloat( "Button.toolbar.focusWidth", 1.5f );
|
||||||
@Styleable protected int arc = UIManager.getInt( "Button.arc" );
|
@Styleable protected int arc = UIManager.getInt( "Button.arc" );
|
||||||
|
|
||||||
public FlatButtonBorder() {
|
public FlatButtonBorder() {
|
||||||
@@ -85,11 +92,41 @@ public class FlatButtonBorder
|
|||||||
!FlatButtonUI.isHelpButton( c ) &&
|
!FlatButtonUI.isHelpButton( c ) &&
|
||||||
!FlatToggleButtonUI.isTabButton( c ) )
|
!FlatToggleButtonUI.isTabButton( c ) )
|
||||||
super.paintBorder( c, g, x, y, width, height );
|
super.paintBorder( c, g, x, y, width, height );
|
||||||
|
else if( FlatButtonUI.isToolBarButton( c ) && isFocused( c ) )
|
||||||
|
paintToolBarFocus( c, g, x, y, width, height );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
protected void paintToolBarFocus( Component c, Graphics g, int x, int y, int width, int height ) {
|
||||||
|
Graphics2D g2 = (Graphics2D) g.create();
|
||||||
|
try {
|
||||||
|
FlatUIUtils.setRenderingHints( g2 );
|
||||||
|
|
||||||
|
float focusWidth = UIScale.scale( toolbarFocusWidth );
|
||||||
|
float arc = UIScale.scale( (float) getArc( c ) );
|
||||||
|
Color outlineColor = getOutlineColor( c );
|
||||||
|
|
||||||
|
Insets spacing = UIScale.scale( toolbarSpacingInsets );
|
||||||
|
x += spacing.left;
|
||||||
|
y += spacing.top;
|
||||||
|
width -= spacing.left + spacing.right;
|
||||||
|
height -= spacing.top + spacing.bottom;
|
||||||
|
|
||||||
|
g2.setColor( (outlineColor != null) ? outlineColor : getFocusColor( c ) );
|
||||||
|
// not using paintComponentOuterBorder() here because its round edges look too "thick"
|
||||||
|
FlatUIUtils.paintComponentBorder( g2, x, y, width, height, 0, focusWidth, arc );
|
||||||
|
} finally {
|
||||||
|
g2.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Color getFocusColor( Component c ) {
|
protected Color getFocusColor( Component c ) {
|
||||||
return FlatButtonUI.isDefaultButton( c ) ? defaultFocusColor : super.getFocusColor( c );
|
return (toolbarFocusColor != null && FlatButtonUI.isToolBarButton( c ))
|
||||||
|
? toolbarFocusColor
|
||||||
|
: (FlatButtonUI.isDefaultButton( c ) ? defaultFocusColor : super.getFocusColor( c ));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import java.awt.event.FocusEvent;
|
|||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import javax.swing.JFormattedTextField;
|
import javax.swing.JFormattedTextField;
|
||||||
import javax.swing.plaf.UIResource;
|
import javax.swing.plaf.UIResource;
|
||||||
|
import javax.swing.text.BadLocationException;
|
||||||
import javax.swing.text.DefaultCaret;
|
import javax.swing.text.DefaultCaret;
|
||||||
import javax.swing.text.Document;
|
import javax.swing.text.Document;
|
||||||
import javax.swing.text.JTextComponent;
|
import javax.swing.text.JTextComponent;
|
||||||
@@ -142,4 +143,23 @@ public class FlatCaret
|
|||||||
moveDot( doc.getLength() );
|
moveDot( doc.getLength() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
public void scrollCaretToVisible() {
|
||||||
|
JTextComponent c = getComponent();
|
||||||
|
if( c == null || c.getUI() == null )
|
||||||
|
return;
|
||||||
|
|
||||||
|
try {
|
||||||
|
Rectangle loc = c.getUI().modelToView( c, getDot(), getDotBias() );
|
||||||
|
if( loc != null ) {
|
||||||
|
adjustVisibility( loc );
|
||||||
|
damage( loc );
|
||||||
|
}
|
||||||
|
} catch( BadLocationException ex ) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -377,13 +377,9 @@ public class FlatComboBoxUI
|
|||||||
protected void configureEditor() {
|
protected void configureEditor() {
|
||||||
super.configureEditor();
|
super.configureEditor();
|
||||||
|
|
||||||
if( editor instanceof JTextField ) {
|
// remove default text field border from editor
|
||||||
JTextField textField = (JTextField) editor;
|
if( editor instanceof JTextField && ((JTextField)editor).getBorder() instanceof FlatTextBorder )
|
||||||
|
((JTextField)editor).setBorder( BorderFactory.createEmptyBorder() );
|
||||||
// remove default text field border from editor
|
|
||||||
if( textField.getBorder() instanceof FlatTextBorder )
|
|
||||||
textField.setBorder( BorderFactory.createEmptyBorder() );
|
|
||||||
}
|
|
||||||
|
|
||||||
// explicitly make non-opaque
|
// explicitly make non-opaque
|
||||||
if( editor instanceof JComponent )
|
if( editor instanceof JComponent )
|
||||||
@@ -612,7 +608,6 @@ public class FlatComboBoxUI
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Dimension getDisplaySize() {
|
protected Dimension getDisplaySize() {
|
||||||
|
|
||||||
paddingBorder.uninstall();
|
paddingBorder.uninstall();
|
||||||
Dimension displaySize = super.getDisplaySize();
|
Dimension displaySize = super.getDisplaySize();
|
||||||
paddingBorder.uninstall();
|
paddingBorder.uninstall();
|
||||||
@@ -863,14 +858,20 @@ public class FlatComboBoxUI
|
|||||||
if( oldBorder == this )
|
if( oldBorder == this )
|
||||||
return; // already installed
|
return; // already installed
|
||||||
|
|
||||||
|
// component already has a padding border --> uninstall it
|
||||||
|
// (may happen if single renderer instance is used in multiple comboboxes)
|
||||||
|
if( oldBorder instanceof CellPaddingBorder )
|
||||||
|
((CellPaddingBorder)oldBorder).uninstall();
|
||||||
|
|
||||||
// this border can be installed only at one component
|
// this border can be installed only at one component
|
||||||
|
// (may happen if a renderer returns varying components)
|
||||||
uninstall();
|
uninstall();
|
||||||
|
|
||||||
// remember component where this border was installed for uninstall
|
// remember component where this border was installed for uninstall
|
||||||
rendererComponent = jc;
|
rendererComponent = jc;
|
||||||
|
|
||||||
// remember old border and replace it
|
// remember old border and replace it
|
||||||
rendererBorder = oldBorder;
|
rendererBorder = jc.getBorder();
|
||||||
rendererComponent.setBorder( this );
|
rendererComponent.setBorder( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,10 @@ import java.awt.Dimension;
|
|||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.GridBagConstraints;
|
import java.awt.GridBagConstraints;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
|
import javax.swing.Box;
|
||||||
|
import javax.swing.BoxLayout;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
@@ -160,12 +163,30 @@ public class FlatOptionPaneUI
|
|||||||
if( msg instanceof String && BasicHTML.isHTMLString( (String) msg ) )
|
if( msg instanceof String && BasicHTML.isHTMLString( (String) msg ) )
|
||||||
maxll = Integer.MAX_VALUE;
|
maxll = Integer.MAX_VALUE;
|
||||||
|
|
||||||
|
// fix right-to-left alignment if super.addMessageComponents() breaks longer lines
|
||||||
|
// into multiple labels and puts them into a box that aligns them to the left
|
||||||
|
if( msg instanceof Box ) {
|
||||||
|
Box box = (Box) msg;
|
||||||
|
if( "OptionPane.verticalBox".equals( box.getName() ) &&
|
||||||
|
box.getLayout() instanceof BoxLayout &&
|
||||||
|
((BoxLayout)box.getLayout()).getAxis() == BoxLayout.Y_AXIS )
|
||||||
|
{
|
||||||
|
box.addPropertyChangeListener( "componentOrientation", e -> {
|
||||||
|
float alignX = box.getComponentOrientation().isLeftToRight() ? 0 : 1;
|
||||||
|
for( Component c : box.getComponents() ) {
|
||||||
|
if( c instanceof JLabel && "OptionPane.label".equals( c.getName() ) )
|
||||||
|
((JLabel)c).setAlignmentX( alignX );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
super.addMessageComponents( container, cons, msg, maxll, internallyCreated );
|
super.addMessageComponents( container, cons, msg, maxll, internallyCreated );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateChildPanels( Container c ) {
|
private void updateChildPanels( Container c ) {
|
||||||
for( Component child : c.getComponents() ) {
|
for( Component child : c.getComponents() ) {
|
||||||
if( child instanceof JPanel ) {
|
if( child.getClass() == JPanel.class ) {
|
||||||
JPanel panel = (JPanel)child;
|
JPanel panel = (JPanel)child;
|
||||||
|
|
||||||
// make sub-panel non-opaque for OptionPane.background
|
// make sub-panel non-opaque for OptionPane.background
|
||||||
@@ -177,9 +198,8 @@ public class FlatOptionPaneUI
|
|||||||
panel.setBorder( new NonUIResourceBorder( border ) );
|
panel.setBorder( new NonUIResourceBorder( border ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( child instanceof Container ) {
|
if( child instanceof Container )
|
||||||
updateChildPanels( (Container) child );
|
updateChildPanels( (Container) child );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.formdev.flatlaf.ui;
|
package com.formdev.flatlaf.ui;
|
||||||
|
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Insets;
|
||||||
import java.awt.Shape;
|
import java.awt.Shape;
|
||||||
import java.awt.Toolkit;
|
import java.awt.Toolkit;
|
||||||
import java.awt.event.KeyAdapter;
|
import java.awt.event.KeyAdapter;
|
||||||
@@ -127,8 +128,10 @@ public class FlatPasswordFieldUI
|
|||||||
repaint( e );
|
repaint( e );
|
||||||
}
|
}
|
||||||
private void repaint( KeyEvent e ) {
|
private void repaint( KeyEvent e ) {
|
||||||
if( e.getKeyCode() == KeyEvent.VK_CAPS_LOCK )
|
if( e.getKeyCode() == KeyEvent.VK_CAPS_LOCK ) {
|
||||||
e.getComponent().repaint();
|
e.getComponent().repaint();
|
||||||
|
scrollCaretToVisible();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -186,16 +189,40 @@ public class FlatPasswordFieldUI
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void paintCapsLock( Graphics g ) {
|
protected void paintCapsLock( Graphics g ) {
|
||||||
if( !showCapsLock )
|
if( !isCapsLockVisible() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
JTextComponent c = getComponent();
|
JTextComponent c = getComponent();
|
||||||
if( !FlatUIUtils.isPermanentFocusOwner( c ) ||
|
|
||||||
!Toolkit.getDefaultToolkit().getLockingKeyState( KeyEvent.VK_CAPS_LOCK ) )
|
|
||||||
return;
|
|
||||||
|
|
||||||
int y = (c.getHeight() - capsLockIcon.getIconHeight()) / 2;
|
int y = (c.getHeight() - capsLockIcon.getIconHeight()) / 2;
|
||||||
int x = c.getWidth() - capsLockIcon.getIconWidth() - y;
|
int x = c.getComponentOrientation().isLeftToRight()
|
||||||
|
? c.getWidth() - capsLockIcon.getIconWidth() - y
|
||||||
|
: y;
|
||||||
capsLockIcon.paintIcon( c, g, x, y );
|
capsLockIcon.paintIcon( c, g, x, y );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
protected boolean isCapsLockVisible() {
|
||||||
|
if( !showCapsLock )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
JTextComponent c = getComponent();
|
||||||
|
return FlatUIUtils.isPermanentFocusOwner( c ) &&
|
||||||
|
Toolkit.getDefaultToolkit().getLockingKeyState( KeyEvent.VK_CAPS_LOCK );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected Insets getPadding() {
|
||||||
|
Insets padding = super.getPadding();
|
||||||
|
if( !isCapsLockVisible() )
|
||||||
|
return padding;
|
||||||
|
|
||||||
|
boolean ltr = getComponent().getComponentOrientation().isLeftToRight();
|
||||||
|
int iconWidth = capsLockIcon.getIconWidth();
|
||||||
|
return FlatUIUtils.addInsets( padding, new Insets( 0, ltr ? 0 : iconWidth, 0, ltr ? iconWidth : 0 ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ import javax.swing.Popup;
|
|||||||
import javax.swing.PopupFactory;
|
import javax.swing.PopupFactory;
|
||||||
import javax.swing.RootPaneContainer;
|
import javax.swing.RootPaneContainer;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
|
import javax.swing.ToolTipManager;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
import com.formdev.flatlaf.FlatClientProperties;
|
import com.formdev.flatlaf.FlatClientProperties;
|
||||||
@@ -260,13 +261,7 @@ public class FlatPopupFactory
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean wasInvokedFromToolTipManager() {
|
private boolean wasInvokedFromToolTipManager() {
|
||||||
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
|
return StackUtils.wasInvokedFrom( ToolTipManager.class.getName(), "showTipWindow", 8 );
|
||||||
for( StackTraceElement stackTraceElement : stackTrace ) {
|
|
||||||
if( "javax.swing.ToolTipManager".equals( stackTraceElement.getClassName() ) &&
|
|
||||||
"showTipWindow".equals( stackTraceElement.getMethodName() ) )
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---- class NonFlashingPopup ---------------------------------------------
|
//---- class NonFlashingPopup ---------------------------------------------
|
||||||
|
|||||||
@@ -342,7 +342,7 @@ public class FlatRootPaneUI
|
|||||||
? getSizeFunc.apply( rootPane.getContentPane() )
|
? getSizeFunc.apply( rootPane.getContentPane() )
|
||||||
: rootPane.getSize();
|
: rootPane.getSize();
|
||||||
|
|
||||||
int width = Math.max( titlePaneSize.width, contentSize.width );
|
int width = contentSize.width; // title pane width is not considered here
|
||||||
int height = titlePaneSize.height + contentSize.height;
|
int height = titlePaneSize.height + contentSize.height;
|
||||||
if( titlePane == null || !titlePane.isMenuBarEmbedded() ) {
|
if( titlePane == null || !titlePane.isMenuBarEmbedded() ) {
|
||||||
JMenuBar menuBar = rootPane.getJMenuBar();
|
JMenuBar menuBar = rootPane.getJMenuBar();
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ public class FlatTableUI
|
|||||||
if( isDragging &&
|
if( isDragging &&
|
||||||
SystemInfo.isJava_9_orLater &&
|
SystemInfo.isJava_9_orLater &&
|
||||||
((horizontalLines && y1 == y2) || (verticalLines && x1 == x2)) &&
|
((horizontalLines && y1 == y2) || (verticalLines && x1 == x2)) &&
|
||||||
wasInvokedFromPaintDraggedArea() )
|
wasInvokedFromMethod( "paintDraggedArea" ) )
|
||||||
{
|
{
|
||||||
if( y1 == y2 ) {
|
if( y1 == y2 ) {
|
||||||
// horizontal grid line
|
// horizontal grid line
|
||||||
@@ -357,22 +357,8 @@ public class FlatTableUI
|
|||||||
return wasInvokedFromMethod( "paintGrid" );
|
return wasInvokedFromMethod( "paintGrid" );
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean wasInvokedFromPaintDraggedArea() {
|
|
||||||
return wasInvokedFromMethod( "paintDraggedArea" );
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean wasInvokedFromMethod( String methodName ) {
|
private boolean wasInvokedFromMethod( String methodName ) {
|
||||||
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
|
return StackUtils.wasInvokedFrom( BasicTableUI.class.getName(), methodName, 8 );
|
||||||
for( int i = 0; i < 10 || i < stackTrace.length; i++ ) {
|
|
||||||
if( "javax.swing.plaf.basic.BasicTableUI".equals( stackTrace[i].getClassName() ) ) {
|
|
||||||
String methodName2 = stackTrace[i].getMethodName();
|
|
||||||
if( "paintCell".equals( methodName2 ) )
|
|
||||||
return false;
|
|
||||||
if( methodName.equals( methodName2 ) )
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ public class FlatTextFieldUI
|
|||||||
@Override
|
@Override
|
||||||
protected void paintSafely( Graphics g ) {
|
protected void paintSafely( Graphics g ) {
|
||||||
paintBackground( g, getComponent(), isIntelliJTheme, focusedBackground );
|
paintBackground( g, getComponent(), isIntelliJTheme, focusedBackground );
|
||||||
paintPlaceholder( g, getComponent(), placeholderForeground );
|
paintPlaceholder( g );
|
||||||
|
|
||||||
super.paintSafely( HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g ) );
|
super.paintSafely( HiDPIUtils.createGraphicsTextYCorrection( (Graphics2D) g ) );
|
||||||
}
|
}
|
||||||
@@ -308,7 +308,9 @@ public class FlatTextFieldUI
|
|||||||
return background;
|
return background;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void paintPlaceholder( Graphics g, JTextComponent c, Color placeholderForeground ) {
|
protected void paintPlaceholder( Graphics g ) {
|
||||||
|
JTextComponent c = getComponent();
|
||||||
|
|
||||||
// check whether text component is empty
|
// check whether text component is empty
|
||||||
if( c.getDocument().getLength() > 0 )
|
if( c.getDocument().getLength() > 0 )
|
||||||
return;
|
return;
|
||||||
@@ -323,16 +325,14 @@ public class FlatTextFieldUI
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// compute placeholder location
|
// compute placeholder location
|
||||||
Insets insets = c.getInsets();
|
Rectangle r = getVisibleEditorRect();
|
||||||
FontMetrics fm = c.getFontMetrics( c.getFont() );
|
FontMetrics fm = c.getFontMetrics( c.getFont() );
|
||||||
int x = insets.left;
|
int y = r.y + fm.getAscent() + ((r.height - fm.getHeight()) / 2);
|
||||||
int y = insets.top + fm.getAscent() + ((c.getHeight() - insets.top - insets.bottom - fm.getHeight()) / 2);
|
|
||||||
|
|
||||||
// paint placeholder
|
// paint placeholder
|
||||||
g.setColor( placeholderForeground );
|
g.setColor( placeholderForeground );
|
||||||
String clippedPlaceholder = JavaCompatibility.getClippedString( jc, fm,
|
String clippedPlaceholder = JavaCompatibility.getClippedString( c, fm, (String) placeholder, r.width );
|
||||||
(String) placeholder, c.getWidth() - insets.left - insets.right );
|
FlatUIUtils.drawString( c, g, clippedPlaceholder, r.x, y );
|
||||||
FlatUIUtils.drawString( c, g, clippedPlaceholder, x, y );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -385,4 +385,13 @@ public class FlatTextFieldUI
|
|||||||
Object padding = getComponent().getClientProperty( FlatClientProperties.TEXT_FIELD_PADDING );
|
Object padding = getComponent().getClientProperty( FlatClientProperties.TEXT_FIELD_PADDING );
|
||||||
return (padding instanceof Insets) ? UIScale.scale( (Insets) padding ) : null;
|
return (padding instanceof Insets) ? UIScale.scale( (Insets) padding ) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
protected void scrollCaretToVisible() {
|
||||||
|
Caret caret = getComponent().getCaret();
|
||||||
|
if( caret instanceof FlatCaret )
|
||||||
|
((FlatCaret)caret).scrollCaretToVisible();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import java.beans.PropertyChangeListener;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.swing.AbstractButton;
|
import javax.swing.AbstractButton;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.UIManager;
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
import javax.swing.plaf.ComponentUI;
|
import javax.swing.plaf.ComponentUI;
|
||||||
import javax.swing.plaf.basic.BasicToolBarUI;
|
import javax.swing.plaf.basic.BasicToolBarUI;
|
||||||
@@ -45,6 +46,10 @@ import com.formdev.flatlaf.ui.FlatStyleSupport.Styleable;
|
|||||||
* @uiDefault ToolBar.floatingForeground Color
|
* @uiDefault ToolBar.floatingForeground Color
|
||||||
* @uiDefault ToolBar.isRollover boolean
|
* @uiDefault ToolBar.isRollover boolean
|
||||||
*
|
*
|
||||||
|
* <!-- FlatToolBarUI -->
|
||||||
|
*
|
||||||
|
* @uiDefault ToolBar.focusableButtons boolean
|
||||||
|
*
|
||||||
* <!-- FlatToolBarBorder -->
|
* <!-- FlatToolBarBorder -->
|
||||||
*
|
*
|
||||||
* @uiDefault ToolBar.borderMargins Insets
|
* @uiDefault ToolBar.borderMargins Insets
|
||||||
@@ -55,6 +60,9 @@ import com.formdev.flatlaf.ui.FlatStyleSupport.Styleable;
|
|||||||
public class FlatToolBarUI
|
public class FlatToolBarUI
|
||||||
extends BasicToolBarUI
|
extends BasicToolBarUI
|
||||||
{
|
{
|
||||||
|
/** @since 1.4 */
|
||||||
|
protected boolean focusableButtons;
|
||||||
|
|
||||||
// for FlatToolBarBorder
|
// for FlatToolBarBorder
|
||||||
@Styleable protected Insets borderMargins;
|
@Styleable protected Insets borderMargins;
|
||||||
@Styleable protected Color gripColor;
|
@Styleable protected Color gripColor;
|
||||||
@@ -69,6 +77,10 @@ public class FlatToolBarUI
|
|||||||
public void installUI( JComponent c ) {
|
public void installUI( JComponent c ) {
|
||||||
super.installUI( c );
|
super.installUI( c );
|
||||||
|
|
||||||
|
// disable focusable state of buttons (when switching from another Laf)
|
||||||
|
if( !focusableButtons )
|
||||||
|
setButtonsFocusable( false );
|
||||||
|
|
||||||
applyStyle( FlatStyleSupport.getStyle( c ) );
|
applyStyle( FlatStyleSupport.getStyle( c ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,9 +88,20 @@ public class FlatToolBarUI
|
|||||||
public void uninstallUI( JComponent c ) {
|
public void uninstallUI( JComponent c ) {
|
||||||
super.uninstallUI( c );
|
super.uninstallUI( c );
|
||||||
|
|
||||||
|
// re-enable focusable state of buttons (when switching to another Laf)
|
||||||
|
if( !focusableButtons )
|
||||||
|
setButtonsFocusable( true );
|
||||||
|
|
||||||
oldStyleValues = null;
|
oldStyleValues = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void installDefaults() {
|
||||||
|
super.installDefaults();
|
||||||
|
|
||||||
|
focusableButtons = UIManager.getBoolean( "ToolBar.focusableButtons" );
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ContainerListener createToolBarContListener() {
|
protected ContainerListener createToolBarContListener() {
|
||||||
return new ToolBarContListener() {
|
return new ToolBarContListener() {
|
||||||
@@ -86,18 +109,22 @@ public class FlatToolBarUI
|
|||||||
public void componentAdded( ContainerEvent e ) {
|
public void componentAdded( ContainerEvent e ) {
|
||||||
super.componentAdded( e );
|
super.componentAdded( e );
|
||||||
|
|
||||||
Component c = e.getChild();
|
if( !focusableButtons ) {
|
||||||
if( c instanceof AbstractButton )
|
Component c = e.getChild();
|
||||||
c.setFocusable( false );
|
if( c instanceof AbstractButton )
|
||||||
|
c.setFocusable( false );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void componentRemoved( ContainerEvent e ) {
|
public void componentRemoved( ContainerEvent e ) {
|
||||||
super.componentRemoved( e );
|
super.componentRemoved( e );
|
||||||
|
|
||||||
Component c = e.getChild();
|
if( !focusableButtons ) {
|
||||||
if( c instanceof AbstractButton )
|
Component c = e.getChild();
|
||||||
c.setFocusable( true );
|
if( c instanceof AbstractButton )
|
||||||
|
c.setFocusable( true );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -121,6 +148,16 @@ public class FlatToolBarUI
|
|||||||
return FlatStyleSupport.applyToAnnotatedObject( this, key, value );
|
return FlatStyleSupport.applyToAnnotatedObject( this, key, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
protected void setButtonsFocusable( boolean focusable ) {
|
||||||
|
for( Component c : toolBar.getComponents() ) {
|
||||||
|
if( c instanceof AbstractButton )
|
||||||
|
c.setFocusable( focusable );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// disable rollover border
|
// disable rollover border
|
||||||
@Override protected void setBorderToRollover( Component c ) {}
|
@Override protected void setBorderToRollover( Component c ) {}
|
||||||
@Override protected void setBorderToNonRollover( Component c ) {}
|
@Override protected void setBorderToNonRollover( Component c ) {}
|
||||||
|
|||||||
@@ -94,6 +94,11 @@ public class FlatUIUtils
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Insets addInsets( Insets insets1, Insets insets2 ) {
|
public static Insets addInsets( Insets insets1, Insets insets2 ) {
|
||||||
|
if( insets1 == null )
|
||||||
|
return insets2;
|
||||||
|
if( insets2 == null )
|
||||||
|
return insets1;
|
||||||
|
|
||||||
return new Insets(
|
return new Insets(
|
||||||
insets1.top + insets2.top,
|
insets1.top + insets2.top,
|
||||||
insets1.left + insets2.left,
|
insets1.left + insets2.left,
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2021 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 java.util.function.BiPredicate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class StackUtils
|
||||||
|
{
|
||||||
|
private static final StackUtils INSTANCE = new StackUtilsImpl();
|
||||||
|
|
||||||
|
// hide from javadoc
|
||||||
|
StackUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether current method was invoked from the given class and method.
|
||||||
|
*/
|
||||||
|
public static boolean wasInvokedFrom( String className, String methodName, int limit ) {
|
||||||
|
return wasInvokedFrom( (c,m) -> c.equals( className ) && m.equals( methodName ), limit );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether current method was invoked from a class and method using the given predicate,
|
||||||
|
* which gets the class name of the stack frame as first parameter and the method name as second parameter.
|
||||||
|
*/
|
||||||
|
public static boolean wasInvokedFrom( BiPredicate<String, String> predicate, int limit ) {
|
||||||
|
return INSTANCE.wasInvokedFromImpl( predicate, limit );
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean wasInvokedFromImpl( BiPredicate<String, String> predicate, int limit ) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2021 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 java.util.function.BiPredicate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class StackUtilsImpl
|
||||||
|
extends StackUtils
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
boolean wasInvokedFromImpl( BiPredicate<String, String> predicate, int limit ) {
|
||||||
|
int count = -2;
|
||||||
|
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
|
||||||
|
for( StackTraceElement stackTraceElement : stackTrace ) {
|
||||||
|
if( predicate.test( stackTraceElement.getClassName(), stackTraceElement.getMethodName() ) )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
count++;
|
||||||
|
if( limit > 0 && count > limit )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2021 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 java.util.function.BiPredicate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class StackUtilsImpl
|
||||||
|
extends StackUtils
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
boolean wasInvokedFromImpl( BiPredicate<String, String> predicate, int limit ) {
|
||||||
|
return StackWalker.getInstance().walk( stream -> {
|
||||||
|
if( limit > 0 )
|
||||||
|
stream = stream.limit( limit + 2 );
|
||||||
|
return stream.anyMatch( f -> {
|
||||||
|
return predicate.test( f.getClassName(), f.getMethodName() );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -752,6 +752,7 @@ ToolBar.separatorWidth = 7
|
|||||||
ToolBar.separatorColor = $Separator.foreground
|
ToolBar.separatorColor = $Separator.foreground
|
||||||
|
|
||||||
ToolBar.spacingBorder = $Button.toolbar.spacingInsets
|
ToolBar.spacingBorder = $Button.toolbar.spacingInsets
|
||||||
|
ToolBar.focusableButtons = false
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTipManager ----
|
#---- ToolTipManager ----
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import javax.swing.plaf.metal.MetalLookAndFeel;
|
|||||||
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
|
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
|
||||||
import com.formdev.flatlaf.*;
|
import com.formdev.flatlaf.*;
|
||||||
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
import com.formdev.flatlaf.util.SystemInfo;
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
import net.miginfocom.layout.ConstraintParser;
|
import net.miginfocom.layout.ConstraintParser;
|
||||||
@@ -240,7 +241,7 @@ class ControlBar
|
|||||||
frame.setSize( Math.max( prefSize.width, width ), Math.max( prefSize.height, height ) );
|
frame.setSize( Math.max( prefSize.width, width ), Math.max( prefSize.height, height ) );
|
||||||
|
|
||||||
} catch( Exception ex ) {
|
} catch( Exception ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( null, ex );
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.formdev.flatlaf.FlatLightLaf;
|
|||||||
import com.formdev.flatlaf.FlatPropertiesLaf;
|
import com.formdev.flatlaf.FlatPropertiesLaf;
|
||||||
import com.formdev.flatlaf.IntelliJTheme;
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
import com.formdev.flatlaf.demo.intellijthemes.IJThemesPanel;
|
import com.formdev.flatlaf.demo.intellijthemes.IJThemesPanel;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
import com.formdev.flatlaf.util.StringUtils;
|
import com.formdev.flatlaf.util.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -83,7 +84,7 @@ public class DemoPrefs
|
|||||||
UIManager.setLookAndFeel( lafClassName );
|
UIManager.setLookAndFeel( lafClassName );
|
||||||
}
|
}
|
||||||
} catch( Throwable ex ) {
|
} catch( Throwable ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( null, ex );
|
||||||
|
|
||||||
// fallback
|
// fallback
|
||||||
FlatLightLaf.setup();
|
FlatLightLaf.setup();
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import java.nio.charset.StandardCharsets;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.StandardOpenOption;
|
import java.nio.file.StandardOpenOption;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This tool creates look and feel classes for all themes listed in themes.json.
|
* This tool creates look and feel classes for all themes listed in themes.json.
|
||||||
@@ -120,7 +121,7 @@ public class IJThemesClassGenerator
|
|||||||
Files.write( out, content.getBytes( StandardCharsets.ISO_8859_1 ),
|
Files.write( out, content.getBytes( StandardCharsets.ISO_8859_1 ),
|
||||||
StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING );
|
StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING );
|
||||||
} catch( IOException ex ) {
|
} catch( IOException ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( null, ex );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import com.formdev.flatlaf.json.Json;
|
import com.formdev.flatlaf.json.Json;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
import com.formdev.flatlaf.util.StringUtils;
|
import com.formdev.flatlaf.util.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -46,7 +47,7 @@ class IJThemesManager
|
|||||||
try( Reader reader = new InputStreamReader( getClass().getResourceAsStream( "themes.json" ), StandardCharsets.UTF_8 ) ) {
|
try( Reader reader = new InputStreamReader( getClass().getResourceAsStream( "themes.json" ), StandardCharsets.UTF_8 ) ) {
|
||||||
json = (Map<String, Object>) Json.parse( reader );
|
json = (Map<String, Object>) Json.parse( reader );
|
||||||
} catch( IOException ex ) {
|
} catch( IOException ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( null, ex );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ import com.formdev.flatlaf.IntelliJTheme;
|
|||||||
import com.formdev.flatlaf.demo.DemoPrefs;
|
import com.formdev.flatlaf.demo.DemoPrefs;
|
||||||
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
import com.formdev.flatlaf.extras.FlatAnimatedLafChange;
|
||||||
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
import com.formdev.flatlaf.util.StringUtils;
|
import com.formdev.flatlaf.util.StringUtils;
|
||||||
import net.miginfocom.swing.*;
|
import net.miginfocom.swing.*;
|
||||||
|
|
||||||
@@ -259,7 +260,7 @@ public class IJThemesPanel
|
|||||||
try {
|
try {
|
||||||
UIManager.setLookAndFeel( themeInfo.lafClassName );
|
UIManager.setLookAndFeel( themeInfo.lafClassName );
|
||||||
} catch( Exception ex ) {
|
} catch( Exception ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( null, ex );
|
||||||
showInformationDialog( "Failed to create '" + themeInfo.lafClassName + "'.", ex );
|
showInformationDialog( "Failed to create '" + themeInfo.lafClassName + "'.", ex );
|
||||||
}
|
}
|
||||||
} else if( themeInfo.themeFile != null ) {
|
} else if( themeInfo.themeFile != null ) {
|
||||||
@@ -273,7 +274,7 @@ public class IJThemesPanel
|
|||||||
|
|
||||||
DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.FILE_PREFIX + themeInfo.themeFile );
|
DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.FILE_PREFIX + themeInfo.themeFile );
|
||||||
} catch( Exception ex ) {
|
} catch( Exception ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( null, ex );
|
||||||
showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex );
|
showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import java.net.URLConnection;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.StandardCopyOption;
|
import java.nio.file.StandardCopyOption;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This tool updates all IntelliJ themes listed in themes.json by downloading
|
* This tool updates all IntelliJ themes listed in themes.json by downloading
|
||||||
@@ -61,7 +62,7 @@ public class IJThemesUpdater
|
|||||||
URLConnection con = url.openConnection();
|
URLConnection con = url.openConnection();
|
||||||
Files.copy( con.getInputStream(), out, StandardCopyOption.REPLACE_EXISTING );
|
Files.copy( con.getInputStream(), out, StandardCopyOption.REPLACE_EXISTING );
|
||||||
} catch( IOException ex ) {
|
} catch( IOException ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( null, ex );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import com.formdev.flatlaf.FlatLaf.DisabledIconProvider;
|
|||||||
import com.formdev.flatlaf.ui.FlatUIUtils;
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
import com.formdev.flatlaf.util.Graphics2DProxy;
|
import com.formdev.flatlaf.util.Graphics2DProxy;
|
||||||
import com.formdev.flatlaf.util.GrayFilter;
|
import com.formdev.flatlaf.util.GrayFilter;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
import com.formdev.flatlaf.util.MultiResolutionImageSupport;
|
import com.formdev.flatlaf.util.MultiResolutionImageSupport;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
import com.kitfox.svg.SVGDiagram;
|
import com.kitfox.svg.SVGDiagram;
|
||||||
@@ -335,7 +336,7 @@ public class FlatSVGIcon
|
|||||||
try {
|
try {
|
||||||
diagram = svgUniverse.getDiagram( url.toURI() );
|
diagram = svgUniverse.getDiagram( url.toURI() );
|
||||||
} catch( URISyntaxException ex ) {
|
} catch( URISyntaxException ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( "FlatLaf: Failed to load SVG icon '" + url + "'.", ex );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ import com.formdev.flatlaf.ui.FlatUIUtils;
|
|||||||
import com.formdev.flatlaf.util.DerivedColor;
|
import com.formdev.flatlaf.util.DerivedColor;
|
||||||
import com.formdev.flatlaf.util.GrayFilter;
|
import com.formdev.flatlaf.util.GrayFilter;
|
||||||
import com.formdev.flatlaf.util.HSLColor;
|
import com.formdev.flatlaf.util.HSLColor;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
import com.formdev.flatlaf.util.ScaledEmptyBorder;
|
import com.formdev.flatlaf.util.ScaledEmptyBorder;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
@@ -377,11 +378,12 @@ public class FlatUIDefaultsInspector
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Properties loadDerivedColorKeys() {
|
private Properties loadDerivedColorKeys() {
|
||||||
|
String name = "/com/formdev/flatlaf/extras/resources/DerivedColorKeys.properties";
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
try( InputStream in = getClass().getResourceAsStream( "/com/formdev/flatlaf/extras/resources/DerivedColorKeys.properties" ) ) {
|
try( InputStream in = getClass().getResourceAsStream( name ) ) {
|
||||||
properties.load( in );
|
properties.load( in );
|
||||||
} catch( IOException ex ) {
|
} catch( IOException ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( "FlatLaf: Failed to load '" + name + "'.", ex );
|
||||||
}
|
}
|
||||||
return properties;
|
return properties;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import java.awt.Color;
|
|||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
import com.formdev.flatlaf.util.LoggingFacade;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base interface for all FlatLaf component extensions.
|
* Base interface for all FlatLaf component extensions.
|
||||||
@@ -87,7 +88,7 @@ public interface FlatComponentExtension
|
|||||||
try {
|
try {
|
||||||
return Enum.valueOf( enumType, (String) value );
|
return Enum.valueOf( enumType, (String) value );
|
||||||
} catch( IllegalArgumentException ex ) {
|
} catch( IllegalArgumentException ex ) {
|
||||||
ex.printStackTrace();
|
LoggingFacade.INSTANCE.logSevere( "FlatLaf: Unknown enum value '" + value + "' in enum '" + enumType.getName() + "'.", ex );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.formdev.flatlaf.extras.components;
|
|||||||
|
|
||||||
import static com.formdev.flatlaf.FlatClientProperties.*;
|
import static com.formdev.flatlaf.FlatClientProperties.*;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
import java.awt.Insets;
|
||||||
import javax.swing.JFormattedTextField;
|
import javax.swing.JFormattedTextField;
|
||||||
import com.formdev.flatlaf.extras.components.FlatTextField.SelectAllOnFocusPolicy;
|
import com.formdev.flatlaf.extras.components.FlatTextField.SelectAllOnFocusPolicy;
|
||||||
|
|
||||||
@@ -61,6 +62,27 @@ public class FlatFormattedTextField
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the padding of the text.
|
||||||
|
*
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
public Insets getPadding() {
|
||||||
|
return (Insets) getClientProperty( TEXT_FIELD_PADDING );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the padding of the text.
|
||||||
|
* This changes the location and size of the text view within the component bounds,
|
||||||
|
* but does not affect the size of the component.
|
||||||
|
*
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
public void setPadding( Insets padding ) {
|
||||||
|
putClientProperty( TEXT_FIELD_PADDING, padding );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns minimum width of a component.
|
* Returns minimum width of a component.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.formdev.flatlaf.extras.components;
|
|||||||
|
|
||||||
import static com.formdev.flatlaf.FlatClientProperties.*;
|
import static com.formdev.flatlaf.FlatClientProperties.*;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
import java.awt.Insets;
|
||||||
import javax.swing.JPasswordField;
|
import javax.swing.JPasswordField;
|
||||||
import com.formdev.flatlaf.extras.components.FlatTextField.SelectAllOnFocusPolicy;
|
import com.formdev.flatlaf.extras.components.FlatTextField.SelectAllOnFocusPolicy;
|
||||||
|
|
||||||
@@ -61,6 +62,27 @@ public class FlatPasswordField
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the padding of the text.
|
||||||
|
*
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
public Insets getPadding() {
|
||||||
|
return (Insets) getClientProperty( TEXT_FIELD_PADDING );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the padding of the text.
|
||||||
|
* This changes the location and size of the text view within the component bounds,
|
||||||
|
* but does not affect the size of the component.
|
||||||
|
*
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
public void setPadding( Insets padding ) {
|
||||||
|
putClientProperty( TEXT_FIELD_PADDING, padding );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns minimum width of a component.
|
* Returns minimum width of a component.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.formdev.flatlaf.extras.components;
|
|||||||
|
|
||||||
import static com.formdev.flatlaf.FlatClientProperties.*;
|
import static com.formdev.flatlaf.FlatClientProperties.*;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
import java.awt.Insets;
|
||||||
import javax.swing.JTextField;
|
import javax.swing.JTextField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,6 +64,27 @@ public class FlatTextField
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the padding of the text.
|
||||||
|
*
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
public Insets getPadding() {
|
||||||
|
return (Insets) getClientProperty( TEXT_FIELD_PADDING );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the padding of the text.
|
||||||
|
* This changes the location and size of the text view within the component bounds,
|
||||||
|
* but does not affect the size of the component.
|
||||||
|
*
|
||||||
|
* @since 1.4
|
||||||
|
*/
|
||||||
|
public void setPadding( Insets padding ) {
|
||||||
|
putClientProperty( TEXT_FIELD_PADDING, padding );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns minimum width of a component.
|
* Returns minimum width of a component.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1249,6 +1249,7 @@ ToolBar.dockingBackground #3c3f41 javax.swing.plaf.ColorUIResource [UI]
|
|||||||
ToolBar.dockingForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.dockingForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.floatingBackground #3c3f41 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.floatingBackground #3c3f41 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.floatingForeground #888888 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.floatingForeground #888888 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolBar.focusableButtons false
|
||||||
ToolBar.font [active] $defaultFont [UI]
|
ToolBar.font [active] $defaultFont [UI]
|
||||||
ToolBar.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.gripColor #adadad javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.gripColor #adadad javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -1254,6 +1254,7 @@ ToolBar.dockingBackground #f2f2f2 javax.swing.plaf.ColorUIResource [UI]
|
|||||||
ToolBar.dockingForeground #000000 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.dockingForeground #000000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.floatingBackground #f2f2f2 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.floatingBackground #f2f2f2 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.floatingForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.floatingForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolBar.focusableButtons false
|
||||||
ToolBar.font [active] $defaultFont [UI]
|
ToolBar.font [active] $defaultFont [UI]
|
||||||
ToolBar.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.gripColor #afafaf javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.gripColor #afafaf javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ ComboBox.buttonBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
|||||||
ComboBox.buttonDarkShadow #696969 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.buttonDarkShadow #696969 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.buttonDisabledArrowColor #ababab javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.buttonDisabledArrowColor #ababab javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.buttonEditableBackground #cccccc javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.buttonEditableBackground #cccccc javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ComboBox.buttonFocusedBackground #ffff00 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.buttonHighlight #ffffff javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.buttonHighlight #ffffff javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.buttonHoverArrowColor #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.buttonHoverArrowColor #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.buttonPressedArrowColor #0000ff javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.buttonPressedArrowColor #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -202,6 +203,7 @@ ComboBox.buttonStyle auto
|
|||||||
ComboBox.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.disabledForeground #000088 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.disabledForeground #000088 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.editorColumns 0
|
ComboBox.editorColumns 0
|
||||||
|
ComboBox.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.font [active] $defaultFont [UI]
|
ComboBox.font [active] $defaultFont [UI]
|
||||||
ComboBox.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.isEnterSelectablePopup false
|
ComboBox.isEnterSelectablePopup false
|
||||||
@@ -209,6 +211,7 @@ ComboBox.maximumRowCount 15
|
|||||||
ComboBox.minimumWidth 72
|
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.popupBackground #ffffcc javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.selectionBackground #00aa00 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionBackground #00aa00 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.selectionForeground #ffff00 javax.swing.plaf.ColorUIResource [UI]
|
ComboBox.selectionForeground #ffff00 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ComboBox.timeFactor 1000
|
ComboBox.timeFactor 1000
|
||||||
@@ -265,6 +268,7 @@ EditorPane.border [lazy] 0,0,0,0 false com.formdev.flatlaf.ui.F
|
|||||||
EditorPane.caretBlinkRate 500
|
EditorPane.caretBlinkRate 500
|
||||||
EditorPane.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
EditorPane.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||||
EditorPane.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
EditorPane.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
EditorPane.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
EditorPane.font [active] $defaultFont [UI]
|
EditorPane.font [active] $defaultFont [UI]
|
||||||
EditorPane.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
EditorPane.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
EditorPane.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
EditorPane.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -304,6 +308,7 @@ FormattedTextField.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.F
|
|||||||
FormattedTextField.caretBlinkRate 500
|
FormattedTextField.caretBlinkRate 500
|
||||||
FormattedTextField.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
FormattedTextField.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||||
FormattedTextField.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
FormattedTextField.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
FormattedTextField.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
FormattedTextField.font [active] $defaultFont [UI]
|
FormattedTextField.font [active] $defaultFont [UI]
|
||||||
FormattedTextField.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
FormattedTextField.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
FormattedTextField.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
FormattedTextField.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -700,6 +705,7 @@ PasswordField.caretBlinkRate 500
|
|||||||
PasswordField.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
PasswordField.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||||
PasswordField.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
PasswordField.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PasswordField.echoChar '\u2022'
|
PasswordField.echoChar '\u2022'
|
||||||
|
PasswordField.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PasswordField.font [active] $defaultFont [UI]
|
PasswordField.font [active] $defaultFont [UI]
|
||||||
PasswordField.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
PasswordField.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
PasswordField.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
PasswordField.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -935,6 +941,7 @@ Spinner.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
|||||||
Spinner.disabledForeground #000088 javax.swing.plaf.ColorUIResource [UI]
|
Spinner.disabledForeground #000088 javax.swing.plaf.ColorUIResource [UI]
|
||||||
Spinner.editorAlignment 11
|
Spinner.editorAlignment 11
|
||||||
Spinner.editorBorderPainted false
|
Spinner.editorBorderPainted false
|
||||||
|
Spinner.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
Spinner.font [active] $defaultFont [UI]
|
Spinner.font [active] $defaultFont [UI]
|
||||||
Spinner.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
Spinner.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
Spinner.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
Spinner.padding 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
|
||||||
@@ -1111,6 +1118,7 @@ TextArea.border [lazy] 0,0,0,0 false com.formdev.flatlaf.ui.F
|
|||||||
TextArea.caretBlinkRate 500
|
TextArea.caretBlinkRate 500
|
||||||
TextArea.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
TextArea.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextArea.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
TextArea.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TextArea.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextArea.font [active] $defaultFont [UI]
|
TextArea.font [active] $defaultFont [UI]
|
||||||
TextArea.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
TextArea.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextArea.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
TextArea.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1136,6 +1144,7 @@ TextField.caretBlinkRate 500
|
|||||||
TextField.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
TextField.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextField.darkShadow #696969 javax.swing.plaf.ColorUIResource [UI]
|
TextField.darkShadow #696969 javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextField.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
TextField.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TextField.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextField.font [active] $defaultFont [UI]
|
TextField.font [active] $defaultFont [UI]
|
||||||
TextField.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
TextField.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextField.highlight #ffffff javax.swing.plaf.ColorUIResource [UI]
|
TextField.highlight #ffffff javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1157,6 +1166,7 @@ TextPane.border [lazy] 0,0,0,0 false com.formdev.flatlaf.ui.F
|
|||||||
TextPane.caretBlinkRate 500
|
TextPane.caretBlinkRate 500
|
||||||
TextPane.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
TextPane.caretForeground #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextPane.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
TextPane.disabledBackground #e0e0e0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
TextPane.focusedBackground #ffff88 javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextPane.font [active] $defaultFont [UI]
|
TextPane.font [active] $defaultFont [UI]
|
||||||
TextPane.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
TextPane.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
TextPane.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
TextPane.inactiveBackground #f0f0f0 javax.swing.plaf.ColorUIResource [UI]
|
||||||
@@ -1253,6 +1263,7 @@ ToolBar.dockingBackground #ccffcc javax.swing.plaf.ColorUIResource [UI]
|
|||||||
ToolBar.dockingForeground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.dockingForeground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.floatingBackground #ccffcc javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.floatingBackground #ccffcc javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.floatingForeground #000088 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.floatingForeground #000088 javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
ToolBar.focusableButtons true
|
||||||
ToolBar.font [active] $defaultFont [UI]
|
ToolBar.font [active] $defaultFont [UI]
|
||||||
ToolBar.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.foreground #ff0000 javax.swing.plaf.ColorUIResource [UI]
|
||||||
ToolBar.gripColor #afafaf javax.swing.plaf.ColorUIResource [UI]
|
ToolBar.gripColor #afafaf javax.swing.plaf.ColorUIResource [UI]
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ public class FlatCustomBordersTest
|
|||||||
FlatCustomBordersTest() {
|
FlatCustomBordersTest() {
|
||||||
initComponents();
|
initComponents();
|
||||||
applyCustomBorders();
|
applyCustomBorders();
|
||||||
|
applySpecialComboBoxRenderers();
|
||||||
|
|
||||||
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>( new String[] {
|
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>( new String[] {
|
||||||
"text",
|
"text",
|
||||||
@@ -123,6 +124,33 @@ public class FlatCustomBordersTest
|
|||||||
applyCustomComboBoxRendererBorder( comboBox28, null );
|
applyCustomComboBoxRendererBorder( comboBox28, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings( "unchecked" )
|
||||||
|
private void applySpecialComboBoxRenderers() {
|
||||||
|
BasicComboBoxRenderer sharedRenderer = new BasicComboBoxRenderer();
|
||||||
|
sharedRenderer.setBorder( new LineBorder( ORANGE, UIScale.scale( 2 ) ) );
|
||||||
|
comboBox29.setRenderer( sharedRenderer );
|
||||||
|
comboBox30.setRenderer( sharedRenderer );
|
||||||
|
|
||||||
|
comboBox31.setRenderer( new ListCellRenderer<String>() {
|
||||||
|
JLabel l1 = new JLabel();
|
||||||
|
JLabel l2 = new JLabel();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Component getListCellRendererComponent( JList<? extends String> list,
|
||||||
|
String value, int index, boolean isSelected, boolean cellHasFocus )
|
||||||
|
{
|
||||||
|
JLabel l = (index % 2 == 0) ? l1 : l2;
|
||||||
|
l.setText( (value != null) ? value.toString() : "" );
|
||||||
|
l.setBorder( new LineBorder( (index % 2 == 0) ? GREEN : RED, UIScale.scale( 2 ) ) );
|
||||||
|
l.setBackground( isSelected ? list.getSelectionBackground() : list.getBackground() );
|
||||||
|
l.setForeground( isSelected ? list.getSelectionForeground() : list.getForeground() );
|
||||||
|
l.setFont( list.getFont() );
|
||||||
|
l.setOpaque( true );
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
private void applyCustomInsideBorder( JComponent c, String uiKey ) {
|
private void applyCustomInsideBorder( JComponent c, String uiKey ) {
|
||||||
c.setBorder( new CompoundBorder( UIManager.getBorder( uiKey ), new LineBorder( RED, UIScale.scale( 3 ) ) ) );
|
c.setBorder( new CompoundBorder( UIManager.getBorder( uiKey ), new LineBorder( RED, UIScale.scale( 3 ) ) ) );
|
||||||
}
|
}
|
||||||
@@ -231,6 +259,11 @@ public class FlatCustomBordersTest
|
|||||||
textField6 = new JTextField();
|
textField6 = new JTextField();
|
||||||
textField7 = new JTextField();
|
textField7 = new JTextField();
|
||||||
textField8 = new JTextField();
|
textField8 = new JTextField();
|
||||||
|
label11 = new JLabel();
|
||||||
|
label12 = new JLabel();
|
||||||
|
comboBox29 = new JComboBox<>();
|
||||||
|
comboBox30 = new JComboBox<>();
|
||||||
|
comboBox31 = new JComboBox<>();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
@@ -255,6 +288,8 @@ public class FlatCustomBordersTest
|
|||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
"[]" +
|
"[]" +
|
||||||
|
"[]para" +
|
||||||
|
"[]" +
|
||||||
"[]"));
|
"[]"));
|
||||||
|
|
||||||
//---- label1 ----
|
//---- label1 ----
|
||||||
@@ -493,6 +528,17 @@ public class FlatCustomBordersTest
|
|||||||
textField8.putClientProperty("JComponent.roundRect", true);
|
textField8.putClientProperty("JComponent.roundRect", true);
|
||||||
textField8.setText("text");
|
textField8.setText("text");
|
||||||
add(textField8, "cell 4 10");
|
add(textField8, "cell 4 10");
|
||||||
|
|
||||||
|
//---- label11 ----
|
||||||
|
label11.setText("JComboBox with shared renderer:");
|
||||||
|
add(label11, "cell 1 11 2 1");
|
||||||
|
|
||||||
|
//---- label12 ----
|
||||||
|
label12.setText("JComboBox with renderer that uses varying components:");
|
||||||
|
add(label12, "cell 3 11 3 1");
|
||||||
|
add(comboBox29, "cell 1 12");
|
||||||
|
add(comboBox30, "cell 2 12");
|
||||||
|
add(comboBox31, "cell 3 12");
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -560,6 +606,11 @@ public class FlatCustomBordersTest
|
|||||||
private JTextField textField6;
|
private JTextField textField6;
|
||||||
private JTextField textField7;
|
private JTextField textField7;
|
||||||
private JTextField textField8;
|
private JTextField textField8;
|
||||||
|
private JLabel label11;
|
||||||
|
private JLabel label12;
|
||||||
|
private JComboBox<String> comboBox29;
|
||||||
|
private JComboBox<String> comboBox30;
|
||||||
|
private JComboBox<String> comboBox31;
|
||||||
// JFormDesigner - End of variables declaration //GEN-END:variables
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
|
||||||
//---- class BorderWithIcon -----------------------------------------------
|
//---- class BorderWithIcon -----------------------------------------------
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ new FormModel {
|
|||||||
add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "ltr,insets dialog,hidemode 3"
|
"$layoutConstraints": "ltr,insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[][fill][fill][fill][fill][fill][fill][fill]"
|
"$columnConstraints": "[][fill][fill][fill][fill][fill][fill][fill]"
|
||||||
"$rowConstraints": "[][][][][][][][][][][]"
|
"$rowConstraints": "[][][][][][][][][][][]para[][]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "this"
|
name: "this"
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
@@ -478,6 +478,42 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 4 10"
|
"value": "cell 4 10"
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label11"
|
||||||
|
"text": "JComboBox with shared renderer:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 11 2 1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "label12"
|
||||||
|
"text": "JComboBox with renderer that uses varying components:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 3 11 3 1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "comboBox29"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.typeParameters": "String"
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 12"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "comboBox30"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.typeParameters": "String"
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 12"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JComboBox" ) {
|
||||||
|
name: "comboBox31"
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.typeParameters": "String"
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 3 12"
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 915, 715 )
|
"size": new java.awt.Dimension( 915, 715 )
|
||||||
|
|||||||
@@ -89,6 +89,10 @@ public class FlatOptionPaneTest
|
|||||||
JPanel panel6 = new JPanel();
|
JPanel panel6 = new JPanel();
|
||||||
customOptionPane = new JOptionPane();
|
customOptionPane = new JOptionPane();
|
||||||
FlatOptionPaneTest.ShowDialogLinkLabel customShowDialogLabel = new FlatOptionPaneTest.ShowDialogLinkLabel();
|
FlatOptionPaneTest.ShowDialogLinkLabel customShowDialogLabel = new FlatOptionPaneTest.ShowDialogLinkLabel();
|
||||||
|
JLabel rightToLeftLabel = new JLabel();
|
||||||
|
JPanel panel10 = new JPanel();
|
||||||
|
JOptionPane rightToLeftOptionPane = new JOptionPane();
|
||||||
|
rightToLeftShowDialogLabel = new FlatOptionPaneTest.ShowDialogLinkLabel();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setBorder(BorderFactory.createEmptyBorder());
|
setBorder(BorderFactory.createEmptyBorder());
|
||||||
@@ -109,6 +113,7 @@ public class FlatOptionPaneTest
|
|||||||
"[top]" +
|
"[top]" +
|
||||||
"[top]" +
|
"[top]" +
|
||||||
"[top]" +
|
"[top]" +
|
||||||
|
"[top]" +
|
||||||
"[top]"));
|
"[top]"));
|
||||||
|
|
||||||
//---- plainLabel ----
|
//---- plainLabel ----
|
||||||
@@ -283,6 +288,28 @@ public class FlatOptionPaneTest
|
|||||||
customShowDialogLabel.setOptionPane(customOptionPane);
|
customShowDialogLabel.setOptionPane(customOptionPane);
|
||||||
customShowDialogLabel.setTitleLabel(customLabel);
|
customShowDialogLabel.setTitleLabel(customLabel);
|
||||||
panel9.add(customShowDialogLabel, "cell 2 7");
|
panel9.add(customShowDialogLabel, "cell 2 7");
|
||||||
|
|
||||||
|
//---- rightToLeftLabel ----
|
||||||
|
rightToLeftLabel.setText("Right-to-left:");
|
||||||
|
panel9.add(rightToLeftLabel, "cell 0 8");
|
||||||
|
|
||||||
|
//======== panel10 ========
|
||||||
|
{
|
||||||
|
panel10.setBorder(LineBorder.createGrayLineBorder());
|
||||||
|
panel10.setLayout(new BorderLayout());
|
||||||
|
|
||||||
|
//---- rightToLeftOptionPane ----
|
||||||
|
rightToLeftOptionPane.setMessageType(JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
rightToLeftOptionPane.setMessage("\u0627\u0644\u0645\u0627\u062f\u0629 1 \u064a\u0648\u0644\u062f \u062c\u0645\u064a\u0639 \u0627\u0644\u0646\u0627\u0633 \u0623\u062d\u0631\u0627\u0631\u064b\u0627 \u0645\u062a\u0633\u0627\u0648\u064a\u0646 \u0641\u064a \u0627\u0644\u0643\u0631\u0627\u0645\u0629 \u0648\u0627\u0644\u062d\u0642\u0648\u0642. \u0648\u0642\u062f \u0648\u0647\u0628\u0648\u0627 \u0639\u0642\u0644\u0627\u064b \u0648\u0636\u0645\u064a\u0631\u064b\u0627 \u0648\u0639\u0644\u064a\u0647\u0645 \u0623\u0646 \u064a\u0639\u0627\u0645\u0644 \u0628\u0639\u0636\u0647\u0645 \u0628\u0639\u0636\u064b\u0627 \u0628\u0631\u0648\u062d \u0627\u0644\u0625\u062e\u0627\u0621.\n\u0627\u0644\u0645\u0627\u062f\u0629 1 \u064a\u0648\u0644\u062f \u062c\u0645\u064a\u0639 \u0627\u0644\u0646\u0627\u0633 \u0623\u062d\u0631\u0627\u0631\u064b\u0627 \u0645\u062a\u0633\u0627\u0648\u064a\u0646 \u0641\u064a \u0627\u0644\u0643\u0631\u0627\u0645\u0629 \u0648\u0627\u0644\u062d\u0642\u0648\u0642. \u0648\u0642\u062f \u0648\u0647\u0628\u0648\u0627 \u0639\u0642\u0644\u0627\u064b \u0648\u0636\u0645\u064a\u0631\u064b\u0627 \u0648\u0639\u0644\u064a\u0647\u0645 \u0623\u0646 \u064a\u0639\u0627\u0645\u0644 \u0628\u0639\u0636\u0647\u0645 \u0628\u0639\u0636\u064b\u0627 \u0628\u0631\u0648\u062d \u0627\u0644\u0625\u062e\u0627\u0621.\n\n\u0627\u0644\u0645\u0627\u062f\u0629 1 \u064a\u0648\u0644\u062f \u062c\u0645\u064a\u0639 \u0627\u0644\u0646\u0627\u0633 \u0623\u062d\u0631\u0627\u0631\u064b\u0627 \u0645\u062a\u0633\u0627\u0648\u064a\u0646 \u0641\u064a \u0627\u0644\u0643\u0631\u0627\u0645\u0629 \n\u0648\u0627\u0644\u062d\u0642\u0648\u0642. \u0648\u0642\u062f \u0648\u0647\u0628\u0648\u0627 \u0639\u0642\u0644\u0627\u064b \u0648\u0636\u0645\u064a\u0631\u064b\u0627 \u0648\u0639\u0644\u064a\u0647\u0645 \u0623\u0646 \u064a\u0639\u0627\u0645\u0644 \u0628\u0639\u0636\u0647\u0645 \u0628\u0639\u0636\u064b\u0627 \u0628\u0631\u0648\u062d \u0627\u0644\u0625\u062e\u0627\u0621.");
|
||||||
|
rightToLeftOptionPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
|
||||||
|
panel10.add(rightToLeftOptionPane, BorderLayout.CENTER);
|
||||||
|
}
|
||||||
|
panel9.add(panel10, "cell 1 8");
|
||||||
|
|
||||||
|
//---- rightToLeftShowDialogLabel ----
|
||||||
|
rightToLeftShowDialogLabel.setOptionPane(rightToLeftOptionPane);
|
||||||
|
rightToLeftShowDialogLabel.setTitleLabel(rightToLeftLabel);
|
||||||
|
panel9.add(rightToLeftShowDialogLabel, "cell 2 8");
|
||||||
}
|
}
|
||||||
setViewportView(panel9);
|
setViewportView(panel9);
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
@@ -293,6 +320,7 @@ public class FlatOptionPaneTest
|
|||||||
private FlatOptionPaneTest.ShowDialogLinkLabel errorShowDialogLabel;
|
private FlatOptionPaneTest.ShowDialogLinkLabel errorShowDialogLabel;
|
||||||
private FlatOptionPaneTest.ShowDialogLinkLabel informationShowDialogLabel;
|
private FlatOptionPaneTest.ShowDialogLinkLabel informationShowDialogLabel;
|
||||||
private JOptionPane customOptionPane;
|
private JOptionPane customOptionPane;
|
||||||
|
private FlatOptionPaneTest.ShowDialogLinkLabel rightToLeftShowDialogLabel;
|
||||||
// JFormDesigner - End of variables declaration //GEN-END:variables
|
// JFormDesigner - End of variables declaration //GEN-END:variables
|
||||||
|
|
||||||
//---- class ShowDialogLinkLabel ------------------------------------------
|
//---- class ShowDialogLinkLabel ------------------------------------------
|
||||||
@@ -315,9 +343,15 @@ public class FlatOptionPaneTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showDialog() {
|
private void showDialog() {
|
||||||
|
Component parent = SwingUtilities.windowForComponent( this );
|
||||||
|
|
||||||
|
// use optionPane as parent if component orientation is different
|
||||||
|
if( parent.getComponentOrientation().isLeftToRight() != optionPane.getComponentOrientation().isLeftToRight() )
|
||||||
|
parent = optionPane;
|
||||||
|
|
||||||
if( optionPane.getWantsInput() ) {
|
if( optionPane.getWantsInput() ) {
|
||||||
JOptionPane.showInputDialog(
|
JOptionPane.showInputDialog(
|
||||||
getParent(),
|
parent,
|
||||||
optionPane.getMessage(),
|
optionPane.getMessage(),
|
||||||
titleLabel.getText() + " Title",
|
titleLabel.getText() + " Title",
|
||||||
optionPane.getMessageType(),
|
optionPane.getMessageType(),
|
||||||
@@ -326,7 +360,7 @@ public class FlatOptionPaneTest
|
|||||||
null );
|
null );
|
||||||
} else {
|
} else {
|
||||||
JOptionPane.showOptionDialog(
|
JOptionPane.showOptionDialog(
|
||||||
getParent(),
|
parent,
|
||||||
optionPane.getMessage(),
|
optionPane.getMessage(),
|
||||||
titleLabel.getText() + " Title",
|
titleLabel.getText() + " Title",
|
||||||
optionPane.getOptionType(),
|
optionPane.getOptionType(),
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.1.0.272" Java: "13.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.4.0.360" Java: "16" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -12,7 +12,7 @@ new FormModel {
|
|||||||
add( new FormContainer( "com.formdev.flatlaf.demo.ScrollablePanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
add( new FormContainer( "com.formdev.flatlaf.demo.ScrollablePanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||||
"$layoutConstraints": "flowy,ltr,insets dialog,hidemode 3"
|
"$layoutConstraints": "flowy,ltr,insets dialog,hidemode 3"
|
||||||
"$columnConstraints": "[][][fill]"
|
"$columnConstraints": "[][][fill]"
|
||||||
"$rowConstraints": "[top][top][top][top][top][top][top][top]"
|
"$rowConstraints": "[top][top][top][top][top][top][top][top][top]"
|
||||||
} ) {
|
} ) {
|
||||||
name: "panel9"
|
name: "panel9"
|
||||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
@@ -240,10 +240,40 @@ new FormModel {
|
|||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 2 7"
|
"value": "cell 2 7"
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||||
|
name: "rightToLeftLabel"
|
||||||
|
"text": "Right-to-left:"
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 0 8"
|
||||||
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class java.awt.BorderLayout ) ) {
|
||||||
|
name: "panel10"
|
||||||
|
"border": #LineBorder0
|
||||||
|
add( new FormComponent( "javax.swing.JOptionPane" ) {
|
||||||
|
name: "rightToLeftOptionPane"
|
||||||
|
"messageType": 1
|
||||||
|
"message": "المادة 1 يولد جميع الناس أحرارًا متساوين في الكرامة والحقوق. وقد وهبوا عقلاً وضميرًا وعليهم أن يعامل بعضهم بعضًا بروح الإخاء.\nالمادة 1 يولد جميع الناس أحرارًا متساوين في الكرامة والحقوق. وقد وهبوا عقلاً وضميرًا وعليهم أن يعامل بعضهم بعضًا بروح الإخاء.\n\nالمادة 1 يولد جميع الناس أحرارًا متساوين في الكرامة \nوالحقوق. وقد وهبوا عقلاً وضميرًا وعليهم أن يعامل بعضهم بعضًا بروح الإخاء."
|
||||||
|
"componentOrientation": sfield java.awt.ComponentOrientation RIGHT_TO_LEFT
|
||||||
|
}, new FormLayoutConstraints( class java.lang.String ) {
|
||||||
|
"value": "Center"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 1 8"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "com.formdev.flatlaf.testing.FlatOptionPaneTest$ShowDialogLinkLabel" ) {
|
||||||
|
name: "rightToLeftShowDialogLabel"
|
||||||
|
"optionPane": new FormReference( "rightToLeftOptionPane" )
|
||||||
|
"titleLabel": new FormReference( "rightToLeftLabel" )
|
||||||
|
auxiliary() {
|
||||||
|
"JavaCodeGenerator.variableLocal": false
|
||||||
|
}
|
||||||
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
|
"value": "cell 2 8"
|
||||||
|
} )
|
||||||
} )
|
} )
|
||||||
}, new FormLayoutConstraints( null ) {
|
}, new FormLayoutConstraints( null ) {
|
||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 840, 900 )
|
"size": new java.awt.Dimension( 895, 1080 )
|
||||||
} )
|
} )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import java.util.Locale;
|
|||||||
import javax.swing.UIDefaults;
|
import javax.swing.UIDefaults;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
import com.formdev.flatlaf.*;
|
import com.formdev.flatlaf.*;
|
||||||
|
import com.formdev.flatlaf.testing.FlatTestLaf;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Collects all FlatLaf UI defaults keys and dumps them to a file.
|
* Collects all FlatLaf UI defaults keys and dumps them to a file.
|
||||||
@@ -60,6 +61,7 @@ public class UIDefaultsKeysDump
|
|||||||
collectKeys( FlatDarkLaf.class.getName(), keys );
|
collectKeys( FlatDarkLaf.class.getName(), keys );
|
||||||
collectKeys( FlatIntelliJLaf.class.getName(), keys );
|
collectKeys( FlatIntelliJLaf.class.getName(), keys );
|
||||||
collectKeys( FlatDarculaLaf.class.getName(), keys );
|
collectKeys( FlatDarculaLaf.class.getName(), keys );
|
||||||
|
collectKeys( FlatTestLaf.class.getName(), keys );
|
||||||
|
|
||||||
// write key file
|
// write key file
|
||||||
try( Writer fileWriter = new BufferedWriter( new FileWriter( keysFile ) ) ) {
|
try( Writer fileWriter = new BufferedWriter( new FileWriter( keysFile ) ) ) {
|
||||||
|
|||||||
@@ -400,6 +400,11 @@ ToggleButton.pressedBackground = #FFC800
|
|||||||
ToggleButton.toolbar.selectedBackground = #ddd
|
ToggleButton.toolbar.selectedBackground = #ddd
|
||||||
|
|
||||||
|
|
||||||
|
#---- ToolBar ----
|
||||||
|
|
||||||
|
ToolBar.focusableButtons = true
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTip ----
|
#---- ToolTip ----
|
||||||
|
|
||||||
ToolTip.background = #eef
|
ToolTip.background = #eef
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ Button.default.background
|
|||||||
Button.default.boldText
|
Button.default.boldText
|
||||||
Button.default.borderColor
|
Button.default.borderColor
|
||||||
Button.default.borderWidth
|
Button.default.borderWidth
|
||||||
|
Button.default.endBackground
|
||||||
|
Button.default.endBorderColor
|
||||||
Button.default.focusColor
|
Button.default.focusColor
|
||||||
Button.default.focusedBackground
|
Button.default.focusedBackground
|
||||||
Button.default.focusedBorderColor
|
Button.default.focusedBorderColor
|
||||||
@@ -25,12 +27,16 @@ Button.default.foreground
|
|||||||
Button.default.hoverBackground
|
Button.default.hoverBackground
|
||||||
Button.default.hoverBorderColor
|
Button.default.hoverBorderColor
|
||||||
Button.default.pressedBackground
|
Button.default.pressedBackground
|
||||||
|
Button.default.startBackground
|
||||||
|
Button.default.startBorderColor
|
||||||
Button.defaultButtonFollowsFocus
|
Button.defaultButtonFollowsFocus
|
||||||
Button.disabledBackground
|
Button.disabledBackground
|
||||||
Button.disabledBorderColor
|
Button.disabledBorderColor
|
||||||
Button.disabledForeground
|
Button.disabledForeground
|
||||||
Button.disabledSelectedBackground
|
Button.disabledSelectedBackground
|
||||||
Button.disabledText
|
Button.disabledText
|
||||||
|
Button.endBackground
|
||||||
|
Button.endBorderColor
|
||||||
Button.focusInputMap
|
Button.focusInputMap
|
||||||
Button.focusedBackground
|
Button.focusedBackground
|
||||||
Button.focusedBorderColor
|
Button.focusedBorderColor
|
||||||
@@ -49,6 +55,8 @@ Button.rollover
|
|||||||
Button.selectedBackground
|
Button.selectedBackground
|
||||||
Button.selectedForeground
|
Button.selectedForeground
|
||||||
Button.shadow
|
Button.shadow
|
||||||
|
Button.startBackground
|
||||||
|
Button.startBorderColor
|
||||||
Button.textIconGap
|
Button.textIconGap
|
||||||
Button.textShiftOffset
|
Button.textShiftOffset
|
||||||
Button.toolbar.hoverBackground
|
Button.toolbar.hoverBackground
|
||||||
@@ -142,6 +150,7 @@ ComboBox.buttonBackground
|
|||||||
ComboBox.buttonDarkShadow
|
ComboBox.buttonDarkShadow
|
||||||
ComboBox.buttonDisabledArrowColor
|
ComboBox.buttonDisabledArrowColor
|
||||||
ComboBox.buttonEditableBackground
|
ComboBox.buttonEditableBackground
|
||||||
|
ComboBox.buttonFocusedBackground
|
||||||
ComboBox.buttonHighlight
|
ComboBox.buttonHighlight
|
||||||
ComboBox.buttonHoverArrowColor
|
ComboBox.buttonHoverArrowColor
|
||||||
ComboBox.buttonPressedArrowColor
|
ComboBox.buttonPressedArrowColor
|
||||||
@@ -150,6 +159,7 @@ ComboBox.buttonStyle
|
|||||||
ComboBox.disabledBackground
|
ComboBox.disabledBackground
|
||||||
ComboBox.disabledForeground
|
ComboBox.disabledForeground
|
||||||
ComboBox.editorColumns
|
ComboBox.editorColumns
|
||||||
|
ComboBox.focusedBackground
|
||||||
ComboBox.font
|
ComboBox.font
|
||||||
ComboBox.foreground
|
ComboBox.foreground
|
||||||
ComboBox.isEnterSelectablePopup
|
ComboBox.isEnterSelectablePopup
|
||||||
@@ -157,6 +167,7 @@ ComboBox.maximumRowCount
|
|||||||
ComboBox.minimumWidth
|
ComboBox.minimumWidth
|
||||||
ComboBox.noActionOnKeyNavigation
|
ComboBox.noActionOnKeyNavigation
|
||||||
ComboBox.padding
|
ComboBox.padding
|
||||||
|
ComboBox.popupBackground
|
||||||
ComboBox.selectionBackground
|
ComboBox.selectionBackground
|
||||||
ComboBox.selectionForeground
|
ComboBox.selectionForeground
|
||||||
ComboBox.timeFactor
|
ComboBox.timeFactor
|
||||||
@@ -197,6 +208,7 @@ EditorPane.caretBlinkRate
|
|||||||
EditorPane.caretForeground
|
EditorPane.caretForeground
|
||||||
EditorPane.disabledBackground
|
EditorPane.disabledBackground
|
||||||
EditorPane.focusInputMap
|
EditorPane.focusInputMap
|
||||||
|
EditorPane.focusedBackground
|
||||||
EditorPane.font
|
EditorPane.font
|
||||||
EditorPane.foreground
|
EditorPane.foreground
|
||||||
EditorPane.inactiveBackground
|
EditorPane.inactiveBackground
|
||||||
@@ -226,6 +238,7 @@ FormattedTextField.caretBlinkRate
|
|||||||
FormattedTextField.caretForeground
|
FormattedTextField.caretForeground
|
||||||
FormattedTextField.disabledBackground
|
FormattedTextField.disabledBackground
|
||||||
FormattedTextField.focusInputMap
|
FormattedTextField.focusInputMap
|
||||||
|
FormattedTextField.focusedBackground
|
||||||
FormattedTextField.font
|
FormattedTextField.font
|
||||||
FormattedTextField.foreground
|
FormattedTextField.foreground
|
||||||
FormattedTextField.inactiveBackground
|
FormattedTextField.inactiveBackground
|
||||||
@@ -295,7 +308,9 @@ JXBusyLabel.baseColor
|
|||||||
JXBusyLabel.highlightColor
|
JXBusyLabel.highlightColor
|
||||||
JXDatePicker.border
|
JXDatePicker.border
|
||||||
JXHeader.background
|
JXHeader.background
|
||||||
|
JXHeader.descriptionForeground
|
||||||
JXHeader.startBackground
|
JXHeader.startBackground
|
||||||
|
JXHeader.titleForeground
|
||||||
JXMonthView.arrowColor
|
JXMonthView.arrowColor
|
||||||
JXMonthView.background
|
JXMonthView.background
|
||||||
JXMonthView.daysOfTheWeekForeground
|
JXMonthView.daysOfTheWeekForeground
|
||||||
@@ -475,6 +490,11 @@ OptionPane.buttonPadding
|
|||||||
OptionPane.errorIcon
|
OptionPane.errorIcon
|
||||||
OptionPane.font
|
OptionPane.font
|
||||||
OptionPane.foreground
|
OptionPane.foreground
|
||||||
|
OptionPane.icon.errorColor
|
||||||
|
OptionPane.icon.foreground
|
||||||
|
OptionPane.icon.informationColor
|
||||||
|
OptionPane.icon.questionColor
|
||||||
|
OptionPane.icon.warningColor
|
||||||
OptionPane.iconMessageGap
|
OptionPane.iconMessageGap
|
||||||
OptionPane.informationIcon
|
OptionPane.informationIcon
|
||||||
OptionPane.maxCharactersPerLine
|
OptionPane.maxCharactersPerLine
|
||||||
@@ -500,6 +520,7 @@ PasswordField.caretForeground
|
|||||||
PasswordField.disabledBackground
|
PasswordField.disabledBackground
|
||||||
PasswordField.echoChar
|
PasswordField.echoChar
|
||||||
PasswordField.focusInputMap
|
PasswordField.focusInputMap
|
||||||
|
PasswordField.focusedBackground
|
||||||
PasswordField.font
|
PasswordField.font
|
||||||
PasswordField.foreground
|
PasswordField.foreground
|
||||||
PasswordField.inactiveBackground
|
PasswordField.inactiveBackground
|
||||||
@@ -651,11 +672,14 @@ Slider.foreground
|
|||||||
Slider.highlight
|
Slider.highlight
|
||||||
Slider.horizontalSize
|
Slider.horizontalSize
|
||||||
Slider.hoverThumbColor
|
Slider.hoverThumbColor
|
||||||
|
Slider.hoverTrackColor
|
||||||
Slider.minimumHorizontalSize
|
Slider.minimumHorizontalSize
|
||||||
Slider.minimumVerticalSize
|
Slider.minimumVerticalSize
|
||||||
Slider.onlyLeftMouseButtonDrag
|
Slider.onlyLeftMouseButtonDrag
|
||||||
Slider.pressedThumbColor
|
Slider.pressedThumbColor
|
||||||
|
Slider.pressedTrackColor
|
||||||
Slider.shadow
|
Slider.shadow
|
||||||
|
Slider.thumbBorderColor
|
||||||
Slider.thumbColor
|
Slider.thumbColor
|
||||||
Slider.thumbSize
|
Slider.thumbSize
|
||||||
Slider.tickColor
|
Slider.tickColor
|
||||||
@@ -678,6 +702,7 @@ Spinner.disabledBackground
|
|||||||
Spinner.disabledForeground
|
Spinner.disabledForeground
|
||||||
Spinner.editorAlignment
|
Spinner.editorAlignment
|
||||||
Spinner.editorBorderPainted
|
Spinner.editorBorderPainted
|
||||||
|
Spinner.focusedBackground
|
||||||
Spinner.font
|
Spinner.font
|
||||||
Spinner.foreground
|
Spinner.foreground
|
||||||
Spinner.padding
|
Spinner.padding
|
||||||
@@ -753,6 +778,7 @@ TabbedPane.tabHeight
|
|||||||
TabbedPane.tabInsets
|
TabbedPane.tabInsets
|
||||||
TabbedPane.tabRunOverlay
|
TabbedPane.tabRunOverlay
|
||||||
TabbedPane.tabSelectionHeight
|
TabbedPane.tabSelectionHeight
|
||||||
|
TabbedPane.tabSeparatorColor
|
||||||
TabbedPane.tabSeparatorsFullHeight
|
TabbedPane.tabSeparatorsFullHeight
|
||||||
TabbedPane.tabWidthMode
|
TabbedPane.tabWidthMode
|
||||||
TabbedPane.tabsOpaque
|
TabbedPane.tabsOpaque
|
||||||
@@ -820,6 +846,7 @@ TextArea.caretBlinkRate
|
|||||||
TextArea.caretForeground
|
TextArea.caretForeground
|
||||||
TextArea.disabledBackground
|
TextArea.disabledBackground
|
||||||
TextArea.focusInputMap
|
TextArea.focusInputMap
|
||||||
|
TextArea.focusedBackground
|
||||||
TextArea.font
|
TextArea.font
|
||||||
TextArea.foreground
|
TextArea.foreground
|
||||||
TextArea.inactiveBackground
|
TextArea.inactiveBackground
|
||||||
@@ -838,6 +865,7 @@ TextField.caretForeground
|
|||||||
TextField.darkShadow
|
TextField.darkShadow
|
||||||
TextField.disabledBackground
|
TextField.disabledBackground
|
||||||
TextField.focusInputMap
|
TextField.focusInputMap
|
||||||
|
TextField.focusedBackground
|
||||||
TextField.font
|
TextField.font
|
||||||
TextField.foreground
|
TextField.foreground
|
||||||
TextField.highlight
|
TextField.highlight
|
||||||
@@ -856,6 +884,7 @@ TextPane.caretBlinkRate
|
|||||||
TextPane.caretForeground
|
TextPane.caretForeground
|
||||||
TextPane.disabledBackground
|
TextPane.disabledBackground
|
||||||
TextPane.focusInputMap
|
TextPane.focusInputMap
|
||||||
|
TextPane.focusedBackground
|
||||||
TextPane.font
|
TextPane.font
|
||||||
TextPane.foreground
|
TextPane.foreground
|
||||||
TextPane.inactiveBackground
|
TextPane.inactiveBackground
|
||||||
@@ -865,6 +894,7 @@ TextPane.selectionBackground
|
|||||||
TextPane.selectionForeground
|
TextPane.selectionForeground
|
||||||
TextPaneUI
|
TextPaneUI
|
||||||
TitlePane.background
|
TitlePane.background
|
||||||
|
TitlePane.borderColor
|
||||||
TitlePane.buttonHoverBackground
|
TitlePane.buttonHoverBackground
|
||||||
TitlePane.buttonMaximizedHeight
|
TitlePane.buttonMaximizedHeight
|
||||||
TitlePane.buttonPressedBackground
|
TitlePane.buttonPressedBackground
|
||||||
@@ -902,9 +932,11 @@ ToggleButton.disabledBackground
|
|||||||
ToggleButton.disabledSelectedBackground
|
ToggleButton.disabledSelectedBackground
|
||||||
ToggleButton.disabledText
|
ToggleButton.disabledText
|
||||||
ToggleButton.focusInputMap
|
ToggleButton.focusInputMap
|
||||||
|
ToggleButton.focusedBackground
|
||||||
ToggleButton.font
|
ToggleButton.font
|
||||||
ToggleButton.foreground
|
ToggleButton.foreground
|
||||||
ToggleButton.highlight
|
ToggleButton.highlight
|
||||||
|
ToggleButton.hoverBackground
|
||||||
ToggleButton.iconTextGap
|
ToggleButton.iconTextGap
|
||||||
ToggleButton.light
|
ToggleButton.light
|
||||||
ToggleButton.margin
|
ToggleButton.margin
|
||||||
@@ -916,6 +948,7 @@ ToggleButton.shadow
|
|||||||
ToggleButton.tab.disabledUnderlineColor
|
ToggleButton.tab.disabledUnderlineColor
|
||||||
ToggleButton.tab.focusBackground
|
ToggleButton.tab.focusBackground
|
||||||
ToggleButton.tab.hoverBackground
|
ToggleButton.tab.hoverBackground
|
||||||
|
ToggleButton.tab.selectedBackground
|
||||||
ToggleButton.tab.underlineColor
|
ToggleButton.tab.underlineColor
|
||||||
ToggleButton.tab.underlineHeight
|
ToggleButton.tab.underlineHeight
|
||||||
ToggleButton.textIconGap
|
ToggleButton.textIconGap
|
||||||
@@ -933,6 +966,7 @@ ToolBar.dockingBackground
|
|||||||
ToolBar.dockingForeground
|
ToolBar.dockingForeground
|
||||||
ToolBar.floatingBackground
|
ToolBar.floatingBackground
|
||||||
ToolBar.floatingForeground
|
ToolBar.floatingForeground
|
||||||
|
ToolBar.focusableButtons
|
||||||
ToolBar.font
|
ToolBar.font
|
||||||
ToolBar.foreground
|
ToolBar.foreground
|
||||||
ToolBar.gripColor
|
ToolBar.gripColor
|
||||||
@@ -962,6 +996,7 @@ Tree.dropCellBackground
|
|||||||
Tree.dropCellForeground
|
Tree.dropCellForeground
|
||||||
Tree.dropLineColor
|
Tree.dropLineColor
|
||||||
Tree.editorBorder
|
Tree.editorBorder
|
||||||
|
Tree.editorBorderSelectionColor
|
||||||
Tree.expandedIcon
|
Tree.expandedIcon
|
||||||
Tree.focusInputMap
|
Tree.focusInputMap
|
||||||
Tree.focusInputMap.RightToLeft
|
Tree.focusInputMap.RightToLeft
|
||||||
|
|||||||
Reference in New Issue
Block a user