mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-25 17:56:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef OPENMW_COMPONENTS_SDLUTIL_SDLCURSORMANAGER_H
 | |
| #define OPENMW_COMPONENTS_SDLUTIL_SDLCURSORMANAGER_H
 | |
| 
 | |
| #include <map>
 | |
| #include <string>
 | |
| 
 | |
| #include <SDL_types.h>
 | |
| 
 | |
| struct SDL_Cursor;
 | |
| struct SDL_Surface;
 | |
| 
 | |
| namespace osg
 | |
| {
 | |
|     class Image;
 | |
| }
 | |
| 
 | |
| namespace SDLUtil
 | |
| {
 | |
|     class SDLCursorManager
 | |
|     {
 | |
|     public:
 | |
|         SDLCursorManager();
 | |
|         virtual ~SDLCursorManager();
 | |
| 
 | |
|         /// \brief sets whether to actively manage cursors or not
 | |
|         virtual void setEnabled(bool enabled);
 | |
| 
 | |
|         /// \brief Tell the manager that the cursor has changed, giving the
 | |
|         ///        name of the cursor we changed to ("arrow", "ibeam", etc)
 | |
|         virtual void cursorChanged(const std::string &name);
 | |
| 
 | |
|         virtual void createCursor(const std::string &name, int rotDegrees, osg::Image* image, Uint8 hotspot_x, Uint8 hotspot_y, int cursorWidth, int cursorHeight);
 | |
| 
 | |
|     private:
 | |
|         void _createCursorFromResource(const std::string &name, int rotDegrees, osg::Image* image, Uint8 hotspot_x, Uint8 hotspot_y, int cursorWidth, int cursorHeight);
 | |
|         void _putPixel(SDL_Surface *surface, int x, int y, Uint32 pixel);
 | |
| 
 | |
|         void _setGUICursor(const std::string& name);
 | |
| 
 | |
|         typedef std::map<std::string, SDL_Cursor*> CursorMap;
 | |
|         CursorMap mCursorMap;
 | |
| 
 | |
|         std::string mCurrentCursor;
 | |
|         bool mEnabled;
 | |
|         bool mInitialized;
 | |
|     };
 | |
| }
 | |
| 
 | |
| #endif
 |