diff options
Diffstat (limited to 'widget/gtk/nsScreenManagerGtk.h')
-rw-r--r-- | widget/gtk/nsScreenManagerGtk.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/widget/gtk/nsScreenManagerGtk.h b/widget/gtk/nsScreenManagerGtk.h new file mode 100644 index 0000000000..9afb3bf221 --- /dev/null +++ b/widget/gtk/nsScreenManagerGtk.h @@ -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 <X11/Xlib.h> +#endif + +//------------------------------------------------------------------------ + +class nsScreenManagerGtk : public nsIScreenManager +{ +public: + 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: + virtual ~nsScreenManagerGtk(); + + nsresult EnsureInit(); + + // Cached screen array. Its length is the number of screens we have. + nsCOMArray<nsIScreen> mCachedScreenArray; + + PRLibrary *mXineramalib; + + GdkWindow *mRootWindow; +#ifdef MOZ_X11 + Atom mNetWorkareaAtom; +#endif +}; + +#endif // nsScreenManagerGtk_h___ |