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

Side by Side Diff: ash/wm/panels/panel_window_resizer.h

Issue 13896026: Stick windows to sides of workspaces (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Dock with zero width (comments on unit tests) Created 7 years, 6 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
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 ASH_WM_PANELS_PANEL_WINDOW_RESIZER_H_ 5 #ifndef ASH_WM_PANELS_PANEL_WINDOW_RESIZER_H_
6 #define ASH_WM_PANELS_PANEL_WINDOW_RESIZER_H_ 6 #define ASH_WM_PANELS_PANEL_WINDOW_RESIZER_H_
7 7
8 #include "ash/wm/window_resizer.h" 8 #include "ash/wm/window_resizer.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 10
(...skipping 12 matching lines...) Expand all
23 virtual ~PanelWindowResizer(); 23 virtual ~PanelWindowResizer();
24 24
25 // Creates a new PanelWindowResizer. The caller takes ownership of the 25 // Creates a new PanelWindowResizer. The caller takes ownership of the
26 // returned object. The ownership of |next_window_resizer| is taken by the 26 // returned object. The ownership of |next_window_resizer| is taken by the
27 // returned object. Returns NULL if not resizable. 27 // returned object. Returns NULL if not resizable.
28 static PanelWindowResizer* Create(WindowResizer* next_window_resizer, 28 static PanelWindowResizer* Create(WindowResizer* next_window_resizer,
29 aura::Window* window, 29 aura::Window* window,
30 const gfx::Point& location, 30 const gfx::Point& location,
31 int window_component); 31 int window_component);
32 32
33 // WindowResizer overides: 33 // WindowResizer:
34 virtual void Drag(const gfx::Point& location, int event_flags) OVERRIDE; 34 virtual void Drag(const gfx::Point& location, int event_flags) OVERRIDE;
35 virtual void CompleteDrag(int event_flags) OVERRIDE; 35 virtual void CompleteDrag(int event_flags) OVERRIDE;
36 virtual void RevertDrag() OVERRIDE; 36 virtual void RevertDrag() OVERRIDE;
37 virtual aura::Window* GetTarget() OVERRIDE; 37 virtual aura::Window* GetTarget() OVERRIDE;
38 38
39 const gfx::Point& GetInitialLocationInParentForTest() const { 39 private:
40 return details_.initial_location_in_parent; 40 // WindowResizer:
41 } 41 virtual const gfx::Point& GetInitialLocationForTest() const OVERRIDE;
flackr 2013/06/17 18:49:42 protected
varkha 2013/06/17 19:05:36 Done.
42 42
43 private:
44 // Creates PanelWindowResizer that adds the ability to attach / detach panel 43 // Creates PanelWindowResizer that adds the ability to attach / detach panel
45 // windows as well as reparenting them to the panel layer while dragging to 44 // windows as well as reparenting them to the panel layer while dragging to
46 // |next_window_resizer|. This object takes ownership of 45 // |next_window_resizer|. This object takes ownership of
47 // |next_window_resizer|. 46 // |next_window_resizer|.
48 PanelWindowResizer(WindowResizer* next_window_resizer, 47 PanelWindowResizer(WindowResizer* next_window_resizer,
49 const Details& details); 48 const Details& details);
50 49
51 // Checks if the provided window bounds should attach to the launcher. If true 50 // Checks if the provided window bounds should attach to the launcher. If true
52 // the offset gives the necessary adjustment to snap to the launcher. 51 // the offset gives the necessary adjustment to snap to the launcher.
53 bool AttachToLauncher(const gfx::Rect& bounds, gfx::Point* offset); 52 bool AttachToLauncher(const gfx::Rect& bounds, gfx::Point* offset);
54 53
55 // Tracks the panel's initial position and attachment at the start of a drag 54 // Tracks the panel's initial position and attachment at the start of a drag
56 // and informs the PanelLayoutManager that a drag has started if necessary. 55 // and informs the PanelLayoutManager that a drag has started if necessary.
57 void StartedDragging(); 56 void StartedDragging();
58 57
59 // Informs the PanelLayoutManager that the drag is complete if it was informed 58 // Informs the PanelLayoutManager that the drag is complete if it was informed
60 // of the drag start. 59 // of the drag start.
61 void FinishDragging(); 60 void FinishDragging();
62 61
63 // Updates the dragged panel's index in the launcher. 62 // Updates the dragged panel's index in the launcher.
64 void UpdateLauncherPosition(); 63 void UpdateLauncherPosition();
65 64
66 const Details details_; 65 const Details details_;
67 66
67 gfx::Point last_location_;
68
68 // Wraps a window resizer and adds panel detaching / reattaching and snapping 69 // Wraps a window resizer and adds panel detaching / reattaching and snapping
69 // to launcher behavior during drags. 70 // to launcher behavior during drags.
70 scoped_ptr<WindowResizer> next_window_resizer_; 71 scoped_ptr<WindowResizer> next_window_resizer_;
71 72
72 // Panel container window. 73 // Panel container window.
73 aura::Window* panel_container_; 74 aura::Window* panel_container_;
74 75
75 // Set to true once Drag() is invoked and the bounds of the window change. 76 // Set to true once Drag() is invoked and the bounds of the window change.
76 bool did_move_or_resize_; 77 bool did_move_or_resize_;
77 78
78 // True if the window started attached to the launcher. 79 // True if the window started attached to the launcher.
79 const bool was_attached_; 80 const bool was_attached_;
80 81
81 // True if the window should attach to the launcher after releasing. 82 // True if the window should attach to the launcher after releasing.
82 bool should_attach_; 83 bool should_attach_;
83 84
84 // If non-NULL the destructor sets this to true. Used to determine if this has 85 // If non-NULL the destructor sets this to true. Used to determine if this has
85 // been deleted. 86 // been deleted.
86 bool* destroyed_; 87 bool* destroyed_;
87 88
88 DISALLOW_COPY_AND_ASSIGN(PanelWindowResizer); 89 DISALLOW_COPY_AND_ASSIGN(PanelWindowResizer);
89 }; 90 };
90 91
91 } // namespace aura 92 } // namespace ash
92 93
93 #endif // ASH_WM_PANELS_PANEL_WINDOW_RESIZER_H_ 94 #endif // ASH_WM_PANELS_PANEL_WINDOW_RESIZER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698