app_list_controller_delegate.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1// Copyright 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_APP_LIST_APP_LIST_CONTROLLER_DELEGATE_H_ 6#define CHROME_BROWSER_UI_APP_LIST_APP_LIST_CONTROLLER_DELEGATE_H_ 7 8#include <string> 9 10#include "ui/gfx/native_widget_types.h" 11 12class Profile; 13 14namespace extensions { 15class Extension; 16} 17 18namespace gfx { 19class ImageSkia; 20} 21 22// Interface to allow the view delegate to call out to whatever is controlling 23// the app list. This will have different implementations for different 24// platforms. 25class AppListControllerDelegate { 26 public: 27 virtual ~AppListControllerDelegate(); 28 29 // Dismisses the view. 30 virtual void DismissView() = 0; 31 32 // Handle the view being closed. 33 virtual void ViewClosing(); 34 35 // Handle the view being activated or deactivated. 36 virtual void ViewActivationChanged(bool active); 37 38 // Get app list window. 39 virtual gfx::NativeWindow GetAppListWindow() = 0; 40 41 // Get the application icon to be used, if any, for the app list. 42 virtual gfx::ImageSkia GetWindowIcon(); 43 44 // Control of pinning apps. 45 virtual bool IsAppPinned(const std::string& extension_id); 46 virtual void PinApp(const std::string& extension_id); 47 virtual void UnpinApp(const std::string& extension_id); 48 virtual bool CanPin() = 0; 49 50 // Be aware of the extension prompt (either uninstalling flow or enable flow). 51 virtual void OnShowExtensionPrompt() {} 52 virtual void OnCloseExtensionPrompt() {} 53 54 // Whether the controller supports a Create Shortcuts flow. 55 virtual bool CanDoCreateShortcutsFlow(bool is_platform_app) = 0; 56 virtual void DoCreateShortcutsFlow(Profile* profile, 57 const std::string& extension_id); 58 59 // Handle the "create window" context menu items of Chrome App. 60 // |incognito| is true to create an incognito window. 61 virtual void CreateNewWindow(Profile* profile, bool incognito); 62 63 // Show the app's most recent window, or launch it if it is not running. 64 virtual void ActivateApp(Profile* profile, 65 const extensions::Extension* extension, 66 int event_flags) = 0; 67 68 // Launch the app. 69 virtual void LaunchApp(Profile* profile, 70 const extensions::Extension* extension, 71 int event_flags) = 0; 72 73 // Whether or not the icon indicating which user is logged in should be 74 // visible. 75 virtual bool ShouldShowUserIcon(); 76}; 77 78#endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_CONTROLLER_DELEGATE_H_ 79