001: /*
002: * @(#)QtGraphicsDevice.java 1.8 06/10/10
003: *
004: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: */
026:
027: package java.awt;
028:
029: import sun.awt.AppContext;
030:
031: /**
032: @version 1.1, 11/13/01 */
033:
034: class QtGraphicsDevice extends GraphicsDevice {
035: /** Contains the fullscreen window, or null if not full screen. */
036: private Window fullScreenWindow = null; //6208413
037: // tracks which AppContext created the window
038: private AppContext fullScreenAppContext = null;
039:
040: QtGraphicsDevice(QtGraphicsEnvironment environment) {
041: this .environment = environment;
042: // psd = openScreen();
043: configuration = new QtDefaultGraphicsConfiguration(this );
044: }
045:
046: QtGraphicsDevice(QtGraphicsEnvironment environment, int psd) {
047: this .environment = environment;
048: this .psd = psd;
049: configuration = new QtDefaultGraphicsConfiguration(this );
050: }
051:
052: public int getType() {
053: return TYPE_RASTER_SCREEN;
054: }
055:
056: public String getIDstring() {
057: return "Qt Screen";
058: }
059:
060: public GraphicsConfiguration getDefaultConfiguration() {
061: return configuration;
062: }
063:
064: public GraphicsConfiguration[] getConfigurations() {
065: return new GraphicsConfiguration[] { configuration };
066: }
067:
068: /** Gets the bounds for this screen. */
069:
070: Rectangle getBounds() {
071: return new Rectangle(getScreenX(psd), getScreenY(psd),
072: getScreenWidth(psd), getScreenHeight(psd));
073: }
074:
075: void setWindow(Window window) {
076: super .setWindow(window);
077:
078: // Notify the graphics environment so it can send events to this graphics device to the
079: // associated window.
080:
081: environment.setWindow(this , window);
082: }
083:
084: public boolean isFullScreenSupported() {
085: return false; //6229147
086: }
087:
088: public void setFullScreenWindow(Window w) {
089: synchronized (this ) {
090: // Associate fullscreen window with current AppContext
091: if (w == null) {
092: fullScreenAppContext = null;
093: } else {
094: fullScreenAppContext = AppContext.getAppContext();
095: }
096: fullScreenWindow = w; //6208413
097: }
098: }
099:
100: public Window getFullScreenWindow() {
101: Window returnWindow = null;
102: synchronized (this ) {
103: // Only return a handle to the current fs window if we are in the
104: // same AppContext that set the fs window
105: if (fullScreenAppContext == AppContext.getAppContext()) {
106: returnWindow = fullScreenWindow;
107: }
108: }
109: return returnWindow; //6208413
110: }
111:
112: public int getAvailableAcceleratedMemory() {
113: return -1;
114: }
115:
116: /* Implementation dependent code...Here is Qt stuff */
117:
118: private native int getScreenWidth(int psd);
119:
120: private native int getScreenHeight(int psd);
121:
122: private native int getScreenX(int psd);
123:
124: private native int getScreenY(int psd);
125:
126: private QtGraphicsConfiguration configuration;
127:
128: private QtGraphicsEnvironment environment;
129:
130: int psd;
131: }
|