summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h')
-rw-r--r--Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h31
1 files changed, 15 insertions, 16 deletions
diff --git a/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h b/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h
index ded4b7a84..144be9829 100644
--- a/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h
+++ b/Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h
@@ -28,42 +28,41 @@
#if ENABLE(CONTEXT_MENUS)
+#include "WebContextMenuItemGtk.h"
#include "WebContextMenuProxy.h"
-#include <WebCore/ContextMenu.h>
#include <WebCore/IntPoint.h>
#include <wtf/HashMap.h>
+#include <wtf/glib/GRefPtr.h>
+
+typedef struct _GMenu GMenu;
namespace WebKit {
+class WebContextMenuItem;
class WebContextMenuItemData;
class WebPageProxy;
class WebContextMenuProxyGtk : public WebContextMenuProxy {
public:
- static PassRefPtr<WebContextMenuProxyGtk> create(GtkWidget* webView, WebPageProxy* page)
- {
- return adoptRef(new WebContextMenuProxyGtk(webView, page));
- }
+ WebContextMenuProxyGtk(GtkWidget*, WebPageProxy&, const ContextMenuContextData&, const UserData&);
~WebContextMenuProxyGtk();
- virtual void showContextMenu(const WebCore::IntPoint&, const Vector<WebContextMenuItemData>&);
- virtual void hideContextMenu();
-
- void populate(Vector<WebCore::ContextMenuItem>&);
- GtkMenu* gtkMenu() const { return m_menu.platformDescription(); }
+ void populate(const Vector<WebContextMenuItemGtk>&);
+ GtkMenu* gtkMenu() const { return m_menu; }
private:
- WebContextMenuProxyGtk(GtkWidget*, WebPageProxy*);
-
- void append(WebCore::ContextMenuItem&);
- void populate(const Vector<WebContextMenuItemData>&);
+ void show() override;
+ void showContextMenuWithItems(const Vector<WebContextMenuItemData>&) override;
+ void append(GMenu*, const WebContextMenuItemGtk&);
+ GRefPtr<GMenu> buildMenu(const Vector<WebContextMenuItemGtk>&);
+ void populate(const Vector<RefPtr<WebContextMenuItem>>&);
static void menuPositionFunction(GtkMenu*, gint*, gint*, gboolean*, WebContextMenuProxyGtk*);
GtkWidget* m_webView;
WebPageProxy* m_page;
- WebCore::ContextMenu m_menu;
+ GtkMenu* m_menu;
WebCore::IntPoint m_popupPosition;
- HashMap<unsigned long, GtkAction*> m_signalHandlers;
+ HashMap<unsigned long, void*> m_signalHandlers;
};