1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #import "chrome/browser/ui/cocoa/chrome_browser_window.h" 6 7 #include "base/logging.h" 8 #import "chrome/browser/ui/cocoa/themed_window.h" 9 #include "ui/base/theme_provider.h" 10 11 @implementation ChromeBrowserWindow 12 13 - (void)underlaySurfaceAdded { 14 DCHECK_GE(underlaySurfaceCount_, 0); 15 ++underlaySurfaceCount_; 16 17 // We're having the OpenGL surface render under the window, so the window 18 // needs to be not opaque. 19 if (underlaySurfaceCount_ == 1) 20 [self setOpaque:NO]; 21 } 22 23 - (void)underlaySurfaceRemoved { 24 --underlaySurfaceCount_; 25 DCHECK_GE(underlaySurfaceCount_, 0); 26 27 if (underlaySurfaceCount_ == 0) 28 [self setOpaque:YES]; 29 } 30 31 - (ui::ThemeProvider*)themeProvider { 32 id delegate = [self delegate]; 33 if (![delegate respondsToSelector:@selector(themeProvider)]) 34 return NULL; 35 return [delegate themeProvider]; 36 } 37 38 - (ThemedWindowStyle)themedWindowStyle { 39 id delegate = [self delegate]; 40 if (![delegate respondsToSelector:@selector(themedWindowStyle)]) 41 return THEMED_NORMAL; 42 return [delegate themedWindowStyle]; 43 } 44 45 - (NSPoint)themePatternPhase { 46 id delegate = [self delegate]; 47 if (![delegate respondsToSelector:@selector(themePatternPhase)]) 48 return NSMakePoint(0, 0); 49 return [delegate themePatternPhase]; 50 } 51 52 @end 53