package nxm.sys.libg;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ComponentListener;
import java.awt.event.WindowListener;

/** ***** SPLIT LIB LIBG VERSION **********
    This version keeps the libg dependency in inc
    @author  Jeanette McCall
    @since   NeXtMidas 4.0.0
 */

interface MidasFrameModSwap extends WindowListener, ComponentListener {
  /** Moves and resizes this component. The new location of the top-left
      corner is specified by <code>pos.x</code> and <code>pos.y</code>, and the
      new size is specified by <code>pos.w</code> and <code>pos.h</code>.

      @param pos contains the coordinates and size of the MJFrame
   */
  void setBounds(MBox pos);

  /** Resize the top-level panel in this MidasFrame according to the current
      values for insets, width, and height.
   */
  void resizePanel();

  /** Returns the dimensions of this MidasFrame, minus any insets.

      @return the width and height of this MidasFrame
   */
  Dimension getSize();

  /** Set the frame to FRONT, BACK or ICONIFIED.  Front also deiconifies

      @param mode The display mode ({@link MWindow#FRONT}, {@link MWindow#BACK},
                  or {@link MWindow#ICON}).
   */
  void display(int mode);

  /** Gets the MWindow associated with this MidasFrame.
      @return the MWindow
      @since NeXtMidas 2.5.4
   */
  MWindow getMWindow();

  /** Sets the MWindow associated with this MidasFrame.
      @param mw the MWindow
   */
  void setMWindow(MWindow mw);

  /** Adds a component to this one.
      @param comp The component to add.
      @return the combined components
   */
  Component add(Component comp);

}
