diff --git a/core/resources/pix/icons/delete.png b/core/resources/pix/icons/delete.png deleted file mode 100644 index 869be8b4c..000000000 Binary files a/core/resources/pix/icons/delete.png and /dev/null differ diff --git a/core/resources/pix/icons/down.png b/core/resources/pix/icons/down.png index f3bc4cd09..29cc3aa67 100644 Binary files a/core/resources/pix/icons/down.png and b/core/resources/pix/icons/down.png differ diff --git a/core/resources/pix/icons/edit-delete.png b/core/resources/pix/icons/edit-delete.png index d33c34454..34b7d76a5 100644 Binary files a/core/resources/pix/icons/edit-delete.png and b/core/resources/pix/icons/edit-delete.png differ diff --git a/core/resources/pix/icons/edit-rename.png b/core/resources/pix/icons/edit-rename.png new file mode 100644 index 000000000..d88fa4147 Binary files /dev/null and b/core/resources/pix/icons/edit-rename.png differ diff --git a/core/resources/pix/icons/pencil.png b/core/resources/pix/icons/pencil.png deleted file mode 100644 index 5b8cc893d..000000000 Binary files a/core/resources/pix/icons/pencil.png and /dev/null differ diff --git a/core/resources/pix/icons/sim-plot.png b/core/resources/pix/icons/sim-plot.png index 32f27ca7b..268f75a7b 100644 Binary files a/core/resources/pix/icons/sim-plot.png and b/core/resources/pix/icons/sim-plot.png differ diff --git a/core/resources/pix/icons/sim-run.png b/core/resources/pix/icons/sim-run.png index 495d6d432..5dab7afe8 100644 Binary files a/core/resources/pix/icons/sim-run.png and b/core/resources/pix/icons/sim-run.png differ diff --git a/core/resources/pix/icons/up.png b/core/resources/pix/icons/up.png index 184c118b6..b5b342aba 100644 Binary files a/core/resources/pix/icons/up.png and b/core/resources/pix/icons/up.png differ diff --git a/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java b/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java index bea02944f..cdf63e201 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java +++ b/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java @@ -83,12 +83,11 @@ public final class FlightConfigurationId implements Comparable 1 = bigger) + * @return scaled down icon. If is not an ImageIcon, the original icon is returned. + */ + public static Icon getScaledIcon(Icon icon, final double scale) { + if (!(icon instanceof ImageIcon)) { + return icon; + } + final Image image = ((ImageIcon) icon).getImage(); + return new ImageIcon(image) { + @Override + public int getIconWidth() { + return (int)(image.getWidth(null) * scale); + } + + @Override + public int getIconHeight() { + return (int)(image.getHeight(null) * scale); + } + + @Override + public void paintIcon(Component c, Graphics g, int x, int y) { + g.drawImage(image, x, y, getIconWidth(), getIconHeight(), c); + } + }; + } } diff --git a/swing/src/net/sf/openrocket/gui/widgets/IconButton.java b/swing/src/net/sf/openrocket/gui/widgets/IconButton.java new file mode 100644 index 000000000..a48da582b --- /dev/null +++ b/swing/src/net/sf/openrocket/gui/widgets/IconButton.java @@ -0,0 +1,70 @@ +package net.sf.openrocket.gui.widgets; + +import net.sf.openrocket.gui.util.Icons; + +import javax.swing.Action; +import javax.swing.Icon; + +/** + * Button specifically for displaying an icon. + * + * @author Sibo Van Gool + */ +public class IconButton extends SelectColorButton { + private static final int ICON_GAP = 10; + private static final double ICON_SCALE = 0.9; + + public IconButton() { + setIconTextGap(ICON_GAP); + } + + public IconButton(Icon icon) { + super(icon); + setIconTextGap(ICON_GAP); + } + + public IconButton(String text) { + super(text); + setIconTextGap(ICON_GAP); + } + + public IconButton(Action a) { + super(a); + setIconTextGap(ICON_GAP); + } + + public IconButton(String text, Icon icon) { + super(text, icon); + setIconTextGap(ICON_GAP); + } + + @Override + public Icon getIcon() { + return Icons.getScaledIcon(super.getIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getSelectedIcon() { + return Icons.getScaledIcon(super.getSelectedIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getDisabledIcon() { + return Icons.getScaledIcon(super.getDisabledIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getDisabledSelectedIcon() { + return Icons.getScaledIcon(super.getDisabledSelectedIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getRolloverIcon() { + return Icons.getScaledIcon(super.getRolloverIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getRolloverSelectedIcon() { + return Icons.getScaledIcon(super.getRolloverSelectedIcon(), IconButton.ICON_SCALE); + } +}