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..d5a346aff302eb168ef3016927ca49382d1a4b15 100644 |
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc |
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc |
@@ -495,6 +495,10 @@ int OpaqueBrowserFrameView::NonClientTopBorderHeight( |
window->IsMaximized()) ? kTabstripTopShadowThickness : 0); |
} |
+void OpaqueBrowserFrameView::ModifyMaximizedFramePainting( |
+ int* theme_offset, SkBitmap** left_corner, SkBitmap** right_corner) { |
+} |
+ |
int OpaqueBrowserFrameView::CaptionButtonY(bool restored) const { |
// Maximized buttons start at window top so that even if their images aren't |
// drawn flush with the screen edge, they still obey Fitts' Law. |
@@ -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,21 @@ 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) { |
+ DCHECK(left && right); |
sky
2011/05/02 14:26:27
The DCHECK and if don't match.
|
+ 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()) { |