From 75ab6f195b981f0dc523b2485d1004708939df9e Mon Sep 17 00:00:00 2001 From: Doublestrike Date: Fri, 24 Feb 2012 04:32:41 +0000 Subject: [PATCH] Common overlay templates added to GuiUtils. --- src/main/java/forge/gui/GuiUtils.java | 59 +++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/main/java/forge/gui/GuiUtils.java b/src/main/java/forge/gui/GuiUtils.java index b004e3cf8d6..bafafd0169b 100644 --- a/src/main/java/forge/gui/GuiUtils.java +++ b/src/main/java/forge/gui/GuiUtils.java @@ -17,6 +17,7 @@ */ package forge.gui; +import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Font; @@ -24,6 +25,8 @@ import java.awt.FontFormatException; import java.awt.Image; import java.awt.Rectangle; import java.awt.Window; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; @@ -33,17 +36,24 @@ import java.util.List; import javax.swing.Box; import javax.swing.ImageIcon; +import javax.swing.JButton; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.SwingUtilities; +import javax.swing.border.LineBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import net.miginfocom.swing.MigLayout; import net.slightlymagic.braids.util.UtilFunctions; import forge.Card; import forge.Singletons; import forge.properties.ForgeProps; import forge.properties.NewConstants; +import forge.view.toolbox.FLabel; +import forge.view.toolbox.FOverlay; +import forge.view.toolbox.FPanel; +import forge.view.toolbox.FSkin; /** *

@@ -403,6 +413,55 @@ public final class GuiUtils { return ttf; } + /** @return {@forge.view.toolbox.FOverlay} */ + public static FOverlay startGameOverlay() { + final FOverlay overlay = GuiUtils.genericOverlay(); + final int w = overlay.getWidth(); + final int h = overlay.getHeight(); + final int pnlW = 400; + final int pnlH = 300; + + // Adds the "loading" panel to generic overlay container + // (which is preset with null layout and close button) + final FPanel pnl = new FPanel(); + pnl.setCornerDiameter(0); + pnl.setBackgroundTexture(FSkin.getIcon(FSkin.Backgrounds.BG_TEXTURE)); + pnl.setLayout(new MigLayout("insets 0, gap 0, ax center, wrap")); + pnl.setBackground(FSkin.getColor(FSkin.Colors.CLR_ACTIVE)); + pnl.setBounds(new Rectangle(((w - pnlW) / 2), ((h - pnlH) / 2), pnlW, pnlH)); + + pnl.add(new FLabel.Builder().icon(FSkin.getIcon(FSkin.ForgeIcons.ICO_LOGO)).build(), + "h 200px!, align center"); + pnl.add(new FLabel.Builder().text("Loading new game...") + .fontScaleAuto(false).fontSize(22).build(), "h 40px!, align center"); + + overlay.add(pnl); + + return overlay; + } + + /** @return {@forge.view.toolbox.FOverlay} */ + public static FOverlay genericOverlay() { + final FOverlay overlay = Singletons.getView().getOverlay(); + final int w = overlay.getWidth(); + + final JButton btnCloseTopRight = new JButton("X"); + btnCloseTopRight.setBounds(w - 25, 10, 15, 15); + btnCloseTopRight.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); + btnCloseTopRight.setBorder(new LineBorder(FSkin.getColor(FSkin.Colors.CLR_TEXT), 1)); + btnCloseTopRight.setOpaque(false); + btnCloseTopRight.setBackground(new Color(0, 0, 0)); + btnCloseTopRight.setFocusPainted(false); + btnCloseTopRight.addActionListener(new ActionListener() { @Override + public void actionPerformed(ActionEvent arg0) { overlay.hideOverlay(); } }); + + overlay.removeAll(); + overlay.setLayout(null); + overlay.add(btnCloseTopRight); + + return overlay; + } + /** Removes child components and closes overlay. */ public static void closeOverlay() { Singletons.getView().getOverlay().removeAll();