OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 <algorithm> | 5 #include <algorithm> |
6 #include <windowsx.h> | 6 #include <windowsx.h> |
7 | 7 |
8 #include "chrome/views/table_view.h" | 8 #include "chrome/views/table_view.h" |
9 | 9 |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
11 #include "base/win_util.h" | 11 #include "base/win_util.h" |
12 #include "base/gfx/skia_utils.h" | |
13 #include "chrome/common/gfx/chrome_canvas.h" | 12 #include "chrome/common/gfx/chrome_canvas.h" |
14 #include "chrome/common/gfx/favicon_size.h" | 13 #include "chrome/common/gfx/favicon_size.h" |
15 #include "chrome/common/gfx/icon_util.h" | 14 #include "chrome/common/gfx/icon_util.h" |
16 #include "chrome/common/resource_bundle.h" | 15 #include "chrome/common/resource_bundle.h" |
17 #include "chrome/common/win_util.h" | 16 #include "chrome/common/win_util.h" |
18 #include "chrome/views/hwnd_view.h" | 17 #include "chrome/views/hwnd_view.h" |
19 #include "SkBitmap.h" | 18 #include "SkBitmap.h" |
20 #include "SkColorFilter.h" | 19 #include "SkColorFilter.h" |
| 20 #include "skia/ext/skia_utils_win.h" |
21 | 21 |
22 namespace views { | 22 namespace views { |
23 | 23 |
24 // Added to column width to prevent truncation. | 24 // Added to column width to prevent truncation. |
25 const int kListViewTextPadding = 15; | 25 const int kListViewTextPadding = 15; |
26 // Additional column width necessary if column has icons. | 26 // Additional column width necessary if column has icons. |
27 const int kListViewIconWidthAndPadding = 18; | 27 const int kListViewIconWidthAndPadding = 18; |
28 | 28 |
29 const int kImageSize = 18; | 29 const int kImageSize = 18; |
30 | 30 |
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1168 &background, | 1168 &background, |
1169 &logfont)) { | 1169 &logfont)) { |
1170 // TODO(tc): Creating/deleting a font for every cell seems like a | 1170 // TODO(tc): Creating/deleting a font for every cell seems like a |
1171 // waste if the font hasn't changed. Maybe we should use a struct | 1171 // waste if the font hasn't changed. Maybe we should use a struct |
1172 // with a bool like we do with colors? | 1172 // with a bool like we do with colors? |
1173 if (custom_cell_font_) | 1173 if (custom_cell_font_) |
1174 DeleteObject(custom_cell_font_); | 1174 DeleteObject(custom_cell_font_); |
1175 custom_cell_font_ = CreateFontIndirect(&logfont); | 1175 custom_cell_font_ = CreateFontIndirect(&logfont); |
1176 SelectObject(draw_info->nmcd.hdc, custom_cell_font_); | 1176 SelectObject(draw_info->nmcd.hdc, custom_cell_font_); |
1177 draw_info->clrText = foreground.color_is_set | 1177 draw_info->clrText = foreground.color_is_set |
1178 ? gfx::SkColorToCOLORREF(foreground.color) | 1178 ? skia::SkColorToCOLORREF(foreground.color) |
1179 : CLR_DEFAULT; | 1179 : CLR_DEFAULT; |
1180 draw_info->clrTextBk = background.color_is_set | 1180 draw_info->clrTextBk = background.color_is_set |
1181 ? gfx::SkColorToCOLORREF(background.color) | 1181 ? skia::SkColorToCOLORREF(background.color) |
1182 : CLR_DEFAULT; | 1182 : CLR_DEFAULT; |
1183 return CDRF_NEWFONT; | 1183 return CDRF_NEWFONT; |
1184 } | 1184 } |
1185 } | 1185 } |
1186 return CDRF_DODEFAULT; | 1186 return CDRF_DODEFAULT; |
1187 } | 1187 } |
1188 case CDDS_ITEMPOSTPAINT: { | 1188 case CDDS_ITEMPOSTPAINT: { |
1189 DCHECK((table_type_ == ICON_AND_TEXT) || (ImplementPostPaint())); | 1189 DCHECK((table_type_ == ICON_AND_TEXT) || (ImplementPostPaint())); |
1190 int view_index = static_cast<int>(draw_info->nmcd.dwItemSpec); | 1190 int view_index = static_cast<int>(draw_info->nmcd.dwItemSpec); |
1191 // We get notifications for empty items, just ignore them. | 1191 // We get notifications for empty items, just ignore them. |
(...skipping 29 matching lines...) Expand all Loading... |
1221 else if (drop_highlight) | 1221 else if (drop_highlight) |
1222 bg_color_index = COLOR_HIGHLIGHT; | 1222 bg_color_index = COLOR_HIGHLIGHT; |
1223 else if (selected) | 1223 else if (selected) |
1224 bg_color_index = HasFocus() ? COLOR_HIGHLIGHT : COLOR_3DFACE; | 1224 bg_color_index = HasFocus() ? COLOR_HIGHLIGHT : COLOR_3DFACE; |
1225 else | 1225 else |
1226 bg_color_index = COLOR_WINDOW; | 1226 bg_color_index = COLOR_WINDOW; |
1227 // NOTE: This may be invoked without the ListView filling in the | 1227 // NOTE: This may be invoked without the ListView filling in the |
1228 // background (or rather windows paints background, then invokes | 1228 // background (or rather windows paints background, then invokes |
1229 // this twice). As such, we always fill in the background. | 1229 // this twice). As such, we always fill in the background. |
1230 canvas.drawColor( | 1230 canvas.drawColor( |
1231 gfx::COLORREFToSkColor(GetSysColor(bg_color_index)), | 1231 skia::COLORREFToSkColor(GetSysColor(bg_color_index)), |
1232 SkPorterDuff::kSrc_Mode); | 1232 SkPorterDuff::kSrc_Mode); |
1233 // + 1 for padding (we declared the image as 18x18 in the list- | 1233 // + 1 for padding (we declared the image as 18x18 in the list- |
1234 // view when they are 16x16 so we get an extra pixel of padding). | 1234 // view when they are 16x16 so we get an extra pixel of padding). |
1235 canvas.DrawBitmapInt(image, 0, 0, | 1235 canvas.DrawBitmapInt(image, 0, 0, |
1236 image.width(), image.height(), | 1236 image.width(), image.height(), |
1237 1, 1, kFavIconSize, kFavIconSize, true); | 1237 1, 1, kFavIconSize, kFavIconSize, true); |
1238 | 1238 |
1239 // Only paint the visible region of the icon. | 1239 // Only paint the visible region of the icon. |
1240 RECT to_draw = { intersection.left - icon_rect.left, | 1240 RECT to_draw = { intersection.left - icon_rect.left, |
1241 intersection.top - icon_rect.top, | 1241 intersection.top - icon_rect.top, |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1528 } | 1528 } |
1529 | 1529 |
1530 void TableSelectionIterator::UpdateModelIndexFromViewIndex() { | 1530 void TableSelectionIterator::UpdateModelIndexFromViewIndex() { |
1531 if (view_index_ == -1) | 1531 if (view_index_ == -1) |
1532 model_index_ = -1; | 1532 model_index_ = -1; |
1533 else | 1533 else |
1534 model_index_ = table_view_->view_to_model(view_index_); | 1534 model_index_ = table_view_->view_to_model(view_index_); |
1535 } | 1535 } |
1536 | 1536 |
1537 } // namespace views | 1537 } // namespace views |
OLD | NEW |