2009-04-16 14:14:13 +03:00
# ifndef __CCURSORHANDLER_H__
# define __CCURSORHANDLER_H__
2009-05-20 13:08:56 +03:00
# include "../global.h"
2009-04-16 14:14:13 +03:00
# include <vector>
struct SDL_Thread ;
class CDefHandler ;
struct SDL_Surface ;
2009-04-15 17:03:31 +03:00
/*
* CCursorhandler . h , part of VCMI engine
*
* Authors : listed in file AUTHORS in main folder
*
* License : GNU General Public License v2 .0 or later
* Full text of license available in license . txt file , in main folder
*
2009-04-16 14:14:13 +03:00
*/
2011-02-22 13:52:36 +02:00
/// handles mouse cursor
class CCursorHandler
2009-04-16 14:14:13 +03:00
{
public :
int mode , number ;
SDL_Surface * help ;
2009-11-28 21:55:40 +02:00
SDL_Surface * dndImage ;
2009-04-16 14:14:13 +03:00
bool Show ;
std : : vector < CDefHandler * > cursors ;
int xpos , ypos ; //position of cursor
2009-10-25 16:36:11 +02:00
void initCursor ( ) ; //inits cursorHandler - run only once, it's not memleak-proof (rev 1333)
2009-04-16 14:14:13 +03:00
void cursorMove ( const int & x , const int & y ) ; //change cursor's positions to (x, y)
void changeGraphic ( const int & type , const int & no ) ; //changes cursor graphic for type type (0 - adventure, 1 - combat, 2 - default, 3 - spellbook) and frame no (not used for type 3)
2009-11-28 21:55:40 +02:00
void dragAndDropCursor ( SDL_Surface * image ) ; // Replace cursor with a custom image.
2009-04-16 14:14:13 +03:00
void draw1 ( ) ;
2009-08-30 15:47:40 +03:00
void shiftPos ( int & x , int & y ) ;
2009-04-16 14:14:13 +03:00
void draw2 ( ) ;
2011-04-05 20:38:24 +03:00
void hide ( ) { Show = 0 ; } ;
void show ( ) { Show = 1 ; } ;
void centerCursor ( ) ;
2009-10-25 16:36:11 +02:00
~ CCursorHandler ( ) ;
2009-04-16 14:14:13 +03:00
} ;
# endif // __CCURSORHANDLER_H__