chrome_render_widget_host_view_mac_delegate.h revision 1e9bf3e0803691d0a228da41fc608347b6db4340
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_RENDERER_HOST_CHROME_RENDER_WIDGET_HOST_VIEW_DELEGATE_H_
6#define CHROME_BROWSER_RENDERER_HOST_CHROME_RENDER_WIDGET_HOST_VIEW_DELEGATE_H_
7
8#import <Cocoa/Cocoa.h>
9
10#include "base/memory/scoped_ptr.h"
11#import "content/public/browser/render_widget_host_view_mac_delegate.h"
12
13namespace content {
14class RenderWidgetHost;
15}
16
17namespace ChromeRenderWidgetHostViewMacDelegateInternal {
18class SpellCheckObserver;
19}
20
21@interface ChromeRenderWidgetHostViewMacDelegate
22    : NSObject<RenderWidgetHostViewMacDelegate> {
23 @private
24  content::RenderWidgetHost* renderWidgetHost_;  // weak
25  scoped_ptr<ChromeRenderWidgetHostViewMacDelegateInternal::SpellCheckObserver>
26      spellingObserver_;
27
28  // If the viewport is scrolled all the way to the left or right.
29  // Used for history swiping.
30  BOOL isPinnedLeft_;
31  BOOL isPinnedRight_;
32
33  // If the main frame has a horizontal scrollbar.
34  // Used for history swiping.
35  BOOL hasHorizontalScrollbar_;
36
37  // If a scroll event came back unhandled from the renderer. Set to |NO| at
38  // the start of a scroll gesture, and then to |YES| if a scroll event comes
39  // back unhandled from the renderer.
40  // Used for history swiping.
41  BOOL gotUnhandledWheelEvent_;
42
43  // Cumulative scroll delta since scroll gesture start. Only valid during
44  // scroll gesture handling. Used for history swiping.
45  NSSize totalScrollDelta_;
46
47  // Used for continuous spell checking.
48  BOOL spellcheckEnabled_;
49  BOOL spellcheckChecked_;
50}
51
52- (id)initWithRenderWidgetHost:(content::RenderWidgetHost*)renderWidgetHost;
53
54- (void)viewGone:(NSView*)view;
55- (BOOL)handleEvent:(NSEvent*)event;
56- (void)gotUnhandledWheelEvent;
57- (void)scrollOffsetPinnedToLeft:(BOOL)left toRight:(BOOL)right;
58- (void)setHasHorizontalScrollbar:(BOOL)hasHorizontalScrollbar;
59- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item
60                      isValidItem:(BOOL*)valid;
61
62@end
63
64#endif  // CHROME_BROWSER_RENDERER_HOST_CHROME_RENDER_WIDGET_HOST_VIEW_DELEGATE_H_
65