1 /*
2  * Copyright (c) 1995, 2013, 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      */
setTitle(String title)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      */
setMenuBar(MenuBar mb)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      */
setResizable(boolean resizeable)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      */
setState(int state)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      */
getState()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      */
setMaximizedBounds(Rectangle bounds)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
setBoundsPrivate(int x, int y, int width, int height)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
getBoundsPrivate()126     Rectangle getBoundsPrivate();
127 
128     /**
129      * Requests the peer to emulate window activation.
130      *
131      * @param activate activate or deactivate the window
132      */
emulateActivation(boolean activate)133     void emulateActivation(boolean activate);
134 }
135