2012-05-21 15:12:37 +04:00
|
|
|
/* 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/. */
|
2004-04-29 07:14:21 +04:00
|
|
|
|
2007-01-18 09:34:07 +03:00
|
|
|
#ifndef nsCursorManager_h_
|
|
|
|
#define nsCursorManager_h_
|
|
|
|
|
2004-04-29 07:14:21 +04:00
|
|
|
#import <Foundation/Foundation.h>
|
2007-01-18 09:34:07 +03:00
|
|
|
#include "nsIWidget.h"
|
|
|
|
#include "nsMacCursor.h"
|
2004-04-29 07:14:21 +04:00
|
|
|
|
|
|
|
/*! @class nsCursorManager
|
|
|
|
@abstract Singleton service provides access to all cursors available in the application.
|
2018-11-29 13:30:46 +03:00
|
|
|
@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.
|
2004-04-29 07:14:21 +04:00
|
|
|
*/
|
|
|
|
@interface nsCursorManager : NSObject {
|
|
|
|
@private
|
2019-05-01 11:47:10 +03:00
|
|
|
NSMutableDictionary* mCursors;
|
|
|
|
nsMacCursor* mCurrentMacCursor;
|
2004-04-29 07:14:21 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
/*! @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
|
|
|
|
*/
|
2010-03-11 19:44:31 +03:00
|
|
|
- (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
|
2013-12-05 02:46:19 +04:00
|
|
|
@param scaleFactor the scale factor of the target display (2 for a retina display)
|
2010-03-11 19:44:31 +03:00
|
|
|
*/
|
2019-05-01 11:47:10 +03:00
|
|
|
- (nsresult)setCursorWithImage:(imgIContainer*)aCursorImage
|
2013-12-05 02:46:19 +04:00
|
|
|
hotSpotX:(uint32_t)aHotspotX
|
|
|
|
hotSpotY:(uint32_t)aHotspotY
|
|
|
|
scaleFactor:(CGFloat)scaleFactor;
|
2004-04-29 07:14:21 +04:00
|
|
|
|
|
|
|
/*! @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
|
|
|
|
*/
|
2019-05-01 11:47:10 +03:00
|
|
|
+ (nsCursorManager*)sharedInstance;
|
2004-04-29 07:14:21 +04:00
|
|
|
|
|
|
|
/*! @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
|
2007-01-18 09:34:07 +03:00
|
|
|
|
2014-01-14 18:36:41 +04:00
|
|
|
@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.
|
2019-05-01 11:47:10 +03:00
|
|
|
+ (NSCursor*)busyButClickableCursor;
|
2014-01-14 18:36:41 +04:00
|
|
|
@end
|
|
|
|
|
2007-01-18 09:34:07 +03:00
|
|
|
#endif // nsCursorManager_h_
|