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

Unified Diff: chrome/browser/ui/views/frame/opaque_browser_frame_view.cc

Issue 6904160: Implement new gray mock. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review nits Created 9 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/views/frame/opaque_browser_frame_view.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
index 20616aa7b4921c7bb067eac7ebc2d44b35d30c34..ae417260eac941ef06f9970832a00a6ac94fe352 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
@@ -197,6 +197,27 @@ gfx::Rect OpaqueBrowserFrameView::GetBoundsForReservedArea() const {
GetReservedHeight());
}
+int OpaqueBrowserFrameView::NonClientTopBorderHeight(
+ bool restored,
+ bool ignore_vertical_tabs) const {
+ views::Window* window = frame_->GetWindow();
+ views::WindowDelegate* delegate = window->window_delegate();
+ // |delegate| may be NULL if called from callback of InputMethodChanged while
+ // a window is being destroyed.
+ // See more discussion at http://crosbug.com/8958
+ if ((delegate && delegate->ShouldShowWindowTitle()) ||
+ (browser_view_->IsTabStripVisible() && !ignore_vertical_tabs &&
+ browser_view_->UseVerticalTabs())) {
+ return std::max(FrameBorderThickness(restored) + IconSize(),
+ CaptionButtonY(restored) + kCaptionButtonHeightWithPadding) +
+ TitlebarBottomThickness(restored);
+ }
+
+ return FrameBorderThickness(restored) -
+ ((browser_view_->IsTabStripVisible() && !restored &&
+ window->IsMaximized()) ? kTabstripTopShadowThickness : 0);
+}
+
///////////////////////////////////////////////////////////////////////////////
// OpaqueBrowserFrameView, BrowserNonClientFrameView implementation:
@@ -474,25 +495,8 @@ int OpaqueBrowserFrameView::NonClientBorderThickness() const {
0 : kClientEdgeThickness);
}
-int OpaqueBrowserFrameView::NonClientTopBorderHeight(
- bool restored,
- bool ignore_vertical_tabs) const {
- views::Window* window = frame_->GetWindow();
- views::WindowDelegate* delegate = window->window_delegate();
- // |delegate| may be NULL if called from callback of InputMethodChanged while
- // a window is being destroyed.
- // See more discussion at http://crosbug.com/8958
- if ((delegate && delegate->ShouldShowWindowTitle()) ||
- (browser_view_->IsTabStripVisible() && !ignore_vertical_tabs &&
- browser_view_->UseVerticalTabs())) {
- return std::max(FrameBorderThickness(restored) + IconSize(),
- CaptionButtonY(restored) + kCaptionButtonHeightWithPadding) +
- TitlebarBottomThickness(restored);
- }
-
- return FrameBorderThickness(restored) -
- ((browser_view_->IsTabStripVisible() && !restored &&
- window->IsMaximized()) ? kTabstripTopShadowThickness : 0);
+void OpaqueBrowserFrameView::ModifyMaximizedFramePainting(
+ int* theme_offset, SkBitmap** left_corner, SkBitmap** right_corner) {
}
int OpaqueBrowserFrameView::CaptionButtonY(bool restored) const {
@@ -668,13 +672,19 @@ void OpaqueBrowserFrameView::PaintRestoredFrameBorder(gfx::Canvas* canvas) {
height() - top_left_height - bottom_left_corner->height());
}
-
void OpaqueBrowserFrameView::PaintMaximizedFrameBorder(gfx::Canvas* canvas) {
ui::ThemeProvider* tp = GetThemeProvider();
views::Window* window = frame_->GetWindow();
// Window frame mode and color
SkBitmap* theme_frame;
+
+ // Allow customization of these attributes.
+ SkBitmap* left = NULL;
+ SkBitmap* right = NULL;
+ int top_offset = 0;
+ ModifyMaximizedFramePainting(&top_offset, &left, &right);
+
// Never theme app and popup windows.
if (!browser_view_->IsBrowserTypeNormal()) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
@@ -692,9 +702,22 @@ void OpaqueBrowserFrameView::PaintMaximizedFrameBorder(gfx::Canvas* canvas) {
// kTabstripTopShadowThickness px off the top of the screen.
int theme_background_y = -(GetHorizontalTabStripVerticalOffset(true) +
kTabstripTopShadowThickness);
- canvas->TileImageInt(*theme_frame, 0, theme_background_y, width(),
- theme_frame->height());
+ int left_offset = 0, right_offset = 0;
+
+ if (left || right) {
+ // If we have either a left or right we should have both.
+ DCHECK(left && right);
+ left_offset = left->width();
+ right_offset = right->width();
+ canvas->DrawBitmapInt(*left, 0, 0);
+ canvas->DrawBitmapInt(*right, width() - right_offset, 0);
+ }
+ canvas->TileImageInt(*theme_frame,
+ left_offset,
+ top_offset,
+ width() - (left_offset + right_offset),
+ theme_frame->height());
// Draw the theme frame overlay
if (tp->HasCustomImage(IDR_THEME_FRAME_OVERLAY) &&
browser_view_->IsBrowserTypeNormal()) {
« no previous file with comments | « chrome/browser/ui/views/frame/opaque_browser_frame_view.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698