diff options
Diffstat (limited to 'content/browser/web_contents/popup_menu_helper_mac.h')
-rw-r--r-- | content/browser/web_contents/popup_menu_helper_mac.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/content/browser/web_contents/popup_menu_helper_mac.h b/content/browser/web_contents/popup_menu_helper_mac.h new file mode 100644 index 0000000..4f9ae0d --- /dev/null +++ b/content/browser/web_contents/popup_menu_helper_mac.h @@ -0,0 +1,51 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_WEB_CONTENTS_POPUP_MENU_HELPER_MAC_H_ +#define CONTENT_BROWSER_WEB_CONTENTS_POPUP_MENU_HELPER_MAC_H_ + +#include <vector> + +#include "base/compiler_specific.h" +#include "content/public/browser/notification_observer.h" +#include "content/public/browser/notification_registrar.h" +#include "ui/gfx/rect.h" + +struct WebMenuItem; + +namespace content { +class RenderViewHost; +class RenderViewHostImpl; +} + +class PopupMenuHelper : public content::NotificationObserver { + public: + // Creates a PopupMenuHelper that will notify |render_view_host| when a user + // selects or cancels the popup. + explicit PopupMenuHelper(content::RenderViewHost* render_view_host); + + // Shows the popup menu and notifies the RenderViewHost of the selection/ + // cancel. + // This call is blocking. + void ShowPopupMenu(const gfx::Rect& bounds, + int item_height, + double item_font_size, + int selected_item, + const std::vector<WebMenuItem>& items, + bool right_aligned); + + private: + // content::NotificationObserver implementation: + virtual void Observe(int type, + const content::NotificationSource& source, + const content::NotificationDetails& details) OVERRIDE; + + content::NotificationRegistrar notification_registrar_; + + content::RenderViewHostImpl* render_view_host_; + + DISALLOW_COPY_AND_ASSIGN(PopupMenuHelper); +}; + +#endif // CONTENT_BROWSER_WEB_CONTENTS_POPUP_MENU_HELPER_MAC_H_ |