MyGUI
3.2.1
|
00001 /* 00002 * This source file is part of MyGUI. For the latest info, see http://mygui.info/ 00003 * Distributed under the MIT License 00004 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT) 00005 */ 00006 00007 #ifndef __MYGUI_EDIT_TEXT_H__ 00008 #define __MYGUI_EDIT_TEXT_H__ 00009 00010 #include "MyGUI_Prerequest.h" 00011 #include "MyGUI_XmlDocument.h" 00012 #include "MyGUI_Types.h" 00013 #include "MyGUI_ISubWidgetText.h" 00014 #include "MyGUI_IFont.h" 00015 #include "MyGUI_ResourceSkin.h" 00016 #include "MyGUI_RenderFormat.h" 00017 #include "MyGUI_TextView.h" 00018 #include "MyGUI_VertexData.h" 00019 00020 namespace MyGUI 00021 { 00022 00023 class RenderItem; 00024 00025 class MYGUI_EXPORT EditText : 00026 public ISubWidgetText 00027 { 00028 MYGUI_RTTI_DERIVED( EditText ) 00029 00030 public: 00031 EditText(); 00032 virtual ~EditText(); 00033 00034 virtual void setVisible(bool _value); 00035 00036 // обновляет все данные связанные с тектом 00037 virtual void updateRawData(); 00038 00039 // метод для отрисовки себя 00040 virtual void doRender(); 00041 00042 void setCaption(const UString& _value); 00043 const UString& getCaption() const; 00044 00045 void setTextColour(const Colour& _value); 00046 const Colour& getTextColour() const; 00047 00048 void setAlpha(float _value); 00049 float getAlpha() const; 00050 00051 virtual void setFontName(const std::string& _value); 00052 virtual const std::string& getFontName() const; 00053 00054 virtual void setFontHeight(int _value); 00055 virtual int getFontHeight() const; 00056 00057 virtual void createDrawItem(ITexture* _texture, ILayerNode* _node); 00058 virtual void destroyDrawItem(); 00059 00060 virtual void setTextAlign(Align _value); 00061 virtual Align getTextAlign() const; 00062 00063 virtual size_t getTextSelectionStart() const; 00064 virtual size_t getTextSelectionEnd() const; 00065 virtual void setTextSelection(size_t _start, size_t _end); 00066 00067 virtual bool getSelectBackground() const; 00068 virtual void setSelectBackground(bool _normal); 00069 00070 virtual bool isVisibleCursor() const; 00071 virtual void setVisibleCursor(bool _value); 00072 00074 virtual bool getInvertSelected() const; 00078 virtual void setInvertSelected(bool _value); 00079 00080 virtual size_t getCursorPosition() const; 00081 virtual void setCursorPosition(size_t _index); 00082 00083 virtual IntSize getTextSize(); 00084 00085 // устанавливает смещение текста в пикселях 00086 virtual void setViewOffset(const IntPoint& _point); 00087 virtual IntPoint getViewOffset() const; 00088 00089 // возвращает положение курсора по произвольному положению 00090 virtual size_t getCursorPosition(const IntPoint& _point); 00091 00092 // возвращает положение курсора в обсолютных координатах 00093 virtual IntCoord getCursorCoord(size_t _position); 00094 00095 virtual bool getShadow() const; 00096 virtual void setShadow(bool _value); 00097 00098 virtual void setShiftText(bool _shift); 00099 00100 virtual void setWordWrap(bool _value); 00101 00102 virtual void setStateData(IStateInfo* _data); 00103 00104 virtual void setShadowColour(const Colour& _value); 00105 virtual const Colour& getShadowColour() const; 00106 00107 /*internal:*/ 00108 virtual void _updateView(); 00109 virtual void _correctView(); 00110 00111 virtual void _setAlign(const IntSize& _oldsize); 00112 00113 virtual const VectorLineInfo& getLineInfo() const; 00114 00115 private: 00116 void _setTextColour(const Colour& _value); 00117 void checkVertexSize(); 00118 00119 void drawQuad( 00120 Vertex*& _vertex, 00121 size_t& _vertexCount, 00122 const FloatRect& _vertexRect, 00123 float _vertexZ, 00124 const FloatRect& _textureRect, 00125 uint32 _colour) const; 00126 00127 void drawGlyph( 00128 const RenderTargetInfo& renderTargetInfo, 00129 Vertex*& _vertex, 00130 size_t& _vertexCount, 00131 FloatRect _vertexRect, 00132 FloatRect _textureRect, 00133 uint32 _colour) const; 00134 00135 protected: 00136 bool mEmptyView; 00137 uint32 mCurrentColourNative; 00138 uint32 mInverseColourNative; 00139 uint32 mCurrentAlphaNative; 00140 uint32 mShadowColourNative; 00141 IntCoord mCurrentCoord; 00142 00143 UString mCaption; 00144 bool mTextOutDate; 00145 Align mTextAlign; 00146 00147 Colour mColour; 00148 Colour mShadowColour; 00149 float mAlpha; 00150 VertexColourType mVertexFormat; 00151 00152 IFont* mFont; 00153 ITexture* mTexture; 00154 int mFontHeight; 00155 00156 bool mBackgroundNormal; 00157 size_t mStartSelect; 00158 size_t mEndSelect; 00159 size_t mCursorPosition; 00160 bool mVisibleCursor; 00161 bool mInvertSelect; 00162 bool mShadow; 00163 00164 IntPoint mViewOffset; // смещение текста 00165 00166 ILayerNode* mNode; 00167 RenderItem* mRenderItem; 00168 size_t mCountVertex; 00169 bool mIsAddCursorWidth; 00170 00171 bool mShiftText; 00172 bool mWordWrap; 00173 bool mManualColour; 00174 int mOldWidth; 00175 00176 TextView mTextView; 00177 }; 00178 00179 } // namespace MyGUI 00180 00181 #endif // __MYGUI_EDIT_TEXT_H__