Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5012)

Unified Diff: chrome/browser/cocoa/hover_close_button.h

Issue 2805055: [Mac] Use Core Graphics to draw the close button used within tabs, infobars, ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/cocoa/hover_close_button.h
===================================================================
--- chrome/browser/cocoa/hover_close_button.h (revision 51260)
+++ chrome/browser/cocoa/hover_close_button.h (working copy)
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 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.
@@ -6,20 +6,36 @@
#include "base/scoped_nsobject.h"
-// The standard close button for our Mac UI which is the "x"
-// that changes to the red circle with the "x" when you hover over it.
-// At this time it is used by the popup blocker, download bar, info bar
-// and tabs.
+// The standard close button for our Mac UI which is the "x" that changes to a
+// dark circle with the "x" when you hover over it. At this time it is used by
+// the popup blocker, download bar, info bar and tabs.
@interface HoverCloseButton : NSButton {
- // Tracking area for close button mouseover images.
+ @private
+ // 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_;
+
+ // Tracking area for close button mouseover states.
scoped_nsobject<NSTrackingArea> closeTrackingArea_;
+
+ // Bezier path for drawing the 'x' within the button.
+ scoped_nsobject<NSBezierPath> xPath_;
+
+ // Bezier path for drawing the hover state circle behind the 'x'.
+ scoped_nsobject<NSBezierPath> circlePath_;
}
// Enables or disables the |NSTrackingRect|s for the button.
- (void)setTrackingEnabled:(BOOL)enabled;
-// Sets up the button's images, tracking areas, and accessibility info
-// when instantiated via initWithFrame or awakeFromNib.
+// Sets up the button's tracking areas and accessibility info when instantiated
+// via initWithFrame or awakeFromNib.
- (void)commonInit;
// Checks to see whether the mouse is in the button's bounds and update

Powered by Google App Engine
This is Rietveld 408576698