diff options
Diffstat (limited to 'WebCore/plugins/PluginView.h')
-rw-r--r-- | WebCore/plugins/PluginView.h | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/WebCore/plugins/PluginView.h b/WebCore/plugins/PluginView.h index f88bfdf..0fd0d4f 100644 --- a/WebCore/plugins/PluginView.h +++ b/WebCore/plugins/PluginView.h @@ -30,6 +30,7 @@ #include "CString.h" #include "FrameLoadRequest.h" +#include "HaltablePlugin.h" #include "IntRect.h" #include "KURL.h" #include "PlatformString.h" @@ -120,7 +121,7 @@ namespace WebCore { virtual void didFail(const ResourceError&) = 0; }; - class PluginView : public Widget, private PluginStreamClient, public PluginManualLoader { + class PluginView : public Widget, private PluginStreamClient, public PluginManualLoader, private HaltablePlugin { public: static PassRefPtr<PluginView> create(Frame* parentFrame, const IntSize&, Element*, const KURL&, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually); virtual ~PluginView(); @@ -216,6 +217,11 @@ namespace WebCore { void didFinishLoading(); void didFail(const ResourceError&); + // HaltablePlugin + virtual void halt(); + virtual void restart(); + virtual Node* node() const; + static bool isCallingPlugin(); #ifdef ANDROID_PLUGINS @@ -232,8 +238,9 @@ namespace WebCore { bool startOrAddToUnstartedList(); void removeFromUnstartedListIfNecessary(); void init(); - void platformStart(); + bool platformStart(); void stop(); + void platformDestroy(); static void setCurrentPluginView(PluginView*); NPError load(const FrameLoadRequest&, bool sendNotification, void* notifyData); NPError handlePost(const char* url, const char* target, uint32 len, const char* buf, bool file, void* notifyData, bool sendNotification, bool allowHeaders); @@ -276,6 +283,10 @@ namespace WebCore { void handleKeyboardEvent(KeyboardEvent*); void handleMouseEvent(MouseEvent*); +#if defined(Q_WS_X11) + void handleFocusInEvent(); + void handleFocusOutEvent(); +#endif #ifdef ANDROID_PLUGINS void handleTouchEvent(TouchEvent*); @@ -310,7 +321,7 @@ namespace WebCore { bool m_haveInitialized; bool m_isWaitingToStart; -#if PLATFORM(GTK) || defined(Q_WS_X11) +#if defined(XP_UNIX) || defined(Q_WS_X11) bool m_needsXEmbed; #endif @@ -340,12 +351,13 @@ public: PlatformPluginWidget platformPluginWidget() const { return m_window; } // MANUAL MERGE FIXME #else public: + void setPlatformPluginWidget(PlatformPluginWidget widget) { setPlatformWidget(widget); } PlatformPluginWidget platformPluginWidget() const { return platformWidget(); } #endif private: -#if PLATFORM(GTK) || defined(Q_WS_X11) +#if defined(XP_UNIX) || defined(Q_WS_X11) void setNPWindowIfNeeded(); #elif defined(XP_MACOSX) NP_CGContext m_npCgContext; @@ -360,6 +372,12 @@ private: #if defined(Q_WS_X11) bool m_hasPendingGeometryChange; + Pixmap m_drawable; + Visual* m_visual; + Colormap m_colormap; + Display* m_pluginDisplay; + + void initXEvent(XEvent* event); #endif IntRect m_clipRect; // The clip rect to apply to a windowed plug-in |