Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(975)

Unified Diff: ui/views/view.cc

Issue 1411833006: Refactoring to make adding ink drop animations easier (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactor ink drop animations (moved ACTION_PENDING handling to toolbar_action_view for now) Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/views/view.cc
diff --git a/ui/views/view.cc b/ui/views/view.cc
index 0fc755972d6d57de055a7ea9d31fa11733eaf13b..6d94258797a3c46b7f86f669f76064581f83a73c 100644
--- a/ui/views/view.cc
+++ b/ui/views/view.cc
@@ -39,6 +39,7 @@
#include "ui/gfx/transform.h"
#include "ui/native_theme/native_theme.h"
#include "ui/views/accessibility/native_view_accessibility.h"
+#include "ui/views/animation/ink_drop_delegate.h"
#include "ui/views/background.h"
#include "ui/views/border.h"
#include "ui/views/context_menu_controller.h"
@@ -81,6 +82,28 @@ const View* GetHierarchyRoot(const View* view) {
return root;
}
+// A stub InkDropDelegate implementation that always exists and does nothing.
+// A real InkDropDelegate descendant can be returned by a View's descendant via
+// GetInkDropDelegate().
+class InkDropDelegateStub : public InkDropDelegate {
+ public:
+ InkDropDelegateStub() {}
+ ~InkDropDelegateStub() override {}
+
+ // InkDropDelegate:
+ void SetInkDropSize(int large_size,
+ int large_corner_radius,
+ int small_size,
+ int small_corner_radius) override {}
+ void OnLayout() override {}
+ void OnAction(InkDropState state) override {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(InkDropDelegateStub);
+};
+
+static InkDropDelegateStub ink_drop_delegate_stub;
+
} // namespace
// static
@@ -518,6 +541,8 @@ void View::Layout() {
child->Layout();
}
}
+
+ GetInkDropDelegate()->OnLayout();
}
void View::InvalidateLayout() {
@@ -1254,6 +1279,7 @@ int View::OnPerformDrop(const ui::DropTargetEvent& event) {
}
void View::OnDragDone() {
+ GetInkDropDelegate()->OnAction(InkDropState::HIDDEN);
}
// static
@@ -1519,6 +1545,12 @@ void View::ReorderChildLayers(ui::Layer* parent_layer) {
}
}
+// Animations ----------------------------------------------------------------
+
+InkDropDelegate* View::GetInkDropDelegate() const {
+ return &ink_drop_delegate_stub;
+}
+
// Input -----------------------------------------------------------------------
View::DragInfo* View::GetDragInfo() {
« ui/events/scoped_target_handler.cc ('K') | « ui/views/view.h ('k') | ui/views/views.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698