mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-18 11:19:10 +00:00
Merge pull request #425 from Hoikas/dyntextmsg-string
pyDynamicMap plString-ification
This commit is contained in:
@ -266,7 +266,7 @@ void pyDynamicText::UnsetWrapping()
|
|||||||
//
|
//
|
||||||
// Draw text paying attention to Clipping and Wrapping if user wanted it
|
// Draw text paying attention to Clipping and Wrapping if user wanted it
|
||||||
//
|
//
|
||||||
void pyDynamicText::DrawText( int16_t x, int16_t y, const char *text )
|
void pyDynamicText::DrawText( int16_t x, int16_t y, const plString& text )
|
||||||
{
|
{
|
||||||
// create message
|
// create message
|
||||||
plDynamicTextMsg* pMsg = ICreateDTMsg();
|
plDynamicTextMsg* pMsg = ICreateDTMsg();
|
||||||
@ -287,27 +287,6 @@ void pyDynamicText::DrawText( int16_t x, int16_t y, const char *text )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void pyDynamicText::DrawTextW( int16_t x, int16_t y, std::wstring text )
|
|
||||||
{
|
|
||||||
// create message
|
|
||||||
plDynamicTextMsg* pMsg = ICreateDTMsg();
|
|
||||||
if ( pMsg )
|
|
||||||
{
|
|
||||||
// The priority is:
|
|
||||||
// 1) wrap (if you wrap you probably don't need to clip)
|
|
||||||
// 2) clip
|
|
||||||
// 3) just draw
|
|
||||||
if ( fWrap )
|
|
||||||
pMsg->DrawWrappedString(x,y,fWrapWidth,fWrapHeight,text.c_str());
|
|
||||||
else if ( fClip )
|
|
||||||
pMsg->DrawClippedString(x,y,fClipLeft,fClipTop,fClipRight,fClipBottom,text.c_str());
|
|
||||||
else
|
|
||||||
pMsg->DrawString(x,y,text.c_str());
|
|
||||||
|
|
||||||
plgDispatch::MsgSend( pMsg ); // whoosh... off it goes
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Draw an image on the DynamicMap
|
// Draw an image on the DynamicMap
|
||||||
//
|
//
|
||||||
@ -370,7 +349,7 @@ uint16_t pyDynamicText::GetHeight( void )
|
|||||||
return (uint16_t)dtMap->GetHeight();
|
return (uint16_t)dtMap->GetHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
void pyDynamicText::CalcTextExtents( std::wstring text, unsigned &width, unsigned &height )
|
void pyDynamicText::CalcTextExtents(const plString& text, uint16_t& width, uint16_t& height)
|
||||||
{
|
{
|
||||||
width = 0;
|
width = 0;
|
||||||
height = 0;
|
height = 0;
|
||||||
@ -379,10 +358,8 @@ void pyDynamicText::CalcTextExtents( std::wstring text, unsigned &width, unsigne
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
plDynamicTextMap* dtMap = plDynamicTextMap::ConvertNoRef(fReceivers[0]->ObjectIsLoaded());
|
plDynamicTextMap* dtMap = plDynamicTextMap::ConvertNoRef(fReceivers[0]->ObjectIsLoaded());
|
||||||
if (!dtMap)
|
if (dtMap)
|
||||||
return;
|
width = dtMap->CalcStringWidth(text, &height);
|
||||||
|
|
||||||
width = dtMap->CalcStringWidth(text.c_str(), (uint16_t*)&height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void pyDynamicText::SetJustify(uint8_t justify)
|
void pyDynamicText::SetJustify(uint8_t justify)
|
||||||
|
@ -54,7 +54,6 @@ class pyImage;
|
|||||||
|
|
||||||
#include "pyGlueHelpers.h"
|
#include "pyGlueHelpers.h"
|
||||||
#include "pnKeyedObject/plKey.h"
|
#include "pnKeyedObject/plKey.h"
|
||||||
#include <string>
|
|
||||||
#include "hsTemplates.h"
|
#include "hsTemplates.h"
|
||||||
|
|
||||||
class pyDynamicText
|
class pyDynamicText
|
||||||
@ -68,7 +67,7 @@ private:
|
|||||||
bool fNetForce;
|
bool fNetForce;
|
||||||
|
|
||||||
// clipping
|
// clipping
|
||||||
bool fClip;
|
bool fClip;
|
||||||
uint16_t fClipLeft;
|
uint16_t fClipLeft;
|
||||||
uint16_t fClipTop;
|
uint16_t fClipTop;
|
||||||
uint16_t fClipRight;
|
uint16_t fClipRight;
|
||||||
@ -79,8 +78,8 @@ private:
|
|||||||
uint16_t fWrapWidth;
|
uint16_t fWrapWidth;
|
||||||
uint16_t fWrapHeight;
|
uint16_t fWrapHeight;
|
||||||
|
|
||||||
virtual plDynamicTextMsg* ICreateDTMsg();
|
plDynamicTextMsg* ICreateDTMsg();
|
||||||
virtual void IInit();
|
void IInit();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
pyDynamicText();
|
pyDynamicText();
|
||||||
@ -91,8 +90,8 @@ public:
|
|||||||
// required functions for PyObject interoperability
|
// required functions for PyObject interoperability
|
||||||
PYTHON_CLASS_NEW_FRIEND(ptDynamicMap);
|
PYTHON_CLASS_NEW_FRIEND(ptDynamicMap);
|
||||||
PYTHON_CLASS_NEW_DEFINITION;
|
PYTHON_CLASS_NEW_DEFINITION;
|
||||||
static PyObject *New(pyKey& key);
|
static PyObject* New(pyKey& key);
|
||||||
static PyObject *New(plKey key);
|
static PyObject* New(plKey key);
|
||||||
PYTHON_CLASS_CHECK_DEFINITION; // returns true if the PyObject is a pyDynamicText object
|
PYTHON_CLASS_CHECK_DEFINITION; // returns true if the PyObject is a pyDynamicText object
|
||||||
PYTHON_CLASS_CONVERT_FROM_DEFINITION(pyDynamicText); // converts a PyObject to a pyDynamicText (throws error if not correct type)
|
PYTHON_CLASS_CONVERT_FROM_DEFINITION(pyDynamicText); // converts a PyObject to a pyDynamicText (throws error if not correct type)
|
||||||
|
|
||||||
@ -101,40 +100,39 @@ public:
|
|||||||
|
|
||||||
// methods that will be exposed to Python
|
// methods that will be exposed to Python
|
||||||
// message stuff
|
// message stuff
|
||||||
virtual void SetSender(pyKey& selfKey);
|
void SetSender(pyKey& selfKey);
|
||||||
virtual void ClearReceivers();
|
void ClearReceivers();
|
||||||
virtual void AddReceiver(pyKey& key);
|
void AddReceiver(pyKey& key);
|
||||||
virtual void SetNetPropagate(bool propagate);
|
void SetNetPropagate(bool propagate);
|
||||||
virtual void SetNetForce(bool force);
|
void SetNetForce(bool force);
|
||||||
|
|
||||||
// dynamicText commands
|
// dynamicText commands
|
||||||
virtual void ClearToColor( pyColor& color );
|
void ClearToColor(pyColor& color );
|
||||||
virtual void Flush( void );
|
void Flush();
|
||||||
virtual void SetTextColor( pyColor& color );
|
void SetTextColor(pyColor& color );
|
||||||
virtual void SetTextColor2( pyColor& color, bool blockRGB );
|
void SetTextColor2(pyColor& color, bool blockRGB );
|
||||||
virtual void SetFont( const char *facename, int16_t size );
|
void SetFont(const char *facename, int16_t size );
|
||||||
virtual void FillRect( uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, pyColor& color );
|
void FillRect(uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, pyColor& color );
|
||||||
virtual void FrameRect( uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, pyColor& color );
|
void FrameRect(uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, pyColor& color );
|
||||||
virtual void SetClipping( uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom);
|
void SetClipping(uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom);
|
||||||
virtual void UnsetClipping();
|
void UnsetClipping();
|
||||||
virtual void SetWrapping( uint16_t wrapWidth, uint16_t wrapHeight );
|
void SetWrapping(uint16_t wrapWidth, uint16_t wrapHeight);
|
||||||
virtual void UnsetWrapping();
|
void UnsetWrapping();
|
||||||
virtual void DrawText( int16_t x, int16_t y, const char *text );
|
void DrawText(int16_t x, int16_t y, const plString& text);
|
||||||
virtual void DrawTextW( int16_t x, int16_t y, std::wstring text );
|
void DrawImage(uint16_t x, uint16_t y, pyImage& image, bool respectAlpha);
|
||||||
virtual void DrawImage( uint16_t x, uint16_t y, pyImage& image, bool respectAlpha );
|
void DrawImageClipped(uint16_t x, uint16_t y, pyImage& image, uint16_t cx, uint16_t cy,
|
||||||
virtual void DrawImageClipped( uint16_t x, uint16_t y, pyImage& image, uint16_t cx, uint16_t cy, uint16_t cw, uint16_t ch,
|
uint16_t cw, uint16_t ch, bool respectAlpha);
|
||||||
bool respectAlpha );
|
void PurgeImage();
|
||||||
virtual void PurgeImage( void );
|
|
||||||
|
|
||||||
// Actually return the visible width and height, since that's what you want to be drawing to
|
// Actually return the visible width and height, since that's what you want to be drawing to
|
||||||
virtual uint16_t GetWidth( void );
|
uint16_t GetWidth();
|
||||||
virtual uint16_t GetHeight( void );
|
uint16_t GetHeight();
|
||||||
virtual void CalcTextExtents( std::wstring text, unsigned &width, unsigned &height );
|
void CalcTextExtents(const plString& text, uint16_t& width, uint16_t& height);
|
||||||
|
|
||||||
virtual void SetJustify(uint8_t justify);
|
|
||||||
virtual void SetLineSpacing(int16_t spacing);
|
|
||||||
|
|
||||||
virtual plKey GetImage();
|
void SetJustify(uint8_t justify);
|
||||||
|
void SetLineSpacing(int16_t spacing);
|
||||||
|
|
||||||
|
plKey GetImage();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _pyDynamicText_h_
|
#endif // _pyDynamicText_h_
|
||||||
|
@ -260,8 +260,8 @@ PYTHON_BASIC_METHOD_DEFINITION(ptDynamicMap, unsetWrapping, UnsetWrapping)
|
|||||||
PYTHON_METHOD_DEFINITION(ptDynamicMap, drawText, args)
|
PYTHON_METHOD_DEFINITION(ptDynamicMap, drawText, args)
|
||||||
{
|
{
|
||||||
short x, y;
|
short x, y;
|
||||||
char* text;
|
char* text = nullptr;
|
||||||
if (!PyArg_ParseTuple(args, "hhs", &x, &y, &text))
|
if (!PyArg_ParseTuple(args, "hhet", &x, &y, "utf8", &text))
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, "drawText expects two short ints and a string");
|
PyErr_SetString(PyExc_TypeError, "drawText expects two short ints and a string");
|
||||||
PYTHON_RETURN_ERROR;
|
PYTHON_RETURN_ERROR;
|
||||||
@ -270,19 +270,6 @@ PYTHON_METHOD_DEFINITION(ptDynamicMap, drawText, args)
|
|||||||
PYTHON_RETURN_NONE;
|
PYTHON_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
PYTHON_METHOD_DEFINITION(ptDynamicMap, drawTextW, args)
|
|
||||||
{
|
|
||||||
short x, y;
|
|
||||||
wchar_t* text;
|
|
||||||
if (!PyArg_ParseTuple(args, "hhu", &x, &y, &text))
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "drawTextW expects two short ints and a unicode string");
|
|
||||||
PYTHON_RETURN_ERROR;
|
|
||||||
}
|
|
||||||
self->fThis->DrawTextW(x, y, text);
|
|
||||||
PYTHON_RETURN_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
PYTHON_METHOD_DEFINITION(ptDynamicMap, drawImage, args)
|
PYTHON_METHOD_DEFINITION(ptDynamicMap, drawImage, args)
|
||||||
{
|
{
|
||||||
short x, y;
|
short x, y;
|
||||||
@ -336,39 +323,15 @@ PYTHON_METHOD_DEFINITION_NOARGS(ptDynamicMap, getHeight)
|
|||||||
|
|
||||||
PYTHON_METHOD_DEFINITION(ptDynamicMap, calcTextExtents, args)
|
PYTHON_METHOD_DEFINITION(ptDynamicMap, calcTextExtents, args)
|
||||||
{
|
{
|
||||||
PyObject* textObj = NULL;
|
char* text = nullptr;
|
||||||
if (!PyArg_ParseTuple(args, "O", &textObj))
|
if (!PyArg_ParseTuple(args, "et", "utf8", &text))
|
||||||
{
|
{
|
||||||
PyErr_SetString(PyExc_TypeError, "calcTextExtents expects a string");
|
PyErr_SetString(PyExc_TypeError, "calcTextExtents expects a string");
|
||||||
PYTHON_RETURN_ERROR;
|
PYTHON_RETURN_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::wstring wText;
|
uint16_t height, width;
|
||||||
if (PyUnicode_Check(textObj))
|
self->fThis->CalcTextExtents(text, width, height);
|
||||||
{
|
|
||||||
int strLen = PyUnicode_GetSize(textObj);
|
|
||||||
wchar_t* text = new wchar_t[strLen + 1];
|
|
||||||
PyUnicode_AsWideChar((PyUnicodeObject*)textObj, text, strLen);
|
|
||||||
text[strLen] = L'\0';
|
|
||||||
wText = text;
|
|
||||||
delete [] text;
|
|
||||||
}
|
|
||||||
else if (PyString_Check(textObj))
|
|
||||||
{
|
|
||||||
// we'll allow this, just in case something goes weird
|
|
||||||
char* text = PyString_AsString(textObj);
|
|
||||||
wchar_t* temp = hsStringToWString(text);
|
|
||||||
wText = temp;
|
|
||||||
delete [] temp;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
PyErr_SetString(PyExc_TypeError, "calcTextExtents expects a string");
|
|
||||||
PYTHON_RETURN_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned height, width;
|
|
||||||
self->fThis->CalcTextExtents(wText, width, height);
|
|
||||||
PyObject* retVal = PyTuple_New(2);
|
PyObject* retVal = PyTuple_New(2);
|
||||||
PyTuple_SetItem(retVal, 0, PyInt_FromLong(width));
|
PyTuple_SetItem(retVal, 0, PyInt_FromLong(width));
|
||||||
PyTuple_SetItem(retVal, 1, PyInt_FromLong(height));
|
PyTuple_SetItem(retVal, 1, PyInt_FromLong(height));
|
||||||
@ -441,7 +404,6 @@ PYTHON_START_METHODS_TABLE(ptDynamicMap)
|
|||||||
PYTHON_METHOD(ptDynamicMap, drawText, "Params: x,y,text\nDraw text at a specified location\n"
|
PYTHON_METHOD(ptDynamicMap, drawText, "Params: x,y,text\nDraw text at a specified location\n"
|
||||||
"- x,y is the point to start drawing the text\n"
|
"- x,y is the point to start drawing the text\n"
|
||||||
"- 'text' is a string of the text to be drawn"),
|
"- 'text' is a string of the text to be drawn"),
|
||||||
PYTHON_METHOD(ptDynamicMap, drawTextW, "Params: x,y,text\nUnicode version of drawText"),
|
|
||||||
PYTHON_METHOD(ptDynamicMap, drawImage, "Params: x,y,image,respectAlphaFlag\nDraws a ptImage object on the dynamicTextmap starting at the location x,y"),
|
PYTHON_METHOD(ptDynamicMap, drawImage, "Params: x,y,image,respectAlphaFlag\nDraws a ptImage object on the dynamicTextmap starting at the location x,y"),
|
||||||
PYTHON_METHOD(ptDynamicMap, drawImageClipped, "Params: x,y,image,cx,cy,cw,ch,respectAlphaFlag\nDraws a ptImage object clipped to cx,cy with cw(width),ch(height)"),
|
PYTHON_METHOD(ptDynamicMap, drawImageClipped, "Params: x,y,image,cx,cy,cw,ch,respectAlphaFlag\nDraws a ptImage object clipped to cx,cy with cw(width),ch(height)"),
|
||||||
PYTHON_METHOD_NOARGS(ptDynamicMap, getWidth, "Returns the width of the dynamicTextmap"),
|
PYTHON_METHOD_NOARGS(ptDynamicMap, getWidth, "Returns the width of the dynamicTextmap"),
|
||||||
|
@ -112,38 +112,24 @@ void plDynamicTextMsg::FrameRect( uint16_t left, uint16_t top, uint16_t right
|
|||||||
fColor = c;
|
fColor = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
void plDynamicTextMsg::DrawString( int16_t x, int16_t y, const char *text )
|
void plDynamicTextMsg::DrawString( int16_t x, int16_t y, const plString& text )
|
||||||
{
|
|
||||||
wchar_t *wString = hsStringToWString(text);
|
|
||||||
DrawString(x,y,wString);
|
|
||||||
delete [] wString;
|
|
||||||
}
|
|
||||||
|
|
||||||
void plDynamicTextMsg::DrawString( int16_t x, int16_t y, const wchar_t *text )
|
|
||||||
{
|
{
|
||||||
hsAssert( ( fCmd & ( kStringCmds | kPosCmds ) ) == 0, "Attempting to issue conflicting drawText commands" );
|
hsAssert( ( fCmd & ( kStringCmds | kPosCmds ) ) == 0, "Attempting to issue conflicting drawText commands" );
|
||||||
fCmd &= ~( kStringCmds | kPosCmds );
|
fCmd &= ~( kStringCmds | kPosCmds );
|
||||||
fCmd |= kDrawString;
|
fCmd |= kDrawString;
|
||||||
|
|
||||||
fString = plString::FromWchar(text);
|
fString = text;
|
||||||
fX = x;
|
fX = x;
|
||||||
fY = y;
|
fY = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void plDynamicTextMsg::DrawClippedString( int16_t x, int16_t y, uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom, const char *text )
|
void plDynamicTextMsg::DrawClippedString( int16_t x, int16_t y, uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom, const plString& text )
|
||||||
{
|
|
||||||
wchar_t *wString = hsStringToWString(text);
|
|
||||||
DrawClippedString(x,y,clipLeft,clipTop,clipRight,clipBottom,wString);
|
|
||||||
delete [] wString;
|
|
||||||
}
|
|
||||||
|
|
||||||
void plDynamicTextMsg::DrawClippedString( int16_t x, int16_t y, uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom, const wchar_t *text )
|
|
||||||
{
|
{
|
||||||
hsAssert( ( fCmd & ( kStringCmds | kPosCmds | kRectCmds ) ) == 0, "Attempting to issue conflicting drawText commands" );
|
hsAssert( ( fCmd & ( kStringCmds | kPosCmds | kRectCmds ) ) == 0, "Attempting to issue conflicting drawText commands" );
|
||||||
fCmd &= ~( kStringCmds | kPosCmds | kRectCmds );
|
fCmd &= ~( kStringCmds | kPosCmds | kRectCmds );
|
||||||
fCmd |= kDrawClippedString;
|
fCmd |= kDrawClippedString;
|
||||||
|
|
||||||
fString = plString::FromWchar(text);
|
fString = text;
|
||||||
fX = x;
|
fX = x;
|
||||||
fY = y;
|
fY = y;
|
||||||
|
|
||||||
@ -153,20 +139,13 @@ void plDynamicTextMsg::DrawClippedString( int16_t x, int16_t y, uint16_t clip
|
|||||||
fBottom = clipBottom;
|
fBottom = clipBottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
void plDynamicTextMsg::DrawWrappedString( int16_t x, int16_t y, uint16_t wrapWidth, uint16_t wrapHeight, const char *text )
|
void plDynamicTextMsg::DrawWrappedString( int16_t x, int16_t y, uint16_t wrapWidth, uint16_t wrapHeight, const plString& text )
|
||||||
{
|
|
||||||
wchar_t *wString = hsStringToWString(text);
|
|
||||||
DrawWrappedString(x,y,wrapWidth,wrapHeight,wString);
|
|
||||||
delete [] wString;
|
|
||||||
}
|
|
||||||
|
|
||||||
void plDynamicTextMsg::DrawWrappedString( int16_t x, int16_t y, uint16_t wrapWidth, uint16_t wrapHeight, const wchar_t *text )
|
|
||||||
{
|
{
|
||||||
hsAssert( ( fCmd & ( kStringCmds | kPosCmds | kRectCmds ) ) == 0, "Attempting to issue conflicting drawText commands" );
|
hsAssert( ( fCmd & ( kStringCmds | kPosCmds | kRectCmds ) ) == 0, "Attempting to issue conflicting drawText commands" );
|
||||||
fCmd &= ~( kStringCmds | kPosCmds | kRectCmds );
|
fCmd &= ~( kStringCmds | kPosCmds | kRectCmds );
|
||||||
fCmd |= kDrawWrappedString;
|
fCmd |= kDrawWrappedString;
|
||||||
|
|
||||||
fString = plString::FromWchar(text);
|
fString = text;
|
||||||
fX = x;
|
fX = x;
|
||||||
fY = y;
|
fY = y;
|
||||||
|
|
||||||
|
@ -128,12 +128,9 @@ public:
|
|||||||
void SetLineSpacing( int16_t spacing );
|
void SetLineSpacing( int16_t spacing );
|
||||||
void FillRect( uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, hsColorRGBA &c );
|
void FillRect( uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, hsColorRGBA &c );
|
||||||
void FrameRect( uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, hsColorRGBA &c );
|
void FrameRect( uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, hsColorRGBA &c );
|
||||||
void DrawString( int16_t x, int16_t y, const char *text );
|
void DrawString( int16_t x, int16_t y, const plString& text );
|
||||||
void DrawString( int16_t x, int16_t y, const wchar_t *text );
|
void DrawClippedString( int16_t x, int16_t y, uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom, const plString& text );
|
||||||
void DrawClippedString( int16_t x, int16_t y, uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom, const char *text );
|
void DrawWrappedString( int16_t x, int16_t y, uint16_t wrapWidth, uint16_t wrapHeight, const plString& text );
|
||||||
void DrawClippedString( int16_t x, int16_t y, uint16_t clipLeft, uint16_t clipTop, uint16_t clipRight, uint16_t clipBottom, const wchar_t *text );
|
|
||||||
void DrawWrappedString( int16_t x, int16_t y, uint16_t wrapWidth, uint16_t wrapHeight, const char *text );
|
|
||||||
void DrawWrappedString( int16_t x, int16_t y, uint16_t wrapWidth, uint16_t wrapHeight, const wchar_t *text );
|
|
||||||
void DrawImage( int16_t x, int16_t y, plKey &image, bool respectAlpha = false );
|
void DrawImage( int16_t x, int16_t y, plKey &image, bool respectAlpha = false );
|
||||||
void DrawClippedImage( int16_t x, int16_t y, plKey &image, uint16_t clipX, uint16_t clipY, uint16_t clipWidth, uint16_t clipHeight, bool respectAlpha = false );
|
void DrawClippedImage( int16_t x, int16_t y, plKey &image, uint16_t clipX, uint16_t clipY, uint16_t clipWidth, uint16_t clipHeight, bool respectAlpha = false );
|
||||||
void SetJustify( uint8_t justifyFlags );
|
void SetJustify( uint8_t justifyFlags );
|
||||||
|
Reference in New Issue
Block a user