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