Bring back multi-icon goodness.

Added a util in samskivert to do the song & dance with reflection to
find it for us.
This commit is contained in:
Dave Hoover
2010-12-02 01:24:15 +00:00
parent 04398ed747
commit 33e0c7a975
2 changed files with 26 additions and 15 deletions
@@ -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) {
@@ -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<Image> icons = new ArrayList<Image>();
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();
}