0N/A/*
2362N/A * Copyright (c) 1995, 1999, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
2362N/A * published by the Free Software Foundation. Oracle designates this
0N/A * particular file as subject to the "Classpath" exception as provided
2362N/A * by Oracle in the LICENSE file that accompanied this code.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
0N/A */
0N/A
0N/Apackage java.awt.image;
0N/A
0N/Aimport java.awt.Image;
0N/A
0N/A/**
0N/A * An asynchronous update interface for receiving notifications about
0N/A * Image information as the Image is constructed.
0N/A *
0N/A * @author Jim Graham
0N/A */
0N/Apublic interface ImageObserver {
0N/A /**
0N/A * This method is called when information about an image which was
0N/A * previously requested using an asynchronous interface becomes
0N/A * available. Asynchronous interfaces are method calls such as
0N/A * getWidth(ImageObserver) and drawImage(img, x, y, ImageObserver)
0N/A * which take an ImageObserver object as an argument. Those methods
0N/A * register the caller as interested either in information about
0N/A * the overall image itself (in the case of getWidth(ImageObserver))
0N/A * or about an output version of an image (in the case of the
0N/A * drawImage(img, x, y, [w, h,] ImageObserver) call).
0N/A *
0N/A * <p>This method
0N/A * should return true if further updates are needed or false if the
0N/A * required information has been acquired. The image which was being
0N/A * tracked is passed in using the img argument. Various constants
0N/A * are combined to form the infoflags argument which indicates what
0N/A * information about the image is now available. The interpretation
0N/A * of the x, y, width, and height arguments depends on the contents
0N/A * of the infoflags argument.
0N/A * <p>
0N/A * The <code>infoflags</code> argument should be the bitwise inclusive
0N/A * <b>OR</b> of the following flags: <code>WIDTH</code>,
0N/A * <code>HEIGHT</code>, <code>PROPERTIES</code>, <code>SOMEBITS</code>,
0N/A * <code>FRAMEBITS</code>, <code>ALLBITS</code>, <code>ERROR</code>,
0N/A * <code>ABORT</code>.
0N/A *
0N/A * @param img the image being observed.
0N/A * @param infoflags the bitwise inclusive OR of the following
0N/A * flags: <code>WIDTH</code>, <code>HEIGHT</code>,
0N/A * <code>PROPERTIES</code>, <code>SOMEBITS</code>,
0N/A * <code>FRAMEBITS</code>, <code>ALLBITS</code>,
0N/A * <code>ERROR</code>, <code>ABORT</code>.
0N/A * @param x the <i>x</i> coordinate.
0N/A * @param y the <i>y</i> coordinate.
0N/A * @param width the width.
0N/A * @param height the height.
0N/A * @return <code>false</code> if the infoflags indicate that the
0N/A * image is completely loaded; <code>true</code> otherwise.
0N/A *
0N/A * @see #WIDTH
0N/A * @see #HEIGHT
0N/A * @see #PROPERTIES
0N/A * @see #SOMEBITS
0N/A * @see #FRAMEBITS
0N/A * @see #ALLBITS
0N/A * @see #ERROR
0N/A * @see #ABORT
0N/A * @see Image#getWidth
0N/A * @see Image#getHeight
0N/A * @see java.awt.Graphics#drawImage
0N/A */
0N/A public boolean imageUpdate(Image img, int infoflags,
0N/A int x, int y, int width, int height);
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * the width of the base image is now available and can be taken
0N/A * from the width argument to the imageUpdate callback method.
0N/A * @see Image#getWidth
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int WIDTH = 1;
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * the height of the base image is now available and can be taken
0N/A * from the height argument to the imageUpdate callback method.
0N/A * @see Image#getHeight
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int HEIGHT = 2;
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * the properties of the image are now available.
0N/A * @see Image#getProperty
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int PROPERTIES = 4;
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * more pixels needed for drawing a scaled variation of the image
0N/A * are available. The bounding box of the new pixels can be taken
0N/A * from the x, y, width, and height arguments to the imageUpdate
0N/A * callback method.
0N/A * @see java.awt.Graphics#drawImage
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int SOMEBITS = 8;
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * another complete frame of a multi-frame image which was previously
0N/A * drawn is now available to be drawn again. The x, y, width, and height
0N/A * arguments to the imageUpdate callback method should be ignored.
0N/A * @see java.awt.Graphics#drawImage
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int FRAMEBITS = 16;
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * a static image which was previously drawn is now complete and can
0N/A * be drawn again in its final form. The x, y, width, and height
0N/A * arguments to the imageUpdate callback method should be ignored.
0N/A * @see java.awt.Graphics#drawImage
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int ALLBITS = 32;
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * an image which was being tracked asynchronously has encountered
0N/A * an error. No further information will become available and
0N/A * drawing the image will fail.
0N/A * As a convenience, the ABORT flag will be indicated at the same
0N/A * time to indicate that the image production was aborted.
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int ERROR = 64;
0N/A
0N/A /**
0N/A * This flag in the infoflags argument to imageUpdate indicates that
0N/A * an image which was being tracked asynchronously was aborted before
0N/A * production was complete. No more information will become available
0N/A * without further action to trigger another image production sequence.
0N/A * If the ERROR flag was not also set in this image update, then
0N/A * accessing any of the data in the image will restart the production
0N/A * again, probably from the beginning.
0N/A * @see #imageUpdate
0N/A */
0N/A public static final int ABORT = 128;
0N/A}