mirror of
https://github.com/Kiritow/MiniEngine.git
synced 2024-03-22 13:11:22 +08:00
Move cursor out
This commit is contained in:
parent
681ef2b0c6
commit
c86b52ef19
|
@ -316,83 +316,7 @@ namespace MiniEngine
|
|||
|
||||
|
||||
|
||||
//private
|
||||
void Cursor::_set(SDL_Cursor* p)
|
||||
{
|
||||
_cur.reset(p,SDL_FreeCursor);
|
||||
}
|
||||
|
||||
//private
|
||||
void Cursor::_set_no_delete(SDL_Cursor* p)
|
||||
{
|
||||
_cur.reset(p,[](SDL_Cursor* p){});
|
||||
}
|
||||
|
||||
//private
|
||||
SDL_Cursor* Cursor::_get()
|
||||
{
|
||||
return _cur.get();
|
||||
}
|
||||
|
||||
//private
|
||||
void Cursor::_clear()
|
||||
{
|
||||
_cur.reset();
|
||||
}
|
||||
|
||||
Cursor::Cursor(Surface surf,Point hotspot)
|
||||
{
|
||||
Cursor ns;
|
||||
SDL_Cursor* cursor=SDL_CreateColorCursor(surf._get(),hotspot.x,hotspot.y);
|
||||
ns._set(cursor);
|
||||
}
|
||||
|
||||
Cursor::Cursor(SystemCursorType type)
|
||||
{
|
||||
Cursor ns;
|
||||
ns._set(SDL_CreateSystemCursor(_internal::getSDLSystemCursorFromSystemCursorType(type)));
|
||||
}
|
||||
|
||||
//static
|
||||
Cursor Cursor::GetActiveCursor()
|
||||
{
|
||||
Cursor ns;
|
||||
ns._set_no_delete(SDL_GetCursor());
|
||||
return ns;
|
||||
}
|
||||
|
||||
//static
|
||||
Cursor Cursor::GetDefaultCursor()
|
||||
{
|
||||
Cursor ns;
|
||||
ns._set_no_delete(SDL_GetDefaultCursor());
|
||||
return ns;
|
||||
}
|
||||
|
||||
//static
|
||||
bool Cursor::isShow()
|
||||
{
|
||||
return (SDL_ShowCursor(SDL_QUERY)==SDL_ENABLE);
|
||||
}
|
||||
|
||||
//static
|
||||
void Cursor::setShow(bool Settings)
|
||||
{
|
||||
SDL_ShowCursor(Settings?SDL_ENABLE:SDL_DISABLE);
|
||||
}
|
||||
|
||||
void Cursor::release()
|
||||
{
|
||||
_clear();
|
||||
}
|
||||
|
||||
void Cursor::activate()
|
||||
{
|
||||
if(_get()!=nullptr)
|
||||
{
|
||||
SDL_SetCursor(_get());
|
||||
}
|
||||
}
|
||||
|
||||
WindowMessageBoxButton::WindowMessageBoxButton()
|
||||
{
|
||||
|
|
23
MiniEngine.h
23
MiniEngine.h
|
@ -62,29 +62,6 @@ namespace MiniEngine
|
|||
No, Hand
|
||||
};
|
||||
|
||||
class Cursor
|
||||
{
|
||||
public:
|
||||
Cursor()=default;
|
||||
Cursor(SystemCursorType);
|
||||
Cursor(Surface surf,Point hotspot={0,0});
|
||||
|
||||
static Cursor GetActiveCursor();
|
||||
static Cursor GetDefaultCursor();
|
||||
|
||||
static void setShow(bool);
|
||||
static bool isShow();
|
||||
|
||||
void activate();
|
||||
|
||||
void release();
|
||||
private:
|
||||
std::shared_ptr<SDL_Cursor> _cur;
|
||||
void _set(SDL_Cursor*);
|
||||
void _set_no_delete(SDL_Cursor*);
|
||||
SDL_Cursor* _get();
|
||||
void _clear();
|
||||
};
|
||||
|
||||
enum class MessageBoxType { Error, Warning, Information };
|
||||
|
||||
|
|
80
SDLWrapper/Cursor.cpp
Normal file
80
SDLWrapper/Cursor.cpp
Normal file
|
@ -0,0 +1,80 @@
|
|||
#include "Cursor.h"
|
||||
#include "begin_code.h"
|
||||
//private
|
||||
void Cursor::_set(SDL_Cursor* p)
|
||||
{
|
||||
_cur.reset(p,SDL_FreeCursor);
|
||||
}
|
||||
|
||||
//private
|
||||
void Cursor::_set_no_delete(SDL_Cursor* p)
|
||||
{
|
||||
_cur.reset(p,[](SDL_Cursor* p) {});
|
||||
}
|
||||
|
||||
//private
|
||||
SDL_Cursor* Cursor::_get()
|
||||
{
|
||||
return _cur.get();
|
||||
}
|
||||
|
||||
//private
|
||||
void Cursor::_clear()
|
||||
{
|
||||
_cur.reset();
|
||||
}
|
||||
|
||||
Cursor::Cursor(Surface surf,Point hotspot)
|
||||
{
|
||||
Cursor ns;
|
||||
SDL_Cursor* cursor=SDL_CreateColorCursor(surf._get(),hotspot.x,hotspot.y);
|
||||
ns._set(cursor);
|
||||
}
|
||||
|
||||
Cursor::Cursor(SystemCursorType type)
|
||||
{
|
||||
Cursor ns;
|
||||
ns._set(SDL_CreateSystemCursor(_internal::getSDLSystemCursorFromSystemCursorType(type)));
|
||||
}
|
||||
|
||||
//static
|
||||
Cursor Cursor::GetActiveCursor()
|
||||
{
|
||||
Cursor ns;
|
||||
ns._set_no_delete(SDL_GetCursor());
|
||||
return ns;
|
||||
}
|
||||
|
||||
//static
|
||||
Cursor Cursor::GetDefaultCursor()
|
||||
{
|
||||
Cursor ns;
|
||||
ns._set_no_delete(SDL_GetDefaultCursor());
|
||||
return ns;
|
||||
}
|
||||
|
||||
//static
|
||||
bool Cursor::isShow()
|
||||
{
|
||||
return (SDL_ShowCursor(SDL_QUERY)==SDL_ENABLE);
|
||||
}
|
||||
|
||||
//static
|
||||
void Cursor::setShow(bool Settings)
|
||||
{
|
||||
SDL_ShowCursor(Settings?SDL_ENABLE:SDL_DISABLE);
|
||||
}
|
||||
|
||||
void Cursor::release()
|
||||
{
|
||||
_clear();
|
||||
}
|
||||
|
||||
void Cursor::activate()
|
||||
{
|
||||
if(_get()!=nullptr)
|
||||
{
|
||||
SDL_SetCursor(_get());
|
||||
}
|
||||
}
|
||||
#include "end_code.h"
|
27
SDLWrapper/Cursor.h
Normal file
27
SDLWrapper/Cursor.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
#pragma once
|
||||
#include "include.h"
|
||||
#include "begin_code.h"
|
||||
class Cursor
|
||||
{
|
||||
public:
|
||||
Cursor()=default;
|
||||
Cursor(SystemCursorType);
|
||||
Cursor(Surface surf,Point hotspot= {0,0});
|
||||
|
||||
static Cursor GetActiveCursor();
|
||||
static Cursor GetDefaultCursor();
|
||||
|
||||
static void setShow(bool);
|
||||
static bool isShow();
|
||||
|
||||
void activate();
|
||||
|
||||
void release();
|
||||
private:
|
||||
std::shared_ptr<SDL_Cursor> _cur;
|
||||
void _set(SDL_Cursor*);
|
||||
void _set_no_delete(SDL_Cursor*);
|
||||
SDL_Cursor* _get();
|
||||
void _clear();
|
||||
};
|
||||
#include "end_code.h"
|
Loading…
Reference in New Issue
Block a user