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

Side by Side Diff: chrome/browser/ui/views/omnibox/omnibox_result_view.cc

Issue 14270006: linux_aura: Use the correct tinted icons when in gtk+ theme mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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) 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 // For WinDDK ATL compatibility, these ATL headers must come first. 5 // For WinDDK ATL compatibility, these ATL headers must come first.
6 #include "build/build_config.h" 6 #include "build/build_config.h"
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <atlbase.h> // NOLINT 8 #include <atlbase.h> // NOLINT
9 #include <atlwin.h> // NOLINT 9 #include <atlwin.h> // NOLINT
10 #endif 10 #endif
11 11
12 #include "chrome/browser/ui/views/omnibox/omnibox_result_view.h" 12 #include "chrome/browser/ui/views/omnibox/omnibox_result_view.h"
13 13
14 #include <algorithm> // NOLINT 14 #include <algorithm> // NOLINT
15 15
16 #include "base/i18n/bidi_line_iterator.h" 16 #include "base/i18n/bidi_line_iterator.h"
17 #include "base/memory/scoped_vector.h" 17 #include "base/memory/scoped_vector.h"
18 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" 18 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h"
19 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" 19 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
20 #include "chrome/browser/ui/views/omnibox/omnibox_result_view_model.h" 20 #include "chrome/browser/ui/views/omnibox/omnibox_result_view_model.h"
21 #include "grit/generated_resources.h" 21 #include "grit/generated_resources.h"
22 #include "grit/theme_resources.h" 22 #include "grit/theme_resources.h"
23 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
24 #include "ui/base/resource/resource_bundle.h"
25 #include "ui/base/text/text_elider.h" 24 #include "ui/base/text/text_elider.h"
25 #include "ui/base/theme_provider.h"
26 #include "ui/gfx/canvas.h" 26 #include "ui/gfx/canvas.h"
27 #include "ui/gfx/color_utils.h" 27 #include "ui/gfx/color_utils.h"
28 #include "ui/gfx/image/image.h"
28 #include "ui/gfx/render_text.h" 29 #include "ui/gfx/render_text.h"
29 #include "ui/native_theme/native_theme.h" 30 #include "ui/native_theme/native_theme.h"
30 31
31 #if defined(OS_WIN) 32 #if defined(OS_WIN)
32 #include "ui/native_theme/native_theme_win.h" 33 #include "ui/native_theme/native_theme_win.h"
33 #endif 34 #endif
34 35
35 #if defined(USE_AURA) 36 #if defined(USE_AURA)
36 #include "ui/native_theme/native_theme_aura.h" 37 #include "ui/native_theme/native_theme_aura.h"
37 #endif 38 #endif
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 private: 99 private:
99 int center_; 100 int center_;
100 int right_; 101 int right_;
101 102
102 DISALLOW_COPY_AND_ASSIGN(MirroringContext); 103 DISALLOW_COPY_AND_ASSIGN(MirroringContext);
103 }; 104 };
104 105
105 OmniboxResultView::OmniboxResultView( 106 OmniboxResultView::OmniboxResultView(
106 OmniboxResultViewModel* model, 107 OmniboxResultViewModel* model,
107 int model_index, 108 int model_index,
109 views::View* location_bar,
108 const gfx::Font& font) 110 const gfx::Font& font)
109 : edge_item_padding_(LocationBarView::GetItemPadding()), 111 : edge_item_padding_(LocationBarView::GetItemPadding()),
110 item_padding_(LocationBarView::GetItemPadding()), 112 item_padding_(LocationBarView::GetItemPadding()),
111 minimum_text_vertical_padding_(kMinimumTextVerticalPadding), 113 minimum_text_vertical_padding_(kMinimumTextVerticalPadding),
112 model_(model), 114 model_(model),
113 model_index_(model_index), 115 model_index_(model_index),
116 location_bar_(location_bar),
114 font_(font), 117 font_(font),
115 font_height_(std::max(font.GetHeight(), 118 font_height_(std::max(font.GetHeight(),
116 font.DeriveFont(0, gfx::BOLD).GetHeight())), 119 font.DeriveFont(0, gfx::BOLD).GetHeight())),
117 ellipsis_width_(font.GetStringWidth(string16(kEllipsis))), 120 ellipsis_width_(font.GetStringWidth(string16(kEllipsis))),
118 mirroring_context_(new MirroringContext()), 121 mirroring_context_(new MirroringContext()),
119 keyword_icon_(new views::ImageView()), 122 keyword_icon_(new views::ImageView()),
120 ALLOW_THIS_IN_INITIALIZER_LIST( 123 ALLOW_THIS_IN_INITIALIZER_LIST(
121 animation_(new ui::SlideAnimation(this))) { 124 animation_(new ui::SlideAnimation(this))) {
122 CHECK_GE(model_index, 0); 125 CHECK_GE(model_index, 0);
123 if (default_icon_size_ == 0) { 126 if (default_icon_size_ == 0) {
124 default_icon_size_ = 127 default_icon_size_ =
125 ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( 128 location_bar_->GetThemeProvider()->GetImageSkiaNamed(
126 AutocompleteMatch::TypeToIcon(AutocompleteMatch::URL_WHAT_YOU_TYPED))-> 129 AutocompleteMatch::TypeToIcon(AutocompleteMatch::URL_WHAT_YOU_TYPED))->
127 width(); 130 width();
128 } 131 }
129 keyword_icon_->set_owned_by_client(); 132 keyword_icon_->set_owned_by_client();
130 keyword_icon_->EnableCanvasFlippingForRTLUI(true); 133 keyword_icon_->EnableCanvasFlippingForRTLUI(true);
131 keyword_icon_->SetImage(GetKeywordIcon()); 134 keyword_icon_->SetImage(GetKeywordIcon());
132 keyword_icon_->SizeToPreferredSize(); 135 keyword_icon_->SizeToPreferredSize();
133 } 136 }
134 137
135 OmniboxResultView::~OmniboxResultView() { 138 OmniboxResultView::~OmniboxResultView() {
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 icon = IDR_OMNIBOX_SEARCH_SELECTED; 319 icon = IDR_OMNIBOX_SEARCH_SELECTED;
317 break; 320 break;
318 case IDR_OMNIBOX_STAR: 321 case IDR_OMNIBOX_STAR:
319 icon = IDR_OMNIBOX_STAR_SELECTED; 322 icon = IDR_OMNIBOX_STAR_SELECTED;
320 break; 323 break;
321 default: 324 default:
322 NOTREACHED(); 325 NOTREACHED();
323 break; 326 break;
324 } 327 }
325 } 328 }
326 return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(icon); 329 return *(location_bar_->GetThemeProvider()->GetImageSkiaNamed(icon));
327 } 330 }
328 331
329 const gfx::ImageSkia* OmniboxResultView::GetKeywordIcon() const { 332 const gfx::ImageSkia* OmniboxResultView::GetKeywordIcon() const {
330 // NOTE: If we ever begin returning icons of varying size, then callers need 333 // NOTE: If we ever begin returning icons of varying size, then callers need
331 // to ensure that |keyword_icon_| is resized each time its image is reset. 334 // to ensure that |keyword_icon_| is resized each time its image is reset.
332 return ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( 335 return location_bar_->GetThemeProvider()->GetImageSkiaNamed(
333 (GetState() == SELECTED) ? IDR_OMNIBOX_TTS_SELECTED : IDR_OMNIBOX_TTS); 336 (GetState() == SELECTED) ? IDR_OMNIBOX_TTS_SELECTED : IDR_OMNIBOX_TTS);
334 } 337 }
335 338
336 int OmniboxResultView::DrawString( 339 int OmniboxResultView::DrawString(
337 gfx::Canvas* canvas, 340 gfx::Canvas* canvas,
338 const string16& text, 341 const string16& text,
339 const ACMatchClassifications& classifications, 342 const ACMatchClassifications& classifications,
340 bool force_dim, 343 bool force_dim,
341 int x, 344 int x,
342 int y) { 345 int y) {
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 int x = GetMirroredXForRect(keyword_text_bounds_); 624 int x = GetMirroredXForRect(keyword_text_bounds_);
622 mirroring_context_->Initialize(x, keyword_text_bounds_.width()); 625 mirroring_context_->Initialize(x, keyword_text_bounds_.width());
623 PaintMatch(canvas, *match_.associated_keyword.get(), x); 626 PaintMatch(canvas, *match_.associated_keyword.get(), x);
624 } 627 }
625 } 628 }
626 629
627 void OmniboxResultView::AnimationProgressed(const ui::Animation* animation) { 630 void OmniboxResultView::AnimationProgressed(const ui::Animation* animation) {
628 Layout(); 631 Layout();
629 SchedulePaint(); 632 SchedulePaint();
630 } 633 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698