MyGUI  3.4.0
MyGUI_EditText.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef MYGUI_EDIT_TEXT_H_
8 #define MYGUI_EDIT_TEXT_H_
9 
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_XmlDocument.h"
12 #include "MyGUI_Types.h"
13 #include "MyGUI_ISubWidgetText.h"
14 #include "MyGUI_IFont.h"
15 #include "MyGUI_ResourceSkin.h"
16 #include "MyGUI_RenderFormat.h"
17 #include "MyGUI_TextView.h"
18 #include "MyGUI_VertexData.h"
19 
20 namespace MyGUI
21 {
22 
23  class RenderItem;
24 
26  public ISubWidgetText
27  {
29 
30  public:
31  EditText();
32 
33  void setVisible(bool _value) override;
34 
35  // обновляет все данные связанные с тектом
36  virtual void updateRawData();
37 
38  // метод для отрисовки себя
39  void doRender() override;
40 
41  void setCaption(const UString& _value) override;
42  const UString& getCaption() const override;
43 
44  void setTextColour(const Colour& _value)override;
45  const Colour& getTextColour() const override;
46 
47  void setAlpha(float _value) override;
48 
49  void setFontName(const std::string& _value) override;
50  const std::string& getFontName() const override;
51 
52  void setFontHeight(int _value) override;
53  int getFontHeight() const override;
54 
55  void createDrawItem(ITexture* _texture, ILayerNode* _node) override;
56  void destroyDrawItem() override;
57 
58  void setTextAlign(Align _value) override;
59  Align getTextAlign() const override;
60 
61  size_t getTextSelectionStart() const override;
62  size_t getTextSelectionEnd() const override;
63  void setTextSelection(size_t _start, size_t _end) override;
64 
65  bool getSelectBackground() const override;
66  void setSelectBackground(bool _normal) override;
67 
68  bool isVisibleCursor() const override;
69  void setVisibleCursor(bool _value) override;
70 
72  bool getInvertSelected() const override;
76  void setInvertSelected(bool _value) override;
77 
78  size_t getCursorPosition() const override;
79  void setCursorPosition(size_t _index) override;
80 
81  IntSize getTextSize() override;
82 
83  // устанавливает смещение текста в пикселях
84  void setViewOffset(const IntPoint& _point) override;
85  IntPoint getViewOffset() const override;
86 
87  // возвращает положение курсора по произвольному положению
88  size_t getCursorPosition(const IntPoint& _point) override;
89 
90  // возвращает положение курсора в обсолютных координатах
91  IntCoord getCursorCoord(size_t _position) override;
92 
93  bool getShadow() const override;
94  void setShadow(bool _value) override;
95 
96  void setShiftText(bool _shift) override;
97 
98  void setWordWrap(bool _value) override;
99 
100  void setStateData(IStateInfo* _data) override;
101 
102  void setShadowColour(const Colour& _value) override;
103  const Colour& getShadowColour() const override;
104 
105  /*internal:*/
106  void _updateView() override;
107  void _correctView() override;
108 
109  void _setAlign(const IntSize& _oldsize) override;
110 
111  virtual const VectorLineInfo& getLineInfo() const;
112 
113  private:
114  void _setTextColour(const Colour& _value);
115  void checkVertexSize();
116  unsigned int getMixedNativeAlpha(float secondAlpha);
117 
118  void drawQuad(
119  Vertex*& _vertex,
120  size_t& _vertexCount,
121  const FloatRect& _vertexRect,
122  float _vertexZ,
123  const FloatRect& _textureRect,
124  uint32 _colour) const;
125 
126  void drawGlyph(
127  const RenderTargetInfo& renderTargetInfo,
128  Vertex*& _vertex,
129  size_t& _vertexCount,
130  FloatRect _vertexRect,
131  FloatRect _textureRect,
132  uint32 _colour) const;
133 
134  protected:
140 
144 
147  float mAlpha;
149 
153 
155  size_t mStartSelect;
156  size_t mEndSelect;
160  bool mShadow;
161 
162  IntPoint mViewOffset; // смещение текста
163 
166  size_t mCountVertex;
168 
170  bool mWordWrap;
173 
175  };
176 
177 } // namespace MyGUI
178 
179 #endif // MYGUI_EDIT_TEXT_H_
MyGUI::EditText::mVisibleCursor
bool mVisibleCursor
Definition: MyGUI_EditText.h:158
MyGUI::TextView
Definition: MyGUI_TextView.h:19
MyGUI::ISubWidgetText
Definition: MyGUI_ISubWidgetText.h:20
MyGUI::EditText::mCursorPosition
size_t mCursorPosition
Definition: MyGUI_EditText.h:157
MyGUI::EditText::mOldWidth
int mOldWidth
Definition: MyGUI_EditText.h:172
MyGUI::EditText::mFontHeight
int mFontHeight
Definition: MyGUI_EditText.h:152
MyGUI_XmlDocument.h
MyGUI::EditText::mManualColour
bool mManualColour
Definition: MyGUI_EditText.h:171
MyGUI::EditText::mBackgroundNormal
bool mBackgroundNormal
Definition: MyGUI_EditText.h:154
MyGUI_IFont.h
MyGUI::types::TRect< float >
MyGUI_RenderFormat.h
MyGUI::EditText::mInvertSelect
bool mInvertSelect
Definition: MyGUI_EditText.h:159
MyGUI::ILayerNode
Definition: MyGUI_ILayerNode.h:30
MyGUI::EditText::mRenderItem
RenderItem * mRenderItem
Definition: MyGUI_EditText.h:165
MyGUI::types::TPoint< int >
MyGUI_ISubWidgetText.h
MyGUI::RenderItem
Definition: MyGUI_RenderItem.h:23
MyGUI::EditText::mTextAlign
Align mTextAlign
Definition: MyGUI_EditText.h:143
MyGUI::Align
Definition: MyGUI_Align.h:20
MyGUI_VertexData.h
MyGUI::EditText::mTexture
ITexture * mTexture
Definition: MyGUI_EditText.h:151
MyGUI::EditText::mEndSelect
size_t mEndSelect
Definition: MyGUI_EditText.h:156
MyGUI::EditText::mAlpha
float mAlpha
Definition: MyGUI_EditText.h:147
MyGUI::UString
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
Definition: MyGUI_UString.h:168
MyGUI::IStateInfo
Definition: MyGUI_IStateInfo.h:18
MyGUI::EditText::mVertexFormat
VertexColourType mVertexFormat
Definition: MyGUI_EditText.h:148
MyGUI::EditText::mCurrentCoord
IntCoord mCurrentCoord
Definition: MyGUI_EditText.h:139
MyGUI::EditText::mShadowColour
Colour mShadowColour
Definition: MyGUI_EditText.h:146
MyGUI_Prerequest.h
MyGUI::EditText::mTextOutDate
bool mTextOutDate
Definition: MyGUI_EditText.h:142
MyGUI::EditText::mCurrentColourNative
uint32 mCurrentColourNative
Definition: MyGUI_EditText.h:136
MyGUI::IFont
Definition: MyGUI_IFont.h:22
MyGUI::EditText::mWordWrap
bool mWordWrap
Definition: MyGUI_EditText.h:170
MyGUI::EditText::mCaption
UString mCaption
Definition: MyGUI_EditText.h:141
MyGUI::uint32
unsigned int uint32
Definition: MyGUI_Types.h:46
MyGUI::EditText::mCountVertex
size_t mCountVertex
Definition: MyGUI_EditText.h:166
MyGUI::VertexColourType
Definition: MyGUI_RenderFormat.h:16
MyGUI::EditText::mShadow
bool mShadow
Definition: MyGUI_EditText.h:160
MyGUI::EditText::mViewOffset
IntPoint mViewOffset
Definition: MyGUI_EditText.h:162
MyGUI::EditText
Definition: MyGUI_EditText.h:27
MYGUI_RTTI_DERIVED
#define MYGUI_RTTI_DERIVED(DerivedType)
Definition: MyGUI_RTTI.h:48
MyGUI::EditText::mShadowColourNative
uint32 mShadowColourNative
Definition: MyGUI_EditText.h:138
MyGUI::types::TSize< int >
MyGUI::EditText::mFont
IFont * mFont
Definition: MyGUI_EditText.h:150
MyGUI::EditText::mTextView
TextView mTextView
Definition: MyGUI_EditText.h:174
MyGUI::ITexture
Definition: MyGUI_ITexture.h:28
MyGUI::Colour
Definition: MyGUI_Colour.h:17
MyGUI::RenderTargetInfo
Definition: MyGUI_RenderTargetInfo.h:16
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition: MyGUI_Platform.h:89
MyGUI::EditText::mShiftText
bool mShiftText
Definition: MyGUI_EditText.h:169
MyGUI_Types.h
MyGUI::Vertex
Definition: MyGUI_VertexData.h:17
MyGUI::EditText::mColour
Colour mColour
Definition: MyGUI_EditText.h:145
MyGUI::EditText::mEmptyView
bool mEmptyView
Definition: MyGUI_EditText.h:135
MyGUI::types::TCoord< int >
MyGUI::EditText::mInverseColourNative
uint32 mInverseColourNative
Definition: MyGUI_EditText.h:137
MyGUI::VectorLineInfo
std::vector< LineInfo > VectorLineInfo
Definition: MyGUI_TextViewData.h:137
MyGUI
Definition: MyGUI_ActionController.h:15
MyGUI::EditText::mStartSelect
size_t mStartSelect
Definition: MyGUI_EditText.h:155
MyGUI::EditText::mIsAddCursorWidth
bool mIsAddCursorWidth
Definition: MyGUI_EditText.h:167
MyGUI_ResourceSkin.h
MyGUI_TextView.h
MyGUI::EditText::mNode
ILayerNode * mNode
Definition: MyGUI_EditText.h:164