001 /*
002 * Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved.
003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004 *
005 * This code is free software; you can redistribute it and/or modify it
006 * under the terms of the GNU General Public License version 2 only, as
007 * published by the Free Software Foundation. Sun designates this
008 * particular file as subject to the "Classpath" exception as provided
009 * by Sun in the LICENSE file that accompanied this code.
010 *
011 * This code is distributed in the hope that it will be useful, but WITHOUT
012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014 * version 2 for more details (a copy is included in the LICENSE file that
015 * accompanied this code).
016 *
017 * You should have received a copy of the GNU General Public License version
018 * 2 along with this work; if not, write to the Free Software Foundation,
019 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020 *
021 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022 * CA 95054 USA or visit www.sun.com if you need additional information or
023 * have any questions.
024 */
025
026 package java.awt.peer;
027
028 import java.awt.*;
029 import java.awt.event.PaintEvent;
030 import java.awt.image.ImageProducer;
031 import java.awt.image.ImageObserver;
032 import java.awt.image.ColorModel;
033 import java.awt.image.VolatileImage;
034 import java.awt.GraphicsConfiguration;
035 import sun.awt.CausedFocusEvent;
036
037 /**
038 * The peer interfaces are intended only for use in porting
039 * the AWT. They are not intended for use by application
040 * developers, and developers should not implement peers
041 * nor invoke any of the peer methods directly on the peer
042 * instances.
043 */
044 public interface ComponentPeer {
045 public static final int SET_LOCATION = 1, SET_SIZE = 2,
046 SET_BOUNDS = 3, SET_CLIENT_SIZE = 4, RESET_OPERATION = 5,
047 NO_EMBEDDED_CHECK = (1 << 14),
048 DEFAULT_OPERATION = SET_BOUNDS;
049
050 boolean isObscured();
051
052 boolean canDetermineObscurity();
053
054 void setVisible(boolean b);
055
056 void setEnabled(boolean b);
057
058 void paint(Graphics g);
059
060 void repaint(long tm, int x, int y, int width, int height);
061
062 void print(Graphics g);
063
064 void setBounds(int x, int y, int width, int height, int op);
065
066 void handleEvent(AWTEvent e);
067
068 void coalescePaintEvent(PaintEvent e);
069
070 Point getLocationOnScreen();
071
072 Dimension getPreferredSize();
073
074 Dimension getMinimumSize();
075
076 ColorModel getColorModel();
077
078 Toolkit getToolkit();
079
080 Graphics getGraphics();
081
082 FontMetrics getFontMetrics(Font font);
083
084 void dispose();
085
086 void setForeground(Color c);
087
088 void setBackground(Color c);
089
090 void setFont(Font f);
091
092 void updateCursorImmediately();
093
094 boolean requestFocus(Component lightweightChild, boolean temporary,
095 boolean focusedWindowChangeAllowed, long time,
096 CausedFocusEvent.Cause cause);
097
098 boolean isFocusable();
099
100 Image createImage(ImageProducer producer);
101
102 Image createImage(int width, int height);
103
104 VolatileImage createVolatileImage(int width, int height);
105
106 boolean prepareImage(Image img, int w, int h, ImageObserver o);
107
108 int checkImage(Image img, int w, int h, ImageObserver o);
109
110 GraphicsConfiguration getGraphicsConfiguration();
111
112 boolean handlesWheelScrolling();
113
114 void createBuffers(int numBuffers, BufferCapabilities caps)
115 throws AWTException;
116
117 Image getBackBuffer();
118
119 void flip(BufferCapabilities.FlipContents flipAction);
120
121 void destroyBuffers();
122
123 /**
124 * Reparents this peer to the new parent referenced by <code>newContainer</code> peer
125 * Implementation depends on toolkit and container.
126 * @param newContainer peer of the new parent container
127 * @since 1.5
128 */
129 void reparent(ContainerPeer newContainer);
130
131 /**
132 * Returns whether this peer supports reparenting to another parent withour destroying the peer
133 * @return true if appropriate reparent is supported, false otherwise
134 * @since 1.5
135 */
136 boolean isReparentSupported();
137
138 /**
139 * Used by lightweight implementations to tell a ComponentPeer to layout
140 * its sub-elements. For instance, a lightweight Checkbox needs to layout
141 * the box, as well as the text label.
142 */
143 void layout();
144
145 Rectangle getBounds();
146
147 /**
148 * DEPRECATED: Replaced by getPreferredSize().
149 */
150 Dimension preferredSize();
151
152 /**
153 * DEPRECATED: Replaced by getMinimumSize().
154 */
155 Dimension minimumSize();
156
157 /**
158 * DEPRECATED: Replaced by setVisible(boolean).
159 */
160 void show();
161
162 /**
163 * DEPRECATED: Replaced by setVisible(boolean).
164 */
165 void hide();
166
167 /**
168 * DEPRECATED: Replaced by setEnabled(boolean).
169 */
170 void enable();
171
172 /**
173 * DEPRECATED: Replaced by setEnabled(boolean).
174 */
175 void disable();
176
177 /**
178 * DEPRECATED: Replaced by setBounds(int, int, int, int).
179 */
180 void reshape(int x, int y, int width, int height);
181 }
|