 22970f573b
			
		
	
	
	
	
	22970f573b* refactor: use base::flat_map in ElectronMenuModel * refactor: use base::flat_map in BuildSubmenuFromModel() * refactor: use base::flat_map in GetDialogsMap() * refactor: use base::flat_map in DesktopCapturer * refactor: use base::flat_map, flat_set in ElectronBrowserClient * refactor: use base::flat_map in ProxyingURLLoaderFactory * refactor: use base::flat_map in MapToCommonId() * refactor: use base::flat_map for g_map_id * refactor: use base::flat_map for ViewsDelegate::AppbarAutohideEdgeMap * refactor: use base::flat_map for App::app_metrics_ * refactor: use base::flat_map for PowerSaveBlocker::wake_lock_types_ * refactor: use base::flat_map for NativeImage::hicons_ * refactor: use base::flat_map for MenuViews::menu_runners_ * refactor: use base::flat_map for WebViewManager::web_contents_embedder_map_ * refactor: use base::flat_map for InspectableWebContents::extensions_api_ * refactor: use base::flat_set for libnotify GetServerCapabilities() * refactor: use base::flat_set for InspectableWebContents::loaders_ * refactor: use base::flat_set for ElectronRendererClient::environments_ refactor: use base::flat_set for ElectronRendererClient::injected_frames_ * refactor: use base::flat_set for WebWorkerObserver::environments_
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2014 GitHub, Inc.
 | |
| // Use of this source code is governed by the MIT license that can be
 | |
| // found in the LICENSE file.
 | |
| 
 | |
| #ifndef ELECTRON_SHELL_BROWSER_API_ELECTRON_API_MENU_VIEWS_H_
 | |
| #define ELECTRON_SHELL_BROWSER_API_ELECTRON_API_MENU_VIEWS_H_
 | |
| 
 | |
| #include <memory>
 | |
| 
 | |
| #include "base/containers/flat_map.h"
 | |
| #include "base/memory/weak_ptr.h"
 | |
| #include "shell/browser/api/electron_api_menu.h"
 | |
| #include "ui/display/screen.h"
 | |
| #include "ui/views/controls/menu/menu_runner.h"
 | |
| 
 | |
| namespace electron::api {
 | |
| 
 | |
| class MenuViews : public Menu {
 | |
|  public:
 | |
|   explicit MenuViews(gin::Arguments* args);
 | |
|   ~MenuViews() override;
 | |
| 
 | |
|  protected:
 | |
|   void PopupAt(BaseWindow* window,
 | |
|                int x,
 | |
|                int y,
 | |
|                int positioning_item,
 | |
|                ui::MenuSourceType source_type,
 | |
|                base::OnceClosure callback) override;
 | |
|   void ClosePopupAt(int32_t window_id) override;
 | |
| 
 | |
|  private:
 | |
|   void OnClosed(int32_t window_id, base::OnceClosure callback);
 | |
| 
 | |
|   // window ID -> open context menu
 | |
|   base::flat_map<int32_t, std::unique_ptr<views::MenuRunner>> menu_runners_;
 | |
| 
 | |
|   base::WeakPtrFactory<MenuViews> weak_factory_{this};
 | |
| };
 | |
| 
 | |
| }  // namespace electron::api
 | |
| 
 | |
| #endif  // ELECTRON_SHELL_BROWSER_API_ELECTRON_API_MENU_VIEWS_H_
 |