| 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 // 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 |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 | 270 |
| 271 // static | 271 // static |
| 272 bool OmniboxResultView::SortRunsVisually(const RunData& lhs, | 272 bool OmniboxResultView::SortRunsVisually(const RunData& lhs, |
| 273 const RunData& rhs) { | 273 const RunData& rhs) { |
| 274 return lhs.visual_order < rhs.visual_order; | 274 return lhs.visual_order < rhs.visual_order; |
| 275 } | 275 } |
| 276 | 276 |
| 277 // static | 277 // static |
| 278 int OmniboxResultView::default_icon_size_ = 0; | 278 int OmniboxResultView::default_icon_size_ = 0; |
| 279 | 279 |
| 280 const SkBitmap* OmniboxResultView::GetIcon() const { | 280 gfx::ImageSkia OmniboxResultView::GetIcon() const { |
| 281 const SkBitmap* bitmap = model_->GetIconIfExtensionMatch(model_index_); | 281 const gfx::Image image = model_->GetIconIfExtensionMatch(model_index_); |
| 282 if (bitmap) | 282 if (!image.IsEmpty()) |
| 283 return bitmap; | 283 return image.AsImageSkia(); |
| 284 | 284 |
| 285 int icon = match_.starred ? | 285 int icon = match_.starred ? |
| 286 IDR_OMNIBOX_STAR : AutocompleteMatch::TypeToIcon(match_.type); | 286 IDR_OMNIBOX_STAR : AutocompleteMatch::TypeToIcon(match_.type); |
| 287 if (GetState() == SELECTED) { | 287 if (GetState() == SELECTED) { |
| 288 switch (icon) { | 288 switch (icon) { |
| 289 case IDR_OMNIBOX_EXTENSION_APP: | 289 case IDR_OMNIBOX_EXTENSION_APP: |
| 290 icon = IDR_OMNIBOX_EXTENSION_APP_SELECTED; | 290 icon = IDR_OMNIBOX_EXTENSION_APP_SELECTED; |
| 291 break; | 291 break; |
| 292 case IDR_OMNIBOX_HTTP: | 292 case IDR_OMNIBOX_HTTP: |
| 293 icon = IDR_OMNIBOX_HTTP_SELECTED; | 293 icon = IDR_OMNIBOX_HTTP_SELECTED; |
| 294 break; | 294 break; |
| 295 case IDR_OMNIBOX_SEARCH: | 295 case IDR_OMNIBOX_SEARCH: |
| 296 icon = IDR_OMNIBOX_SEARCH_SELECTED; | 296 icon = IDR_OMNIBOX_SEARCH_SELECTED; |
| 297 break; | 297 break; |
| 298 case IDR_OMNIBOX_STAR: | 298 case IDR_OMNIBOX_STAR: |
| 299 icon = IDR_OMNIBOX_STAR_SELECTED; | 299 icon = IDR_OMNIBOX_STAR_SELECTED; |
| 300 break; | 300 break; |
| 301 default: | 301 default: |
| 302 NOTREACHED(); | 302 NOTREACHED(); |
| 303 break; | 303 break; |
| 304 } | 304 } |
| 305 } | 305 } |
| 306 return ui::ResourceBundle::GetSharedInstance().GetBitmapNamed(icon); | 306 return *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(icon); |
| 307 } | 307 } |
| 308 | 308 |
| 309 const gfx::ImageSkia* OmniboxResultView::GetKeywordIcon() const { | 309 const gfx::ImageSkia* OmniboxResultView::GetKeywordIcon() const { |
| 310 // NOTE: If we ever begin returning icons of varying size, then callers need | 310 // NOTE: If we ever begin returning icons of varying size, then callers need |
| 311 // to ensure that |keyword_icon_| is resized each time its image is reset. | 311 // to ensure that |keyword_icon_| is resized each time its image is reset. |
| 312 return ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( | 312 return ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| 313 (GetState() == SELECTED) ? IDR_OMNIBOX_TTS_SELECTED : IDR_OMNIBOX_TTS); | 313 (GetState() == SELECTED) ? IDR_OMNIBOX_TTS_SELECTED : IDR_OMNIBOX_TTS); |
| 314 } | 314 } |
| 315 | 315 |
| 316 int OmniboxResultView::DrawString( | 316 int OmniboxResultView::DrawString( |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 // * It is also bold, in which case we don't want to fall back | 554 // * It is also bold, in which case we don't want to fall back |
| 555 // to a normal ellipsis anyway (see comment above). | 555 // to a normal ellipsis anyway (see comment above). |
| 556 } | 556 } |
| 557 } | 557 } |
| 558 | 558 |
| 559 // We couldn't draw anything. | 559 // We couldn't draw anything. |
| 560 runs->clear(); | 560 runs->clear(); |
| 561 } | 561 } |
| 562 | 562 |
| 563 void OmniboxResultView::Layout() { | 563 void OmniboxResultView::Layout() { |
| 564 const SkBitmap* icon = GetIcon(); | 564 const gfx::ImageSkia icon = GetIcon(); |
| 565 | 565 |
| 566 icon_bounds_.SetRect(edge_item_padding_ + | 566 icon_bounds_.SetRect(edge_item_padding_ + |
| 567 ((icon->width() == default_icon_size_) ? | 567 ((icon.width() == default_icon_size_) ? |
| 568 0 : LocationBarView::kIconInternalPadding), | 568 0 : LocationBarView::kIconInternalPadding), |
| 569 (height() - icon->height()) / 2, icon->width(), icon->height()); | 569 (height() - icon.height()) / 2, icon.width(), icon.height()); |
| 570 | 570 |
| 571 int text_x = edge_item_padding_ + default_icon_size_ + item_padding_; | 571 int text_x = edge_item_padding_ + default_icon_size_ + item_padding_; |
| 572 int text_height = GetTextHeight(); | 572 int text_height = GetTextHeight(); |
| 573 int text_width; | 573 int text_width; |
| 574 | 574 |
| 575 if (match_.associated_keyword.get()) { | 575 if (match_.associated_keyword.get()) { |
| 576 const int kw_collapsed_size = | 576 const int kw_collapsed_size = |
| 577 keyword_icon_->width() + edge_item_padding_; | 577 keyword_icon_->width() + edge_item_padding_; |
| 578 const int max_kw_x = width() - kw_collapsed_size; | 578 const int max_kw_x = width() - kw_collapsed_size; |
| 579 const int kw_x = | 579 const int kw_x = |
| (...skipping 18 matching lines...) Expand all Loading... |
| 598 } | 598 } |
| 599 | 599 |
| 600 void OmniboxResultView::OnPaint(gfx::Canvas* canvas) { | 600 void OmniboxResultView::OnPaint(gfx::Canvas* canvas) { |
| 601 const ResultViewState state = GetState(); | 601 const ResultViewState state = GetState(); |
| 602 if (state != NORMAL) | 602 if (state != NORMAL) |
| 603 canvas->DrawColor(GetColor(state, BACKGROUND)); | 603 canvas->DrawColor(GetColor(state, BACKGROUND)); |
| 604 | 604 |
| 605 if (!match_.associated_keyword.get() || | 605 if (!match_.associated_keyword.get() || |
| 606 keyword_icon_->x() > icon_bounds_.right()) { | 606 keyword_icon_->x() > icon_bounds_.right()) { |
| 607 // Paint the icon. | 607 // Paint the icon. |
| 608 canvas->DrawImageInt(*GetIcon(), GetMirroredXForRect(icon_bounds_), | 608 canvas->DrawImageInt(GetIcon(), GetMirroredXForRect(icon_bounds_), |
| 609 icon_bounds_.y()); | 609 icon_bounds_.y()); |
| 610 | 610 |
| 611 // Paint the text. | 611 // Paint the text. |
| 612 int x = GetMirroredXForRect(text_bounds_); | 612 int x = GetMirroredXForRect(text_bounds_); |
| 613 mirroring_context_->Initialize(x, text_bounds_.width()); | 613 mirroring_context_->Initialize(x, text_bounds_.width()); |
| 614 PaintMatch(canvas, match_, x); | 614 PaintMatch(canvas, match_, x); |
| 615 } | 615 } |
| 616 | 616 |
| 617 if (match_.associated_keyword.get()) { | 617 if (match_.associated_keyword.get()) { |
| 618 // Paint the keyword text. | 618 // Paint the keyword text. |
| 619 int x = GetMirroredXForRect(keyword_text_bounds_); | 619 int x = GetMirroredXForRect(keyword_text_bounds_); |
| 620 mirroring_context_->Initialize(x, keyword_text_bounds_.width()); | 620 mirroring_context_->Initialize(x, keyword_text_bounds_.width()); |
| 621 PaintMatch(canvas, *match_.associated_keyword.get(), x); | 621 PaintMatch(canvas, *match_.associated_keyword.get(), x); |
| 622 } | 622 } |
| 623 } | 623 } |
| 624 | 624 |
| 625 void OmniboxResultView::AnimationProgressed(const ui::Animation* animation) { | 625 void OmniboxResultView::AnimationProgressed(const ui::Animation* animation) { |
| 626 Layout(); | 626 Layout(); |
| 627 SchedulePaint(); | 627 SchedulePaint(); |
| 628 } | 628 } |
| OLD | NEW |