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

Side by Side Diff: ui/views/widget/native_widget_mac.mm

Issue 283053002: Add compositing, layers to app_list_demo Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase onto master -- probably slightly broken Created 6 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « ui/views/views_delegate.cc ('k') | ui/views_content_client/views_content_client_main_parts.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "ui/views/widget/native_widget_mac.h" 5 #include "ui/views/widget/native_widget_mac.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #include "base/mac/scoped_nsobject.h" 10 #include "base/mac/scoped_nsobject.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 122
123 NonClientFrameView* NativeWidgetMac::CreateNonClientFrameView() { 123 NonClientFrameView* NativeWidgetMac::CreateNonClientFrameView() {
124 return new NativeFrameView(GetWidget()); 124 return new NativeFrameView(GetWidget());
125 } 125 }
126 126
127 bool NativeWidgetMac::ShouldUseNativeFrame() const { 127 bool NativeWidgetMac::ShouldUseNativeFrame() const {
128 return true; 128 return true;
129 } 129 }
130 130
131 bool NativeWidgetMac::ShouldWindowContentsBeTransparent() const { 131 bool NativeWidgetMac::ShouldWindowContentsBeTransparent() const {
132 NOTIMPLEMENTED(); 132 return true;
133 return false;
134 } 133 }
135 134
136 void NativeWidgetMac::FrameTypeChanged() { 135 void NativeWidgetMac::FrameTypeChanged() {
137 NOTIMPLEMENTED(); 136 NOTIMPLEMENTED();
138 } 137 }
139 138
140 Widget* NativeWidgetMac::GetWidget() { 139 Widget* NativeWidgetMac::GetWidget() {
141 return delegate_->AsWidget(); 140 return delegate_->AsWidget();
142 } 141 }
143 142
144 const Widget* NativeWidgetMac::GetWidget() const { 143 const Widget* NativeWidgetMac::GetWidget() const {
145 return delegate_->AsWidget(); 144 return delegate_->AsWidget();
146 } 145 }
147 146
148 gfx::NativeView NativeWidgetMac::GetNativeView() const { 147 gfx::NativeView NativeWidgetMac::GetNativeView() const {
149 // Returns a BridgedContentView, unless there is no views::RootView set. 148 // Returns a BridgedContentView, unless there is no views::RootView set.
150 return [GetNativeWindow() contentView]; 149 return [GetNativeWindow() contentView];
151 } 150 }
152 151
153 gfx::NativeWindow NativeWidgetMac::GetNativeWindow() const { 152 gfx::NativeWindow NativeWidgetMac::GetNativeWindow() const {
154 return bridge_ ? bridge_->ns_window() : nil; 153 return bridge_ ? bridge_->ns_window() : nil;
155 } 154 }
156 155
157 Widget* NativeWidgetMac::GetTopLevelWidget() { 156 Widget* NativeWidgetMac::GetTopLevelWidget() {
158 NativeWidgetPrivate* native_widget = GetTopLevelNativeWidget(GetNativeView()); 157 NativeWidgetPrivate* native_widget = GetTopLevelNativeWidget(GetNativeView());
159 return native_widget ? native_widget->GetWidget() : NULL; 158 return native_widget ? native_widget->GetWidget() : NULL;
160 } 159 }
161 160
162 const ui::Compositor* NativeWidgetMac::GetCompositor() const { 161 const ui::Compositor* NativeWidgetMac::GetCompositor() const {
163 NOTIMPLEMENTED(); 162 return bridge_->layer() ? bridge_->layer()->GetCompositor() : NULL;
164 return NULL;
165 } 163 }
166 164
167 ui::Compositor* NativeWidgetMac::GetCompositor() { 165 ui::Compositor* NativeWidgetMac::GetCompositor() {
168 NOTIMPLEMENTED(); 166 return bridge_->layer() ? bridge_->layer()->GetCompositor() : NULL;
169 return NULL;
170 } 167 }
171 168
172 ui::Layer* NativeWidgetMac::GetLayer() { 169 ui::Layer* NativeWidgetMac::GetLayer() {
173 NOTIMPLEMENTED(); 170 return bridge_->GetOrCreateLayer();
174 return NULL;
175 } 171 }
176 172
177 void NativeWidgetMac::ReorderNativeViews() { 173 void NativeWidgetMac::ReorderNativeViews() {
178 if (bridge_) 174 if (bridge_)
179 bridge_->SetRootView(GetWidget()->GetRootView()); 175 bridge_->SetRootView(GetWidget()->GetRootView());
180 } 176 }
181 177
182 void NativeWidgetMac::ViewRemoved(View* view) { 178 void NativeWidgetMac::ViewRemoved(View* view) {
183 NOTIMPLEMENTED(); 179 NOTIMPLEMENTED();
184 } 180 }
185 181
186 void NativeWidgetMac::SetNativeWindowProperty(const char* name, void* value) { 182 void NativeWidgetMac::SetNativeWindowProperty(const char* name, void* value) {
187 NOTIMPLEMENTED(); 183 NOTIMPLEMENTED();
188 } 184 }
189 185
190 void* NativeWidgetMac::GetNativeWindowProperty(const char* name) const { 186 void* NativeWidgetMac::GetNativeWindowProperty(const char* name) const {
191 NOTIMPLEMENTED(); 187 NOTIMPLEMENTED();
192 return NULL; 188 return NULL;
193 } 189 }
194 190
195 TooltipManager* NativeWidgetMac::GetTooltipManager() const { 191 TooltipManager* NativeWidgetMac::GetTooltipManager() const {
196 NOTIMPLEMENTED(); 192 NOTIMPLEMENTED();
197 return NULL; 193 return NULL;
198 } 194 }
199 195
200 void NativeWidgetMac::SetCapture() { 196 void NativeWidgetMac::SetCapture() {
201 NOTIMPLEMENTED(); 197 // Basic mouse capture to simulate ::SetCapture() from Windows. Capture on OSX
198 // is automatic for mouse drag events. This allows mouse move events to also
199 // be sent to responders, but only when the mouse is over the window. To get
200 // move events outside the window, Mac will need an event tap.
201 [GetNativeWindow() setAcceptsMouseMovedEvents:YES];
202 } 202 }
203 203
204 void NativeWidgetMac::ReleaseCapture() { 204 void NativeWidgetMac::ReleaseCapture() {
205 NOTIMPLEMENTED(); 205 [GetNativeWindow() setAcceptsMouseMovedEvents:NO];
206 } 206 }
207 207
208 bool NativeWidgetMac::HasCapture() const { 208 bool NativeWidgetMac::HasCapture() const {
209 NOTIMPLEMENTED(); 209 return [GetNativeWindow() acceptsMouseMovedEvents];
210 return false;
211 } 210 }
212 211
213 InputMethod* NativeWidgetMac::CreateInputMethod() { 212 InputMethod* NativeWidgetMac::CreateInputMethod() {
214 return bridge_ ? bridge_->CreateInputMethod() : NULL; 213 return bridge_ ? bridge_->CreateInputMethod() : NULL;
215 } 214 }
216 215
217 internal::InputMethodDelegate* NativeWidgetMac::GetInputMethodDelegate() { 216 internal::InputMethodDelegate* NativeWidgetMac::GetInputMethodDelegate() {
218 return bridge_.get(); 217 return bridge_.get();
219 } 218 }
220 219
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 return gfx::ScreenRectFromNSRect( 263 return gfx::ScreenRectFromNSRect(
265 [window contentRectForFrameRect:[window frame]]); 264 [window contentRectForFrameRect:[window frame]]);
266 } 265 }
267 266
268 gfx::Rect NativeWidgetMac::GetRestoredBounds() const { 267 gfx::Rect NativeWidgetMac::GetRestoredBounds() const {
269 NOTIMPLEMENTED(); 268 NOTIMPLEMENTED();
270 return gfx::Rect(); 269 return gfx::Rect();
271 } 270 }
272 271
273 void NativeWidgetMac::SetBounds(const gfx::Rect& bounds) { 272 void NativeWidgetMac::SetBounds(const gfx::Rect& bounds) {
274 [GetNativeWindow() setFrame:gfx::ScreenRectToNSRect(bounds) 273 if (bridge_)
275 display:YES 274 bridge_->SetBounds(bounds);
276 animate:NO];
277 } 275 }
278 276
279 void NativeWidgetMac::SetSize(const gfx::Size& size) { 277 void NativeWidgetMac::SetSize(const gfx::Size& size) {
280 // Ensure the top-left corner stays in-place (rather than the bottom-left, 278 // Ensure the top-left corner stays in-place (rather than the bottom-left,
281 // which -[NSWindow setContentSize:] would do). 279 // which -[NSWindow setContentSize:] would do).
282 SetBounds(gfx::Rect(GetWindowBoundsInScreen().origin(), size)); 280 SetBounds(gfx::Rect(GetWindowBoundsInScreen().origin(), size));
283 } 281 }
284 282
285 void NativeWidgetMac::StackAbove(gfx::NativeView native_view) { 283 void NativeWidgetMac::StackAbove(gfx::NativeView native_view) {
286 NOTIMPLEMENTED(); 284 NOTIMPLEMENTED();
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 const gfx::Point& location, 447 const gfx::Point& location,
450 int operation, 448 int operation,
451 ui::DragDropTypes::DragEventSource source) { 449 ui::DragDropTypes::DragEventSource source) {
452 NOTIMPLEMENTED(); 450 NOTIMPLEMENTED();
453 } 451 }
454 452
455 void NativeWidgetMac::SchedulePaintInRect(const gfx::Rect& rect) { 453 void NativeWidgetMac::SchedulePaintInRect(const gfx::Rect& rect) {
456 // TODO(tapted): This should use setNeedsDisplayInRect:, once the coordinate 454 // TODO(tapted): This should use setNeedsDisplayInRect:, once the coordinate
457 // system of |rect| has been converted. 455 // system of |rect| has been converted.
458 [GetNativeView() setNeedsDisplay:YES]; 456 [GetNativeView() setNeedsDisplay:YES];
457 if (bridge_ && bridge_->layer()) {
458 bridge_->layer()->SchedulePaint(rect);
459 }
459 } 460 }
460 461
461 void NativeWidgetMac::SetCursor(gfx::NativeCursor cursor) { 462 void NativeWidgetMac::SetCursor(gfx::NativeCursor cursor) {
462 NOTIMPLEMENTED(); 463 NOTIMPLEMENTED();
463 } 464 }
464 465
465 bool NativeWidgetMac::IsMouseEventsEnabled() const { 466 bool NativeWidgetMac::IsMouseEventsEnabled() const {
466 NOTIMPLEMENTED(); 467 NOTIMPLEMENTED();
467 return true; 468 return true;
468 } 469 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 } 597 }
597 598
598 // static 599 // static
599 gfx::FontList NativeWidgetPrivate::GetWindowTitleFontList() { 600 gfx::FontList NativeWidgetPrivate::GetWindowTitleFontList() {
600 NOTIMPLEMENTED(); 601 NOTIMPLEMENTED();
601 return gfx::FontList(); 602 return gfx::FontList();
602 } 603 }
603 604
604 } // namespace internal 605 } // namespace internal
605 } // namespace views 606 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/views_delegate.cc ('k') | ui/views_content_client/views_content_client_main_parts.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698