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

Unified Diff: chrome/browser/ui/panels/docked_panel_strip.cc

Issue 9403035: Refactor intra-strip panel drags by introducing PanelDragController. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 years, 10 months 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: chrome/browser/ui/panels/docked_panel_strip.cc
diff --git a/chrome/browser/ui/panels/docked_panel_strip.cc b/chrome/browser/ui/panels/docked_panel_strip.cc
index 40fbb2599e92b3b74cc5e7630a17c0b283e1fa67..9e3fcbea43f0acb8f41970b892203ae360b0c396 100644
--- a/chrome/browser/ui/panels/docked_panel_strip.cc
+++ b/chrome/browser/ui/panels/docked_panel_strip.cc
@@ -183,7 +183,6 @@ void DockedPanelStrip::AddPanel(Panel* panel) {
// Set panel properties for this strip.
panel->SetAppIconVisibility(true);
- panel->set_draggable(!panel->has_temporary_layout());
panel->ApplyVisualStyleForStrip();
if (panel->has_temporary_layout())
@@ -252,7 +251,14 @@ bool DockedPanelStrip::DoRemove(Panel* panel) {
return true;
}
-void DockedPanelStrip::StartDragging(Panel* panel) {
+bool DockedPanelStrip::CanDragPanel(Panel* panel) const {
+ // Only the panels having temporary layout can't be dragged.
+ return !panel->has_temporary_layout();
+}
+
+void DockedPanelStrip::StartDraggingPanel(Panel* panel) {
+ DCHECK(!dragging_panel_);
+
dragging_panel_iterator_ = find(panels_.begin(), panels_.end(), panel);
DCHECK(dragging_panel_iterator_ != panels_.end());
@@ -261,7 +267,7 @@ void DockedPanelStrip::StartDragging(Panel* panel) {
dragging_panel_original_x_ = dragging_panel_bounds_.x();
}
-void DockedPanelStrip::Drag(int delta_x) {
+void DockedPanelStrip::DragPanel(int delta_x, int delta_y) {
DCHECK(dragging_panel_);
if (!delta_x)
@@ -356,11 +362,11 @@ void DockedPanelStrip::DragRight() {
dragging_panel_bounds_.set_x(current_panel_left_boundary);
}
-void DockedPanelStrip::EndDragging(bool cancelled) {
+void DockedPanelStrip::EndDraggingPanel(bool cancelled) {
DCHECK(dragging_panel_);
if (cancelled)
- Drag(dragging_panel_original_x_ - dragging_panel_->GetBounds().x());
+ DragPanel(dragging_panel_original_x_ - dragging_panel_->GetBounds().x(), 0);
else
dragging_panel_->SetPanelBounds(dragging_panel_bounds_);

Powered by Google App Engine
This is Rietveld 408576698