1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_UI_COCOA_THEMED_WINDOW_H_ 6 #define CHROME_BROWSER_UI_COCOA_THEMED_WINDOW_H_ 7 8 #import <Cocoa/Cocoa.h> 9 10 namespace ui { 11 class ThemeProvider; 12 } 13 using ui::ThemeProvider; 14 15 // Bit flags; mix-and-match as necessary. 16 enum { 17 THEMED_NORMAL = 0, 18 THEMED_INCOGNITO = 1 << 0, 19 THEMED_POPUP = 1 << 1, 20 THEMED_DEVTOOLS = 1 << 2 21 }; 22 typedef NSUInteger ThemedWindowStyle; 23 24 // Indicates how the theme image should be aligned. 25 enum ThemeImageAlignment { 26 // Aligns the top of the theme image with the top of the frame. Use this 27 // for IDR_THEME_THEME_FRAME.* 28 THEME_IMAGE_ALIGN_WITH_FRAME, 29 // Aligns the top of the theme image with the top of the tabs. 30 // Use this for IDR_THEME_TAB_BACKGROUND and IDR_THEME_TOOLBAR. 31 THEME_IMAGE_ALIGN_WITH_TAB_STRIP 32 }; 33 34 // Implemented by windows that support theming. 35 36 @interface NSWindow (ThemeProvider) 37 - (ThemeProvider*)themeProvider; 38 - (ThemedWindowStyle)themedWindowStyle; 39 40 // Returns the position in the coordinates of the root view 41 // ([[self contentView] superview]) that the top left of a theme image with 42 // |alignment| should be painted at. The result of this method can be used in 43 // conjunction with [NSGraphicsContext cr_setPatternPhase:] to set the offset of 44 // pattern colors. 45 - (NSPoint)themeImagePositionForAlignment:(ThemeImageAlignment)alignment; 46 @end 47 48 #endif // CHROME_BROWSER_UI_COCOA_THEMED_WINDOW_H_ 49