diff --git a/src/com/jpexs/decompiler/flash/gui/MyRibbonApplicationMenuButtonUI.java b/src/com/jpexs/decompiler/flash/gui/MyRibbonApplicationMenuButtonUI.java index 6839649a6..467aa89cf 100644 --- a/src/com/jpexs/decompiler/flash/gui/MyRibbonApplicationMenuButtonUI.java +++ b/src/com/jpexs/decompiler/flash/gui/MyRibbonApplicationMenuButtonUI.java @@ -21,6 +21,7 @@ import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.LinearGradientPaint; import java.awt.MultipleGradientPaint; import java.awt.RadialGradientPaint; import java.awt.RenderingHints; @@ -85,13 +86,27 @@ public class MyRibbonApplicationMenuButtonUI extends BasicRibbonApplicationMenuB g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); SubstanceSkin skin = SubstanceLookAndFeel.getCurrentSkin(); - g2.setPaint(new RadialGradientPaint(getIconWidth() / 2.0f, getIconHeight() / 2.0f, getIconWidth() / 2.0f, new float[]{0.32f, 0.84f, 1f}, new Color[]{ - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.HIGHLIGHT, ComponentState.ENABLED).shiftBackground(Color.white, 0.5).getUltraLightColor(), - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ENABLED).getMidColor(), - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.BORDER, ComponentState.ENABLED).getUltraDarkColor() - }, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + + Color darkColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.BORDER, ComponentState.ENABLED).getUltraDarkColor(); + Color lightColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.HIGHLIGHT, ComponentState.ENABLED).shiftBackground(Color.white, 0.5).getUltraLightColor(); + Color midColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ENABLED).getMidColor(); + + g2.setPaint(new LinearGradientPaint(0, 0, 0, getIconHeight(), new float[]{0f, 0.5f, 1f}, new Color[]{lightColor, midColor, darkColor}, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + Shape s = new Ellipse2D.Double(x, y, getIconWidth(), getIconHeight()); g2.fill(s); + + float border = (0.0625f * getIconWidth()); + float wborder = (0.00625f * getIconWidth()); + + g2.setPaint(lightColor); + s = new Ellipse2D.Double(x + border, y + border, getIconWidth() - 2 * border, getIconHeight() - 2 * border); + g2.fill(s); + + g2.setPaint(new RadialGradientPaint(getIconWidth() / 2.0f, getIconHeight() / 2.0f, getIconWidth() / 2.0f - border - wborder, new float[]{0.2f, 1f}, new Color[]{lightColor, midColor}, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + s = new Ellipse2D.Double(x + border + wborder, y + border + wborder, getIconWidth() - 2 * border - 2 * wborder, getIconHeight() - 2 * border - 2 * wborder); + g2.fill(s); + g2.setPaint(skin.getEnabledColorScheme(DecorationAreaType.PRIMARY_TITLE_PANE).getMidColor()); super.paintIcon(c, g, x, y); } @@ -106,13 +121,25 @@ public class MyRibbonApplicationMenuButtonUI extends BasicRibbonApplicationMenuB g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); SubstanceSkin skin = SubstanceLookAndFeel.getCurrentSkin(); - g2.setPaint(new RadialGradientPaint(getIconWidth() / 2, getIconHeight() / 2, getIconWidth() / 2, new float[]{0.32f, 0.84f, 1f}, new Color[]{ - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.HIGHLIGHT, ComponentState.ROLLOVER_UNSELECTED)/*.shiftBackground(Color.white, 0.8)*/.getUltraLightColor(), - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_UNSELECTED).getMidColor(), - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.BORDER, ComponentState.ROLLOVER_UNSELECTED)/*.shiftBackground(new Color(0x7c, 0x7c, 0x7c), 0.8)*/.getUltraDarkColor() - }, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + Color lightColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.HIGHLIGHT, ComponentState.ROLLOVER_UNSELECTED)/*.shiftBackground(Color.white, 0.8)*/.getUltraLightColor(); + Color midColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_UNSELECTED).getMidColor(); + Color darkColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.BORDER, ComponentState.ROLLOVER_UNSELECTED)/*.shiftBackground(new Color(0x7c, 0x7c, 0x7c), 0.8)*/.getUltraDarkColor(); + + g2.setPaint(new LinearGradientPaint(0, 0, 0, getIconHeight(), new float[]{0f, 0.5f, 1f}, new Color[]{lightColor, midColor, darkColor}, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + Shape s = new Ellipse2D.Double(x, y, getIconWidth(), getIconHeight()); g2.fill(s); + + float border = (0.0625f * getIconWidth()); + float wborder = (0.00625f * getIconWidth()); + + g2.setPaint(lightColor); + s = new Ellipse2D.Double(x + border, y + border, getIconWidth() - 2 * border, getIconHeight() - 2 * border); + g2.fill(s); + + g2.setPaint(new RadialGradientPaint(getIconWidth() / 2.0f, getIconHeight() / 2.0f, getIconWidth() / 2.0f - border - wborder, new float[]{0.2f, 1f}, new Color[]{lightColor, midColor}, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + s = new Ellipse2D.Double(x + border + wborder, y + border + wborder, getIconWidth() - 2 * border - 2 * wborder, getIconHeight() - 2 * border - 2 * wborder); + g2.fill(s); super.paintIcon(c, g, x, y); } }, @@ -126,13 +153,27 @@ public class MyRibbonApplicationMenuButtonUI extends BasicRibbonApplicationMenuB g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); SubstanceSkin skin = SubstanceLookAndFeel.getCurrentSkin(); - g2.setPaint(new RadialGradientPaint(getIconWidth() / 2, getIconHeight() / 2, getIconWidth() / 2, new float[]{0.2f, 0.5f, 0.8f}, new Color[]{ - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_SELECTED).getUltraLightColor(), - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_SELECTED).getMidColor(), - skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_SELECTED).shiftBackground(Color.black, 0.7).getUltraDarkColor() - }, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + + Color lightColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_SELECTED).getUltraLightColor(); + Color midColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_SELECTED).getMidColor(); + Color darkColor = skin.getColorScheme(DecorationAreaType.SECONDARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ROLLOVER_SELECTED).shiftBackground(Color.black, 0.7).getUltraDarkColor(); + + g2.setPaint(new LinearGradientPaint(0, 0, 0, getIconHeight(), new float[]{0f, 0.5f, 1f}, new Color[]{lightColor, midColor, darkColor}, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + Shape s = new Ellipse2D.Double(x, y, getIconWidth(), getIconHeight()); g2.fill(s); + + float border = (0.0625f * getIconWidth()); + float wborder = (0.00625f * getIconWidth()); + + g2.setPaint(lightColor); + s = new Ellipse2D.Double(x + border, y + border, getIconWidth() - 2 * border, getIconHeight() - 2 * border); + g2.fill(s); + + g2.setPaint(new RadialGradientPaint(getIconWidth() / 2.0f, getIconHeight() / 2.0f, getIconWidth() / 2.0f - border - wborder, new float[]{0.2f, 1f}, new Color[]{lightColor, midColor}, MultipleGradientPaint.CycleMethod.NO_CYCLE)); + s = new Ellipse2D.Double(x + border + wborder, y + border + wborder, getIconWidth() - 2 * border - 2 * wborder, getIconHeight() - 2 * border - 2 * wborder); + g2.fill(s); + AffineTransform origt = g2.getTransform(); AffineTransform t = (AffineTransform) origt.clone(); t.translate(-getIconWidth() / 2, -getIconHeight() / 2); diff --git a/src/com/jpexs/decompiler/flash/gui/controls/JPersistentSplitPane.java b/src/com/jpexs/decompiler/flash/gui/controls/JPersistentSplitPane.java index f37ddc4fc..7d9fcdafe 100644 --- a/src/com/jpexs/decompiler/flash/gui/controls/JPersistentSplitPane.java +++ b/src/com/jpexs/decompiler/flash/gui/controls/JPersistentSplitPane.java @@ -133,7 +133,7 @@ public class JPersistentSplitPane extends JSplitPane { return; } - if (getLeftComponent().isVisible() && getRightComponent().isVisible()) { + if (getLeftComponent() != null && getRightComponent() != null && getLeftComponent().isVisible() && getRightComponent().isVisible()) { JPersistentSplitPane pane = (JPersistentSplitPane) pce.getSource(); double size = (getOrientation() == JSplitPane.HORIZONTAL_SPLIT ? pane.getWidth() : pane.getHeight()) - pane.getDividerSize(); diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/buttonicon_clear_256.png b/src/com/jpexs/decompiler/flash/gui/graphics/buttonicon_clear_256.png index 3f0d105c2..b258543bf 100644 Binary files a/src/com/jpexs/decompiler/flash/gui/graphics/buttonicon_clear_256.png and b/src/com/jpexs/decompiler/flash/gui/graphics/buttonicon_clear_256.png differ