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

Side by Side Diff: chrome/browser/chromeos/panels/panel_scroller.cc

Issue 6685069: Disambiguate OnMouseCaptureLost from OnMouseReleased, etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address most TODOs and sync. Created 9 years, 9 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/chromeos/panels/panel_scroller.h" 5 #include "chrome/browser/chromeos/panels/panel_scroller.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/stl_util-inl.h" 9 #include "base/stl_util-inl.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 widget->Init(NULL, gfx::Rect(0, 0, 100, 800)); 86 widget->Init(NULL, gfx::Rect(0, 0, 100, 800));
87 87
88 PanelScroller* scroller = new PanelScroller(); 88 PanelScroller* scroller = new PanelScroller();
89 widget->SetContentsView(scroller); 89 widget->SetContentsView(scroller);
90 90
91 widget->Show(); 91 widget->Show();
92 92
93 return scroller; 93 return scroller;
94 } 94 }
95 95
96 void PanelScroller::ViewHierarchyChanged(bool is_add,
97 views::View* parent,
98 views::View* child) {
99 // Our child views changed without us knowing it. Stop the animation and mark
100 // us as dirty (needs_layout_ = true).
101 animation_.Stop();
102 needs_layout_ = true;
103 }
104
105 gfx::Size PanelScroller::GetPreferredSize() { 96 gfx::Size PanelScroller::GetPreferredSize() {
106 return gfx::Size(75, 200); 97 return gfx::Size(75, 200);
107 } 98 }
108 99
109 void PanelScroller::Layout() { 100 void PanelScroller::Layout() {
110 /* TODO(brettw) this doesn't work for some reason. 101 /* TODO(brettw) this doesn't work for some reason.
111 if (!needs_layout_ || !animation_.IsShowing()) 102 if (!needs_layout_ || !animation_.IsShowing())
112 return; 103 return;
113 needs_layout_ = false;*/ 104 needs_layout_ = false;*/
114 105
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 } 147 }
157 148
158 bool PanelScroller::OnMousePressed(const views::MouseEvent& event) { 149 bool PanelScroller::OnMousePressed(const views::MouseEvent& event) {
159 return true; 150 return true;
160 } 151 }
161 152
162 bool PanelScroller::OnMouseDragged(const views::MouseEvent& event) { 153 bool PanelScroller::OnMouseDragged(const views::MouseEvent& event) {
163 return true; 154 return true;
164 } 155 }
165 156
166 void PanelScroller::OnMouseReleased(const views::MouseEvent& event,
167 bool canceled) {
168 }
169
170 void PanelScroller::HeaderClicked(PanelScrollerHeader* source) { 157 void PanelScroller::HeaderClicked(PanelScrollerHeader* source) {
171 for (size_t i = 0; i < panels_.size(); i++) { 158 for (size_t i = 0; i < panels_.size(); i++) {
172 if (panels_[i]->header == source) { 159 if (panels_[i]->header == source) {
173 ScrollToPanel(static_cast<int>(i)); 160 ScrollToPanel(static_cast<int>(i));
174 return; 161 return;
175 } 162 }
176 } 163 }
177 NOTREACHED() << "Invalid panel passed to HeaderClicked."; 164 NOTREACHED() << "Invalid panel passed to HeaderClicked.";
178 } 165 }
179 166
167 void PanelScroller::ViewHierarchyChanged(bool is_add,
168 views::View* parent,
169 views::View* child) {
170 // Our child views changed without us knowing it. Stop the animation and mark
171 // us as dirty (needs_layout_ = true).
172 animation_.Stop();
173 needs_layout_ = true;
174 }
175
180 void PanelScroller::ScrollToPanel(int index) { 176 void PanelScroller::ScrollToPanel(int index) {
181 int affected_panel_height = 177 int affected_panel_height =
182 panels_[index]->container->GetPreferredSize().height(); 178 panels_[index]->container->GetPreferredSize().height();
183 179
184 // The pixel size we need to reserve for the stuck headers. 180 // The pixel size we need to reserve for the stuck headers.
185 int top_stuck_header_pixel_size = index * divider_height_; 181 int top_stuck_header_pixel_size = index * divider_height_;
186 int bottom_stuck_header_pixel_size = 182 int bottom_stuck_header_pixel_size =
187 (static_cast<int>(panels_.size()) - index - 1) * divider_height_; 183 (static_cast<int>(panels_.size()) - index - 1) * divider_height_;
188 184
189 // Compute the offset of the top of the panel to scroll to. 185 // Compute the offset of the top of the panel to scroll to.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 } 236 }
241 237
242 void PanelScroller::AnimationProgressed(const ui::Animation* animation) { 238 void PanelScroller::AnimationProgressed(const ui::Animation* animation) {
243 scroll_pos_ = static_cast<int>( 239 scroll_pos_ = static_cast<int>(
244 static_cast<double>(animated_scroll_end_ - animated_scroll_begin_) * 240 static_cast<double>(animated_scroll_end_ - animated_scroll_begin_) *
245 animation_.GetCurrentValue()) + animated_scroll_begin_; 241 animation_.GetCurrentValue()) + animated_scroll_begin_;
246 242
247 Layout(); 243 Layout();
248 SchedulePaint(); 244 SchedulePaint();
249 } 245 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698