Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "ui/gfx/icon_family.h" | |
| 6 | |
| 7 #include <algorithm> | |
| 8 | |
| 9 #include "ui/gfx/image/image.h" | |
| 10 #include "ui/gfx/image/image_skia.h" | |
| 11 | |
| 12 namespace gfx { | |
| 13 | |
| 14 IconFamily::IconFamily() {} | |
| 15 IconFamily::~IconFamily() {} | |
| 16 | |
| 17 void IconFamily::Add(const gfx::Image& icon) | |
| 18 { | |
| 19 const gfx::ImageSkia* imageskia = icon.ToImageSkia(); | |
|
pkotwicz
2013/03/18 03:22:43
Nit: You can use AsImageSkia() instead.
Matt Giuca
2013/03/18 07:41:16
I looked at that, but it doesn't return a referenc
pkotwicz
2013/03/18 16:30:23
ImageSkia is ref counted so a copy is not that exp
Matt Giuca
2013/03/18 22:45:20
Fair enough, but also the second reason (don't wan
| |
| 20 if (imageskia) | |
| 21 Add(*imageskia); | |
| 22 } | |
| 23 | |
| 24 void IconFamily::Add(const gfx::ImageSkia& icon) | |
| 25 { | |
| 26 int size = std::min(icon.width(), icon.height()); | |
| 27 map_[size] = icon; | |
| 28 } | |
| 29 | |
| 30 const gfx::ImageSkia* IconFamily::Get(int size) const | |
| 31 { | |
| 32 const gfx::ImageSkia* smallest_larger = NULL; | |
| 33 const gfx::ImageSkia* largest_smaller = NULL; | |
| 34 int smallest_larger_size = 0; | |
| 35 int largest_smaller_size = 0; | |
| 36 | |
| 37 for (const_iterator it = begin(); it != end(); ++it) { | |
| 38 int image_size = it->first; | |
| 39 const gfx::ImageSkia& image = it->second; | |
| 40 if (image_size >= size) { | |
| 41 if (!smallest_larger || image_size < smallest_larger_size) { | |
| 42 smallest_larger = ℑ | |
| 43 smallest_larger_size = image_size; | |
| 44 } | |
| 45 } else { | |
| 46 if (!largest_smaller || image_size > largest_smaller_size) { | |
| 47 largest_smaller = ℑ | |
| 48 largest_smaller_size = image_size; | |
| 49 } | |
| 50 } | |
| 51 } | |
| 52 | |
| 53 return smallest_larger ? smallest_larger : largest_smaller; | |
| 54 } | |
| 55 | |
| 56 } // namespace gfx | |
| OLD | NEW |