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

Side by Side Diff: chrome/browser/ui/panels/panel_strip.h

Issue 8827011: Panel strip refactor cleanup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix mac/linux compile Created 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_PANELS_PANEL_STRIP_H_ 5 #ifndef CHROME_BROWSER_UI_PANELS_PANEL_STRIP_H_
6 #define CHROME_BROWSER_UI_PANELS_PANEL_STRIP_H_ 6 #define CHROME_BROWSER_UI_PANELS_PANEL_STRIP_H_
7 #pragma once 7 #pragma once
8 8
9 #include <vector> 9 #include <vector>
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 int GetMaxPanelWidth() const; 75 int GetMaxPanelWidth() const;
76 int GetMaxPanelHeight() const; 76 int GetMaxPanelHeight() const;
77 int StartingRightPosition() const; 77 int StartingRightPosition() const;
78 78
79 void OnAutoHidingDesktopBarVisibilityChanged( 79 void OnAutoHidingDesktopBarVisibilityChanged(
80 AutoHidingDesktopBar::Alignment alignment, 80 AutoHidingDesktopBar::Alignment alignment,
81 AutoHidingDesktopBar::Visibility visibility); 81 AutoHidingDesktopBar::Visibility visibility);
82 82
83 void OnFullScreenModeChanged(bool is_full_screen); 83 void OnFullScreenModeChanged(bool is_full_screen);
84 84
85 #ifdef UNIT_TEST
86 static int horizontal_spacing() { return kPanelsHorizontalSpacing; }
87
88 void remove_delays_for_testing() {
89 remove_delays_for_testing_ = true;
90 }
91
92 int minimized_panel_count() {
93 return minimized_panel_count_;
94 }
95 #endif
96
97 private: 85 private:
98 enum TitlebarAction { 86 enum TitlebarAction {
99 NO_ACTION, 87 NO_ACTION,
100 BRING_UP, 88 BRING_UP,
101 BRING_DOWN 89 BRING_DOWN
102 }; 90 };
103 91
104 // Overridden from PanelMouseWatcherObserver: 92 // Overridden from PanelMouseWatcherObserver:
105 virtual void OnMouseMove(const gfx::Point& mouse_position) OVERRIDE; 93 virtual void OnMouseMove(const gfx::Point& mouse_position) OVERRIDE;
106 94
(...skipping 20 matching lines...) Expand all
127 void DragRight(); 115 void DragRight();
128 116
129 // Does the real job of bringing up or down the titlebars. 117 // Does the real job of bringing up or down the titlebars.
130 void DoBringUpOrDownTitlebars(bool bring_up); 118 void DoBringUpOrDownTitlebars(bool bring_up);
131 // The callback for a delyed task, checks if it still need to perform 119 // The callback for a delyed task, checks if it still need to perform
132 // the delayed action. 120 // the delayed action.
133 void DelayedBringUpOrDownTitlebarsCheck(); 121 void DelayedBringUpOrDownTitlebarsCheck();
134 122
135 int GetRightMostAvailablePosition() const; 123 int GetRightMostAvailablePosition() const;
136 124
137 // Moves the panel from the panel strip to the overflow area because 125 // Called by AddPanel() after a delay to move a newly created panel from
138 // the panel will not fit within the bounds of the panel strip. 126 // the panel strip to the overflow area because the panel could not fit
jianli 2011/12/07 22:13:26 overflow area => overflow strip
139 // Overflow may occur when new panels are added, the bounds of the strip 127 // within the bounds of the panel strip. New panels are first displayed
140 // changes, a panel's size grows, a panel is moved from overflow into 128 // in the panel strip, even if it would overflow, then moved to the overflow
jianli 2011/12/07 22:13:26 Can you remove "even if it would overflow" since i
jennb 2011/12/07 23:35:40 Reworded comment.
141 // the strip, etc. 129 // area so that all created panels are (at least briefly) visible to the user
142 void MovePanelToOverflow(Panel* panel, bool is_new); 130 // before entering overflow.
143 131 void MovePanelToOverflowAfterDelay(Panel* panel);
jianli 2011/12/07 22:13:26 DelayedMovePanelToOverflow?
jennb 2011/12/07 23:35:40 Done.
144 // Moves panels to the overflow area, starting from the last panel.
145 // |overflow_point| is the index of the first panel to oveflow.
146 void MovePanelsToOverflow(size_t overflow_point);
147
148 // Adds zero or more panels from overflow as will fit in the panel strip.
149 void MovePanelsFromOverflowIfNeeded();
150 132
151 PanelManager* panel_manager_; // Weak, owns us. 133 PanelManager* panel_manager_; // Weak, owns us.
152 134
153 // All panels in the panel strip must fit within this area. 135 // All panels in the panel strip must fit within this area.
154 gfx::Rect display_area_; 136 gfx::Rect display_area_;
155 137
156 Panels panels_; 138 Panels panels_;
157 139
158 // Stores the panels that are pending to remove. We want to delay the removal 140 // Stores the panels that are pending to remove. We want to delay the removal
159 // when we're in the process of the dragging. 141 // when we're in the process of the dragging.
(...skipping 10 matching lines...) Expand all
170 int dragging_panel_original_x_; 152 int dragging_panel_original_x_;
171 153
172 // Bounds of the panel to drag. It is first set to the original bounds when 154 // Bounds of the panel to drag. It is first set to the original bounds when
173 // the dragging happens. Then it is updated to the position that will be set 155 // the dragging happens. Then it is updated to the position that will be set
174 // to when the dragging ends. 156 // to when the dragging ends.
175 gfx::Rect dragging_panel_bounds_; 157 gfx::Rect dragging_panel_bounds_;
176 158
177 // Delayed transitions support. Sometimes transitions between minimized and 159 // Delayed transitions support. Sometimes transitions between minimized and
178 // title-only states are delayed, for better usability with Taskbars/Docks. 160 // title-only states are delayed, for better usability with Taskbars/Docks.
179 TitlebarAction delayed_titlebar_action_; 161 TitlebarAction delayed_titlebar_action_;
180 bool remove_delays_for_testing_; 162
181 // Owned by MessageLoop after posting. 163 // Owned by MessageLoop after posting.
182 base::WeakPtrFactory<PanelStrip> titlebar_action_factory_; 164 base::WeakPtrFactory<PanelStrip> titlebar_action_factory_;
183 165
184 static const int kPanelsHorizontalSpacing = 4; 166 static const int kPanelsHorizontalSpacing = 4;
185 167
186 // Absolute minimum width and height for panels, including non-client area. 168 // Absolute minimum width and height for panels, including non-client area.
187 // Should only be big enough to accomodate a close button on the reasonably 169 // Should only be big enough to accomodate a close button on the reasonably
188 // recognisable titlebar. 170 // recognisable titlebar.
189 static const int kPanelMinWidth; 171 static const int kPanelMinWidth;
190 static const int kPanelMinHeight; 172 static const int kPanelMinHeight;
191 173
192 DISALLOW_COPY_AND_ASSIGN(PanelStrip); 174 DISALLOW_COPY_AND_ASSIGN(PanelStrip);
193 }; 175 };
194 176
195 #endif // CHROME_BROWSER_UI_PANELS_PANEL_STRIP_H_ 177 #endif // CHROME_BROWSER_UI_PANELS_PANEL_STRIP_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698