
package uk.co.wingpath.gui;

import java.io.*;
import javax.accessibility.*;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.util.List;

/**
* This interface specifies commonly-used methods that are shared by JFrame
* and JDialog.
* <p>To make use of this interface, you should create instances of
* {@link WFrame} and {@link WDialog} instead of {@link JFrame} and
* {@link JDialog}.
*/
public interface WWindow
    extends ImageObserver, MenuContainer, Serializable, Accessible,
        RootPaneContainer, WindowConstants
{
    /**
    * @see JFrame#setDefaultCloseOperation
    * @see JDialog#setDefaultCloseOperation
    */
    void setDefaultCloseOperation (int operation);

    /**
    * @see JFrame#getDefaultCloseOperation
    * @see JDialog#getDefaultCloseOperation
    */
    int getDefaultCloseOperation ();

    /**
    * @see Frame#setResizable
    * @see Dialog#setResizable
    */
    void setResizable (boolean resizable);

    /**
    * @see Frame#setTitle
    * @see Dialog#setTitle
    */
    void setTitle (String title);

    /**
    * @see Frame#getTitle
    * @see Dialog#getTitle
    */
    String getTitle ();

    /**
    * @see Window#dispose
    */
    void dispose ();

    /**
    * @see Window#addWindowListener
    */
    void addWindowListener (WindowListener l);

    /**
    * @see Window#removeWindowListener
    */
    void removeWindowListener (WindowListener l);

    /**
    * @see Window#pack
    */
    void pack ();

    /**
    * @see Window#setVisible
    * @see Dialog#setVisible
    */
    void setVisible (boolean b);

    /**
    * @see Component#getHeight
    */
    int getHeight ();

    /**
    * @see Component#getWidth
    */
    int getWidth ();

    /**
    * @see Window#setSize(Dimension)
    */
    void setSize (Dimension d);

    /**
    * @see Window#setSize(int,int)
    */
    void setSize (int width, int height);

    /**
    * @see Window#getSize
    */
    Dimension getSize ();

    /**
    * @see Component#setLocation
    */
    void setLocation (int x, int y);

    /**
    * @see Window#setLocationRelativeTo
    */
    void setLocationRelativeTo (Component c);

    /**
    * @see Window#setLocationByPlatform
    */
    void setLocationByPlatform (boolean locationByPlatform);

    /**
    * @see Window#isLocationByPlatform
    */
    boolean isLocationByPlatform ();

    /**
    * @see Component#getLocation
    */
    Point getLocation ();

    /**
    * @see Component#getLocationOnScreen
    */
    Point getLocationOnScreen ();

    /**
    * @see Window#setBounds(int,int,int,int)
    */
    void setBounds (int x, int y, int width, int height);

    /**
    * @see Component#setBounds(Rectangle)
    */
    void setBounds (Rectangle r);

    /**
    * @see Component#getBounds
    */
    Rectangle getBounds ();

    /**
    * @see Window#getIconImages
    */
    List<Image> getIconImages ();

    /**
    * This method is not actually implemented by JDialog.
    * @see Frame#getExtendedState
    */
    int getExtendedState ();

    /**
    * This method is not actually implemented by JDialog.
    * @see Frame#setExtendedState
    */
    void setExtendedState (int state);


    /**
    * @see Frame#setUndecorated
    * @see Dialog#setUndecorated
    */
    void setUndecorated (boolean undecorated);

    /**
    * @see Frame#isUndecorated
    * @see Dialog#isUndecorated
    */
    boolean isUndecorated ();

    /**
    * @see Window#setAlwaysOnTop
    */
    void setAlwaysOnTop (boolean alwaysOnTop);

    /**
    * @see Window#isAlwaysOnTop
    */
    boolean isAlwaysOnTop ();

    /**
    * @see Frame#setCursor
    * @see Window#setCursor
    */
    void setCursor (Cursor cursor);

    /**
    * @see JFrame#setJMenuBar
    * @see JDialog#setJMenuBar
    */
    void setJMenuBar (JMenuBar menu);

    /**
    * @see JFrame#getJMenuBar
    * @see JDialog#getJMenuBar
    */
    JMenuBar getJMenuBar ();
}

