// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_ASH_SHELF_LACROS_SHELF_ITEM_CONTROLLER_H_
#define CHROME_BROWSER_UI_ASH_SHELF_LACROS_SHELF_ITEM_CONTROLLER_H_
#include "ash/public/cpp/shelf_item_delegate.h"
#include "ash/public/cpp/shelf_model_observer.h"
#include "ash/public/cpp/shelf_types.h"
namespace aura {
class Window;
} // namespace aura
// This is a common base shelf item controller for windows that are owned by
// Lacros.
class LacrosShelfItemController : public ash::ShelfItemDelegate {
public:
explicit LacrosShelfItemController(const ash::ShelfID& shelf_id)
: ash::ShelfItemDelegate(shelf_id) {}
// This method is called by LacrosShelfItemTracker to hand off a window to the
// controller.
virtual void AddWindow(aura::Window* window) = 0;
// Shelf item must have a non-empty title for accessibility.
virtual std::u16string GetTitle() = 0;
};
#endif // CHROME_BROWSER_UI_ASH_SHELF_LACROS_SHELF_ITEM_CONTROLLER_H_