| Index: chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.h
|
| diff --git a/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.h b/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.h
|
| index 5d54fda37c92e46bddc576560fffc30a1f824d73..888555026c7a3035e07793a05c1f0650ef68785e 100644
|
| --- a/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.h
|
| +++ b/chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.h
|
| @@ -5,8 +5,6 @@
|
| #ifndef CHROME_BROWSER_UI_ASH_LAUNCHER_APP_WINDOW_LAUNCHER_ITEM_CONTROLLER_H_
|
| #define CHROME_BROWSER_UI_ASH_LAUNCHER_APP_WINDOW_LAUNCHER_ITEM_CONTROLLER_H_
|
|
|
| -#include <stddef.h>
|
| -
|
| #include <list>
|
| #include <string>
|
|
|
| @@ -19,32 +17,26 @@ namespace aura {
|
| class Window;
|
| }
|
|
|
| -namespace extensions {
|
| -class AppWindow;
|
| +namespace ui {
|
| +class BaseWindow;
|
| }
|
|
|
| class ChromeLauncherController;
|
|
|
| -// This is a LauncherItemController for app windows. There is one instance per
|
| -// app, per launcher id. For apps with multiple windows, each item controller
|
| -// keeps track of all windows associated with the app and their activation
|
| -// order. Instances are owned by ash::ShelfItemDelegateManager.
|
| +// This is a LauncherItemController for abstract app windows. There is one
|
| +// instance per app, per launcher id. For apps with multiple windows, each item
|
| +// controller keeps track of all windows associated with the app and their
|
| +// activation order. Instances are owned by ash::ShelfItemDelegateManager.
|
| //
|
| // Tests are in chrome_launcher_controller_browsertest.cc
|
| class AppWindowLauncherItemController : public LauncherItemController,
|
| public aura::WindowObserver {
|
| public:
|
| - AppWindowLauncherItemController(Type type,
|
| - const std::string& app_shelf_id,
|
| - const std::string& app_id,
|
| - ChromeLauncherController* controller);
|
| -
|
| ~AppWindowLauncherItemController() override;
|
|
|
| - void AddAppWindow(extensions::AppWindow* app_window,
|
| - ash::ShelfItemStatus status);
|
| + void AddWindow(ui::BaseWindow* window);
|
|
|
| - void RemoveAppWindowForWindow(aura::Window* window);
|
| + void RemoveWindowForNativeWindow(aura::Window* window);
|
|
|
| void SetActiveWindow(aura::Window* window);
|
|
|
| @@ -60,7 +52,6 @@ class AppWindowLauncherItemController : public LauncherItemController,
|
| ash::ShelfItemDelegate::PerformedAction ItemSelected(
|
| const ui::Event& eent) override;
|
| base::string16 GetTitle() override;
|
| - ash::ShelfMenuModel* CreateApplicationMenu(int event_flags) override;
|
| bool IsDraggable() override;
|
| bool CanPin() const override;
|
| bool ShouldShowTooltip() override;
|
| @@ -72,31 +63,44 @@ class AppWindowLauncherItemController : public LauncherItemController,
|
| intptr_t old) override;
|
|
|
| // Get the number of running applications/incarnations of this.
|
| - size_t app_window_count() const { return app_windows_.size(); }
|
| + size_t window_count() const { return windows_.size(); }
|
|
|
| // Activates the window at position |index|.
|
| void ActivateIndexedApp(size_t index);
|
|
|
| - private:
|
| - typedef std::list<extensions::AppWindow*> AppWindowList;
|
| + protected:
|
| + using WindowList = std::list<ui::BaseWindow*>;
|
| +
|
| + AppWindowLauncherItemController(Type type,
|
| + const std::string& app_shelf_id,
|
| + const std::string& app_id,
|
| + ChromeLauncherController* controller);
|
| +
|
| + // Called when app window is removed from controller.
|
| + virtual void OnWindowRemoved(ui::BaseWindow* window) {}
|
|
|
| // Returns the action performed. Should be one of kNoAction,
|
| // kExistingWindowActivated, or kExistingWindowMinimized.
|
| ash::ShelfItemDelegate::PerformedAction ShowAndActivateOrMinimize(
|
| - extensions::AppWindow* app_window);
|
| + ui::BaseWindow* window);
|
|
|
| // Activate the given |window_to_show|, or - if already selected - advance to
|
| // the next window of similar type.
|
| // Returns the action performed. Should be one of kNoAction,
|
| // kExistingWindowActivated, or kExistingWindowMinimized.
|
| ash::ShelfItemDelegate::PerformedAction ActivateOrAdvanceToNextAppWindow(
|
| - extensions::AppWindow* window_to_show);
|
| + ui::BaseWindow* window_to_show);
|
| +
|
| + const WindowList& windows() { return windows_; }
|
| +
|
| + private:
|
| + WindowList::iterator GetFromNativeWindow(aura::Window* window);
|
|
|
| // List of associated app windows
|
| - AppWindowList app_windows_;
|
| + WindowList windows_;
|
|
|
| // Pointer to the most recently active app window
|
| - extensions::AppWindow* last_active_app_window_;
|
| + ui::BaseWindow* last_active_window_ = nullptr;
|
|
|
| // The launcher id associated with this set of windows. There is one
|
| // AppLauncherItemController for each |app_shelf_id_|.
|
|
|