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