// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_BUTTON_ #define CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_BUTTON_ #import <Cocoa/Cocoa.h> #import "ui/base/cocoa/tracking_area.h" namespace constrained_window_button { const CGFloat kButtonMinWidth = 72; } @protocol ConstrainedWindowButtonDrawableCell @property (nonatomic, assign) BOOL isMouseInside; - (BOOL)isEnabled; - (BOOL)isHighlighted; @end // A push button for use in a constrained window. Specialized constrained // windows that need a push button should use this class instead of NSButton. @interface ConstrainedWindowButton : NSButton { @private ui::ScopedCrTrackingArea trackingArea_; } extern const CGFloat buttonMinWidth_; // Draws the background and shadow inside |path| with the appropriate // colors for |buttonState|, onto |view|. + (void)DrawBackgroundAndShadowForPath:(NSBezierPath*)path withCell:(id<ConstrainedWindowButtonDrawableCell>)cell inView:(NSView*)view; // Draws the highlight inside |path|, with the color for |buttonState|, // onto |view|. + (void)DrawInnerHighlightForPath:(NSBezierPath*)path withCell:(id<ConstrainedWindowButtonDrawableCell>)cell inView:(NSView*)view; // Draws the border along |path|, with a color according to |buttonState|, // onto |view|. + (void)DrawBorderForPath:(NSBezierPath*)path withCell:(id<ConstrainedWindowButtonDrawableCell>)cell inView:(NSView*)view; @end // A button cell used by ConstrainedWindowButton. @interface ConstrainedWindowButtonCell : NSButtonCell<ConstrainedWindowButtonDrawableCell> { @private BOOL isMouseInside_; } @end #endif // CHROME_BROWSER_UI_COCOA_CONSTRAINED_WINDOW_CONSTRAINED_WINDOW_BUTTON_