You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.0 KiB
99 lines
3.0 KiB
//==============================================================================
|
|
//
|
|
// Copyright (c) 2002-
|
|
// Authors:
|
|
// * Dave Parker <david.parker@comlab.ox.ac.uk> (University of Oxford, formerly University of Birmingham)
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
//
|
|
// This file is part of PRISM.
|
|
//
|
|
// PRISM is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 2 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// PRISM is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with PRISM; if not, write to the Free Software Foundation,
|
|
// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
//
|
|
//==============================================================================
|
|
|
|
package userinterface;
|
|
import java.awt.*;
|
|
import prism.*;
|
|
import java.net.URL;
|
|
|
|
public class GUIPrismSplash extends Frame
|
|
{
|
|
private String filename;
|
|
private MediaTracker mt;
|
|
private Image image;
|
|
|
|
public GUIPrismSplash(String filename)
|
|
{
|
|
this.filename = filename;
|
|
}
|
|
|
|
public void display()
|
|
{
|
|
mt = new MediaTracker(this);
|
|
|
|
URL imageURL = GUIPrismSplash.class.getClassLoader().getResource(filename);
|
|
if (imageURL == null)
|
|
{
|
|
System.out.println("Warning: Failed to load icon file \"" + filename + "\"");
|
|
}
|
|
|
|
|
|
image = Toolkit.getDefaultToolkit().getImage(imageURL);
|
|
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
|
|
Rectangle frame = getBounds();
|
|
setLocation((screen.width - frame.width)/2, (screen.height - frame.height)/2);
|
|
|
|
mt.addImage(image, 0);
|
|
try
|
|
{
|
|
mt.waitForID(0);
|
|
}
|
|
catch(InterruptedException ie)
|
|
{
|
|
System.out.println("Error in media tracker");
|
|
}
|
|
|
|
SplashWindow splashWindow = new SplashWindow(this,image);
|
|
}
|
|
|
|
//Thanks to http://www.javapractices.com/Topic149.cjp for the SplashWindow class
|
|
private class SplashWindow extends Window
|
|
{
|
|
SplashWindow(Frame aParent, Image aImage)
|
|
{
|
|
super(aParent);
|
|
fImage = aImage;
|
|
setSize(fImage.getWidth(null), fImage.getHeight(null));
|
|
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
|
|
Rectangle window = getBounds();
|
|
setLocation((screen.width - window.width) / 2, (screen.height - window.height) / 2);
|
|
setVisible(true);
|
|
}
|
|
public void paint(Graphics graphics)
|
|
{
|
|
if (fImage != null)
|
|
{
|
|
graphics.drawImage(fImage,0,0,this);
|
|
Font theFont = new Font ("monospaced", Font.BOLD, 10);
|
|
graphics.setFont(theFont);
|
|
int x = (int)(getBounds().width - theFont.getSize2D()*(Prism.getVersion().length()+1)*(5.0/8.0) - 10);
|
|
int y = (int)(getBounds().height - theFont.getSize2D() - 10);
|
|
graphics.drawString(Prism.getVersion() + " ", x, y);
|
|
}
|
|
}
|
|
private Image fImage;
|
|
}
|
|
}
|