summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-06 19:56:03 +0000
committermark@chromium.org <mark@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-06 19:56:03 +0000
commitc76991fa06ea1710d4a800c82a48d3ee139a56a3 (patch)
treefb4bcc6916d9d47ddda8237c20384cf3cf821b97
parent72ef470047f1c45022aaf37da9534c72839d3378 (diff)
downloadchromium_src-c76991fa06ea1710d4a800c82a48d3ee139a56a3.zip
chromium_src-c76991fa06ea1710d4a800c82a48d3ee139a56a3.tar.gz
chromium_src-c76991fa06ea1710d4a800c82a48d3ee139a56a3.tar.bz2
Theme delegate fixes for the 10.6 SDK folllowing r43708.
In the 10.6 SDK, -[NSWindow delegate] returns id<NSWindowDelegate>, not just id, and the three selectors used in r43708 are not declared in NSWindowDelegate. This results in errors such as "warning: '-themeProvider' not found in protocol(s)". Testing the selectors before using them is safe and not incorrect, but you guys might actually want to make more of an assertion about what it means to be a ChromeBrowserWindow's or FullscreenWindow's delegate, or perhaps even a ChromeEventProcessingWindow's delegate. Alternatively, it may be appropriate to add a ChromeThemedWindow layer as a subclass of CEPW and superclass of CBW and FW. (CEPW's other subclass is InfoBubbleWindow.) BUG=none TEST=none Review URL: http://codereview.chromium.org/1630001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43746 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/cocoa/chrome_browser_window.mm15
-rw-r--r--chrome/browser/cocoa/fullscreen_window.mm15
2 files changed, 24 insertions, 6 deletions
diff --git a/chrome/browser/cocoa/chrome_browser_window.mm b/chrome/browser/cocoa/chrome_browser_window.mm
index 67a612b..eecf09f 100644
--- a/chrome/browser/cocoa/chrome_browser_window.mm
+++ b/chrome/browser/cocoa/chrome_browser_window.mm
@@ -344,15 +344,24 @@ namespace {
}
- (ThemeProvider*)themeProvider {
- return [[self delegate] themeProvider];
+ id delegate = [self delegate];
+ if (![delegate respondsToSelector:@selector(themeProvider)])
+ return NULL;
+ return [delegate themeProvider];
}
- (ThemedWindowStyle)themedWindowStyle {
- return [[self delegate] themedWindowStyle];
+ id delegate = [self delegate];
+ if (![delegate respondsToSelector:@selector(themedWindowStyle)])
+ return THEMED_NORMAL;
+ return [delegate themedWindowStyle];
}
- (NSPoint)themePatternPhase {
- return [[self delegate] themePatternPhase];
+ id delegate = [self delegate];
+ if (![delegate respondsToSelector:@selector(themePatternPhase)])
+ return NSMakePoint(0, 0);
+ return [delegate themePatternPhase];
}
@end
diff --git a/chrome/browser/cocoa/fullscreen_window.mm b/chrome/browser/cocoa/fullscreen_window.mm
index 4218d11..4fd2be1 100644
--- a/chrome/browser/cocoa/fullscreen_window.mm
+++ b/chrome/browser/cocoa/fullscreen_window.mm
@@ -83,15 +83,24 @@
}
- (ThemeProvider*)themeProvider {
- return [[self delegate] themeProvider];
+ id delegate = [self delegate];
+ if (![delegate respondsToSelector:@selector(themeProvider)])
+ return NULL;
+ return [delegate themeProvider];
}
- (ThemedWindowStyle)themedWindowStyle {
- return [[self delegate] themedWindowStyle];
+ id delegate = [self delegate];
+ if (![delegate respondsToSelector:@selector(themedWindowStyle)])
+ return THEMED_NORMAL;
+ return [delegate themedWindowStyle];
}
- (NSPoint)themePatternPhase {
- return [[self delegate] themePatternPhase];
+ id delegate = [self delegate];
+ if (![delegate respondsToSelector:@selector(themePatternPhase)])
+ return NSMakePoint(0, 0);
+ return [delegate themePatternPhase];
}
@end