1 /*
2 * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package java.awt.peer;
27
28 import java.awt;
29
30 import sun.awt.EmbeddedFrame;
31
32 /**
33 * The peer interface for {@link Frame}. This adds a couple of frame specific
34 * methods to the {@link WindowPeer} interface.
35 *
36 * The peer interfaces are intended only for use in porting
37 * the AWT. They are not intended for use by application
38 * developers, and developers should not implement peers
39 * nor invoke any of the peer methods directly on the peer
40 * instances.
41 */
42 public interface FramePeer extends WindowPeer {
43
44 /**
45 * Sets the title on the frame.
46 *
47 * @param title the title to set
48 *
49 * @see Frame#setTitle(String)
50 */
51 void setTitle(String title);
52
53 /**
54 * Sets the menu bar for the frame.
55 *
56 * @param mb the menu bar to set
57 *
58 * @see Frame#setMenuBar(MenuBar)
59 */
60 void setMenuBar(MenuBar mb);
61
62 /**
63 * Sets if the frame should be resizable or not.
64 *
65 * @param resizeable {@code true} when the frame should be resizable,
66 * {@code false} if not
67 *
68 * @see Frame#setResizable(boolean)
69 */
70 void setResizable(boolean resizeable);
71
72 /**
73 * Changes the state of the frame.
74 *
75 * @param state the new state
76 *
77 * @see Frame#setExtendedState(int)
78 */
79 void setState(int state);
80
81 /**
82 * Returns the current state of the frame.
83 *
84 * @return the current state of the frame
85 *
86 * @see Frame#getExtendedState()
87 */
88 int getState();
89
90 /**
91 * Sets the bounds of the frame when it becomes maximized.
92 *
93 * @param bounds the maximized bounds of the frame
94 *
95 * @see Frame#setMaximizedBounds(Rectangle)
96 */
97 void setMaximizedBounds(Rectangle bounds);
98
99 /**
100 * Sets the size and location for embedded frames. (On embedded frames,
101 * setLocation() and setBounds() always set the frame to (0,0) for
102 * backwards compatibility.
103 *
104 * @param x the X location
105 * @param y the Y location
106 * @param width the width of the frame
107 * @param height the height of the frame
108 *
109 * @see EmbeddedFrame#setBoundsPrivate(int, int, int, int)
110 */
111 // TODO: This is only used in EmbeddedFrame, and should probably be moved
112 // into an EmbeddedFramePeer which would extend FramePeer
113 void setBoundsPrivate(int x, int y, int width, int height);
114
115 /**
116 * Returns the size and location for embedded frames. (On embedded frames,
117 * setLocation() and setBounds() always set the frame to (0,0) for
118 * backwards compatibility.
119 *
120 * @return the bounds of an embedded frame
121 *
122 * @see EmbeddedFrame#getBoundsPrivate()
123 */
124 // TODO: This is only used in EmbeddedFrame, and should probably be moved
125 // into an EmbeddedFramePeer which would extend FramePeer
126 Rectangle getBoundsPrivate();
127
128 }