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

Side by Side Diff: views/controls/single_split_view.cc

Issue 7349021: Convert some more view methods to the ui/views style. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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
« no previous file with comments | « views/controls/scroll_view.cc ('k') | views/controls/single_split_view_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "views/controls/single_split_view.h" 5 #include "views/controls/single_split_view.h"
6 6
7 #if defined(OS_LINUX) 7 #if defined(OS_LINUX)
8 #include <gdk/gdk.h> 8 #include <gdk/gdk.h>
9 #endif 9 #endif
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 skia::COLORREFToSkColor(GetSysColor(COLOR_3DFACE)))); 42 skia::COLORREFToSkColor(GetSysColor(COLOR_3DFACE))));
43 #endif 43 #endif
44 } 44 }
45 45
46 void SingleSplitView::Layout() { 46 void SingleSplitView::Layout() {
47 gfx::Rect leading_bounds; 47 gfx::Rect leading_bounds;
48 gfx::Rect trailing_bounds; 48 gfx::Rect trailing_bounds;
49 CalculateChildrenBounds(bounds(), &leading_bounds, &trailing_bounds); 49 CalculateChildrenBounds(bounds(), &leading_bounds, &trailing_bounds);
50 50
51 if (has_children()) { 51 if (has_children()) {
52 if (GetChildViewAt(0)->IsVisible()) 52 if (child_at(0)->IsVisible())
53 GetChildViewAt(0)->SetBoundsRect(leading_bounds); 53 child_at(0)->SetBoundsRect(leading_bounds);
54 if (child_count() > 1) { 54 if (child_count() > 1) {
55 if (GetChildViewAt(1)->IsVisible()) 55 if (child_at(1)->IsVisible())
56 GetChildViewAt(1)->SetBoundsRect(trailing_bounds); 56 child_at(1)->SetBoundsRect(trailing_bounds);
57 } 57 }
58 } 58 }
59 59
60 SchedulePaint(); 60 SchedulePaint();
61 61
62 // Invoke super's implementation so that the children are layed out. 62 // Invoke super's implementation so that the children are layed out.
63 View::Layout(); 63 View::Layout();
64 } 64 }
65 65
66 std::string SingleSplitView::GetClassName() const { 66 std::string SingleSplitView::GetClassName() const {
67 return kViewClassName; 67 return kViewClassName;
68 } 68 }
69 69
70 void SingleSplitView::GetAccessibleState(ui::AccessibleViewState* state) { 70 void SingleSplitView::GetAccessibleState(ui::AccessibleViewState* state) {
71 state->role = ui::AccessibilityTypes::ROLE_GROUPING; 71 state->role = ui::AccessibilityTypes::ROLE_GROUPING;
72 state->name = accessible_name_; 72 state->name = accessible_name_;
73 } 73 }
74 74
75 gfx::Size SingleSplitView::GetPreferredSize() { 75 gfx::Size SingleSplitView::GetPreferredSize() {
76 int width = 0; 76 int width = 0;
77 int height = 0; 77 int height = 0;
78 for (int i = 0; i < 2 && i < child_count(); ++i) { 78 for (int i = 0; i < 2 && i < child_count(); ++i) {
79 View* view = GetChildViewAt(i); 79 View* view = child_at(i);
80 gfx::Size pref = view->GetPreferredSize(); 80 gfx::Size pref = view->GetPreferredSize();
81 if (is_horizontal_) { 81 if (is_horizontal_) {
82 width += pref.width(); 82 width += pref.width();
83 height = std::max(height, pref.height()); 83 height = std::max(height, pref.height());
84 } else { 84 } else {
85 width = std::max(width, pref.width()); 85 width = std::max(width, pref.width());
86 height += pref.height(); 86 height += pref.height();
87 } 87 }
88 } 88 }
89 if (is_horizontal_) 89 if (is_horizontal_)
(...skipping 13 matching lines...) Expand all
103 #elif defined(OS_LINUX) 103 #elif defined(OS_LINUX)
104 return gfx::GetCursor(is_horizontal_ ? GDK_SB_H_DOUBLE_ARROW : 104 return gfx::GetCursor(is_horizontal_ ? GDK_SB_H_DOUBLE_ARROW :
105 GDK_SB_V_DOUBLE_ARROW); 105 GDK_SB_V_DOUBLE_ARROW);
106 #endif 106 #endif
107 } 107 }
108 108
109 void SingleSplitView::CalculateChildrenBounds( 109 void SingleSplitView::CalculateChildrenBounds(
110 const gfx::Rect& bounds, 110 const gfx::Rect& bounds,
111 gfx::Rect* leading_bounds, 111 gfx::Rect* leading_bounds,
112 gfx::Rect* trailing_bounds) const { 112 gfx::Rect* trailing_bounds) const {
113 bool is_leading_visible = has_children() && GetChildViewAt(0)->IsVisible(); 113 bool is_leading_visible = has_children() && child_at(0)->IsVisible();
114 bool is_trailing_visible = 114 bool is_trailing_visible = child_count() > 1 && child_at(1)->IsVisible();
115 child_count() > 1 && GetChildViewAt(1)->IsVisible();
116 115
117 if (!is_leading_visible && !is_trailing_visible) { 116 if (!is_leading_visible && !is_trailing_visible) {
118 *leading_bounds = gfx::Rect(); 117 *leading_bounds = gfx::Rect();
119 *trailing_bounds = gfx::Rect(); 118 *trailing_bounds = gfx::Rect();
120 return; 119 return;
121 } 120 }
122 121
123 int divider_at; 122 int divider_at;
124 123
125 if (!is_trailing_visible) { 124 if (!is_trailing_visible) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 163
165 bool SingleSplitView::OnMouseDragged(const MouseEvent& event) { 164 bool SingleSplitView::OnMouseDragged(const MouseEvent& event) {
166 if (child_count() < 2) 165 if (child_count() < 2)
167 return false; 166 return false;
168 167
169 int delta_offset = GetPrimaryAxisSize(event.x(), event.y()) - 168 int delta_offset = GetPrimaryAxisSize(event.x(), event.y()) -
170 drag_info_.initial_mouse_offset; 169 drag_info_.initial_mouse_offset;
171 if (is_horizontal_ && base::i18n::IsRTL()) 170 if (is_horizontal_ && base::i18n::IsRTL())
172 delta_offset *= -1; 171 delta_offset *= -1;
173 // Honor the minimum size when resizing. 172 // Honor the minimum size when resizing.
174 gfx::Size min = GetChildViewAt(0)->GetMinimumSize(); 173 gfx::Size min = child_at(0)->GetMinimumSize();
175 int new_size = std::max(GetPrimaryAxisSize(min.width(), min.height()), 174 int new_size = std::max(GetPrimaryAxisSize(min.width(), min.height()),
176 drag_info_.initial_divider_offset + delta_offset); 175 drag_info_.initial_divider_offset + delta_offset);
177 176
178 // And don't let the view get bigger than our width. 177 // And don't let the view get bigger than our width.
179 new_size = std::min(GetPrimaryAxisSize() - kDividerSize, new_size); 178 new_size = std::min(GetPrimaryAxisSize() - kDividerSize, new_size);
180 179
181 if (new_size != divider_offset_) { 180 if (new_size != divider_offset_) {
182 set_divider_offset(new_size); 181 set_divider_offset(new_size);
183 if (!observer_ || observer_->SplitHandleMoved(this)) 182 if (!observer_ || observer_->SplitHandleMoved(this))
184 Layout(); 183 Layout();
(...skipping 14 matching lines...) Expand all
199 198
200 void SingleSplitView::OnBoundsChanged(const gfx::Rect& previous_bounds) { 199 void SingleSplitView::OnBoundsChanged(const gfx::Rect& previous_bounds) {
201 divider_offset_ = CalculateDividerOffset(divider_offset_, previous_bounds, 200 divider_offset_ = CalculateDividerOffset(divider_offset_, previous_bounds,
202 bounds()); 201 bounds());
203 } 202 }
204 203
205 bool SingleSplitView::IsPointInDivider(const gfx::Point& p) { 204 bool SingleSplitView::IsPointInDivider(const gfx::Point& p) {
206 if (child_count() < 2) 205 if (child_count() < 2)
207 return false; 206 return false;
208 207
209 if (!GetChildViewAt(0)->IsVisible() || !GetChildViewAt(1)->IsVisible()) 208 if (!child_at(0)->IsVisible() || !child_at(1)->IsVisible())
210 return false; 209 return false;
211 210
212 int divider_relative_offset; 211 int divider_relative_offset;
213 if (is_horizontal_) { 212 if (is_horizontal_) {
214 divider_relative_offset = 213 divider_relative_offset =
215 p.x() - GetChildViewAt(base::i18n::IsRTL() ? 1 : 0)->width(); 214 p.x() - child_at(base::i18n::IsRTL() ? 1 : 0)->width();
216 } else { 215 } else {
217 divider_relative_offset = p.y() - GetChildViewAt(0)->height(); 216 divider_relative_offset = p.y() - child_at(0)->height();
218 } 217 }
219 return (divider_relative_offset >= 0 && 218 return (divider_relative_offset >= 0 &&
220 divider_relative_offset < kDividerSize); 219 divider_relative_offset < kDividerSize);
221 } 220 }
222 221
223 int SingleSplitView::CalculateDividerOffset( 222 int SingleSplitView::CalculateDividerOffset(
224 int divider_offset, 223 int divider_offset,
225 const gfx::Rect& previous_bounds, 224 const gfx::Rect& previous_bounds,
226 const gfx::Rect& new_bounds) const { 225 const gfx::Rect& new_bounds) const {
227 if (resize_leading_on_bounds_change_ && divider_offset != -1) { 226 if (resize_leading_on_bounds_change_ && divider_offset != -1) {
(...skipping 18 matching lines...) Expand all
246 int SingleSplitView::NormalizeDividerOffset(int divider_offset, 245 int SingleSplitView::NormalizeDividerOffset(int divider_offset,
247 const gfx::Rect& bounds) const { 246 const gfx::Rect& bounds) const {
248 int primary_axis_size = GetPrimaryAxisSize(bounds.width(), bounds.height()); 247 int primary_axis_size = GetPrimaryAxisSize(bounds.width(), bounds.height());
249 if (divider_offset < 0) 248 if (divider_offset < 0)
250 return (primary_axis_size - kDividerSize) / 2; 249 return (primary_axis_size - kDividerSize) / 2;
251 return std::min(divider_offset, 250 return std::min(divider_offset,
252 std::max(primary_axis_size - kDividerSize, 0)); 251 std::max(primary_axis_size - kDividerSize, 0));
253 } 252 }
254 253
255 } // namespace views 254 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/scroll_view.cc ('k') | views/controls/single_split_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698