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

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

Issue 7057014: Variety of tweaks to View API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 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/separator.cc ('k') | views/controls/tabbed_pane/native_tabbed_pane_win.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 27 matching lines...) Expand all
38 skia::COLORREFToSkColor(GetSysColor(COLOR_3DFACE)))); 38 skia::COLORREFToSkColor(GetSysColor(COLOR_3DFACE))));
39 #endif 39 #endif
40 } 40 }
41 41
42 void SingleSplitView::Layout() { 42 void SingleSplitView::Layout() {
43 gfx::Rect leading_bounds; 43 gfx::Rect leading_bounds;
44 gfx::Rect trailing_bounds; 44 gfx::Rect trailing_bounds;
45 CalculateChildrenBounds(bounds(), &leading_bounds, &trailing_bounds); 45 CalculateChildrenBounds(bounds(), &leading_bounds, &trailing_bounds);
46 46
47 if (has_children()) { 47 if (has_children()) {
48 if (GetChildViewAt(0)->IsVisible()) 48 if (GetChildViewAt(0)->visible())
49 GetChildViewAt(0)->SetBoundsRect(leading_bounds); 49 GetChildViewAt(0)->SetBoundsRect(leading_bounds);
50 if (child_count() > 1) { 50 if (child_count() > 1) {
51 if (GetChildViewAt(1)->IsVisible()) 51 if (GetChildViewAt(1)->visible())
52 GetChildViewAt(1)->SetBoundsRect(trailing_bounds); 52 GetChildViewAt(1)->SetBoundsRect(trailing_bounds);
53 } 53 }
54 } 54 }
55 55
56 SchedulePaint(); 56 SchedulePaint();
57 57
58 // Invoke super's implementation so that the children are layed out. 58 // Invoke super's implementation so that the children are layed out.
59 View::Layout(); 59 View::Layout();
60 } 60 }
61 61
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 #elif defined(OS_LINUX) 95 #elif defined(OS_LINUX)
96 return gfx::GetCursor(is_horizontal_ ? GDK_SB_H_DOUBLE_ARROW : 96 return gfx::GetCursor(is_horizontal_ ? GDK_SB_H_DOUBLE_ARROW :
97 GDK_SB_V_DOUBLE_ARROW); 97 GDK_SB_V_DOUBLE_ARROW);
98 #endif 98 #endif
99 } 99 }
100 100
101 void SingleSplitView::CalculateChildrenBounds( 101 void SingleSplitView::CalculateChildrenBounds(
102 const gfx::Rect& bounds, 102 const gfx::Rect& bounds,
103 gfx::Rect* leading_bounds, 103 gfx::Rect* leading_bounds,
104 gfx::Rect* trailing_bounds) const { 104 gfx::Rect* trailing_bounds) const {
105 bool is_leading_visible = has_children() && GetChildViewAt(0)->IsVisible(); 105 bool is_leading_visible = has_children() && GetChildViewAt(0)->visible();
106 bool is_trailing_visible = 106 bool is_trailing_visible =
107 child_count() > 1 && GetChildViewAt(1)->IsVisible(); 107 child_count() > 1 && GetChildViewAt(1)->visible();
108 108
109 if (!is_leading_visible && !is_trailing_visible) { 109 if (!is_leading_visible && !is_trailing_visible) {
110 *leading_bounds = gfx::Rect(); 110 *leading_bounds = gfx::Rect();
111 *trailing_bounds = gfx::Rect(); 111 *trailing_bounds = gfx::Rect();
112 return; 112 return;
113 } 113 }
114 114
115 int divider_at; 115 int divider_at;
116 116
117 if (!is_trailing_visible) { 117 if (!is_trailing_visible) {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 191
192 void SingleSplitView::OnBoundsChanged(const gfx::Rect& previous_bounds) { 192 void SingleSplitView::OnBoundsChanged(const gfx::Rect& previous_bounds) {
193 divider_offset_ = CalculateDividerOffset(divider_offset_, previous_bounds, 193 divider_offset_ = CalculateDividerOffset(divider_offset_, previous_bounds,
194 bounds()); 194 bounds());
195 } 195 }
196 196
197 bool SingleSplitView::IsPointInDivider(const gfx::Point& p) { 197 bool SingleSplitView::IsPointInDivider(const gfx::Point& p) {
198 if (child_count() < 2) 198 if (child_count() < 2)
199 return false; 199 return false;
200 200
201 if (!GetChildViewAt(0)->IsVisible() || !GetChildViewAt(1)->IsVisible()) 201 if (!GetChildViewAt(0)->visible() || !GetChildViewAt(1)->visible())
202 return false; 202 return false;
203 203
204 int divider_relative_offset; 204 int divider_relative_offset;
205 if (is_horizontal_) { 205 if (is_horizontal_) {
206 divider_relative_offset = 206 divider_relative_offset =
207 p.x() - GetChildViewAt(base::i18n::IsRTL() ? 1 : 0)->width(); 207 p.x() - GetChildViewAt(base::i18n::IsRTL() ? 1 : 0)->width();
208 } else { 208 } else {
209 divider_relative_offset = p.y() - GetChildViewAt(0)->height(); 209 divider_relative_offset = p.y() - GetChildViewAt(0)->height();
210 } 210 }
211 return (divider_relative_offset >= 0 && 211 return (divider_relative_offset >= 0 &&
(...skipping 26 matching lines...) Expand all
238 int SingleSplitView::NormalizeDividerOffset(int divider_offset, 238 int SingleSplitView::NormalizeDividerOffset(int divider_offset,
239 const gfx::Rect& bounds) const { 239 const gfx::Rect& bounds) const {
240 int primary_axis_size = GetPrimaryAxisSize(bounds.width(), bounds.height()); 240 int primary_axis_size = GetPrimaryAxisSize(bounds.width(), bounds.height());
241 if (divider_offset < 0) 241 if (divider_offset < 0)
242 return (primary_axis_size - kDividerSize) / 2; 242 return (primary_axis_size - kDividerSize) / 2;
243 return std::min(divider_offset, 243 return std::min(divider_offset,
244 std::max(primary_axis_size - kDividerSize, 0)); 244 std::max(primary_axis_size - kDividerSize, 0));
245 } 245 }
246 246
247 } // namespace views 247 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/separator.cc ('k') | views/controls/tabbed_pane/native_tabbed_pane_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698