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

Side by Side Diff: webkit/glue/webcursor_mac.mm

Issue 6591105: Implement the grab/grabbing cursors (for Mac/GTK).... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 9 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "webkit/glue/webcursor.h" 5 #include "webkit/glue/webcursor.h"
6 6
7 #import <AppKit/AppKit.h> 7 #import <AppKit/AppKit.h>
8 #include <Carbon/Carbon.h> 8 #include <Carbon/Carbon.h>
9 9
10 #include "app/mac/nsimage_cache.h" 10 #include "app/mac/nsimage_cache.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 case WebCursorInfo::TypeCopy: 146 case WebCursorInfo::TypeCopy:
147 return LoadCursor("copyCursor", 3, 2); 147 return LoadCursor("copyCursor", 3, 2);
148 case WebCursorInfo::TypeNone: 148 case WebCursorInfo::TypeNone:
149 return LoadCursor("noneCursor", 7, 7); 149 return LoadCursor("noneCursor", 7, 7);
150 case WebCursorInfo::TypeNotAllowed: 150 case WebCursorInfo::TypeNotAllowed:
151 return LoadCursor("notAllowedCursor", 11, 11); 151 return LoadCursor("notAllowedCursor", 11, 11);
152 case WebCursorInfo::TypeZoomIn: 152 case WebCursorInfo::TypeZoomIn:
153 return LoadCursor("zoomInCursor", 7, 7); 153 return LoadCursor("zoomInCursor", 7, 7);
154 case WebCursorInfo::TypeZoomOut: 154 case WebCursorInfo::TypeZoomOut:
155 return LoadCursor("zoomOutCursor", 7, 7); 155 return LoadCursor("zoomOutCursor", 7, 7);
156 case WebCursorInfo::TypeGrab:
157 return [NSCursor openHandCursor];
158 case WebCursorInfo::TypeGrabbing:
159 return [NSCursor closedHandCursor];
156 case WebCursorInfo::TypeCustom: 160 case WebCursorInfo::TypeCustom:
157 return CreateCustomCursor(custom_data_, custom_size_, hotspot_); 161 return CreateCustomCursor(custom_data_, custom_size_, hotspot_);
158 } 162 }
159 NOTREACHED(); 163 NOTREACHED();
160 return nil; 164 return nil;
161 } 165 }
162 166
163 gfx::NativeCursor WebCursor::GetNativeCursor() { 167 gfx::NativeCursor WebCursor::GetNativeCursor() {
164 return GetCursor(); 168 return GetCursor();
165 } 169 }
(...skipping 19 matching lines...) Expand all
185 break; 189 break;
186 case kThemeCrossCursor: 190 case kThemeCrossCursor:
187 case kThemePlusCursor: 191 case kThemePlusCursor:
188 cursor_info.type = WebCursorInfo::TypeCross; 192 cursor_info.type = WebCursorInfo::TypeCross;
189 break; 193 break;
190 case kThemeWatchCursor: 194 case kThemeWatchCursor:
191 case kThemeSpinningCursor: 195 case kThemeSpinningCursor:
192 cursor_info.type = WebCursorInfo::TypeWait; 196 cursor_info.type = WebCursorInfo::TypeWait;
193 break; 197 break;
194 case kThemeClosedHandCursor: 198 case kThemeClosedHandCursor:
199 cursor_info.type = WebCursorInfo::TypeGrabbing;
200 break;
195 case kThemeOpenHandCursor: 201 case kThemeOpenHandCursor:
202 cursor_info.type = WebCursorInfo::TypeGrab;
203 break;
196 case kThemePointingHandCursor: 204 case kThemePointingHandCursor:
197 case kThemeCountingUpHandCursor: 205 case kThemeCountingUpHandCursor:
198 case kThemeCountingDownHandCursor: 206 case kThemeCountingDownHandCursor:
199 case kThemeCountingUpAndDownHandCursor: 207 case kThemeCountingUpAndDownHandCursor:
200 cursor_info.type = WebCursorInfo::TypeHand; 208 cursor_info.type = WebCursorInfo::TypeHand;
201 break; 209 break;
202 case kThemeResizeLeftCursor: 210 case kThemeResizeLeftCursor:
203 cursor_info.type = WebCursorInfo::TypeWestResize; 211 cursor_info.type = WebCursorInfo::TypeWestResize;
204 break; 212 break;
205 case kThemeResizeRightCursor: 213 case kThemeResizeRightCursor:
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 } else if ([cursor isEqual:[NSCursor resizeRightCursor]]) { 298 } else if ([cursor isEqual:[NSCursor resizeRightCursor]]) {
291 cursor_info.type = WebCursorInfo::TypeEastResize; 299 cursor_info.type = WebCursorInfo::TypeEastResize;
292 } else if ([cursor isEqual:[NSCursor resizeLeftRightCursor]]) { 300 } else if ([cursor isEqual:[NSCursor resizeLeftRightCursor]]) {
293 cursor_info.type = WebCursorInfo::TypeEastWestResize; 301 cursor_info.type = WebCursorInfo::TypeEastWestResize;
294 } else if ([cursor isEqual:[NSCursor resizeUpCursor]]) { 302 } else if ([cursor isEqual:[NSCursor resizeUpCursor]]) {
295 cursor_info.type = WebCursorInfo::TypeNorthResize; 303 cursor_info.type = WebCursorInfo::TypeNorthResize;
296 } else if ([cursor isEqual:[NSCursor resizeDownCursor]]) { 304 } else if ([cursor isEqual:[NSCursor resizeDownCursor]]) {
297 cursor_info.type = WebCursorInfo::TypeSouthResize; 305 cursor_info.type = WebCursorInfo::TypeSouthResize;
298 } else if ([cursor isEqual:[NSCursor resizeUpDownCursor]]) { 306 } else if ([cursor isEqual:[NSCursor resizeUpDownCursor]]) {
299 cursor_info.type = WebCursorInfo::TypeNorthSouthResize; 307 cursor_info.type = WebCursorInfo::TypeNorthSouthResize;
308 } else if ([cursor isEqual:[NSCursor openHandCursor]]) {
309 cursor_info.type = WebCursorInfo::TypeGrab;
310 } else if ([cursor isEqual:[NSCursor closedHandCursor]]) {
311 cursor_info.type = WebCursorInfo::TypeGrabbing;
300 } else { 312 } else {
301 // Also handles the [NSCursor closedHandCursor], [NSCursor openHandCursor], 313 // Also handles the [NSCursor disappearingItemCursor] case. Quick-and-dirty
302 // and [NSCursor disappearingItemCursor] cases. Quick-and-dirty image 314 // image conversion; TODO(avi): do better.
303 // conversion; TODO(avi): do better.
304 CGImageRef cg_image = nil; 315 CGImageRef cg_image = nil;
305 NSImage* image = [cursor image]; 316 NSImage* image = [cursor image];
306 for (id rep in [image representations]) { 317 for (id rep in [image representations]) {
307 if ([rep isKindOfClass:[NSBitmapImageRep class]]) { 318 if ([rep isKindOfClass:[NSBitmapImageRep class]]) {
308 cg_image = [rep CGImage]; 319 cg_image = [rep CGImage];
309 break; 320 break;
310 } 321 }
311 } 322 }
312 323
313 if (cg_image) { 324 if (cg_image) {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 return true; 391 return true;
381 } 392 }
382 393
383 void WebCursor::CleanupPlatformData() { 394 void WebCursor::CleanupPlatformData() {
384 return; 395 return;
385 } 396 }
386 397
387 void WebCursor::CopyPlatformData(const WebCursor& other) { 398 void WebCursor::CopyPlatformData(const WebCursor& other) {
388 return; 399 return;
389 } 400 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698