1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_UI_COCOA_TOOLBAR_TOOLBAR_BUTTON_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_UI_COCOA_TOOLBAR_TOOLBAR_BUTTON_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#import <Cocoa/Cocoa.h> 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// NSButton subclass which handles middle mouse clicking. 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen@interface ToolbarButton : NSButton { 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen @protected 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // YES when middle mouse clicks should be handled. 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen BOOL handleMiddleClick_; 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // YES when a middle mouse click is being handled. This is set to YES by an 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // NSOtherMouseDown event, and NO by an NSOtherMouseUp event. While this is 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // YES, other mouse button events should be ignored. 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen BOOL handlingMiddleClick_; 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Whether or not to handle the mouse middle click events. 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen@property(assign, nonatomic) BOOL handleMiddleClick; 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen@end 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen@interface ToolbarButton (ExposedForTesting) 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen- (BOOL)shouldHandleEvent:(NSEvent*)theEvent; 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen@end 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_UI_COCOA_TOOLBAR_TOOLBAR_BUTTON_H_ 34