OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/views/omnibox/touch_omnibox_popup_contents_view.h" | 5 #include "chrome/browser/ui/views/omnibox/touch_omnibox_popup_contents_view.h" |
6 | 6 |
7 #include "chrome/browser/ui/omnibox/omnibox_view.h" | 7 #include "chrome/browser/ui/omnibox/omnibox_view.h" |
8 #include "third_party/skia/include/core/SkPaint.h" | 8 #include "third_party/skia/include/core/SkPaint.h" |
9 #include "ui/gfx/canvas.h" | 9 #include "ui/gfx/canvas.h" |
10 #include "ui/gfx/font.h" | 10 #include "ui/gfx/font.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 // Draw divider lines. | 76 // Draw divider lines. |
77 std::vector<View*> visible_children(GetVisibleChildren()); | 77 std::vector<View*> visible_children(GetVisibleChildren()); |
78 if (visible_children.size() < 2) | 78 if (visible_children.size() < 2) |
79 return; | 79 return; |
80 gfx::Rect bounds(GetContentsBounds()); | 80 gfx::Rect bounds(GetContentsBounds()); |
81 | 81 |
82 // Draw a line at the bottom of each child except the last. The | 82 // Draw a line at the bottom of each child except the last. The |
83 // color of the line is determined to blend appropriately with the | 83 // color of the line is determined to blend appropriately with the |
84 // most dominant of the two surrounding cells, in precedence order, | 84 // most dominant of the two surrounding cells, in precedence order, |
85 // i.e. selected > hovered > normal. | 85 // i.e. selected > hovered > normal. |
| 86 const ui::NativeTheme* theme = GetNativeTheme(); |
86 for (std::vector<View*>::const_iterator i(visible_children.begin()); | 87 for (std::vector<View*>::const_iterator i(visible_children.begin()); |
87 i + 1 != visible_children.end(); ++i) { | 88 i + 1 != visible_children.end(); ++i) { |
88 TouchOmniboxResultView* child = static_cast<TouchOmniboxResultView*>(*i); | 89 TouchOmniboxResultView* child = static_cast<TouchOmniboxResultView*>(*i); |
89 TouchOmniboxResultView* next_child = | 90 TouchOmniboxResultView* next_child = |
90 static_cast<TouchOmniboxResultView*>(*(i + 1)); | 91 static_cast<TouchOmniboxResultView*>(*(i + 1)); |
91 SkColor divider_color = OmniboxResultView::GetColor( | 92 SkColor divider_color = OmniboxResultView::GetColor( |
92 std::max(child->GetState(), next_child->GetState()), | 93 theme, std::max(child->GetState(), next_child->GetState()), |
93 OmniboxResultView::DIVIDER); | 94 OmniboxResultView::DIVIDER); |
94 int line_y = child->y() + child->height() - 1; | 95 int line_y = child->y() + child->height() - 1; |
95 canvas->DrawLine(gfx::Point(bounds.x(), line_y), | 96 canvas->DrawLine(gfx::Point(bounds.x(), line_y), |
96 gfx::Point(bounds.right(), line_y), divider_color); | 97 gfx::Point(bounds.right(), line_y), divider_color); |
97 } | 98 } |
98 } | 99 } |
99 | 100 |
100 OmniboxResultView* TouchOmniboxPopupContentsView::CreateResultView( | 101 OmniboxResultView* TouchOmniboxPopupContentsView::CreateResultView( |
101 OmniboxResultViewModel* model, | 102 OmniboxResultViewModel* model, |
102 int model_index, | 103 int model_index, |
103 const gfx::Font& font, | 104 const gfx::Font& font, |
104 const gfx::Font& bold_font) { | 105 const gfx::Font& bold_font) { |
105 return new TouchOmniboxResultView(model, model_index, font, bold_font); | 106 return new TouchOmniboxResultView(model, model_index, font, bold_font); |
106 } | 107 } |
107 | 108 |
108 std::vector<views::View*> TouchOmniboxPopupContentsView::GetVisibleChildren() { | 109 std::vector<views::View*> TouchOmniboxPopupContentsView::GetVisibleChildren() { |
109 std::vector<View*> visible_children; | 110 std::vector<View*> visible_children; |
110 for (int i = 0; i < child_count(); ++i) { | 111 for (int i = 0; i < child_count(); ++i) { |
111 View* v = child_at(i); | 112 View* v = child_at(i); |
112 if (child_at(i)->visible()) | 113 if (child_at(i)->visible()) |
113 visible_children.push_back(v); | 114 visible_children.push_back(v); |
114 } | 115 } |
115 return visible_children; | 116 return visible_children; |
116 } | 117 } |
OLD | NEW |