mirror of
https://github.com/Kiritow/MiniEngine.git
synced 2024-03-22 13:11:22 +08:00
Add font style single-query methods
This commit is contained in:
parent
00a3000d1d
commit
6901b0054c
129
MiniEngine.cpp
129
MiniEngine.cpp
|
@ -116,6 +116,52 @@ namespace MiniEngine
|
||||||
return SDL_SYSTEM_CURSOR_ARROW;
|
return SDL_SYSTEM_CURSOR_ARROW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getTTFFontStyleFromFontStyle(Font::Style style)
|
||||||
|
{
|
||||||
|
switch(style)
|
||||||
|
{
|
||||||
|
case Font::Style::Bold:
|
||||||
|
return TTF_STYLE_BOLD;
|
||||||
|
case Font::Style::Italic:
|
||||||
|
return TTF_STYLE_ITALIC;
|
||||||
|
case Font::Style::Normal:
|
||||||
|
return TTF_STYLE_NORMAL;
|
||||||
|
case Font::Style::StrikeThrough:
|
||||||
|
return TTF_STYLE_STRIKETHROUGH;
|
||||||
|
case Font::Style::UnderLine:
|
||||||
|
return TTF_STYLE_UNDERLINE;
|
||||||
|
default:
|
||||||
|
return TTF_STYLE_NORMAL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<Font::Style> getFontStyleVecFromMixedTTFFontStyle(int Mixed_TTF_Font_Style)
|
||||||
|
{
|
||||||
|
std::vector<Font::Style> vec;
|
||||||
|
if(Mixed_TTF_Font_Style&TTF_STYLE_BOLD)
|
||||||
|
{
|
||||||
|
vec.push_back(Font::Style::Bold);
|
||||||
|
}
|
||||||
|
if(Mixed_TTF_Font_Style&TTF_STYLE_ITALIC)
|
||||||
|
{
|
||||||
|
vec.push_back(Font::Style::Italic);
|
||||||
|
}
|
||||||
|
if(Mixed_TTF_Font_Style&TTF_STYLE_STRIKETHROUGH)
|
||||||
|
{
|
||||||
|
vec.push_back(Font::Style::StrikeThrough);
|
||||||
|
}
|
||||||
|
if(Mixed_TTF_Font_Style&TTF_STYLE_UNDERLINE)
|
||||||
|
{
|
||||||
|
vec.push_back(Font::Style::UnderLine);
|
||||||
|
}
|
||||||
|
if(vec.empty())
|
||||||
|
{
|
||||||
|
vec.push_back(Font::Style::Normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
return vec;
|
||||||
|
}
|
||||||
}/// End of namespace _internal
|
}/// End of namespace _internal
|
||||||
|
|
||||||
Rect::Rect(int X, int Y, int W, int H)
|
Rect::Rect(int X, int Y, int W, int H)
|
||||||
|
@ -1139,6 +1185,68 @@ namespace MiniEngine
|
||||||
return (_get() != nullptr);
|
return (_get() != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Font::isNormal()
|
||||||
|
{
|
||||||
|
return !(TTF_GetFontStyle(_get()));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Font::isBold()
|
||||||
|
{
|
||||||
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_BOLD );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Font::isItalic()
|
||||||
|
{
|
||||||
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_ITALIC );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Font::isUnderLine()
|
||||||
|
{
|
||||||
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_UNDERLINE );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Font::isStrikeThrough()
|
||||||
|
{
|
||||||
|
return (TTF_GetFontStyle(_get()) & TTF_STYLE_STRIKETHROUGH );
|
||||||
|
}
|
||||||
|
|
||||||
|
void Font::setNormal()
|
||||||
|
{
|
||||||
|
_real_setFontStyle(TTF_STYLE_NORMAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Font::setBold(bool enable)
|
||||||
|
{
|
||||||
|
if( enable!=isBold() )
|
||||||
|
{
|
||||||
|
_real_setFontStyle( TTF_GetFontStyle(_get()) | (enable?TTF_STYLE_BOLD:!TTF_STYLE_BOLD) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Font::setItalic(bool enable)
|
||||||
|
{
|
||||||
|
if( enable!=isItalic() )
|
||||||
|
{
|
||||||
|
_real_setFontStyle( TTF_GetFontStyle(_get()) | (enable?TTF_STYLE_ITALIC:!TTF_STYLE_ITALIC) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Font::setUnderLine(bool enable)
|
||||||
|
{
|
||||||
|
if( enable!=isUnderLine() )
|
||||||
|
{
|
||||||
|
_real_setFontStyle( TTF_GetFontStyle(_get()) | (enable?TTF_STYLE_UNDERLINE:!TTF_STYLE_UNDERLINE) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Font::setStrikeThrough(bool enable)
|
||||||
|
{
|
||||||
|
if( enable!=isStrikeThrough() )
|
||||||
|
{
|
||||||
|
_real_setFontStyle( TTF_GetFontStyle(_get()) | (enable?TTF_STYLE_STRIKETHROUGH:!TTF_STYLE_STRIKETHROUGH) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Font::_real_setFontStyle(int Style)
|
void Font::_real_setFontStyle(int Style)
|
||||||
{
|
{
|
||||||
TTF_SetFontStyle(_get(),Style);
|
TTF_SetFontStyle(_get(),Style);
|
||||||
|
@ -1146,22 +1254,13 @@ namespace MiniEngine
|
||||||
|
|
||||||
int Font::_style_caster(Style style)
|
int Font::_style_caster(Style style)
|
||||||
{
|
{
|
||||||
switch(style)
|
return _internal::getTTFFontStyleFromFontStyle(style);
|
||||||
{
|
}
|
||||||
case Style::Bold:
|
|
||||||
return TTF_STYLE_BOLD;
|
|
||||||
case Style::Italic:
|
|
||||||
return TTF_STYLE_ITALIC;
|
|
||||||
case Style::Normal:
|
|
||||||
return TTF_STYLE_NORMAL;
|
|
||||||
case Style::StrikeThrough:
|
|
||||||
return TTF_STYLE_STRIKETHROUGH;
|
|
||||||
case Style::UnderLine:
|
|
||||||
return TTF_STYLE_UNDERLINE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// If an error occurs, return 0 instead of -1.
|
std::vector<Font::Style> Font::getFontStyles()
|
||||||
return 0;
|
{
|
||||||
|
int styles=TTF_GetFontStyle(_get());
|
||||||
|
return _internal::getFontStyleVecFromMixedTTFFontStyle(styles);
|
||||||
}
|
}
|
||||||
|
|
||||||
Rect Font::sizeText(const std::string& Text) throw (ErrorViewer)
|
Rect Font::sizeText(const std::string& Text) throw (ErrorViewer)
|
||||||
|
|
15
MiniEngine.h
15
MiniEngine.h
|
@ -22,6 +22,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#define _DECL_DEPRECATED [[deprecated]]
|
#define _DECL_DEPRECATED [[deprecated]]
|
||||||
|
|
||||||
|
@ -359,6 +360,18 @@ namespace MiniEngine
|
||||||
int use(std::string FontFileName, int size);
|
int use(std::string FontFileName, int size);
|
||||||
bool isReady();
|
bool isReady();
|
||||||
|
|
||||||
|
bool isNormal();
|
||||||
|
bool isBold();
|
||||||
|
bool isItalic();
|
||||||
|
bool isUnderLine();
|
||||||
|
bool isStrikeThrough();
|
||||||
|
|
||||||
|
void setNormal();
|
||||||
|
void setBold(bool);
|
||||||
|
void setItalic(bool);
|
||||||
|
void setUnderLine(bool);
|
||||||
|
void setStrikeThrough(bool);
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void setFontStyle(Style style,Args&&... args)
|
void setFontStyle(Style style,Args&&... args)
|
||||||
{
|
{
|
||||||
|
@ -372,7 +385,7 @@ namespace MiniEngine
|
||||||
_setFontStyle(fontcalc,style);
|
_setFontStyle(fontcalc,style);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::tuple<Style> getFontStyles();
|
std::vector<Style> getFontStyles();
|
||||||
|
|
||||||
Rect sizeText(const std::string& Text) throw (ErrorViewer);
|
Rect sizeText(const std::string& Text) throw (ErrorViewer);
|
||||||
Rect sizeUTF8(const std::string& Text) throw (ErrorViewer);
|
Rect sizeUTF8(const std::string& Text) throw (ErrorViewer);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user