OptionPane: error, information, question and warning icons added

SVGO options convertShapeToPath and convertPathData disabled
This commit is contained in:
Karl Tauber
2019-09-06 15:02:18 +02:00
parent 9723b3eb35
commit c097775c40
14 changed files with 377 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
/*
* Copyright 2019 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
*
* http://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.icons;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Path2D;
import javax.swing.UIManager;
/**
* Base class for icons for {@link javax.swing.JOptionPane}.
*
* @uiDefault OptionPane.icon.foreground Color
*
* @author Karl Tauber
*/
public abstract class FlatOptionPaneAbstractIcon
extends FlatAbstractIcon
{
protected final Color foreground = UIManager.getColor( "OptionPane.icon.foreground" );
protected FlatOptionPaneAbstractIcon( String colorKey ) {
super( 32, 32, UIManager.getColor( colorKey ) );
}
@Override
protected void paintIcon( Component c, Graphics2D g ) {
if( foreground != null ) {
g.fill( createOutside() );
g.setColor( foreground );
g.fill( createInside() );
} else {
Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD );
path.append( createOutside(), false );
path.append( createInside(), false );
g.fill( path );
}
}
protected abstract Shape createOutside();
protected abstract Shape createInside();
}

View File

@@ -0,0 +1,60 @@
/*
* Copyright 2019 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
*
* http://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.icons;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Path2D;
import java.awt.geom.Rectangle2D;
/**
* "Error" icon for {@link javax.swing.JOptionPane}.
*
* @uiDefault OptionPane.icon.errorColor Color
*
* @author Karl Tauber
*/
public class FlatOptionPaneErrorIcon
extends FlatOptionPaneAbstractIcon
{
public FlatOptionPaneErrorIcon() {
super( "OptionPane.icon.errorColor" );
}
/*
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<circle cx="16" cy="16" r="14" fill="#DB5860"/>
<rect width="4" height="11" x="14" y="7" fill="#FFF"/>
<rect width="4" height="4" x="14" y="21" fill="#FFF"/>
</g>
</svg>
*/
@Override
protected Shape createOutside() {
return new Ellipse2D.Float( 2, 2, 28, 28 );
}
@Override
protected Shape createInside() {
Path2D inside = new Path2D.Float( Path2D.WIND_EVEN_ODD );
inside.append( new Rectangle2D.Float( 14, 7, 4, 11 ), false );
inside.append( new Rectangle2D.Float( 14, 21, 4, 4 ), false );
return inside;
}
}

View File

@@ -0,0 +1,60 @@
/*
* Copyright 2019 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
*
* http://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.icons;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Path2D;
import java.awt.geom.Rectangle2D;
/**
* "Information" icon for {@link javax.swing.JOptionPane}.
*
* @uiDefault OptionPane.icon.informationColor Color
*
* @author Karl Tauber
*/
public class FlatOptionPaneInformationIcon
extends FlatOptionPaneAbstractIcon
{
public FlatOptionPaneInformationIcon() {
super( "OptionPane.icon.informationColor" );
}
/*
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<circle cx="16" cy="16" r="14" fill="#389FD6"/>
<rect width="4" height="11" x="14" y="14" fill="#FFF"/>
<rect width="4" height="4" x="14" y="7" fill="#FFF"/>
</g>
</svg>
*/
@Override
protected Shape createOutside() {
return new Ellipse2D.Float( 2, 2, 28, 28 );
}
@Override
protected Shape createInside() {
Path2D inside = new Path2D.Float( Path2D.WIND_EVEN_ODD );
inside.append( new Rectangle2D.Float( 14, 14, 4, 11 ), false );
inside.append( new Rectangle2D.Float( 14, 7, 4, 4 ), false );
return inside;
}
}

View File

@@ -0,0 +1,72 @@
/*
* Copyright 2019 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
*
* http://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.icons;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Path2D;
import java.awt.geom.Rectangle2D;
/**
* "Question" icon for {@link javax.swing.JOptionPane}.
*
* @uiDefault OptionPane.icon.questionColor Color
*
* @author Karl Tauber
*/
public class FlatOptionPaneQuestionIcon
extends FlatOptionPaneAbstractIcon
{
public FlatOptionPaneQuestionIcon() {
super( "OptionPane.icon.questionColor" );
}
/*
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<circle cx="16" cy="16" r="14" fill="#389FD6"/>
<rect width="4" height="4" x="14" y="22" fill="#FFF"/>
<path fill="#FFF" d="M14,20 C14,20 18,20 18,20 C18,16 23,16 23,12 C23,8 20,6 16,6 C12,6 9,8 9,12 C9,12 13,12 13,12 C13,10 14,9 16,9 C18,9 19,10 19,12 C19,15 14,15 14,20 Z"/>
</g>
</svg>
*/
@Override
protected Shape createOutside() {
return new Ellipse2D.Float( 2, 2, 28, 28 );
}
@Override
protected Shape createInside() {
Path2D q = new Path2D.Float( Path2D.WIND_EVEN_ODD );
q.moveTo( 14, 20 );
q.lineTo( 18, 20 );
q.curveTo( 18, 16, 23, 16, 23, 12 );
q.curveTo( 23, 8, 20, 6, 16, 6 );
q.curveTo( 12, 6, 9, 8, 9, 12 );
q.curveTo( 9, 12, 13, 12, 13, 12 );
q.curveTo( 13, 10, 14, 9, 16, 9 );
q.curveTo( 18, 9, 19, 10, 19, 12 );
q.curveTo( 19, 15, 14, 15, 14, 20 );
q.closePath();
Path2D inside = new Path2D.Float( Path2D.WIND_EVEN_ODD );
inside.append( new Rectangle2D.Float( 14, 22, 4, 4 ), false );
inside.append( q, false );
return inside;
}
}

View File

@@ -0,0 +1,63 @@
/*
* Copyright 2019 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
*
* http://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.icons;
import java.awt.Shape;
import java.awt.geom.Path2D;
import java.awt.geom.Rectangle2D;
/**
* "Warning" icon for {@link javax.swing.JOptionPane}.
*
* @uiDefault OptionPane.icon.warningColor Color
*
* @author Karl Tauber
*/
public class FlatOptionPaneWarningIcon
extends FlatOptionPaneAbstractIcon
{
public FlatOptionPaneWarningIcon() {
super( "OptionPane.icon.warningColor" );
}
/*
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<polygon fill="#EDA200" points="16 2 31 28 1 28"/>
<rect width="4" height="8" x="14" y="10" fill="#FFF"/>
<rect width="4" height="4" x="14" y="21" fill="#FFF"/>
</g>
</svg>
*/
@Override
protected Shape createOutside() {
Path2D outside = new Path2D.Float( Path2D.WIND_EVEN_ODD );
outside.moveTo( 16, 2 );
outside.lineTo( 31, 28 );
outside.lineTo( 1, 28 );
return outside;
}
@Override
protected Shape createInside() {
Path2D inside = new Path2D.Float( Path2D.WIND_EVEN_ODD );
inside.append( new Rectangle2D.Float( 14, 10, 4, 8 ), false );
inside.append( new Rectangle2D.Float( 14, 21, 4, 4 ), false );
return inside;
}
}

View File

@@ -131,6 +131,15 @@ MenuItemCheckBox.icon.checkmarkColor=A7A7A7
MenuItemCheckBox.icon.disabledCheckmarkColor=606060 MenuItemCheckBox.icon.disabledCheckmarkColor=606060
#---- OptionPane ----
OptionPane.icon.errorColor=C75450
OptionPane.icon.informationColor=3592C4
OptionPane.icon.questionColor=3592C4
OptionPane.icon.warningColor=F0A732
OptionPane.icon.foreground=null
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.borderColor=515151 PopupMenu.borderColor=515151

View File

@@ -128,6 +128,14 @@ MenuItem.border=com.formdev.flatlaf.ui.FlatMarginBorder
MenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon MenuItem.arrowIcon=com.formdev.flatlaf.icons.FlatMenuItemArrowIcon
#---- OptionPane ----
OptionPane.errorIcon=com.formdev.flatlaf.icons.FlatOptionPaneErrorIcon
OptionPane.informationIcon=com.formdev.flatlaf.icons.FlatOptionPaneInformationIcon
OptionPane.questionIcon=com.formdev.flatlaf.icons.FlatOptionPaneQuestionIcon
OptionPane.warningIcon=com.formdev.flatlaf.icons.FlatOptionPaneWarningIcon
#---- PasswordField ---- #---- PasswordField ----
PasswordField.border=com.formdev.flatlaf.ui.FlatBorder PasswordField.border=com.formdev.flatlaf.ui.FlatBorder

View File

@@ -131,6 +131,15 @@ MenuItemCheckBox.icon.checkmarkColor=4D89C9
MenuItemCheckBox.icon.disabledCheckmarkColor=ABABAB MenuItemCheckBox.icon.disabledCheckmarkColor=ABABAB
#---- OptionPane ----
OptionPane.icon.errorColor=DB5860
OptionPane.icon.informationColor=389FD6
OptionPane.icon.questionColor=389FD6
OptionPane.icon.warningColor=EDA200
OptionPane.icon.foreground=null
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.borderColor=cdcdcd PopupMenu.borderColor=cdcdcd

View File

@@ -126,6 +126,15 @@ MenuItemCheckBox.icon.checkmarkColor=4D89C9
MenuItemCheckBox.icon.disabledCheckmarkColor=ABABAB MenuItemCheckBox.icon.disabledCheckmarkColor=ABABAB
#---- OptionPane ----
OptionPane.icon.errorColor=ff0000
OptionPane.icon.informationColor=00ff00
OptionPane.icon.questionColor=0000ff
OptionPane.icon.warningColor=ffcc00
OptionPane.icon.foreground=ffffff
#---- PopupMenu ---- #---- PopupMenu ----
PopupMenu.borderColor=0000ff PopupMenu.borderColor=0000ff

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<circle cx="16" cy="16" r="14" fill="#DB5860"/>
<rect width="4" height="11" x="14" y="7" fill="#FFF"/>
<rect width="4" height="4" x="14" y="21" fill="#FFF"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 306 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<circle cx="16" cy="16" r="14" fill="#389FD6"/>
<rect width="4" height="11" x="14" y="14" fill="#FFF"/>
<rect width="4" height="4" x="14" y="7" fill="#FFF"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 306 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<circle cx="16" cy="16" r="14" fill="#389FD6"/>
<rect width="4" height="4" x="14" y="22" fill="#FFF"/>
<path fill="#FFF" d="M14,20 C14,20 18,20 18,20 C18,16 23,16 23,12 C23,8 20,6 16,6 C12,6 9,8 9,12 C9,12 13,12 13,12 C13,10 14,9 16,9 C18,9 19,10 19,12 C19,15 14,15 14,20 Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 425 B

View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<g fill="none" fill-rule="evenodd">
<polygon fill="#EDA200" points="16 2 31 28 1 28"/>
<rect width="4" height="8" x="14" y="10" fill="#FFF"/>
<rect width="4" height="4" x="14" y="21" fill="#FFF"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 309 B