1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef mozilla_widget_gtk_ScreenHelperGTK_h 8 #define mozilla_widget_gtk_ScreenHelperGTK_h 9 10 #include "mozilla/widget/ScreenManager.h" 11 12 #include "gdk/gdk.h" 13 #ifdef MOZ_X11 14 # include <X11/Xlib.h> 15 # include "X11UndefineNone.h" 16 #endif 17 18 namespace mozilla { 19 namespace widget { 20 21 class ScreenHelperGTK final : public ScreenManager::Helper { 22 public: 23 ScreenHelperGTK(); 24 ~ScreenHelperGTK() override; 25 26 static gint GetGTKMonitorScaleFactor(gint aMonitorNum = 0); 27 28 #ifdef MOZ_X11 NetWorkareaAtom()29 Atom NetWorkareaAtom() { return mNetWorkareaAtom; } 30 #endif 31 32 // For internal use from signal callback functions 33 void RefreshScreens(); 34 35 private: 36 GdkWindow* mRootWindow; 37 #ifdef MOZ_X11 38 Atom mNetWorkareaAtom; 39 #endif 40 }; 41 42 } // namespace widget 43 } // namespace mozilla 44 45 #endif // mozilla_widget_gtk_ScreenHelperGTK_h 46