| // 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. |
| |
| #ifndef CHROME_BROWSER_UI_COCOA_PROFILE_MENU_BUTTON_H_ |
| #define CHROME_BROWSER_UI_COCOA_PROFILE_MENU_BUTTON_H_ |
| #pragma once |
| |
| #import <Cocoa/Cocoa.h> |
| |
| #include "base/memory/scoped_nsobject.h" |
| |
| // PopUp button that shows the multiprofile menu. |
| @interface ProfileMenuButton : NSPopUpButton { |
| @private |
| BOOL shouldShowProfileDisplayName_; |
| scoped_nsobject<NSTextFieldCell> textFieldCell_; |
| |
| scoped_nsobject<NSImage> cachedTabImage_; |
| // Cache the various button states when creating |cachedTabImage_|. If |
| // any of these states change then the cached image is invalidated. |
| BOOL cachedTabImageIsPressed_; |
| } |
| |
| @property(assign,nonatomic) BOOL shouldShowProfileDisplayName; |
| @property(assign,nonatomic) NSString* profileDisplayName; |
| |
| // Gets the size of the control that would display all its contents. |
| - (NSSize)desiredControlSize; |
| // Gets the minimum size that the control should be resized to. |
| - (NSSize)minControlSize; |
| |
| // Public for testing. |
| - (void) mouseDown:(NSEvent*)event |
| withShowMenuTarget:(id)target; |
| |
| @end |
| |
| #endif // CHROME_BROWSER_UI_COCOA_PROFILE_MENU_BUTTON_H_ |