Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Side by Side Diff: ui/views/cocoa/bridged_content_view.h

Issue 1718043003: MacViews: Clip contents for non-rectangular windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_ 5 #ifndef UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_
6 #define UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_ 6 #define UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 9
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
(...skipping 30 matching lines...) Expand all
41 // The last tooltip text, used to limit updates. 41 // The last tooltip text, used to limit updates.
42 base::string16 lastTooltipText_; 42 base::string16 lastTooltipText_;
43 43
44 // Whether to draw an almost-transparent background with rounded corners so 44 // Whether to draw an almost-transparent background with rounded corners so
45 // that OSX correctly blurs the background showing through. 45 // that OSX correctly blurs the background showing through.
46 BOOL drawMenuBackgroundForBlur_; 46 BOOL drawMenuBackgroundForBlur_;
47 47
48 // Whether dragging on the view moves the window. 48 // Whether dragging on the view moves the window.
49 BOOL mouseDownCanMoveWindow_; 49 BOOL mouseDownCanMoveWindow_;
50 50
51 // The cached window mask. Only used for non-rectangular windows on 10.9. 51 // The cached window mask. Only used for non-rectangular windows. Used to clip
52 // window boundary and generate drop shadow on OSX 10.9 and for clipping view
53 // contents in BridgedNativeWidget.
52 base::scoped_nsobject<NSBezierPath> windowMask_; 54 base::scoped_nsobject<NSBezierPath> windowMask_;
53 } 55 }
54 56
55 @property(readonly, nonatomic) views::View* hostedView; 57 @property(readonly, nonatomic) views::View* hostedView;
56 @property(assign, nonatomic) ui::TextInputClient* textInputClient; 58 @property(assign, nonatomic) ui::TextInputClient* textInputClient;
57 @property(assign, nonatomic) BOOL drawMenuBackgroundForBlur; 59 @property(assign, nonatomic) BOOL drawMenuBackgroundForBlur;
58 60
59 // Extends an atomic, readonly property on NSView to make it assignable. 61 // Extends an atomic, readonly property on NSView to make it assignable.
60 // This usually returns YES if the view is transparent. We want to control it 62 // This usually returns YES if the view is transparent. We want to control it
61 // so that BridgedNativeWidget can dynamically enable dragging of the window. 63 // so that BridgedNativeWidget can dynamically enable dragging of the window.
62 @property(assign) BOOL mouseDownCanMoveWindow; 64 @property(assign) BOOL mouseDownCanMoveWindow;
63 65
64 // Initialize the NSView -> views::View bridge. |viewToHost| must be non-NULL. 66 // Initialize the NSView -> views::View bridge. |viewToHost| must be non-NULL.
65 - (id)initWithView:(views::View*)viewToHost; 67 - (id)initWithView:(views::View*)viewToHost;
66 68
67 // Clear the hosted view. For example, if it is about to be destroyed. 69 // Clear the hosted view. For example, if it is about to be destroyed.
68 - (void)clearView; 70 - (void)clearView;
69 71
70 // Process a mouse event captured while the widget had global mouse capture. 72 // Process a mouse event captured while the widget had global mouse capture.
71 - (void)processCapturedMouseEvent:(NSEvent*)theEvent; 73 - (void)processCapturedMouseEvent:(NSEvent*)theEvent;
72 74
73 // Mac's version of views::corewm::TooltipController::UpdateIfRequired(). 75 // Mac's version of views::corewm::TooltipController::UpdateIfRequired().
74 // Updates the tooltip on the ToolTipBaseView if the text needs to change. 76 // Updates the tooltip on the ToolTipBaseView if the text needs to change.
75 // |locationInContent| is the position from the top left of the window's 77 // |locationInContent| is the position from the top left of the window's
76 // contentRect (also this NSView's frame), as given by a ui::LocatedEvent. 78 // contentRect (also this NSView's frame), as given by a ui::LocatedEvent.
77 - (void)updateTooltipIfRequiredAt:(const gfx::Point&)locationInContent; 79 - (void)updateTooltipIfRequiredAt:(const gfx::Point&)locationInContent;
78 80
79 // Update windowMask_ depending on the current view bounds. 81 // Called by the BridgedNativeWidget, when the window and hence the view bounds
80 - (void)updateWindowMask; 82 // change.
83 - (void)onSizeChanged;
tapted 2016/02/24 05:05:03 perhaps just expose updateWindowMask?
karandeepb 2016/02/25 03:31:06 Done. Wasn't it better encapsulation though, since
tapted 2016/02/25 08:07:21 I think what I didn't like was that an NSView shou
84
85 // Returns |windowMask_|.
86 - (NSBezierPath*)windowMask;
tapted 2016/02/24 05:05:03 @property(readonly, nonatomic) NSBezierPath* windo
karandeepb 2016/02/25 03:31:06 Done.
81 87
82 @end 88 @end
83 89
84 #endif // UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_ 90 #endif // UI_VIEWS_COCOA_BRIDGED_CONTENT_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698