2009-04-16 11:14:13 +00:00
# ifndef __CCURSORHANDLER_H__
# define __CCURSORHANDLER_H__
2009-05-20 10:08:56 +00:00
# include "../global.h"
2009-04-16 11:14:13 +00:00
# include <vector>
struct SDL_Thread ;
class CDefHandler ;
struct SDL_Surface ;
2009-04-15 14:03:31 +00: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 11:14:13 +00:00
*/
2011-02-22 11:52:36 +00:00
/// handles mouse cursor
class CCursorHandler
2009-04-16 11:14:13 +00:00
{
public :
int mode , number ;
SDL_Surface * help ;
2009-11-28 19:55:40 +00:00
SDL_Surface * dndImage ;
2009-04-16 11:14:13 +00:00
bool Show ;
std : : vector < CDefHandler * > cursors ;
int xpos , ypos ; //position of cursor
2009-10-25 14:36:11 +00:00
void initCursor ( ) ; //inits cursorHandler - run only once, it's not memleak-proof (rev 1333)
2009-04-16 11:14:13 +00: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 19:55:40 +00:00
void dragAndDropCursor ( SDL_Surface * image ) ; // Replace cursor with a custom image.
2009-04-16 11:14:13 +00:00
void draw1 ( ) ;
2009-08-30 12:47:40 +00:00
void shiftPos ( int & x , int & y ) ;
2009-04-16 11:14:13 +00:00
void draw2 ( ) ;
void hide ( ) { Show = 0 ; } ;
void show ( ) { Show = 1 ; } ;
2009-10-25 14:36:11 +00:00
~ CCursorHandler ( ) ;
2009-04-16 11:14:13 +00:00
} ;
# endif // __CCURSORHANDLER_H__