00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "Core/precomp.h"
00016 #include "mousecursor_provider_generic.h"
00017
00018 CL_MouseCursorProvider *CL_MouseCursorProvider::create(
00019 CL_SurfaceProvider *provider,
00020 bool delete_provider,
00021 bool animate,
00022 const std::vector<int> *frame_delays)
00023 {
00024 return new CL_MouseCursorProvider_Generic(provider, delete_provider, animate, frame_delays);
00025 }
00026
00027 CL_MouseCursorProvider *CL_MouseCursorProvider::load(
00028 const char *resource_id,
00029 CL_ResourceManager *manager)
00030
00031
00032 {
00033 return new CL_MouseCursorProvider_Generic(
00034 CL_SurfaceProvider::load(resource_id, manager),
00035 true
00036
00037 );
00038 }
00039
00040 CL_MouseCursorProvider_Generic::CL_MouseCursorProvider_Generic(
00041 CL_SurfaceProvider *provider,
00042 bool delete_provider,
00043 bool animate,
00044 const std::vector<int> *frame_delays)
00045 {
00046 m_surface_provider = provider;
00047 m_delete_provider = delete_provider;
00048 m_animated = animate;
00049 if (frame_delays != NULL) m_frame_delays = *frame_delays;
00050 }
00051
00052 CL_MouseCursorProvider_Generic::~CL_MouseCursorProvider_Generic()
00053 {
00054 if (m_delete_provider) delete m_surface_provider;
00055 }
00056
00057 CL_SurfaceProvider *CL_MouseCursorProvider_Generic::get_surface_provider()
00058 {
00059 return m_surface_provider;
00060 }
00061
00062 bool CL_MouseCursorProvider_Generic::is_animated()
00063 {
00064 return m_animated;
00065 }
00066
00067 int CL_MouseCursorProvider_Generic::get_frame_delay(unsigned int frame_number)
00068 {
00069 if (frame_number < m_frame_delays.size())
00070 {
00071 return m_frame_delays[frame_number];
00072 }
00073 else
00074 {
00075 return -1;
00076 }
00077 }