+extern WXDLLEXPORT_DATA(const char) wxTextCtrlNameStr[];
+
+// this is intentionally not enum to avoid warning fixes with
+// typecasting from enum type to wxTextCoord
+const wxTextCoord wxOutOfRangeTextCoord = -1;
+const wxTextCoord wxInvalidTextCoord = -2;
+
+// ----------------------------------------------------------------------------
+// wxTextCtrl style flags
+// ----------------------------------------------------------------------------
+
+#define wxTE_NO_VSCROLL 0x0002
+#define wxTE_AUTO_SCROLL 0x0008
+
+#define wxTE_READONLY 0x0010
+#define wxTE_MULTILINE 0x0020
+#define wxTE_PROCESS_TAB 0x0040
+
+// alignment flags
+#define wxTE_LEFT 0x0000 // 0x0000
+#define wxTE_CENTER wxALIGN_CENTER_HORIZONTAL // 0x0100
+#define wxTE_RIGHT wxALIGN_RIGHT // 0x0200
+#define wxTE_CENTRE wxTE_CENTER
+
+// this style means to use RICHEDIT control and does something only under wxMSW
+// and Win32 and is silently ignored under all other platforms
+#define wxTE_RICH 0x0080
+
+#define wxTE_PROCESS_ENTER 0x0400
+#define wxTE_PASSWORD 0x0800
+
+// automatically detect the URLs and generate the events when mouse is
+// moved/clicked over an URL
+//
+// this is for Win32 richedit and wxGTK2 multiline controls only so far
+#define wxTE_AUTO_URL 0x1000
+
+// by default, the Windows text control doesn't show the selection when it
+// doesn't have focus - use this style to force it to always show it
+#define wxTE_NOHIDESEL 0x2000
+
+// use wxHSCROLL to not wrap text at all, wxTE_CHARWRAP to wrap it at any
+// position and wxTE_WORDWRAP to wrap at words boundary
+//
+// if no wrapping style is given at all, the control wraps at word boundary
+#define wxTE_DONTWRAP wxHSCROLL
+#define wxTE_CHARWRAP 0x4000 // wrap at any position
+#define wxTE_WORDWRAP 0x0001 // wrap only at words boundaries
+#define wxTE_BESTWRAP 0x0000 // this is the default
+
+#if WXWIN_COMPATIBILITY_2_6
+ // obsolete synonym
+ #define wxTE_LINEWRAP wxTE_CHARWRAP
+#endif // WXWIN_COMPATIBILITY_2_6
+
+// force using RichEdit version 2.0 or 3.0 instead of 1.0 (default) for
+// wxTE_RICH controls - can be used together with or instead of wxTE_RICH
+#define wxTE_RICH2 0x8000
+
+// reuse wxTE_RICH2's value for CAPEDIT control on Windows CE
+#if defined(__SMARTPHONE__) || defined(__POCKETPC__)
+#define wxTE_CAPITALIZE wxTE_RICH2
+#else
+#define wxTE_CAPITALIZE 0
+#endif
+
+// ----------------------------------------------------------------------------
+// wxTextCtrl file types
+// ----------------------------------------------------------------------------
+
+#define wxTEXT_TYPE_ANY 0
+
+// ----------------------------------------------------------------------------
+// wxTextCtrl::HitTest return values
+// ----------------------------------------------------------------------------
+
+// the point asked is ...
+enum wxTextCtrlHitTestResult
+{
+ wxTE_HT_UNKNOWN = -2, // this means HitTest() is simply not implemented
+ wxTE_HT_BEFORE, // either to the left or upper
+ wxTE_HT_ON_TEXT, // directly on
+ wxTE_HT_BELOW, // below [the last line]
+ wxTE_HT_BEYOND // after [the end of line]
+};
+// ... the character returned
+
+// ----------------------------------------------------------------------------
+// Types for wxTextAttr
+// ----------------------------------------------------------------------------
+
+// Alignment
+
+enum wxTextAttrAlignment
+{
+ wxTEXT_ALIGNMENT_DEFAULT,
+ wxTEXT_ALIGNMENT_LEFT,
+ wxTEXT_ALIGNMENT_CENTRE,
+ wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE,
+ wxTEXT_ALIGNMENT_RIGHT,
+ wxTEXT_ALIGNMENT_JUSTIFIED
+};
+
+// Flags to indicate which attributes are being applied
+
+#define wxTEXT_ATTR_TEXT_COLOUR 0x00000001
+#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x00000002
+#define wxTEXT_ATTR_FONT_FACE 0x00000004
+#define wxTEXT_ATTR_FONT_SIZE 0x00000008
+#define wxTEXT_ATTR_FONT_WEIGHT 0x00000010
+#define wxTEXT_ATTR_FONT_ITALIC 0x00000020
+#define wxTEXT_ATTR_FONT_UNDERLINE 0x00000040
+#define wxTEXT_ATTR_FONT_ENCODING 0x02000000
+#define wxTEXT_ATTR_FONT \
+ ( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \
+ wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING )
+#define wxTEXT_ATTR_ALIGNMENT 0x00000080
+#define wxTEXT_ATTR_LEFT_INDENT 0x00000100
+#define wxTEXT_ATTR_RIGHT_INDENT 0x00000200
+#define wxTEXT_ATTR_TABS 0x00000400
+
+#define wxTEXT_ATTR_PARA_SPACING_AFTER 0x00000800
+#define wxTEXT_ATTR_PARA_SPACING_BEFORE 0x00001000
+#define wxTEXT_ATTR_LINE_SPACING 0x00002000
+#define wxTEXT_ATTR_CHARACTER_STYLE_NAME 0x00004000
+#define wxTEXT_ATTR_PARAGRAPH_STYLE_NAME 0x00008000
+#define wxTEXT_ATTR_LIST_STYLE_NAME 0x00010000
+#define wxTEXT_ATTR_BULLET_STYLE 0x00020000
+#define wxTEXT_ATTR_BULLET_NUMBER 0x00040000
+#define wxTEXT_ATTR_BULLET_TEXT 0x00080000
+#define wxTEXT_ATTR_BULLET_NAME 0x00100000
+#define wxTEXT_ATTR_URL 0x00200000
+#define wxTEXT_ATTR_PAGE_BREAK 0x00400000
+#define wxTEXT_ATTR_EFFECTS 0x00800000
+#define wxTEXT_ATTR_OUTLINE_LEVEL 0x01000000
+
+/*!
+ * Character and paragraph combined styles
+ */
+
+#define wxTEXT_ATTR_CHARACTER (wxTEXT_ATTR_FONT|wxTEXT_ATTR_FONT_ENCODING|wxTEXT_ATTR_EFFECTS|wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL)
+
+#define wxTEXT_ATTR_PARAGRAPH (wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_TABS|\
+ wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|wxTEXT_ATTR_LINE_SPACING|\
+ wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME|\
+ wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL)
+
+#define wxTEXT_ATTR_ALL (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH)
+
+/*!
+ * Styles for wxTextAttr::SetBulletStyle
+ */
+
+#define wxTEXT_ATTR_BULLET_STYLE_NONE 0x00000000
+#define wxTEXT_ATTR_BULLET_STYLE_ARABIC 0x00000001
+#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER 0x00000002
+#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER 0x00000004
+#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER 0x00000008
+#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER 0x00000010
+#define wxTEXT_ATTR_BULLET_STYLE_SYMBOL 0x00000020
+#define wxTEXT_ATTR_BULLET_STYLE_BITMAP 0x00000040
+#define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES 0x00000080
+#define wxTEXT_ATTR_BULLET_STYLE_PERIOD 0x00000100
+#define wxTEXT_ATTR_BULLET_STYLE_STANDARD 0x00000200
+#define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS 0x00000400
+#define wxTEXT_ATTR_BULLET_STYLE_OUTLINE 0x00000800
+
+#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT 0x00000000
+#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT 0x00001000
+#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE 0x00002000
+
+/*!
+ * Styles for wxTextAttr::SetTextEffects
+ */
+
+#define wxTEXT_ATTR_EFFECT_NONE 0x00000000
+#define wxTEXT_ATTR_EFFECT_CAPITALS 0x00000001
+#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS 0x00000002
+#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH 0x00000004
+#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH 0x00000008
+#define wxTEXT_ATTR_EFFECT_SHADOW 0x00000010
+#define wxTEXT_ATTR_EFFECT_EMBOSS 0x00000020
+#define wxTEXT_ATTR_EFFECT_OUTLINE 0x00000040
+#define wxTEXT_ATTR_EFFECT_ENGRAVE 0x00000080
+#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT 0x00000100
+#define wxTEXT_ATTR_EFFECT_SUBSCRIPT 0x00000200
+
+/*!
+ * Line spacing values
+ */
+
+#define wxTEXT_ATTR_LINE_SPACING_NORMAL 10
+#define wxTEXT_ATTR_LINE_SPACING_HALF 15
+#define wxTEXT_ATTR_LINE_SPACING_TWICE 20