NetscapePluginX11.h [plain text]
#ifndef NetscapePluginX11_h
#define NetscapePluginX11_h
#if PLUGIN_ARCHITECTURE(X11) && ENABLE(NETSCAPE_PLUGIN_API)
#include "NetscapePluginUnix.h"
#include <WebCore/XUniqueResource.h>
namespace WebKit {
class NetscapePlugin;
class NetscapePluginX11 final : public NetscapePluginUnix {
public:
static std::unique_ptr<NetscapePluginX11> create(NetscapePlugin&);
NetscapePluginX11(NetscapePlugin&, Display*);
#if PLATFORM(GTK)
NetscapePluginX11(NetscapePlugin&, Display*, uint64_t windowID);
#endif
virtual ~NetscapePluginX11();
private:
NPWindowType windowType() const override;
void* window() const override;
NPSetWindowCallbackStruct* windowSystemInfo() override { return &m_setWindowCallbackStruct; }
void geometryDidChange() override;
void visibilityDidChange() override;
void paint(WebCore::GraphicsContext&, const WebCore::IntRect&) override;
bool handleMouseEvent(const WebMouseEvent&) override;
bool handleWheelEvent(const WebWheelEvent&) override;
bool handleMouseEnterEvent(const WebMouseEvent&) override;
bool handleMouseLeaveEvent(const WebMouseEvent&) override;
bool handleKeyboardEvent(const WebKeyboardEvent&) override;
void setFocus(bool) override;
NetscapePlugin& m_plugin;
Display* m_pluginDisplay { nullptr };
WebCore::XUniquePixmap m_drawable;
NPSetWindowCallbackStruct m_setWindowCallbackStruct;
#if PLATFORM(GTK)
uint64_t m_windowID { 0 };
unsigned long m_npWindowID { 0 };
GtkWidget* m_platformPluginWidget { nullptr };
#endif
};
}
#endif // PLUGIN_ARCHITECTURE(X11) && ENABLE(NETSCAPE_PLUGIN_API)
#endif // NetscapePluginX11_h