// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_VIEWS_ANIMATION_INK_DROP_HOST_H_ #define UI_VIEWS_ANIMATION_INK_DROP_HOST_H_ #include <memory> #include "base/memory/raw_ptr.h" #include "third_party/abseil-cpp/absl/types/variant.h" #include "third_party/skia/include/core/SkColor.h" #include "ui/color/color_id.h" #include "ui/color/color_provider.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/size.h" #include "ui/views/animation/ink_drop_event_handler.h" #include "ui/views/metadata/view_factory.h" #include "ui/views/view.h" namespace ui { class Layer; class LocatedEvent; } // namespace ui namespace views { class InkDrop; class InkDropHighlight; class InkDropImpl; class InkDropMask; class InkDropRipple; enum class InkDropState; namespace test { class InkDropHostTestApi; } // namespace test // TODO(crbug.com/40613900): Rename this type and move this header. Also // consider if InkDropHost should be what implements the InkDrop interface and // have that be the public interface. The current division of labor is roughly // as follows: // * InkDropHost manages an InkDrop and is responsible for a lot of its // configuration and creating the parts of the InkDrop. // * InkDrop manages the parts of the ink-drop effect once it's up and running. // * InkDropRipple is a ripple effect that usually triggers as a result of // clicking or activating the button / similar which hosts this. // * InkDropHighlight manages the hover/focus highlight layer. // TODO(pbos): See if this can be the only externally visible surface for an // ink-drop effect, and rename this InkDrop, or consolidate with InkDrop. class VIEWS_EXPORT InkDropHost { … }; } // namespace views #endif // UI_VIEWS_ANIMATION_INK_DROP_HOST_H_