diff -r 000000000000 -r 6474c204b198 widget/gtk/nsScreenManagerGtk.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widget/gtk/nsScreenManagerGtk.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,52 @@ +/* -*- Mode: C++; 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/. */ + +#ifndef nsScreenManagerGtk_h___ +#define nsScreenManagerGtk_h___ + +#include "nsIScreenManager.h" +#include "nsIScreen.h" +#include "nsCOMPtr.h" +#include "nsCOMArray.h" +#include "prlink.h" +#include "gdk/gdk.h" +#ifdef MOZ_X11 +#include +#endif + +//------------------------------------------------------------------------ + +class nsScreenManagerGtk : public nsIScreenManager +{ +public: + nsScreenManagerGtk ( ); + virtual ~nsScreenManagerGtk(); + + NS_DECL_ISUPPORTS + NS_DECL_NSISCREENMANAGER + +#ifdef MOZ_X11 + Atom NetWorkareaAtom() { return mNetWorkareaAtom; } +#endif + + // For internal use, or reinitialization from change notification. + nsresult Init(); + +private: + + nsresult EnsureInit(); + + // Cached screen array. Its length is the number of screens we have. + nsCOMArray mCachedScreenArray; + + PRLibrary *mXineramalib; + + GdkWindow *mRootWindow; +#ifdef MOZ_X11 + Atom mNetWorkareaAtom; +#endif +}; + +#endif // nsScreenManagerGtk_h___