diff --git a/src/main/java/com/threerings/getdown/data/Application.java b/src/main/java/com/threerings/getdown/data/Application.java index ac5c73d..f8c5bba 100644 --- a/src/main/java/com/threerings/getdown/data/Application.java +++ b/src/main/java/com/threerings/getdown/data/Application.java @@ -112,8 +112,8 @@ public class Application /** The error background image for {@link RotatingBackgrounds}. */ public String errorBackground; - /** The path (relative to the appdir) of an image for the window icon. */ - public String iconImage; + /** The paths (relative to the appdir) of images for the window icon. */ + public String[] iconImages; /** The path (relative to the appdir) to a single background image. */ public String backgroundImage; @@ -598,7 +598,7 @@ public class Application } ui.progressImage = (String)cdata.get("ui.progress_image"); ui.rotatingBackgrounds = ConfigUtil.getMultiValue(cdata, "ui.rotating_background"); - ui.iconImage = (String)cdata.get("ui.icon"); + ui.iconImages = ConfigUtil.getMultiValue(cdata, "ui.icon"); ui.errorBackground = (String)cdata.get("ui.error_background"); _dockIconPath = (String)cdata.get("ui.mac_dock_icon"); if (_dockIconPath == null) { diff --git a/src/main/java/com/threerings/getdown/launcher/GetdownApp.java b/src/main/java/com/threerings/getdown/launcher/GetdownApp.java index 63283ae..f22a2c0 100644 --- a/src/main/java/com/threerings/getdown/launcher/GetdownApp.java +++ b/src/main/java/com/threerings/getdown/launcher/GetdownApp.java @@ -27,23 +27,24 @@ package com.threerings.getdown.launcher; import java.awt.Container; import java.awt.Image; -import java.awt.event.WindowEvent; import java.awt.event.WindowAdapter; -import javax.swing.JFrame; -import javax.swing.WindowConstants; - +import java.awt.event.WindowEvent; +import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.io.BufferedOutputStream; import java.io.PrintStream; - +import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import com.samskivert.swing.util.SwingUtil; +import javax.swing.JFrame; +import javax.swing.WindowConstants; + import com.samskivert.util.StringUtil; +import com.samskivert.swing.util.SwingUtil; + import static com.threerings.getdown.Log.log; /** @@ -124,14 +125,24 @@ public class GetdownApp _frame.setTitle(title); _frame.getContentPane().removeAll(); } - if (_ifc.iconImage != null) { - Image img = loadImage(_ifc.iconImage); - if (img == null) { - log.warning("Failed to load icon", "iconImage", _ifc.iconImage); + + if (_ifc.iconImages != null) { + ArrayList icons = new ArrayList(); + for (String path : _ifc.iconImages) { + Image img = loadImage(path); + if (img == null) { + log.warning("Error loading icon image", "path", path); + } else { + icons.add(img); + } + } + if (icons.isEmpty()) { + log.warning("Failed to load any icons", "iconImages", _ifc.iconImages); } else { - _frame.setIconImage(img); + SwingUtil.setWindowIcons(_frame, icons); } } + _frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); return _frame.getContentPane(); }