forked from mirrors/gecko-dev
		
	 e226046cb8
			
		
	
	
		e226046cb8
		
	
	
	
	
		
			
			# ignore-this-changeset Depends on D28954 Differential Revision: https://phabricator.services.mozilla.com/D28956 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			128 lines
		
	
	
	
		
			5.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
	
		
			5.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #ifndef nsMacCursor_h_
 | |
| #define nsMacCursor_h_
 | |
| 
 | |
| #import <Cocoa/Cocoa.h>
 | |
| #import "nsIWidget.h"
 | |
| 
 | |
| /*! @class      nsMacCursor
 | |
|     @abstract   Represents a native Mac cursor.
 | |
|     @discussion <code>nsMacCursor</code> provides a simple API for creating and
 | |
|                 working with native Macintosh cursors.  Cursors can be created
 | |
|                 used without needing to be aware of the way different cursors
 | |
|                 are implemented, in particular the details of managing an
 | |
|                 animated cursor are hidden.
 | |
| */
 | |
| @interface nsMacCursor : NSObject {
 | |
|  @private
 | |
|   NSTimer* mTimer;
 | |
|  @protected
 | |
|   nsCursor mType;
 | |
|   int mFrameCounter;
 | |
| }
 | |
| 
 | |
| /*! @method     cursorWithCursor:
 | |
|     @abstract   Create a cursor by specifying a Cocoa <code>NSCursor</code>.
 | |
|     @discussion Creates a cursor representing the given Cocoa built-in cursor.
 | |
|     @param      aCursor the <code>NSCursor</code> to use
 | |
|     @param      aType the corresponding <code>nsCursor</code> constant
 | |
|     @result     an autoreleased instance of <code>nsMacCursor</code>
 | |
|                 representing the given <code>NSCursor</code>
 | |
|  */
 | |
| + (nsMacCursor*)cursorWithCursor:(NSCursor*)aCursor type:(nsCursor)aType;
 | |
| 
 | |
| /*! @method     cursorWithImageNamed:hotSpot:type:
 | |
|     @abstract   Create a cursor by specifying the name of an image resource to
 | |
|                 use for the cursor and a hotspot.
 | |
|     @discussion Creates a cursor by loading the named image using the
 | |
|                 <code>+[NSImage imageNamed:]</code> method.
 | |
|                 <p>The image must be compatible with any restrictions laid down
 | |
|                 by <code>NSCursor</code>. These vary by operating system
 | |
|                 version.</p>
 | |
|                 <p>The hotspot precisely determines the point where the user
 | |
|                 clicks when using the cursor.</p>
 | |
|     @param      aCursor the name of the image to use for the cursor
 | |
|     @param      aPoint the point within the cursor to use as the hotspot
 | |
|     @param      aType the corresponding <code>nsCursor</code> constant
 | |
|     @result     an autoreleased instance of <code>nsMacCursor</code> that uses the given image and
 | |
|    hotspot
 | |
|  */
 | |
| + (nsMacCursor*)cursorWithImageNamed:(NSString*)aCursorImage
 | |
|                              hotSpot:(NSPoint)aPoint
 | |
|                                 type:(nsCursor)aType;
 | |
| 
 | |
| /*! @method     cursorWithFrames:type:
 | |
|     @abstract   Create an animated cursor by specifying the frames to use for
 | |
|                 the animation.
 | |
|     @discussion Creates a cursor that will animate by cycling through the given
 | |
|                 frames. Each element of the array must be an instance of
 | |
|                 <code>NSCursor</code>
 | |
|     @param      aCursorFrames an array of <code>NSCursor</code>, representing
 | |
|                 the frames of an animated cursor, in the order they should be
 | |
|                 played.
 | |
|     @param      aType the corresponding <code>nsCursor</code> constant
 | |
|     @result     an autoreleased instance of <code>nsMacCursor</code> that will
 | |
|                 animate the given cursor frames
 | |
|  */
 | |
| + (nsMacCursor*)cursorWithFrames:(NSArray*)aCursorFrames type:(nsCursor)aType;
 | |
| 
 | |
| /*! @method     cocoaCursorWithImageNamed:hotSpot:
 | |
|     @abstract   Create a Cocoa NSCursor object with a Gecko image resource name
 | |
|                 and a hotspot point.
 | |
|     @discussion Create a Cocoa NSCursor object with a Gecko image resource name
 | |
|                 and a hotspot point.
 | |
|     @param      imageName the name of the gecko image resource, "tiff"
 | |
|                 extension is assumed, do not append.
 | |
|     @param      aPoint the point within the cursor to use as the hotspot
 | |
|     @result     an autoreleased instance of <code>nsMacCursor</code> that will
 | |
|                 animate the given cursor frames
 | |
|  */
 | |
| + (NSCursor*)cocoaCursorWithImageNamed:(NSString*)imageName hotSpot:(NSPoint)aPoint;
 | |
| 
 | |
| /*! @method     isSet
 | |
|     @abstract   Determines whether this cursor is currently active.
 | |
|     @discussion This can be helpful when the Cocoa NSCursor state can be
 | |
|                 influenced without going through nsCursorManager.
 | |
|     @result     whether the cursor is currently set
 | |
|  */
 | |
| - (BOOL)isSet;
 | |
| 
 | |
| /*! @method     set
 | |
|     @abstract   Set the cursor.
 | |
|     @discussion Makes this cursor the current cursor. If the cursor is
 | |
|                 animated, the animation is started.
 | |
|  */
 | |
| - (void)set;
 | |
| 
 | |
| /*! @method     unset
 | |
|     @abstract   Unset the cursor. The cursor will return to the default
 | |
|                 (usually the arrow cursor).
 | |
|     @discussion Unsets the cursor. If the cursor is animated, the animation is
 | |
|                 stopped.
 | |
|  */
 | |
| - (void)unset;
 | |
| 
 | |
| /*! @method     isAnimated
 | |
|     @abstract   Tests whether this cursor is animated.
 | |
|     @discussion Use this method to determine whether a cursor is animated
 | |
|     @result     YES if the cursor is animated (has more than one frame), NO if
 | |
|                 it is a simple static cursor.
 | |
|  */
 | |
| - (BOOL)isAnimated;
 | |
| 
 | |
| /** @method     cursorType
 | |
|     @abstract   Get the cursor type for this cursor
 | |
|     @discussion This method returns the <code>nsCursor</code> constant that
 | |
|                 corresponds to this cursor, which is  equivalent to the CSS
 | |
|                 name for the cursor.
 | |
|     @result     The nsCursor constant corresponding to this cursor, or
 | |
|                 nsCursor's 'eCursorCount' if the cursor is a custom cursor
 | |
|                 loaded from a URI
 | |
|  */
 | |
| - (nsCursor)type;
 | |
| @end
 | |
| 
 | |
| #endif  // nsMacCursor_h_
 |