blob: 92608b8b2c0a6ea9fcc48c426ffccc5a35f4bc0e [file] [log] [blame]
Alan Bateman3269d852012-03-06 20:34:38 +00001/*
2 * Copyright (c) 2011, 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
26package sun.lwawt;
27
28import java.awt.*;
29
Dmitry Cherepanov4fc64432012-03-21 14:31:29 +040030import sun.awt.CausedFocusEvent;
Alan Bateman3269d852012-03-06 20:34:38 +000031import sun.java2d.SurfaceData;
32
33// TODO Is it worth to generify this interface, like that:
34//
35// public interface PlatformWindow<WindowType extends Window>
36//
37// ?
38
39public interface PlatformWindow {
40
41 /*
42 * Delegate initialization (create native window and all the
43 * related resources).
44 */
45 public void initialize(Window target, LWWindowPeer peer, PlatformWindow owner);
46
47 /*
48 * Delegate shutdown (dispose native window and all the
49 * related resources).
50 */
51 public void dispose();
52
53 /*
54 * Shows or hides the window.
55 */
56 public void setVisible(boolean visible);
57
58 /*
59 * Sets the window title
60 */
61 public void setTitle(String title);
62
63 /*
64 * Sets the window bounds. Called when user changes window bounds
65 * with setSize/setLocation/setBounds/reshape methods.
66 */
67 public void setBounds(int x, int y, int w, int h);
68
69 /*
Dmitry Cherepanove0545542012-05-22 12:35:55 +040070 * Returns the graphics device where the window is.
Alan Bateman3269d852012-03-06 20:34:38 +000071 */
Dmitry Cherepanove0545542012-05-22 12:35:55 +040072 public GraphicsDevice getGraphicsDevice();
Alan Bateman3269d852012-03-06 20:34:38 +000073
74 /*
75 * Returns the location of the window.
76 */
77 public Point getLocationOnScreen();
78
79 /*
80 * Returns the window insets.
81 */
82 public Insets getInsets();
83
84 /*
85 * Returns the metrics for a given font.
86 */
87 public FontMetrics getFontMetrics(Font f);
88
89 /*
90 * Get the SurfaceData for the window.
91 */
92 public SurfaceData getScreenSurface();
93
94 /*
95 * Revalidates the window's current SurfaceData and returns
96 * the newly created one.
97 */
98 public SurfaceData replaceSurfaceData();
99
100 /*
101 * Creates a new image to serve as a back buffer.
102 */
103 public Image createBackBuffer();
104
105 /*
106 * Move the given part of the back buffer to the front buffer.
107 */
108 public void flip(int x1, int y1, int x2, int y2,
109 BufferCapabilities.FlipContents flipAction);
110
Leonid Romanove6869ed2012-05-03 19:22:38 +0400111 public void setModalBlocked(boolean blocked);
112
Alan Bateman3269d852012-03-06 20:34:38 +0000113 public void toFront();
114
115 public void toBack();
116
117 public void setMenuBar(MenuBar mb);
118
119 public void setAlwaysOnTop(boolean value);
120
121 public void updateFocusableWindowState();
122
Dmitry Cherepanov4fc64432012-03-21 14:31:29 +0400123 public boolean rejectFocusRequest(CausedFocusEvent.Cause cause);
124
Alan Bateman3269d852012-03-06 20:34:38 +0000125 public boolean requestWindowFocus();
126
127 /*
128 * Returns true only when called on a frame/dialog when it's natively focused.
129 */
130 public boolean isActive();
131
132 public void setResizable(boolean resizable);
133
134 public void setMinimumSize(int width, int height);
135
136 /**
137 * Transforms the given Graphics object according to the native
138 * implementation traits (insets, etc.).
139 */
140 public Graphics transformGraphics(Graphics g);
141
142 /*
143 * Installs the images for particular window.
144 */
145 public void updateIconImages();
146
147 public void setOpacity(float opacity);
148
149 public void setOpaque(boolean isOpaque);
150
151 public void enterFullScreenMode();
152
153 public void exitFullScreenMode();
154
155 public void setWindowState(int windowState);
156
157 public long getLayerPtr();
158
159 public LWWindowPeer getPeer();
160}