001 package com.croftsoft.core.gui;
002
003 import java.awt.*;
004
005 /*********************************************************************
006 * Supplementary static methods for the java.awt.Window class.
007 *
008 * @version
009 * $Date: 2005/03/21 23:08:31 $
010 * @since
011 * 1998-10-28
012 * @author
013 * <a href="http://croftsoft.com/">David Wallace Croft</a>
014 *********************************************************************/
015
016 public final class WindowLib
017 //////////////////////////////////////////////////////////////////////
018 //////////////////////////////////////////////////////////////////////
019 {
020
021 public static void centerOnScreen ( Window window )
022 //////////////////////////////////////////////////////////////////////
023 {
024 centerOnScreen ( window, window.getSize ( ) );
025 }
026
027 public static void centerOnScreen (
028 Window window,
029 int width,
030 int height )
031 //////////////////////////////////////////////////////////////////////
032 {
033 Dimension screenSize
034 = Toolkit.getDefaultToolkit ( ).getScreenSize ( );
035
036 window.setBounds (
037 ( screenSize.width - width ) / 2,
038 ( screenSize.height - height ) / 2,
039 width,
040 height );
041 }
042
043 public static void centerOnScreen (
044 Window window, Dimension size )
045 //////////////////////////////////////////////////////////////////////
046 {
047 centerOnScreen ( window, size.width, size.height );
048 }
049
050 public static void centerOnScreen (
051 Window window, double screenRatio )
052 //////////////////////////////////////////////////////////////////////
053 {
054 Dimension screenSize
055 = Toolkit.getDefaultToolkit ( ).getScreenSize ( );
056
057 int width = ( int ) ( screenSize.width * screenRatio );
058
059 int height = ( int ) ( screenSize.height * screenRatio );
060
061 window.setBounds (
062 ( screenSize.width - width ) / 2,
063 ( screenSize.height - height ) / 2,
064 width,
065 height );
066 }
067
068 public static void centerAboveParent (
069 Window child, Dimension size )
070 //////////////////////////////////////////////////////////////////////
071 {
072 Container parent = child.getParent ( );
073 Rectangle parentBounds = parent.getBounds ( );
074 child.setBounds (
075 parentBounds.x + ( parentBounds.width - size.width ) / 2,
076 parentBounds.y + ( parentBounds.height - size.height ) / 2,
077 size.width, size.height );
078 }
079
080 /*
081 public static void centerAboveParent (
082 Window child, double parentRatio )
083 //////////////////////////////////////////////////////////////////////
084 {
085 Container parent = child.getParent ( );
086
087 Rectangle parentBounds = parent.getBounds ( );
088
089 int width = ( int ) ( parentBounds.width * parentRatio );
090
091 int height = ( int ) ( parentBounds.height * parentRatio );
092
093 child.setBounds (
094 parentBounds.x + ( parentBounds.width - width ) / 2,
095 parentBounds.y + ( parentBounds.height - height ) / 2,
096 width,
097 height );
098 }
099 */
100
101 public static void centerAboveParent ( Window child )
102 //////////////////////////////////////////////////////////////////////
103 {
104 centerAboveParent ( child, child.getSize ( ) );
105 }
106
107 public static Window getParentWindow ( Component component )
108 //////////////////////////////////////////////////////////////////////
109 {
110 Component parent = component;
111
112 while ( ( parent = parent.getParent ( ) ) != null )
113 {
114 if ( parent instanceof Window )
115 {
116 break;
117 }
118 }
119
120 return ( Window ) parent;
121 }
122
123 //////////////////////////////////////////////////////////////////////
124 //////////////////////////////////////////////////////////////////////
125
126 private WindowLib ( ) { }
127
128 //////////////////////////////////////////////////////////////////////
129 //////////////////////////////////////////////////////////////////////
130 }