michael@0: /* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #define MOZ_FATAL_ASSERTIONS_FOR_THREAD_SAFETY michael@0: michael@0: #include "nsScreenManagerAndroid.h" michael@0: #include "nsWindow.h" michael@0: #include "AndroidBridge.h" michael@0: michael@0: using namespace mozilla; michael@0: michael@0: nsScreenAndroid::nsScreenAndroid(void *nativeScreen) michael@0: { michael@0: } michael@0: michael@0: nsScreenAndroid::~nsScreenAndroid() michael@0: { michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenAndroid::GetRect(int32_t *outLeft, int32_t *outTop, int32_t *outWidth, int32_t *outHeight) michael@0: { michael@0: gfxIntSize sz = nsWindow::GetAndroidScreenBounds(); michael@0: michael@0: *outLeft = 0; michael@0: *outTop = 0; michael@0: michael@0: *outWidth = sz.width; michael@0: *outHeight = sz.height; michael@0: michael@0: return NS_OK; michael@0: } michael@0: michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenAndroid::GetAvailRect(int32_t *outLeft, int32_t *outTop, int32_t *outWidth, int32_t *outHeight) michael@0: { michael@0: return GetRect(outLeft, outTop, outWidth, outHeight); michael@0: } michael@0: michael@0: michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenAndroid::GetPixelDepth(int32_t *aPixelDepth) michael@0: { michael@0: *aPixelDepth = AndroidBridge::Bridge()->GetScreenDepth(); michael@0: return NS_OK; michael@0: } michael@0: michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenAndroid::GetColorDepth(int32_t *aColorDepth) michael@0: { michael@0: return GetPixelDepth(aColorDepth); michael@0: } michael@0: michael@0: void michael@0: nsScreenAndroid::ApplyMinimumBrightness(uint32_t aBrightness) michael@0: { michael@0: mozilla::widget::android::GeckoAppShell::SetKeepScreenOn(aBrightness == BRIGHTNESS_FULL); michael@0: } michael@0: michael@0: NS_IMPL_ISUPPORTS(nsScreenManagerAndroid, nsIScreenManager) michael@0: michael@0: nsScreenManagerAndroid::nsScreenManagerAndroid() michael@0: { michael@0: mOneScreen = new nsScreenAndroid(nullptr); michael@0: } michael@0: michael@0: nsScreenManagerAndroid::~nsScreenManagerAndroid() michael@0: { michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenManagerAndroid::GetPrimaryScreen(nsIScreen **outScreen) michael@0: { michael@0: NS_IF_ADDREF(*outScreen = mOneScreen.get()); michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenManagerAndroid::ScreenForRect(int32_t inLeft, michael@0: int32_t inTop, michael@0: int32_t inWidth, michael@0: int32_t inHeight, michael@0: nsIScreen **outScreen) michael@0: { michael@0: return GetPrimaryScreen(outScreen); michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenManagerAndroid::ScreenForNativeWidget(void *aWidget, nsIScreen **outScreen) michael@0: { michael@0: return GetPrimaryScreen(outScreen); michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenManagerAndroid::GetNumberOfScreens(uint32_t *aNumberOfScreens) michael@0: { michael@0: *aNumberOfScreens = 1; michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: nsScreenManagerAndroid::GetSystemDefaultScale(float *aDefaultScale) michael@0: { michael@0: *aDefaultScale = 1.0f; michael@0: return NS_OK; michael@0: }