| Index: chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h
|
| diff --git a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h b/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h
|
| deleted file mode 100644
|
| index 1845cacdd1e679199024e3f5d65c6d2318e63891..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/gtk/tabs/dragged_tab_controller_gtk.h
|
| +++ /dev/null
|
| @@ -1,269 +0,0 @@
|
| -// Copyright (c) 2012 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 CHROME_BROWSER_UI_GTK_TABS_DRAGGED_TAB_CONTROLLER_GTK_H_
|
| -#define CHROME_BROWSER_UI_GTK_TABS_DRAGGED_TAB_CONTROLLER_GTK_H_
|
| -
|
| -#include <gtk/gtk.h>
|
| -
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/compiler_specific.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/timer/timer.h"
|
| -#include "chrome/browser/ui/gtk/tabs/drag_data.h"
|
| -#include "content/public/browser/notification_observer.h"
|
| -#include "content/public/browser/notification_registrar.h"
|
| -#include "content/public/browser/web_contents_delegate.h"
|
| -#include "ui/base/x/x11_util.h"
|
| -
|
| -class DraggedViewGtk;
|
| -class TabGtk;
|
| -class TabStripGtk;
|
| -class TabStripModel;
|
| -
|
| -class DraggedTabControllerGtk : public content::NotificationObserver,
|
| - public content::WebContentsDelegate {
|
| - public:
|
| - // |source_tabstrip| is the tabstrip where the tabs reside before any
|
| - // dragging occurs. |source_tab| is the tab that is under the mouse pointer
|
| - // when dragging starts, it also becomes the active tab if not active
|
| - // already. |tabs| contains all the selected tabs when dragging starts.
|
| - DraggedTabControllerGtk(TabStripGtk* source_tabstrip, TabGtk* source_tab,
|
| - const std::vector<TabGtk*>& tabs);
|
| - virtual ~DraggedTabControllerGtk();
|
| -
|
| - // Capture information needed to be used during a drag session for this
|
| - // controller's associated source Tab and TabStrip. |mouse_offset| is the
|
| - // distance of the mouse pointer from the Tab's origin.
|
| - void CaptureDragInfo(const gfx::Point& mouse_offset);
|
| -
|
| - // Responds to drag events subsequent to StartDrag. If the mouse moves a
|
| - // sufficient distance before the mouse is released, a drag session is
|
| - // initiated.
|
| - void Drag();
|
| -
|
| - // Complete the current drag session. If the drag session was canceled
|
| - // because the user pressed Escape or something interrupted it, |canceled|
|
| - // is true so the helper can revert the state to the world before the drag
|
| - // begun. Returns whether the tab has been destroyed.
|
| - bool EndDrag(bool canceled);
|
| -
|
| - // Retrieve the tab that corresponds to |contents| if it is being dragged by
|
| - // this controller, or NULL if |contents| does not correspond to any tab
|
| - // being dragged.
|
| - TabGtk* GetDraggedTabForContents(content::WebContents* contents);
|
| -
|
| - // Returns true if |tab| matches any tab being dragged.
|
| - bool IsDraggingTab(const TabGtk* tab);
|
| -
|
| - // Returns true if |web_contents| matches any tab contents being dragged.
|
| - bool IsDraggingWebContents(const content::WebContents* web_contents);
|
| -
|
| - // Returns true if the specified tab is detached.
|
| - bool IsTabDetached(const TabGtk* tab);
|
| -
|
| - private:
|
| - // Enumeration of the ways a drag session can end.
|
| - enum EndDragType {
|
| - // Drag session exited normally: the user released the mouse.
|
| - NORMAL,
|
| -
|
| - // The drag session was canceled (alt-tab during drag, escape ...)
|
| - CANCELED,
|
| -
|
| - // The tab (NavigationController) was destroyed during the drag.
|
| - TAB_DESTROYED
|
| - };
|
| -
|
| - DraggedTabData InitDraggedTabData(TabGtk* tab);
|
| -
|
| - // Overridden from content::WebContentsDelegate:
|
| - virtual content::WebContents* OpenURLFromTab(
|
| - content::WebContents* source,
|
| - const content::OpenURLParams& params) OVERRIDE;
|
| - virtual void NavigationStateChanged(const content::WebContents* source,
|
| - unsigned changed_flags) OVERRIDE;
|
| - virtual void AddNewContents(content::WebContents* source,
|
| - content::WebContents* new_contents,
|
| - WindowOpenDisposition disposition,
|
| - const gfx::Rect& initial_pos,
|
| - bool user_gesture,
|
| - bool* was_blocked) OVERRIDE;
|
| - virtual void LoadingStateChanged(content::WebContents* source,
|
| - bool to_different_document) OVERRIDE;
|
| - virtual content::JavaScriptDialogManager*
|
| - GetJavaScriptDialogManager() OVERRIDE;
|
| - virtual void RequestMediaAccessPermission(
|
| - content::WebContents* web_contents,
|
| - const content::MediaStreamRequest& request,
|
| - const content::MediaResponseCallback& callback) OVERRIDE;
|
| -
|
| - // Overridden from content::NotificationObserver:
|
| - virtual void Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) OVERRIDE;
|
| -
|
| - // Returns the point where a detached window should be created given the
|
| - // current mouse position.
|
| - gfx::Point GetWindowCreatePoint() const;
|
| -
|
| - // Move the DraggedTabView according to the current mouse screen position,
|
| - // potentially updating the source and other TabStrips.
|
| - void ContinueDragging();
|
| -
|
| - // Handles dragging tabs while the tabs are attached.
|
| - void MoveAttached(const gfx::Point& screen_point);
|
| -
|
| - // Handles dragging while the tabs are detached.
|
| - void MoveDetached(const gfx::Point& screen_point);
|
| -
|
| - // Selects the dragged tabs within |model|.
|
| - void RestoreSelection(TabStripModel* model);
|
| -
|
| - // Returns the compatible TabStrip that is under the specified point (screen
|
| - // coordinates), or NULL if there is none.
|
| - TabStripGtk* GetTabStripForPoint(const gfx::Point& screen_point);
|
| -
|
| - // Returns the specified |tabstrip| if it contains the specified point
|
| - // (screen coordinates), NULL if it does not.
|
| - TabStripGtk* GetTabStripIfItContains(TabStripGtk* tabstrip,
|
| - const gfx::Point& screen_point) const;
|
| -
|
| - // Attach the dragged Tab to the specified TabStrip.
|
| - void Attach(TabStripGtk* attached_tabstrip, const gfx::Point& screen_point);
|
| -
|
| - // Detach the dragged Tab from the current TabStrip.
|
| - void Detach();
|
| -
|
| - // Converts a screen point to a point relative to the tab strip.
|
| - gfx::Point ConvertScreenPointToTabStripPoint(TabStripGtk* tabstrip,
|
| - const gfx::Point& screen_point);
|
| -
|
| - // Retrieve the bounds of the DraggedTabGtk, relative to the attached
|
| - // TabStrip, given location of the dragged tab in screen coordinates.
|
| - gfx::Rect GetDraggedViewTabStripBounds(const gfx::Point& screen_point);
|
| -
|
| - // Returns the index where the dragged WebContents should be inserted into
|
| - // the attached TabStripModel given the DraggedTabView's bounds
|
| - // |dragged_bounds| in coordinates relative to the attached TabStrip.
|
| - int GetInsertionIndexForDraggedBounds(const gfx::Rect& dragged_bounds);
|
| -
|
| - // Get the position of the dragged view relative to the upper left corner of
|
| - // the screen. |screen_point| is the current position of mouse cursor.
|
| - gfx::Point GetDraggedViewPoint(const gfx::Point& screen_point);
|
| -
|
| - // Finds the Tab within the specified TabStrip that corresponds to the
|
| - // dragged WebContents.
|
| - TabGtk* GetTabMatchingDraggedContents(TabStripGtk* tabstrip,
|
| - content::WebContents* contents);
|
| -
|
| - // Finds all the tabs within the specified TabStrip that correspond to the
|
| - // dragged WebContents.
|
| - std::vector<TabGtk*> GetTabsMatchingDraggedContents(TabStripGtk* tabstrip);
|
| -
|
| - // Sets the visible and draggging property of all dragged tabs. If |repaint|
|
| - // is true it also schedules a repaint.
|
| - void SetDraggedTabsVisible(bool visible, bool repaint);
|
| -
|
| - // Does the work for EndDrag. Returns whether the tab has been destroyed.
|
| - bool EndDragImpl(EndDragType how_end);
|
| -
|
| - // If the drag was aborted for some reason, this function is called to un-do
|
| - // the changes made during the drag operation.
|
| - void RevertDrag();
|
| -
|
| - // Finishes the drag operation. Returns true if the drag controller should
|
| - // be destroyed immediately, false otherwise.
|
| - bool CompleteDrag();
|
| -
|
| - // Resets the delegates of the WebContents.
|
| - void ResetDelegates();
|
| -
|
| - // Create the DraggedViewGtk if it does not yet exist.
|
| - void EnsureDraggedView();
|
| -
|
| - // Gets the bounds to animate the dragged view when dragging is over.
|
| - gfx::Rect GetAnimateBounds();
|
| -
|
| - // Utility to convert the specified TabStripModel index to something valid
|
| - // for the attached TabStrip.
|
| - int NormalizeIndexToAttachedTabStrip(int index) const;
|
| -
|
| - // Hides the window that contains the tab strip the current drag session was
|
| - // initiated from.
|
| - void HideWindow();
|
| -
|
| - // Presents the window that was hidden by HideWindow.
|
| - void ShowWindow();
|
| -
|
| - // Closes a hidden frame at the end of a drag session.
|
| - void CleanUpHiddenFrame();
|
| -
|
| - // Cleans up all the dragged tabs when they are no longer used.
|
| - void CleanUpDraggedTabs();
|
| -
|
| - // Completes the drag session after the view has animated to its final
|
| - // position.
|
| - void OnAnimateToBoundsComplete();
|
| -
|
| - // Activates whichever window is under the mouse.
|
| - void BringWindowUnderMouseToFront();
|
| -
|
| - // Returns true if the tabs were originally one after the other in
|
| - // |source_tabstrip_|.
|
| - bool AreTabsConsecutive();
|
| -
|
| - // Returns the NativeWindow at the specified point, not including the window
|
| - // being dragged.
|
| - gfx::NativeWindow GetLocalProcessWindow(const gfx::Point& screen_point);
|
| -
|
| - // Handles registering for notifications.
|
| - content::NotificationRegistrar registrar_;
|
| -
|
| - // The tab strip |source_tab_| originated from.
|
| - TabStripGtk* source_tabstrip_;
|
| -
|
| - // Holds various data for each dragged tab needed to handle dragging.
|
| - scoped_ptr<DragData> drag_data_;
|
| -
|
| - // The TabStrip the dragged Tab is currently attached to, or NULL if the
|
| - // dragged Tab is detached.
|
| - TabStripGtk* attached_tabstrip_;
|
| -
|
| - // The visual representation of all the dragged tabs.
|
| - scoped_ptr<DraggedViewGtk> dragged_view_;
|
| -
|
| - // The position of the mouse (in screen coordinates) at the start of the drag
|
| - // operation. This is used to calculate minimum elasticity before a
|
| - // DraggedTabView is constructed.
|
| - gfx::Point start_screen_point_;
|
| -
|
| - // This is the offset of the mouse from the top left of the Tab where
|
| - // dragging begun. This is used to ensure that the dragged view is always
|
| - // positioned at the correct location during the drag, and to ensure that the
|
| - // detached window is created at the right location.
|
| - gfx::Point mouse_offset_;
|
| -
|
| - // Whether we're in the destructor or not. Makes sure we don't destroy the
|
| - // drag controller more than once.
|
| - bool in_destructor_;
|
| -
|
| - // The horizontal position of the mouse cursor in screen coordinates at the
|
| - // time of the last re-order event.
|
| - int last_move_screen_x_;
|
| -
|
| - // True until |MoveAttached| is invoked once.
|
| - bool initial_move_;
|
| -
|
| - // Timer used to bring the window under the cursor to front. If the user
|
| - // stops moving the mouse for a brief time over a browser window, it is
|
| - // brought to front.
|
| - base::OneShotTimer<DraggedTabControllerGtk> bring_to_front_timer_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DraggedTabControllerGtk);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_UI_GTK_TABS_DRAGGED_TAB_CONTROLLER_GTK_H_
|
|
|