/*
GNU GENERAL LICENSE
Copyright (C) 2006 The Lobo Project. Copyright (C) 2014 - 2017 Lobo Evolution
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
verion 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General License for more details.
You should have received a copy of the GNU General Public
along with this program. If not, see <http://www.gnu.org/licenses/>.
Contact info: lobochief@users.sourceforge.net; ivan.difrancesco@yahoo.it
*/
package org.lobobrowser.html.js;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import org.lobobrowser.js.AbstractScriptableDelegate;
/**
* The Class Screen.
*/
public class Screen extends AbstractScriptableDelegate {
/** The graphics environment. */
private final GraphicsEnvironment graphicsEnvironment;
/** The graphics device. */
private final GraphicsDevice graphicsDevice;
/**
* Instantiates a new screen.
*/
Screen() {
super();
if (GraphicsEnvironment.isHeadless()) {
this.graphicsEnvironment = null;
this.graphicsDevice = null;
} else {
this.graphicsEnvironment = GraphicsEnvironment
.getLocalGraphicsEnvironment();
this.graphicsDevice = this.graphicsEnvironment
.getDefaultScreenDevice();
}
}
/** Gets the height.
*
* @return the height
*/
public int getHeight() {
GraphicsDevice gd = this.graphicsDevice;
return gd == null ? 0 : gd.getDisplayMode().getHeight();
}
/** Gets the pixel depth.
*
* @return the pixel depth
*/
public int getPixelDepth() {
return this.getColorDepth();
}
/** Gets the width.
*
* @return the width
*/
public int getWidth() {
GraphicsEnvironment ge = this.graphicsEnvironment;
if (ge == null) {
return 0;
}
GraphicsDevice gd = ge.getDefaultScreenDevice();
return gd.getDisplayMode().getWidth();
}
/** Gets the avail height.
*
* @return the avail height
*/
public int getAvailHeight() {
GraphicsEnvironment ge = this.graphicsEnvironment;
if (ge == null) {
return 0;
}
return ge.getMaximumWindowBounds().height;
}
/** Gets the avail width.
*
* @return the avail width
*/
public int getAvailWidth() {
GraphicsEnvironment ge = this.graphicsEnvironment;
if (ge == null) {
return 0;
}
return ge.getMaximumWindowBounds().width;
}
/** Gets the color depth.
*
* @return the color depth
*/
public int getColorDepth() {
GraphicsDevice gd = this.graphicsDevice;
if (gd == null) {
return 0;
}
return gd.getDisplayMode().getBitDepth();
}
}