1db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block/*
265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010 Apple Inc. All rights reserved.
3db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *
4db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * This library is free software; you can redistribute it and/or
5db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * modify it under the terms of the GNU Library General Public
6db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * License as published by the Free Software Foundation; either
7db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * version 2 of the License, or (at your option) any later version.
8db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *
9db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * This library is distributed in the hope that it will be useful,
10db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * but WITHOUT ANY WARRANTY; without even the implied warranty of
11db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Library General Public License for more details.
13db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *
14db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * You should have received a copy of the GNU Library General Public License
15db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * along with this library; see the file COPYING.LIB.  If not, write to
16db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block * Boston, MA 02110-1301, USA.
18db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block *
19db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block */
20db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef WebContextMenu_h
2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WebContextMenu_h
23db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebContextMenuItemData.h"
25db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/PassRefPtr.h>
2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/RefCounted.h>
28db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebKit {
3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebPage;
3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass WebContextMenu : public RefCounted<WebContextMenu> {
34db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockpublic:
3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    static PassRefPtr<WebContextMenu> create(WebPage* page)
3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    {
3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch        return adoptRef(new WebContextMenu(page));
3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    }
3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    ~WebContextMenu();
41db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    void show();
4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    void itemSelected(const WebContextMenuItemData&);
44db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
45db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockprivate:
4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WebContextMenu(WebPage*);
4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WebPage* m_page;
49db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block};
50db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebKit
52db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block
5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // WebPopupMenu_h
54