32 @
typedef CPCursorPlatform
43 BOOL _isSetOnMouseEntered;
44 BOOL _isSetOnMouseExited;
54 "ew-resize":
"e-resize",
55 "ns-resize":
"n-resize",
56 "nesw-resize":
"ne-resize",
57 "nwse-resize":
"nw-resize" 63 if (
self = [super
init])
73 - (id)initWithImage:(
CPImage)image hotSpot:(CGPoint)hotSpot
77 return [
self initWithCSSString:"url(" + [_image filename] + ")" + hotSpot.x + " " + hotSpot.y + ", auto"];
85 - (id)initWithImage:(
CPImage)image foregroundColorHint:(
CPColor)foregroundColor backgroundColorHint:(
CPColor)backgroundColor hotSpot:(CGPoint)aHotSpot
92 [
self _setCursorCSS:@"none"];
100 + (void)setHiddenUntilMouseMoves:(BOOL)flag
136 [[
self class] _setCursorCSS:_cssString];
153 + (void)_setCursorCSS:(
CPString)aString
158 for (var i = 0, count = [platformWindows count]; i < count; i++)
159 platformWindows[i]._DOMBodyElement.style.cursor = aString;
166 var cursor =
cursors[cursorName];
168 if (typeof cursor ===
"undefined")
188 var cursor =
cursors[cursorName];
190 if (typeof cursor ===
"undefined")
192 var themeResourcePath = [[[CPApp themeBlend] bundle] resourcePath],
195 cssString = [
CPString stringWithFormat:@"url(%@cursors/%@.%@), %@", themeResourcePath, cursorName, extension, aString];
203 + (
CPCursor)_tryUsingNativeSystemCursorWithName:(
CPString)cursorName cssString:(
CPString)cssName onPlatform:(CPCursorPlatform)shouldUseNativeCursorOn fallingBackWithImageAndCSSPointer:(
CPString)aString
208 && [
CPCursor _nativeCursorExists:cssName]);
210 if (useNativeSystemCursor)
211 return [
CPCursor _nativeSystemCursorWithName:cursorName cssString:cssName];
213 return [
CPCursor _imageCursorWithName:cursorName cssString:aString];
216 + (BOOL)_nativeCursorExists:(
CPString)cursorCSSName
230 count = [platformWindows count];
234 var currentPlatformCursor = platformWindows[0]._DOMBodyElement.style.cursor;
235 platformWindows[0]._DOMBodyElement.style.cursor = cursorCSSName;
236 var doesExist = (platformWindows[0]._DOMBodyElement.style.cursor == cursorCSSName);
237 platformWindows[0]._DOMBodyElement.style.cursor = currentPlatformCursor;
248 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"default"];
253 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"crosshair"];
258 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"text"];
263 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"pointer"];
268 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nw-resize"];
273 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nwse-resize"];
278 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ne-resize"];
283 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nesw-resize"];
288 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"sw-resize"];
293 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"se-resize"];
298 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"s-resize"];
303 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"n-resize"];
308 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"w-resize"];
313 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"e-resize"];
318 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"col-resize"];
323 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ew-resize"];
328 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"row-resize"];
333 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ns-resize"];
338 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"not-allowed"];
343 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"copy"];
348 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"alias"];
353 return [
CPCursor _tryUsingNativeSystemCursorWithName:CPStringFromSelector(_cmd)
354 cssString:@"context-menu"
355 onPlatform:CPCursorPlatformBoth
356 fallingBackWithImageAndCSSPointer:@"default"];
361 return [
CPCursor _tryUsingNativeSystemCursorWithName:CPStringFromSelector(_cmd)
363 onPlatform:CPCursorPlatformMac
364 fallingBackWithImageAndCSSPointer:@"default"];
369 return [
CPCursor _tryUsingNativeSystemCursorWithName:CPStringFromSelector(_cmd)
370 cssString:@"grabbing"
371 onPlatform:CPCursorPlatformMac
372 fallingBackWithImageAndCSSPointer:@"default"];
377 return [
CPCursor _imageCursorWithName:CPStringFromSelector(_cmd) cssString:@"default"];
382 return [
CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"vertical-text"];
391 if (
self = [super
init])
392 _cssString = [coder decodeObjectForKey:@"CPCursorNameKey"];
399 [coder encodeObject:_cssString forKey:@"CPCursorNameKey"];
441 - (BOOL)isSetOnMouseEntered
443 return _isSetOnMouseEntered;
449 - (void)setOnMouseEntered:(BOOL)aValue
451 _isSetOnMouseEntered = aValue;
457 - (BOOL)isSetOnMouseExited
459 return _isSetOnMouseExited;
465 - (void)setOnMouseExited:(BOOL)aValue
467 _isSetOnMouseExited = aValue;
CPCursorPlatform CPCursorPlatformNone
An immutable string (collection of characters).
CPInternetExplorerBrowserEngine
function CPFeatureIsCompatible(aFeature)
function CPBrowserIsOperatingSystem(anOperatingSystem)
Defines methods for use when archiving & restoring (enc/decoding).
global CPApp var cursorStack
id initWithCSSString:(CPString aString)
global CPApp var ieCursorMap
function CPBrowserIsEngine(anEngine)
global CPApp var currentCursor
id stringWithFormat:(CPString format, [,] ...)
id initWithImage:hotSpot:(CPImage image, [hotSpot] CGPoint hotSpot)