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

Side by Side Diff: chrome/browser/ui/views/tabs/tab_drag_controller.h

Issue 137993009: Remove more non-aura windows code. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: renable the disabled tests Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_H_
6 #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_H_ 6 #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 // Drag() is invoked as the mouse is dragged. If the mouse is dragged far enough 42 // Drag() is invoked as the mouse is dragged. If the mouse is dragged far enough
43 // TabDragController starts a drag session. The drag session is completed when 43 // TabDragController starts a drag session. The drag session is completed when
44 // EndDrag() is invoked (or the TabDragController is destroyed). 44 // EndDrag() is invoked (or the TabDragController is destroyed).
45 // 45 //
46 // While dragging within a tab strip TabDragController sets the bounds of the 46 // While dragging within a tab strip TabDragController sets the bounds of the
47 // tabs (this is referred to as attached). When the user drags far enough such 47 // tabs (this is referred to as attached). When the user drags far enough such
48 // that the tabs should be moved out of the tab strip two possible things 48 // that the tabs should be moved out of the tab strip two possible things
49 // can happen (this state is referred to as detached): 49 // can happen (this state is referred to as detached):
50 // . If |detach_into_browser_| is true then a new Browser is created and 50 // . If |detach_into_browser_| is true then a new Browser is created and
51 // RunMoveLoop() is invoked on the Widget to drag the browser around. This is 51 // RunMoveLoop() is invoked on the Widget to drag the browser around. This is
52 // the default on aura. 52 // the default on aura except in Metro mode on Win 8.
53 // . If |detach_into_browser_| is false a small representation of the active tab 53 // . If |detach_into_browser_| is false a small representation of the active tab
54 // is created and that is dragged around. This mode does not run a nested 54 // is created and that is dragged around. This mode does not run a nested
55 // message loop. 55 // message loop.
56 class TabDragController : public content::WebContentsDelegate, 56 class TabDragController : public content::WebContentsDelegate,
57 public content::NotificationObserver, 57 public content::NotificationObserver,
58 public base::MessageLoopForUI::Observer, 58 public base::MessageLoopForUI::Observer,
59 public views::WidgetObserver, 59 public views::WidgetObserver,
60 public TabStripModelObserver { 60 public TabStripModelObserver {
61 public: 61 public:
62 enum DetachBehavior { 62 enum DetachBehavior {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 107
108 // Returns true if there is a drag underway and the drag is attached to 108 // Returns true if there is a drag underway and the drag is attached to
109 // |tab_strip|. 109 // |tab_strip|.
110 // NOTE: this returns false if the TabDragController is in the process of 110 // NOTE: this returns false if the TabDragController is in the process of
111 // finishing the drag. 111 // finishing the drag.
112 static bool IsAttachedTo(const TabStrip* tab_strip); 112 static bool IsAttachedTo(const TabStrip* tab_strip);
113 113
114 // Returns true if there is a drag underway. 114 // Returns true if there is a drag underway.
115 static bool IsActive(); 115 static bool IsActive();
116 116
117 // Used to determine whether the tab drag controller detaches dragged tabs
118 // into new browser windows while the drag is in process.
119 static bool ShouldDetachIntoNewBrowser();
120
121 // Sets the move behavior. Has no effect if started_drag() is true. 117 // Sets the move behavior. Has no effect if started_drag() is true.
122 void SetMoveBehavior(MoveBehavior behavior); 118 void SetMoveBehavior(MoveBehavior behavior);
123 MoveBehavior move_behavior() const { return move_behavior_; } 119 MoveBehavior move_behavior() const { return move_behavior_; }
124 120
125 EventSource event_source() const { return event_source_; } 121 EventSource event_source() const { return event_source_; }
126 122
127 // See description above fields for details on these. 123 // See description above fields for details on these.
128 bool active() const { return active_; } 124 bool active() const { return active_; }
129 const TabStrip* attached_tabstrip() const { return attached_tabstrip_; } 125 const TabStrip* attached_tabstrip() const { return attached_tabstrip_; }
130 126
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 // See comment around use for more details. 651 // See comment around use for more details.
656 int attach_x_; 652 int attach_x_;
657 int attach_index_; 653 int attach_index_;
658 654
659 base::WeakPtrFactory<TabDragController> weak_factory_; 655 base::WeakPtrFactory<TabDragController> weak_factory_;
660 656
661 DISALLOW_COPY_AND_ASSIGN(TabDragController); 657 DISALLOW_COPY_AND_ASSIGN(TabDragController);
662 }; 658 };
663 659
664 #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_H_ 660 #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/tabs/dragged_tab_view.cc ('k') | chrome/browser/ui/views/tabs/tab_drag_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698