70 else if (
mAlign.isHCenter())
82 else if (
mAlign.isBottom())
87 else if (
mAlign.isVCenter())
116 if (
nullptr !=
mNode)
132 if (
nullptr !=
mNode)
144 if (
nullptr !=
mNode)
148 void EditText::checkVertexSize()
160 unsigned int EditText::getMixedNativeAlpha(
float secondAlpha)
const
173 _setTextColour(_value);
176 void EditText::_setTextColour(
const Colour& _value)
187 if (
nullptr !=
mNode)
206 if (
nullptr !=
mNode)
214 if (
mFont !=
nullptr)
241 if (
nullptr !=
mNode)
247 return mFont->getResourceName();
259 if (
nullptr !=
mNode)
306 if (
nullptr !=
mNode)
321 if (
nullptr !=
mNode)
336 if (
nullptr !=
mNode)
351 if (
nullptr !=
mNode)
359 if (
nullptr !=
mNode)
398 if (
nullptr !=
mNode)
409 if (
nullptr ==
mFont)
420 return mTextView.getCursorPosition(point);
425 if (
nullptr ==
mFont)
445 if (
nullptr !=
mNode)
454 if (
nullptr !=
mNode)
460 if (
nullptr ==
mFont)
498 size_t vertexCount = 0;
516 for (
const auto& line : textViewData)
520 for (
const auto& sym : line.symbols)
524 colour = sym.getColour() | (colour & 0xFF000000);
525 inverseColour = colour ^ 0x00FFFFFF;
526 selectedColour =
mInvertSelect ? inverseColour : colour | 0x00FFFFFF;
533 float fullAdvance = sym.getBearingX() + sym.getAdvance();
538 vertexRect.
set(left, top, left + fullAdvance, top + (
float)
mFontHeight);
540 drawGlyph(renderTargetInfo, vertex, vertexCount, vertexRect, selectedUVRect, selectedColour);
546 vertexRect.
left = left + sym.getBearingX() + 1.0f;
547 vertexRect.
top = top + sym.getBearingY() + 1.0f;
548 vertexRect.
right = vertexRect.
left + sym.getWidth();
549 vertexRect.
bottom = vertexRect.
top + sym.getHeight();
551 drawGlyph(renderTargetInfo, vertex, vertexCount, vertexRect, sym.getUVRect(),
mShadowColourNative);
555 vertexRect.
left = left + sym.getBearingX();
556 vertexRect.
top = top + sym.getBearingY();
557 vertexRect.
right = vertexRect.
left + sym.getWidth();
558 vertexRect.
bottom = vertexRect.
top + sym.getHeight();
606 if (
nullptr !=
mNode)
627 if (
nullptr !=
mNode)
638 if (
nullptr !=
mNode)
647 void EditText::drawQuad(
649 size_t& _vertexCount,
655 _vertex[0].
x = _vertexRect.
left;
656 _vertex[0].
y = _vertexRect.
top;
657 _vertex[0].
z = _vertexZ;
658 _vertex[0].
colour = _colour;
659 _vertex[0].
u = _textureRect.
left;
660 _vertex[0].
v = _textureRect.
top;
662 _vertex[2].
x = _vertexRect.
left;
663 _vertex[2].
y = _vertexRect.
bottom;
664 _vertex[2].
z = _vertexZ;
665 _vertex[2].
colour = _colour;
666 _vertex[2].
u = _textureRect.
left;
667 _vertex[2].
v = _textureRect.
bottom;
669 _vertex[1].
x = _vertexRect.
right;
670 _vertex[1].
y = _vertexRect.
top;
671 _vertex[1].
z = _vertexZ;
672 _vertex[1].
colour = _colour;
673 _vertex[1].
u = _textureRect.
right;
674 _vertex[1].
v = _textureRect.
top;
676 _vertex[3].
x = _vertexRect.
right;
677 _vertex[3].
y = _vertexRect.
top;
678 _vertex[3].
z = _vertexZ;
679 _vertex[3].
colour = _colour;
680 _vertex[3].
u = _textureRect.
right;
681 _vertex[3].
v = _textureRect.
top;
683 _vertex[5].
x = _vertexRect.
left;
684 _vertex[5].
y = _vertexRect.
bottom;
685 _vertex[5].
z = _vertexZ;
686 _vertex[5].
colour = _colour;
687 _vertex[5].
u = _textureRect.
left;
688 _vertex[5].
v = _textureRect.
bottom;
690 _vertex[4].
x = _vertexRect.
right;
691 _vertex[4].
y = _vertexRect.
bottom;
692 _vertex[4].
z = _vertexZ;
693 _vertex[4].
colour = _colour;
694 _vertex[4].
u = _textureRect.
right;
695 _vertex[4].
v = _textureRect.
bottom;
701 void EditText::drawGlyph(
702 const RenderTargetInfo& _renderTargetInfo,
704 size_t& _vertexCount,
715 _textureRect.left += _textureRect.width() * leftClip / _vertexRect.width();
716 _vertexRect.left += leftClip;
725 float rightClip = _vertexRect.right - (float)
mCurrentCoord.right();
726 if (rightClip > 0.0f)
730 _textureRect.right -= _textureRect.width() * rightClip / _vertexRect.width();
731 _vertexRect.right -= rightClip;
745 _textureRect.top += _textureRect.height() * topClip / _vertexRect.height();
746 _vertexRect.top += topClip;
755 float bottomClip = _vertexRect.bottom - (float)
mCurrentCoord.bottom();
756 if (bottomClip > 0.0f)
760 _textureRect.bottom -= _textureRect.height() * bottomClip / _vertexRect.height();
761 _vertexRect.bottom -= bottomClip;
769 float pix_left =
mCroppedParent->getAbsoluteLeft() - _renderTargetInfo.leftOffset + _vertexRect.left;
774 ((_renderTargetInfo.pixScaleX * pix_left + _renderTargetInfo.hOffset) * 2.0f) - 1.0f,
775 -(((_renderTargetInfo.pixScaleY * pix_top + _renderTargetInfo.vOffset) * 2.0f) - 1.0f),
776 ((_renderTargetInfo.pixScaleX * (pix_left + _vertexRect.width()) + _renderTargetInfo.hOffset) * 2.0f) -
778 -(((_renderTargetInfo.pixScaleY * (pix_top + _vertexRect.height()) + _renderTargetInfo.vOffset) * 2.0f) -
781 drawQuad(_vertex, _vertexCount, vertexRect,
mNode->getNodeDepth(), _textureRect, _colour);
#define MYGUI_ASSERT(exp, dest)
void setTextColour(const Colour &_value) override
VertexColourType mVertexFormat
size_t getTextSelectionEnd() const override
void setAlpha(float _value) override
uint32 mCurrentColourNative
void setFontName(std::string_view _value) override
void setSelectBackground(bool _normal) override
void setTextSelection(size_t _start, size_t _end) override
void setWordWrap(bool _value) override
void _setAlign(const IntSize &_oldsize) override
bool isVisibleCursor() const override
bool getShadow() const override
IntCoord getCursorCoord(size_t _position) const override
void _correctView() override
void setVisible(bool _visible) override
virtual const VectorLineInfo & getLineInfo() const
void setInvertSelected(bool _value) override
const Colour & getTextColour() const override
void setFontHeight(int _value) override
uint32 mInverseColourNative
const Colour & getShadowColour() const override
void setShadowColour(const Colour &_value) override
const UString & getCaption() const override
bool getInvertSelected() const override
void setCaption(const UString &_value) override
void setTextAlign(Align _value) override
void setStateData(IStateInfo *_data) override
int getFontHeight() const override
size_t getTextSelectionStart() const override
IntPoint getViewOffset() const override
void setVisibleCursor(bool _value) override
std::string_view getFontName() const override
bool getSelectBackground() const override
IntSize getTextSize() const override
size_t getCursorPosition() const override
void setViewOffset(const IntPoint &_point) override
Align getTextAlign() const override
void _updateView() override
void setShiftText(bool _value) override
uint32 mShadowColourNative
UString::utf32string mUtf32Caption
void createDrawItem(ITexture *_texture, ILayerNode *_node) override
void setCursorPosition(size_t _index) override
void setShadow(bool _value) override
void updateRawData() const
void destroyDrawItem() override
const Colour & getColour() const
static FontManager & getInstance()
IFont * getByName(std::string_view _name) const
bool _checkOutside() const
ICroppedRectangle * mCroppedParent
int _getViewWidth() const
int _getViewHeight() const
virtual void outOfDate(RenderItem *_item)=0
Type * castType(bool _throw=true)
void reallockDrawItem(ISubWidget *_item, size_t _count)
virtual VertexColourType getVertexFormat() const =0
static RenderManager & getInstance()
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
uint32 toNativeColour(const Colour &_colour, VertexColourType _format)
Convert Colour to 32-bit representation.
std::vector< LineInfo > VectorLineInfo
types::TPoint< int > IntPoint
types::TRect< float > FloatRect
const size_t SIMPLETEXT_COUNT_VERTEX
types::TCoord< int > IntCoord
types::TSize< int > IntSize
void set(T const &_left, T const &_top, T const &_right, T const &_bottom)