// Copyright (c) 2011 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. #import <Cocoa/Cocoa.h> #include "base/memory/scoped_nsobject.h" // A button that changes when you hover over it and click it. @interface HoverButton : NSButton { @protected // Enumeration of the hover states that the close button can be in at any one // time. The button cannot be in more than one hover state at a time. enum HoverState { kHoverStateNone = 0, kHoverStateMouseOver = 1, kHoverStateMouseDown = 2 }; HoverState hoverState_; @private // Tracking area for button mouseover states. scoped_nsobject<NSTrackingArea> trackingArea_; } // Enables or disables the |NSTrackingRect|s for the button. - (void)setTrackingEnabled:(BOOL)enabled; // Checks to see whether the mouse is in the button's bounds and update // the image in case it gets out of sync. This occurs to the close button // when you close a tab so the tab to the left of it takes its place, and // drag the button without moving the mouse before you press the button down. - (void)checkImageState; @end