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

Side by Side Diff: chrome/browser/views/frame/opaque_non_client_view.cc

Issue 18862: Extend the popup-mode location bar out into the nonclient view. This makes p... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 10 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) 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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/app/theme/locationbg_readonly_right.png ('k') | chrome/browser/views/location_bar_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698