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()
|
WindowMessageBoxButton::WindowMessageBoxButton()
|
||||||
{
|
{
|
||||||
|
|
23
MiniEngine.h
23
MiniEngine.h
|
@ -62,29 +62,6 @@ namespace MiniEngine
|
||||||
No, Hand
|
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 };
|
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