mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
66 lines
2.6 KiB
Objective-C
66 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_
|