// Copyright 2020 The Chromium 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 ASH_SHELF_IN_APP_TO_HOME_NUDGE_CONTROLLER_H_ #define ASH_SHELF_IN_APP_TO_HOME_NUDGE_CONTROLLER_H_ #include "ash/ash_export.h" namespace ash { class ShelfWidget; // Used by Chrome to notify shelf status changes and update in app to home // gesture contextual nudge UI. class ASH_EXPORT InAppToHomeNudgeController { public: explicit InAppToHomeNudgeController(ShelfWidget* shelf_widget); InAppToHomeNudgeController(const InAppToHomeNudgeController&) = delete; InAppToHomeNudgeController& operator=(const InAppToHomeNudgeController&) = delete; ~InAppToHomeNudgeController(); // Sets whether the in app to home nudge can be shown for the current shelf // state. If the nudge is allowed, controller may show the nudge if required. // If the nudge is not allowed, the nudge will be hidden if currently visible. void SetNudgeAllowedForCurrentShelf(bool in_tablet_mode, bool in_app_shelf, bool shelf_controls_visible); private: // pointer to the shelf widget that owns the drag handle anchoring the nudge. ShelfWidget* const shelf_widget_; }; } // namespace ash #endif // ASH_SHELF_IN_APP_TO_HOME_NUDGE_CONTROLLER_H_