| 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 "chrome/browser/views/frame/opaque_non_client_view.h" | 5 #include "chrome/browser/views/frame/opaque_non_client_view.h" |
| 6 | 6 |
| 7 #include "chrome/app/theme/theme_resources.h" | 7 #include "chrome/app/theme/theme_resources.h" |
| 8 #include "chrome/browser/tab_contents/tab_contents.h" | 8 #include "chrome/browser/tab_contents/tab_contents.h" |
| 9 #include "chrome/browser/views/frame/browser_view.h" | 9 #include "chrome/browser/views/frame/browser_view.h" |
| 10 #include "chrome/browser/views/tabs/tab_strip.h" | 10 #include "chrome/browser/views/tabs/tab_strip.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 // Client Edge Border. | 56 // Client Edge Border. |
| 57 FRAME_CLIENT_EDGE_TOP_LEFT, | 57 FRAME_CLIENT_EDGE_TOP_LEFT, |
| 58 FRAME_CLIENT_EDGE_TOP, | 58 FRAME_CLIENT_EDGE_TOP, |
| 59 FRAME_CLIENT_EDGE_TOP_RIGHT, | 59 FRAME_CLIENT_EDGE_TOP_RIGHT, |
| 60 FRAME_CLIENT_EDGE_RIGHT, | 60 FRAME_CLIENT_EDGE_RIGHT, |
| 61 FRAME_CLIENT_EDGE_BOTTOM_RIGHT, | 61 FRAME_CLIENT_EDGE_BOTTOM_RIGHT, |
| 62 FRAME_CLIENT_EDGE_BOTTOM, | 62 FRAME_CLIENT_EDGE_BOTTOM, |
| 63 FRAME_CLIENT_EDGE_BOTTOM_LEFT, | 63 FRAME_CLIENT_EDGE_BOTTOM_LEFT, |
| 64 FRAME_CLIENT_EDGE_LEFT, | 64 FRAME_CLIENT_EDGE_LEFT, |
| 65 | 65 |
| 66 // Popup-mode toolbar edges. |
| 67 FRAME_TOOLBAR_POPUP_EDGE_LEFT, |
| 68 FRAME_TOOLBAR_POPUP_EDGE_RIGHT, |
| 69 |
| 66 FRAME_PART_BITMAP_COUNT // Must be last. | 70 FRAME_PART_BITMAP_COUNT // Must be last. |
| 67 }; | 71 }; |
| 68 | 72 |
| 69 class ActiveWindowResources : public views::WindowResources { | 73 class ActiveWindowResources : public views::WindowResources { |
| 70 public: | 74 public: |
| 71 ActiveWindowResources() { | 75 ActiveWindowResources() { |
| 72 InitClass(); | 76 InitClass(); |
| 73 } | 77 } |
| 74 virtual ~ActiveWindowResources() { } | 78 virtual ~ActiveWindowResources() { } |
| 75 | 79 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 91 IDR_MINIMIZE, IDR_MINIMIZE_H, IDR_MINIMIZE_P, | 95 IDR_MINIMIZE, IDR_MINIMIZE_H, IDR_MINIMIZE_P, |
| 92 IDR_WINDOW_BOTTOM_CENTER, IDR_WINDOW_BOTTOM_LEFT_CORNER, | 96 IDR_WINDOW_BOTTOM_CENTER, IDR_WINDOW_BOTTOM_LEFT_CORNER, |
| 93 IDR_WINDOW_BOTTOM_RIGHT_CORNER, IDR_WINDOW_LEFT_SIDE, | 97 IDR_WINDOW_BOTTOM_RIGHT_CORNER, IDR_WINDOW_LEFT_SIDE, |
| 94 IDR_WINDOW_RIGHT_SIDE, IDR_WINDOW_TOP_CENTER, | 98 IDR_WINDOW_RIGHT_SIDE, IDR_WINDOW_TOP_CENTER, |
| 95 IDR_WINDOW_TOP_LEFT_CORNER, IDR_WINDOW_TOP_RIGHT_CORNER, | 99 IDR_WINDOW_TOP_LEFT_CORNER, IDR_WINDOW_TOP_RIGHT_CORNER, |
| 96 IDR_WINDOW_TOP_CENTER, IDR_WINDOW_BOTTOM_CENTER, | 100 IDR_WINDOW_TOP_CENTER, IDR_WINDOW_BOTTOM_CENTER, |
| 97 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, | 101 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, |
| 98 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, | 102 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, |
| 99 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, | 103 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, |
| 100 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, | 104 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, |
| 105 IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, |
| 101 0 | 106 0 |
| 102 }; | 107 }; |
| 103 | 108 |
| 104 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 109 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 105 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { | 110 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { |
| 106 int id = kFramePartBitmapIds[i]; | 111 int id = kFramePartBitmapIds[i]; |
| 107 if (id != 0) | 112 if (id != 0) |
| 108 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); | 113 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); |
| 109 } | 114 } |
| 110 initialized = true; | 115 initialized = true; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 IDR_MINIMIZE, IDR_MINIMIZE_H, IDR_MINIMIZE_P, | 147 IDR_MINIMIZE, IDR_MINIMIZE_H, IDR_MINIMIZE_P, |
| 143 IDR_DEWINDOW_BOTTOM_CENTER, IDR_DEWINDOW_BOTTOM_LEFT_CORNER, | 148 IDR_DEWINDOW_BOTTOM_CENTER, IDR_DEWINDOW_BOTTOM_LEFT_CORNER, |
| 144 IDR_DEWINDOW_BOTTOM_RIGHT_CORNER, IDR_DEWINDOW_LEFT_SIDE, | 149 IDR_DEWINDOW_BOTTOM_RIGHT_CORNER, IDR_DEWINDOW_LEFT_SIDE, |
| 145 IDR_DEWINDOW_RIGHT_SIDE, IDR_DEWINDOW_TOP_CENTER, | 150 IDR_DEWINDOW_RIGHT_SIDE, IDR_DEWINDOW_TOP_CENTER, |
| 146 IDR_DEWINDOW_TOP_LEFT_CORNER, IDR_DEWINDOW_TOP_RIGHT_CORNER, | 151 IDR_DEWINDOW_TOP_LEFT_CORNER, IDR_DEWINDOW_TOP_RIGHT_CORNER, |
| 147 IDR_DEWINDOW_TOP_CENTER, IDR_DEWINDOW_BOTTOM_CENTER, | 152 IDR_DEWINDOW_TOP_CENTER, IDR_DEWINDOW_BOTTOM_CENTER, |
| 148 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, | 153 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, |
| 149 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, | 154 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, |
| 150 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, | 155 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, |
| 151 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, | 156 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, |
| 157 IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, |
| 152 0 | 158 0 |
| 153 }; | 159 }; |
| 154 | 160 |
| 155 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 161 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 156 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { | 162 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { |
| 157 int id = kFramePartBitmapIds[i]; | 163 int id = kFramePartBitmapIds[i]; |
| 158 if (id != 0) | 164 if (id != 0) |
| 159 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); | 165 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); |
| 160 } | 166 } |
| 161 initialized = true; | 167 initialized = true; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 IDR_MINIMIZE, IDR_MINIMIZE_H, IDR_MINIMIZE_P, | 199 IDR_MINIMIZE, IDR_MINIMIZE_H, IDR_MINIMIZE_P, |
| 194 IDR_WINDOW_BOTTOM_CENTER_OTR, IDR_WINDOW_BOTTOM_LEFT_CORNER_OTR, | 200 IDR_WINDOW_BOTTOM_CENTER_OTR, IDR_WINDOW_BOTTOM_LEFT_CORNER_OTR, |
| 195 IDR_WINDOW_BOTTOM_RIGHT_CORNER_OTR, IDR_WINDOW_LEFT_SIDE_OTR, | 201 IDR_WINDOW_BOTTOM_RIGHT_CORNER_OTR, IDR_WINDOW_LEFT_SIDE_OTR, |
| 196 IDR_WINDOW_RIGHT_SIDE_OTR, IDR_WINDOW_TOP_CENTER_OTR, | 202 IDR_WINDOW_RIGHT_SIDE_OTR, IDR_WINDOW_TOP_CENTER_OTR, |
| 197 IDR_WINDOW_TOP_LEFT_CORNER_OTR, IDR_WINDOW_TOP_RIGHT_CORNER_OTR, | 203 IDR_WINDOW_TOP_LEFT_CORNER_OTR, IDR_WINDOW_TOP_RIGHT_CORNER_OTR, |
| 198 IDR_WINDOW_TOP_CENTER_OTR, IDR_WINDOW_BOTTOM_CENTER_OTR, | 204 IDR_WINDOW_TOP_CENTER_OTR, IDR_WINDOW_BOTTOM_CENTER_OTR, |
| 199 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, | 205 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, |
| 200 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, | 206 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, |
| 201 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, | 207 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, |
| 202 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, | 208 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, |
| 209 IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, |
| 203 0 | 210 0 |
| 204 }; | 211 }; |
| 205 | 212 |
| 206 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 213 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 207 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { | 214 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { |
| 208 int id = kFramePartBitmapIds[i]; | 215 int id = kFramePartBitmapIds[i]; |
| 209 if (id != 0) | 216 if (id != 0) |
| 210 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); | 217 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); |
| 211 } | 218 } |
| 212 initialized = true; | 219 initialized = true; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 IDR_DEWINDOW_BOTTOM_CENTER_OTR, IDR_DEWINDOW_BOTTOM_LEFT_CORNER_OTR, | 251 IDR_DEWINDOW_BOTTOM_CENTER_OTR, IDR_DEWINDOW_BOTTOM_LEFT_CORNER_OTR, |
| 245 IDR_DEWINDOW_BOTTOM_RIGHT_CORNER_OTR, IDR_DEWINDOW_LEFT_SIDE_OTR, | 252 IDR_DEWINDOW_BOTTOM_RIGHT_CORNER_OTR, IDR_DEWINDOW_LEFT_SIDE_OTR, |
| 246 IDR_DEWINDOW_RIGHT_SIDE_OTR, IDR_DEWINDOW_TOP_CENTER_OTR, | 253 IDR_DEWINDOW_RIGHT_SIDE_OTR, IDR_DEWINDOW_TOP_CENTER_OTR, |
| 247 IDR_DEWINDOW_TOP_LEFT_CORNER_OTR, | 254 IDR_DEWINDOW_TOP_LEFT_CORNER_OTR, |
| 248 IDR_DEWINDOW_TOP_RIGHT_CORNER_OTR, | 255 IDR_DEWINDOW_TOP_RIGHT_CORNER_OTR, |
| 249 IDR_DEWINDOW_TOP_CENTER_OTR, IDR_DEWINDOW_BOTTOM_CENTER_OTR, | 256 IDR_DEWINDOW_TOP_CENTER_OTR, IDR_DEWINDOW_BOTTOM_CENTER_OTR, |
| 250 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, | 257 IDR_CONTENT_TOP_LEFT_CORNER, IDR_CONTENT_TOP_CENTER, |
| 251 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, | 258 IDR_CONTENT_TOP_RIGHT_CORNER, IDR_CONTENT_RIGHT_SIDE, |
| 252 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, | 259 IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER, |
| 253 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, | 260 IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE, |
| 261 IDR_LOCATIONBG_POPUPMODE_LEFT, IDR_LOCATIONBG_POPUPMODE_RIGHT, |
| 254 0 | 262 0 |
| 255 }; | 263 }; |
| 256 | 264 |
| 257 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 265 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 258 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { | 266 for (int i = 0; i < FRAME_PART_BITMAP_COUNT; ++i) { |
| 259 int id = kFramePartBitmapIds[i]; | 267 int id = kFramePartBitmapIds[i]; |
| 260 if (id != 0) | 268 if (id != 0) |
| 261 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); | 269 standard_frame_bitmaps_[i] = rb.GetBitmapNamed(id); |
| 262 } | 270 } |
| 263 initialized = true; | 271 initialized = true; |
| (...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 854 /* TODO(pkasting): If this window is active, we should also draw a drop | 862 /* TODO(pkasting): If this window is active, we should also draw a drop |
| 855 * shadow on the title. This is tricky, because we don't want to hardcode a | 863 * shadow on the title. This is tricky, because we don't want to hardcode a |
| 856 * shadow color (since we want to work with various themes), but we can't | 864 * shadow color (since we want to work with various themes), but we can't |
| 857 * alpha-blend either (since the Windows text APIs don't really do this). | 865 * alpha-blend either (since the Windows text APIs don't really do this). |
| 858 * So we'd need to sample the background color at the right location and | 866 * So we'd need to sample the background color at the right location and |
| 859 * synthesize a good shadow color. */ | 867 * synthesize a good shadow color. */ |
| 860 } | 868 } |
| 861 } | 869 } |
| 862 | 870 |
| 863 void OpaqueNonClientView::PaintToolbarBackground(ChromeCanvas* canvas) { | 871 void OpaqueNonClientView::PaintToolbarBackground(ChromeCanvas* canvas) { |
| 864 if (!browser_view_->IsToolbarVisible() || | 872 if (!browser_view_->IsToolbarVisible()) |
| 865 !browser_view_->IsToolbarDisplayModeNormal()) | |
| 866 return; | 873 return; |
| 867 | 874 |
| 868 gfx::Rect toolbar_bounds(browser_view_->GetToolbarBounds()); | 875 gfx::Rect toolbar_bounds(browser_view_->GetToolbarBounds()); |
| 869 gfx::Point toolbar_origin(toolbar_bounds.origin()); | 876 gfx::Point toolbar_origin(toolbar_bounds.origin()); |
| 870 View::ConvertPointToView(frame_->client_view(), this, &toolbar_origin); | 877 View::ConvertPointToView(frame_->client_view(), this, &toolbar_origin); |
| 871 toolbar_bounds.set_origin(toolbar_origin); | 878 toolbar_bounds.set_origin(toolbar_origin); |
| 872 | 879 |
| 873 SkBitmap* toolbar_left = | 880 bool normal_mode = browser_view_->IsToolbarDisplayModeNormal(); |
| 874 resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP_LEFT); | 881 SkBitmap* toolbar_left = resources()->GetPartBitmap(normal_mode ? |
| 882 FRAME_CLIENT_EDGE_TOP_LEFT : FRAME_TOOLBAR_POPUP_EDGE_LEFT); |
| 875 canvas->DrawBitmapInt(*toolbar_left, | 883 canvas->DrawBitmapInt(*toolbar_left, |
| 876 toolbar_bounds.x() - toolbar_left->width(), | 884 toolbar_bounds.x() - toolbar_left->width(), |
| 877 toolbar_bounds.y()); | 885 toolbar_bounds.y()); |
| 878 | 886 |
| 879 SkBitmap* toolbar_center = | 887 if (normal_mode) { |
| 880 resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP); | 888 SkBitmap* toolbar_center = |
| 881 canvas->TileImageInt(*toolbar_center, toolbar_bounds.x(), toolbar_bounds.y(), | 889 resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP); |
| 882 toolbar_bounds.width(), toolbar_center->height()); | 890 canvas->TileImageInt(*toolbar_center, toolbar_bounds.x(), |
| 891 toolbar_bounds.y(), toolbar_bounds.width(), toolbar_center->height()); |
| 892 } |
| 883 | 893 |
| 884 canvas->DrawBitmapInt( | 894 canvas->DrawBitmapInt(*resources()->GetPartBitmap(normal_mode ? |
| 885 *resources()->GetPartBitmap(FRAME_CLIENT_EDGE_TOP_RIGHT), | 895 FRAME_CLIENT_EDGE_TOP_RIGHT : FRAME_TOOLBAR_POPUP_EDGE_RIGHT), |
| 886 toolbar_bounds.right(), toolbar_bounds.y()); | 896 toolbar_bounds.right(), toolbar_bounds.y()); |
| 887 } | 897 } |
| 888 | 898 |
| 889 void OpaqueNonClientView::PaintOTRAvatar(ChromeCanvas* canvas) { | 899 void OpaqueNonClientView::PaintOTRAvatar(ChromeCanvas* canvas) { |
| 890 if (!browser_view_->ShouldShowOffTheRecordAvatar()) | 900 if (!browser_view_->ShouldShowOffTheRecordAvatar()) |
| 891 return; | 901 return; |
| 892 | 902 |
| 893 SkBitmap otr_avatar_icon = browser_view_->GetOTRAvatarIcon(); | 903 SkBitmap otr_avatar_icon = browser_view_->GetOTRAvatarIcon(); |
| 894 canvas->DrawBitmapInt(otr_avatar_icon, 0, | 904 canvas->DrawBitmapInt(otr_avatar_icon, 0, |
| 895 (otr_avatar_icon.height() - otr_avatar_bounds_.height()) / 2, | 905 (otr_avatar_icon.height() - otr_avatar_bounds_.height()) / 2, |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1106 } | 1116 } |
| 1107 | 1117 |
| 1108 // static | 1118 // static |
| 1109 void OpaqueNonClientView::InitAppWindowResources() { | 1119 void OpaqueNonClientView::InitAppWindowResources() { |
| 1110 static bool initialized = false; | 1120 static bool initialized = false; |
| 1111 if (!initialized) { | 1121 if (!initialized) { |
| 1112 title_font_ = win_util::GetWindowTitleFont(); | 1122 title_font_ = win_util::GetWindowTitleFont(); |
| 1113 initialized = true; | 1123 initialized = true; |
| 1114 } | 1124 } |
| 1115 } | 1125 } |
| OLD | NEW |