mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	- Remove |accept_lang| parameter from CefJSDialogHandler::OnJSDialog and CefFormatUrlForSecurityDisplay (see https://crbug.com/336973#c36). - Remove remaining NPAPI-related code including functions from cef_web_plugin.h (see https://crbug.com/493212#c55). - Mac: 10.7+ deployment target is now required for client applications. - Mac: Remove CefBrowserHost::SetWindowVisibility (issue #1375). No replacement is required for windowed rendering. Use WasHidden for off-screen rendering. - Windows: Visual Studio 2015 Update 2 is now required when building CEF/Chromium.
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2012 The Chromium Embedded Framework 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 CEF_LIBCEF_BROWSER_MENU_MANAGER_H_
 | 
						|
#define CEF_LIBCEF_BROWSER_MENU_MANAGER_H_
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "libcef/browser/menu_model_impl.h"
 | 
						|
 | 
						|
#include "libcef/browser/menu_runner.h"
 | 
						|
 | 
						|
#include "base/memory/weak_ptr.h"
 | 
						|
#include "content/public/browser/web_contents_observer.h"
 | 
						|
#include "content/public/common/context_menu_params.h"
 | 
						|
 | 
						|
namespace content {
 | 
						|
class RenderFrameHost;
 | 
						|
class WebContents;
 | 
						|
};
 | 
						|
 | 
						|
class CefBrowserHostImpl;
 | 
						|
class CefRunContextMenuCallback;
 | 
						|
 | 
						|
class CefMenuManager : public CefMenuModelImpl::Delegate,
 | 
						|
                       public content::WebContentsObserver {
 | 
						|
 public:
 | 
						|
  CefMenuManager(CefBrowserHostImpl* browser,
 | 
						|
                 std::unique_ptr<CefMenuRunner> runner);
 | 
						|
  ~CefMenuManager() override;
 | 
						|
 | 
						|
  // Delete the runner to free any platform constructs.
 | 
						|
  void Destroy();
 | 
						|
 | 
						|
  // Returns true if the context menu is currently showing.
 | 
						|
  bool IsShowingContextMenu();
 | 
						|
 | 
						|
  // Create the context menu.
 | 
						|
  bool CreateContextMenu(const content::ContextMenuParams& params);
 | 
						|
  void CancelContextMenu();
 | 
						|
 | 
						|
 private:
 | 
						|
  // CefMenuModelImpl::Delegate methods.
 | 
						|
  void ExecuteCommand(CefRefPtr<CefMenuModelImpl> source,
 | 
						|
                      int command_id,
 | 
						|
                      cef_event_flags_t event_flags) override;
 | 
						|
  void MenuWillShow(CefRefPtr<CefMenuModelImpl> source) override;
 | 
						|
  void MenuClosed(CefRefPtr<CefMenuModelImpl> source) override;
 | 
						|
  bool FormatLabel(base::string16& label) override;
 | 
						|
 | 
						|
  void ExecuteCommandCallback(int command_id,
 | 
						|
                              cef_event_flags_t event_flags);
 | 
						|
 | 
						|
  // Create the default menu model.
 | 
						|
  void CreateDefaultModel();
 | 
						|
  // Execute the default command handling.
 | 
						|
  void ExecuteDefaultCommand(int command_id);
 | 
						|
 | 
						|
  // Returns true if the specified id is a custom context menu command.
 | 
						|
  bool IsCustomContextMenuCommand(int command_id);
 | 
						|
 | 
						|
  // CefBrowserHostImpl pointer is guaranteed to outlive this object.
 | 
						|
  CefBrowserHostImpl* browser_;
 | 
						|
 | 
						|
  std::unique_ptr<CefMenuRunner> runner_;
 | 
						|
 | 
						|
  CefRefPtr<CefMenuModelImpl> model_;
 | 
						|
  content::ContextMenuParams params_;
 | 
						|
 | 
						|
  // Not owned by this class.
 | 
						|
  CefRunContextMenuCallback* custom_menu_callback_;
 | 
						|
 | 
						|
  // Must be the last member.
 | 
						|
  base::WeakPtrFactory<CefMenuManager> weak_ptr_factory_;
 | 
						|
 | 
						|
  DISALLOW_COPY_AND_ASSIGN(CefMenuManager);
 | 
						|
};
 | 
						|
 | 
						|
#endif  // CEF_LIBCEF_BROWSER_MENU_MANAGER_H_
 |