c69a7b0f7c
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2346 542714f4-19e9-0310-aa3c-eee0fc999fb1
92 lines
2.0 KiB
Java
92 lines
2.0 KiB
Java
//
|
|
// $Id: ManagedJFrame.java,v 1.5 2003/03/30 00:00:00 mdb Exp $
|
|
|
|
package com.threerings.media;
|
|
|
|
import java.awt.Graphics;
|
|
import java.awt.GraphicsConfiguration;
|
|
import java.awt.Insets;
|
|
import java.awt.Rectangle;
|
|
import java.awt.Shape;
|
|
|
|
import javax.swing.JFrame;
|
|
|
|
import com.samskivert.util.StringUtil;
|
|
import com.threerings.media.Log;
|
|
|
|
/**
|
|
* When using the {@link FrameManager}, one must use this top-level frame
|
|
* class.
|
|
*/
|
|
public class ManagedJFrame extends JFrame
|
|
{
|
|
/**
|
|
* Constructs a managed frame with no title.
|
|
*/
|
|
public ManagedJFrame ()
|
|
{
|
|
this("");
|
|
}
|
|
|
|
/**
|
|
* Constructs a managed frame with the specified title.
|
|
*/
|
|
public ManagedJFrame (String title)
|
|
{
|
|
super(title);
|
|
}
|
|
|
|
/**
|
|
* Constructs a managed frame in the specified graphics configuration.
|
|
*/
|
|
public ManagedJFrame (GraphicsConfiguration gc)
|
|
{
|
|
super(gc);
|
|
}
|
|
|
|
/**
|
|
* Called by our frame manager when it's ready to go.
|
|
*/
|
|
public void init (FrameManager fmgr)
|
|
{
|
|
_fmgr = fmgr;
|
|
}
|
|
|
|
/**
|
|
* We catch paint requests and forward them on to the repaint
|
|
* infrastructure.
|
|
*/
|
|
public void paint (Graphics g)
|
|
{
|
|
update(g);
|
|
}
|
|
|
|
/**
|
|
* We catch update requests and forward them on to the repaint
|
|
* infrastructure.
|
|
*/
|
|
public void update (Graphics g)
|
|
{
|
|
Shape clip = g.getClip();
|
|
Rectangle dirty;
|
|
if (clip != null) {
|
|
dirty = clip.getBounds();
|
|
} else {
|
|
dirty = getRootPane().getBounds();
|
|
// account for our frame insets
|
|
Insets insets = getInsets();
|
|
dirty.x += insets.left;
|
|
dirty.y += insets.top;
|
|
}
|
|
|
|
if (_fmgr != null) {
|
|
_fmgr.restoreFromBack(dirty);
|
|
} else {
|
|
Log.info("Dropping AWT dirty rect " + StringUtil.toString(dirty) +
|
|
" [clip=" + StringUtil.toString(clip) + "].");
|
|
}
|
|
}
|
|
|
|
protected FrameManager _fmgr;
|
|
}
|