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

Side by Side Diff: chrome/browser/ui/panels/panel_browser_view.cc

Issue 7537030: Make panel adjust bounds per preferred size change notification on Windows. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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) 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 #include "chrome/browser/ui/panels/panel_browser_view.h" 5 #include "chrome/browser/ui/panels/panel_browser_view.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/ui/panels/panel.h" 8 #include "chrome/browser/ui/panels/panel.h"
9 #include "chrome/browser/ui/panels/panel_browser_frame_view.h" 9 #include "chrome/browser/ui/panels/panel_browser_frame_view.h"
10 #include "chrome/browser/ui/panels/panel_manager.h" 10 #include "chrome/browser/ui/panels/panel_manager.h"
(...skipping 19 matching lines...) Expand all
30 PanelBrowserView* view = new PanelBrowserView(browser, panel, bounds); 30 PanelBrowserView* view = new PanelBrowserView(browser, panel, bounds);
31 (new BrowserFrame(view))->InitBrowserFrame(); 31 (new BrowserFrame(view))->InitBrowserFrame();
32 return view; 32 return view;
33 } 33 }
34 34
35 PanelBrowserView::PanelBrowserView(Browser* browser, Panel* panel, 35 PanelBrowserView::PanelBrowserView(Browser* browser, Panel* panel,
36 const gfx::Rect& bounds) 36 const gfx::Rect& bounds)
37 : BrowserView(browser), 37 : BrowserView(browser),
38 panel_(panel), 38 panel_(panel),
39 bounds_(bounds), 39 bounds_(bounds),
40 original_height_(bounds.height()), 40 restored_height_(bounds.height()),
41 closed_(false), 41 closed_(false),
42 focused_(false), 42 focused_(false),
43 mouse_pressed_(false), 43 mouse_pressed_(false),
44 mouse_dragging_(false), 44 mouse_dragging_(false),
45 is_drawing_attention_(false) { 45 is_drawing_attention_(false) {
46 } 46 }
47 47
48 PanelBrowserView::~PanelBrowserView() { 48 PanelBrowserView::~PanelBrowserView() {
49 } 49 }
50 50
(...skipping 24 matching lines...) Expand all
75 75
76 bool PanelBrowserView::CanResize() const { 76 bool PanelBrowserView::CanResize() const {
77 return false; 77 return false;
78 } 78 }
79 79
80 bool PanelBrowserView::CanMaximize() const { 80 bool PanelBrowserView::CanMaximize() const {
81 return false; 81 return false;
82 } 82 }
83 83
84 void PanelBrowserView::SetBounds(const gfx::Rect& bounds) { 84 void PanelBrowserView::SetBounds(const gfx::Rect& bounds) {
85 if (bounds_ == bounds)
86 return;
85 bounds_ = bounds; 87 bounds_ = bounds;
86 88
89 if (panel_->expansion_state() == Panel::EXPANDED)
90 restored_height_ = bounds.height();
91
87 // No animation if the panel is being dragged. 92 // No animation if the panel is being dragged.
88 if (mouse_dragging_) { 93 if (mouse_dragging_) {
89 ::BrowserView::SetBounds(bounds); 94 ::BrowserView::SetBounds(bounds);
90 return; 95 return;
91 } 96 }
92 97
93 animation_start_bounds_ = GetBounds(); 98 animation_start_bounds_ = GetBounds();
94 99
95 if (!bounds_animator_.get()) { 100 if (!bounds_animator_.get()) {
96 bounds_animator_.reset(new ui::SlideAnimation(this)); 101 bounds_animator_.reset(new ui::SlideAnimation(this));
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 185
181 void PanelBrowserView::SetPanelBounds(const gfx::Rect& bounds) { 186 void PanelBrowserView::SetPanelBounds(const gfx::Rect& bounds) {
182 SetBounds(bounds); 187 SetBounds(bounds);
183 } 188 }
184 189
185 void PanelBrowserView::OnPanelExpansionStateChanged( 190 void PanelBrowserView::OnPanelExpansionStateChanged(
186 Panel::ExpansionState expansion_state) { 191 Panel::ExpansionState expansion_state) {
187 int height; 192 int height;
188 switch (expansion_state) { 193 switch (expansion_state) {
189 case Panel::EXPANDED: 194 case Panel::EXPANDED:
190 height = original_height_; 195 height = restored_height_;
191 break; 196 break;
192 case Panel::TITLE_ONLY: 197 case Panel::TITLE_ONLY:
193 height = GetFrameView()->NonClientTopBorderHeight(); 198 height = GetFrameView()->NonClientTopBorderHeight();
194 break; 199 break;
195 case Panel::MINIMIZED: 200 case Panel::MINIMIZED:
196 height = PanelBrowserFrameView::MinimizedPanelHeight(); 201 height = PanelBrowserFrameView::MinimizedPanelHeight();
197 202
198 // Start the mouse watcher so that we can bring up the minimized panels. 203 // Start the mouse watcher so that we can bring up the minimized panels.
199 // TODO(jianli): Need to support mouse watching in ChromeOS. 204 // TODO(jianli): Need to support mouse watching in ChromeOS.
200 #if defined(OS_WIN) 205 #if defined(OS_WIN)
201 EnsureMouseWatcherStarted(); 206 EnsureMouseWatcherStarted();
202 #endif 207 #endif
203 break; 208 break;
204 default: 209 default:
205 NOTREACHED(); 210 NOTREACHED();
206 height = original_height_; 211 height = restored_height_;
207 break; 212 break;
208 } 213 }
209 214
210 int bottom = panel_->manager()->GetBottomPositionForExpansionState( 215 int bottom = panel_->manager()->GetBottomPositionForExpansionState(
211 expansion_state); 216 expansion_state);
212 gfx::Rect bounds = bounds_; 217 gfx::Rect bounds = bounds_;
213 bounds.set_y(bottom - height); 218 bounds.set_y(bottom - height);
214 bounds.set_height(height); 219 bounds.set_height(height);
215 SetBounds(bounds); 220 SetBounds(bounds);
216 } 221 }
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 const NativeWebKeyboardEvent& event, 309 const NativeWebKeyboardEvent& event,
305 bool* is_keyboard_shortcut) { 310 bool* is_keyboard_shortcut) {
306 return PreHandleKeyboardEvent(event, is_keyboard_shortcut); 311 return PreHandleKeyboardEvent(event, is_keyboard_shortcut);
307 } 312 }
308 313
309 void PanelBrowserView::HandlePanelKeyboardEvent( 314 void PanelBrowserView::HandlePanelKeyboardEvent(
310 const NativeWebKeyboardEvent& event) { 315 const NativeWebKeyboardEvent& event) {
311 HandleKeyboardEvent(event); 316 HandleKeyboardEvent(event);
312 } 317 }
313 318
319 gfx::Size PanelBrowserView::GetNonClientAreaExtent() const {
320 return GetFrameView()->NonClientAreaSize();
321 }
322
323 int PanelBrowserView::GetRestoredHeight() const {
324 return restored_height_;
325 }
326
327 void PanelBrowserView::SetRestoredHeight(int height) {
328 restored_height_ = height;
329 }
330
314 Browser* PanelBrowserView::GetPanelBrowser() const { 331 Browser* PanelBrowserView::GetPanelBrowser() const {
315 return browser(); 332 return browser();
316 } 333 }
317 334
318 void PanelBrowserView::DestroyPanelBrowser() { 335 void PanelBrowserView::DestroyPanelBrowser() {
319 DestroyBrowser(); 336 DestroyBrowser();
320 } 337 }
321 338
322 PanelBrowserFrameView* PanelBrowserView::GetFrameView() const { 339 PanelBrowserFrameView* PanelBrowserView::GetFrameView() const {
323 return static_cast<PanelBrowserFrameView*>(frame()->GetFrameView()); 340 return static_cast<PanelBrowserFrameView*>(frame()->GetFrameView());
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 panel_browser_view_->mouse_pressed_point_.y() + delta_y)); 446 panel_browser_view_->mouse_pressed_point_.y() + delta_y));
430 } 447 }
431 448
432 void NativePanelTestingWin::CancelDragTitlebar() { 449 void NativePanelTestingWin::CancelDragTitlebar() {
433 panel_browser_view_->OnTitlebarMouseCaptureLost(); 450 panel_browser_view_->OnTitlebarMouseCaptureLost();
434 } 451 }
435 452
436 void NativePanelTestingWin::FinishDragTitlebar() { 453 void NativePanelTestingWin::FinishDragTitlebar() {
437 panel_browser_view_->OnTitlebarMouseReleased(); 454 panel_browser_view_->OnTitlebarMouseReleased();
438 } 455 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/panels/panel_browser_view.h ('k') | chrome/browser/ui/panels/panel_browser_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698