1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#ifndef CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_VIEW_H_ 672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#define CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_VIEW_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#import <Cocoa/Cocoa.h> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_nsobject.h" 1221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#import "chrome/browser/ui/cocoa/url_drop_target.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@class NewTabButton; 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen@class ProfileMenuButton; 163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// A view class that handles rendering the tab strip and drops of URLS with 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// a positioning locator for drop feedback. 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@interface TabStripView : NSView<URLDropTarget> { 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch @private 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NSTimeInterval lastMouseUp_; 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Handles being a drag-and-drop target. 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_nsobject<URLDropTargetHandler> dropHandler_; 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Weak; the following come from the nib. 283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick NewTabButton* newTabButton_; 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ProfileMenuButton* profileMenuButton_; 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Whether the drop-indicator arrow is shown, and if it is, the coordinate of 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // its tip. 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch BOOL dropArrowShown_; 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NSPoint dropArrowPosition_; 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick@property(assign, nonatomic) IBOutlet NewTabButton* newTabButton; 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen@property(assign, nonatomic) IBOutlet ProfileMenuButton* profileMenuButton; 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@property(assign, nonatomic) BOOL dropArrowShown; 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@property(assign, nonatomic) NSPoint dropArrowPosition; 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@end 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Protected methods subclasses can override to alter behavior. Clients should 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// not call these directly. 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@interface TabStripView(Protected) 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (void)drawBottomBorder:(NSRect)bounds; 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch- (BOOL)doubleClickMinimizesWindow; 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch@end 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#endif // CHROME_BROWSER_UI_COCOA_TABS_TAB_STRIP_VIEW_H_ 52