forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			2.6 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 nsCursorManager_h_
 | |
| #define nsCursorManager_h_
 | |
| 
 | |
| #import <Foundation/Foundation.h>
 | |
| #include "nsIWidget.h"
 | |
| #include "nsMacCursor.h"
 | |
| 
 | |
| /*! @class      nsCursorManager
 | |
|     @abstract   Singleton service provides access to all cursors available in the application.
 | |
|     @discussion Use <code>nsCusorManager</code> to set the current cursor using an XP <code>nsCusor</code> enum value.
 | |
|                 <code>nsCursorManager</code> encapsulates the details of setting different types of cursors, animating
 | |
|                 cursors and cleaning up cursors when they are no longer in use.
 | |
|  */
 | |
| @interface nsCursorManager : NSObject
 | |
| {
 | |
|   @private
 | |
|   NSMutableDictionary *mCursors;
 | |
|   nsMacCursor *mCurrentMacCursor;
 | |
| }
 | |
| 
 | |
| /*! @method     setCursor:
 | |
|     @abstract   Sets the current cursor.
 | |
|     @discussion Sets the current cursor to the cursor indicated by the XP cursor constant given as an argument.
 | |
|                 Resources associated with the previous cursor are cleaned up.
 | |
|     @param aCursor the cursor to use
 | |
| */
 | |
| - (nsresult) setCursor: (nsCursor) aCursor;
 | |
| 
 | |
| /*! @method  setCursorWithImage:hotSpotX:hotSpotY:
 | |
|  @abstract   Sets the current cursor to a custom image
 | |
|  @discussion Sets the current cursor to the cursor given by the aCursorImage argument.
 | |
|  Resources associated with the previous cursor are cleaned up.
 | |
|  @param aCursorImage the cursor image to use
 | |
|  @param aHotSpotX the x coordinate of the cursor's hotspot
 | |
|  @param aHotSpotY the y coordinate of the cursor's hotspot
 | |
|  @param scaleFactor the scale factor of the target display (2 for a retina display)
 | |
|  */
 | |
| - (nsresult) setCursorWithImage: (imgIContainer*) aCursorImage hotSpotX: (uint32_t) aHotspotX hotSpotY: (uint32_t) aHotspotY scaleFactor: (CGFloat) scaleFactor;
 | |
| 
 | |
| 
 | |
| /*! @method     sharedInstance
 | |
|     @abstract   Get the Singleton instance of the cursor manager.
 | |
|     @discussion Use this method to obtain a reference to the cursor manager.
 | |
|     @result a reference to the cursor manager
 | |
| */
 | |
| + (nsCursorManager *) sharedInstance;
 | |
| 
 | |
| /*! @method     dispose
 | |
|     @abstract   Releases the shared instance of the cursor manager.
 | |
|     @discussion Use dispose to clean up the cursor manager and associated cursors.
 | |
| */
 | |
| + (void) dispose;
 | |
| @end
 | |
| 
 | |
| @interface NSCursor (Undocumented)
 | |
| // busyButClickableCursor is an undocumented NSCursor API, but has been in use since
 | |
| // at least OS X 10.4 and through 10.9.
 | |
| + (NSCursor*)busyButClickableCursor;
 | |
| @end
 | |
| 
 | |
| #endif // nsCursorManager_h_
 | 
