/* -*- 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" #include "nsIScreen.idl" %{C++ #include "nsCOMPtr.h" %} [scriptable, uuid(e8a96e60-6b61-4a14-bacc-53891604b502)] interface nsIScreenManager : nsISupports { // Returns the screen that contains the rectangle. If the rect overlaps // multiple screens, it picks the screen with the greatest area of intersection. // // The coordinates are in pixels (not twips) and in screen coordinates. nsIScreen screenForRect(in long left, in long top, in long width, in long height) ; %{C++ already_AddRefed ScreenForRect(const mozilla::DesktopIntRect& aRect) { nsCOMPtr screen; ScreenForRect(aRect.x, aRect.y, aRect.width, aRect.height, getter_AddRefs(screen)); return screen.forget(); } %} // The screen with the menubar/taskbar. This shouldn't be needed very often. readonly attribute nsIScreen primaryScreen; // The total number of pixels across all monitors. readonly attribute int64_t totalScreenPixels; };