/* 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 _nsPluginNativeWindowGdk_h_ #define _nsPluginNativeWindowGdk_h_ #include "nsPluginNativeWindow.h" #include "nsNPAPIPlugin.h" #include "npapi.h" #include #include #include #if (GTK_MAJOR_VERSION == 3) #include #else #include "gtk2xtbin.h" #endif #include "mozilla/X11Util.h" class nsPluginNativeWindowGtk : public nsPluginNativeWindow { public: nsPluginNativeWindowGtk(); virtual ~nsPluginNativeWindowGtk(); virtual nsresult CallSetWindow(nsRefPtr &aPluginInstance); nsresult CreateXEmbedWindow(bool aEnableXtFocus); void SetAllocation(); XID GetWindow() const { return static_cast(reinterpret_cast(window)); } private: void SetWindow(XID aWindow) { window = reinterpret_cast(static_cast(aWindow)); } NPSetWindowCallbackStruct mWsInfo; /** * Either a GtkSocket or a special GtkXtBin widget (derived from GtkSocket) * that encapsulates the Xt toolkit within a Gtk Application. */ GtkWidget* mSocketWidget; #if (MOZ_WIDGET_GTK == 2) nsresult CreateXtWindow(); #endif }; #endif