From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- widget/nsIScreen.idl | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 widget/nsIScreen.idl (limited to 'widget/nsIScreen.idl') diff --git a/widget/nsIScreen.idl b/widget/nsIScreen.idl new file mode 100644 index 000000000..b1529daf7 --- /dev/null +++ b/widget/nsIScreen.idl @@ -0,0 +1,109 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +%{C++ +/** + * The display type of nsIScreen belongs to. + */ +enum class DisplayType: int32_t { + DISPLAY_PRIMARY, // primary screen + DISPLAY_EXTERNAL, // wired displays, such as HDMI, DisplayPort, etc. + DISPLAY_VIRTUAL // wireless displays, such as Chromecast, WiFi-Display, etc. +}; +%} + +[scriptable, uuid(826e80c8-d70f-42e2-8aa9-82c05f2a370a)] +interface nsIScreen : nsISupports +{ + /** + * Levels of brightness for the screen, from off to full brightness. + */ + const unsigned long BRIGHTNESS_DIM = 0; + const unsigned long BRIGHTNESS_FULL = 1; + + /* The number of different brightness levels */ + const unsigned long BRIGHTNESS_LEVELS = 2; + + /** + * Allowable screen rotations, when the underlying widget toolkit + * supports rotating the screen. + * + * ROTATION_0_DEG is the default, unrotated configuration. + */ + const unsigned long ROTATION_0_DEG = 0; + const unsigned long ROTATION_90_DEG = 1; + const unsigned long ROTATION_180_DEG = 2; + const unsigned long ROTATION_270_DEG = 3; + + /** + * A unique identifier for this device, useful for requerying + * for it via nsIScreenManager. + */ + readonly attribute unsigned long id; + + /** + * These report screen dimensions in (screen-specific) device pixels + */ + void GetRect(out long left, out long top, out long width, out long height); + void GetAvailRect(out long left, out long top, out long width, out long height); + + /** + * And these report in desktop pixels + */ + void GetRectDisplayPix(out long left, out long top, out long width, out long height); + void GetAvailRectDisplayPix(out long left, out long top, out long width, out long height); + + /** + * Locks the minimum brightness of the screen, forcing it to be at + * least as bright as a certain brightness level. Each call to this + * function must eventually be followed by a corresponding call to + * unlockMinimumBrightness, with the same brightness level. + * + * @param brightness A brightness level, one of the above constants. + */ + void lockMinimumBrightness(in unsigned long brightness); + + /** + * Releases a lock on the screen brightness. This must be called + * (eventually) after a corresponding call to lockMinimumBrightness. + * + * @param brightness A brightness level, one of the above constants. + */ + void unlockMinimumBrightness(in unsigned long brightness); + + readonly attribute long pixelDepth; + readonly attribute long colorDepth; + /** + * Get/set the screen rotation, on platforms that support changing + * screen rotation. + */ + attribute unsigned long rotation; + + /** + * The number of device pixels per desktop pixel for this screen (for + * hidpi configurations where there may be multiple device pixels per + * desktop px and/or per CSS px). + * + * This seems poorly named (something like devicePixelsPerDesktopPixel + * would be more accurate/explicit), but given that it is exposed to + * front-end code and may also be used by add-ons, it's probably not + * worth the disruption of changing it. + * + * Returns 1.0 if HiDPI mode is disabled or unsupported, or if the + * host OS uses device pixels as its desktop pixel units (as in Win8.1 + * per-monitor dpi support). + */ + readonly attribute double contentsScaleFactor; + + /** + * The default number of device pixels per unscaled CSS pixel for this + * screen. This is probably what contentsScaleFactor originally meant + * to be, prior to confusion between CSS pixels and desktop pixel units. + */ + readonly attribute double defaultCSSScaleFactor; +}; -- cgit v1.2.3