WebContextMenuProxyGtk.h [plain text]
#ifndef WebContextMenuProxyGtk_h
#define WebContextMenuProxyGtk_h
#if ENABLE(CONTEXT_MENUS)
#include "WebContextMenuItemGtk.h"
#include "WebContextMenuProxy.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:
WebContextMenuProxyGtk(GtkWidget*, WebPageProxy&, const ContextMenuContextData&, const UserData&);
~WebContextMenuProxyGtk();
void populate(const Vector<WebContextMenuItemGtk>&);
GtkMenu* gtkMenu() const { return m_menu; }
private:
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;
GtkMenu* m_menu;
WebCore::IntPoint m_popupPosition;
HashMap<unsigned long, void*> m_signalHandlers;
};
}
#endif // ENABLE(CONTEXT_MENUS)
#endif // WebContextMenuProxyGtk_h