// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
+/**
+ wxTextCtrl style flags
+*/
+#define wxTE_NO_VSCROLL 0x0002
+
+#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
+
+// 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
+
+
+#define wxTEXT_TYPE_ANY 0
+
+
+/**
+ wxTextCoord is a line or row number
+*/
+typedef long wxTextCoord;
+
/**
One of the following values can be passed to wxTextAttr::SetAlignment to determine paragraph alignment.
wxTEXT_ATTR_BACKGROUND_COLOUR = 0x00000002,
wxTEXT_ATTR_FONT_FACE = 0x00000004,
- wxTEXT_ATTR_FONT_SIZE = 0x00000008,
+ wxTEXT_ATTR_FONT_POINT_SIZE = 0x00000008,
+ wxTEXT_ATTR_FONT_PIXEL_SIZE = 0x10000000,
wxTEXT_ATTR_FONT_WEIGHT = 0x00000010,
wxTEXT_ATTR_FONT_ITALIC = 0x00000020,
wxTEXT_ATTR_FONT_UNDERLINE = 0x00000040,
+ wxTEXT_ATTR_FONT_STRIKETHROUGH = 0x08000000,
wxTEXT_ATTR_FONT_ENCODING = 0x02000000,
wxTEXT_ATTR_FONT_FAMILY = 0x04000000,
+ wxTEXT_ATTR_FONT_SIZE = \
+ ( wxTEXT_ATTR_FONT_POINT_SIZE | wxTEXT_ATTR_FONT_PIXEL_SIZE ),
/**
Defined as the combination of all @c wxTEXT_ATTR_FONT_* values above.
*/
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 | wxTEXT_ATTR_FONT_FAMILY ),
+ wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_STRIKETHROUGH | wxTEXT_ATTR_FONT_ENCODING | wxTEXT_ATTR_FONT_FAMILY ),
wxTEXT_ATTR_ALIGNMENT = 0x00000080,
wxTEXT_ATTR_LEFT_INDENT = 0x00000100,
wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT = 0x00000000,
wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT = 0x00001000,
- wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE = 0x00002000
+ wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE = 0x00002000,
+
+ wxTEXT_ATTR_BULLET_STYLE_CONTINUATION = 0x00004000
};
/**
Styles for wxTextAttr::SetTextEffects(). They can be combined together as a bitlist.
- Of these, only wxTEXT_ATTR_EFFECT_CAPITALS and wxTEXT_ATTR_EFFECT_STRIKETHROUGH are implemented.
+ Of these, only wxTEXT_ATTR_EFFECT_CAPITALS, wxTEXT_ATTR_EFFECT_STRIKETHROUGH,
+ wxTEXT_ATTR_EFFECT_SUPERSCRIPT and wxTEXT_ATTR_EFFECT_SUBSCRIPT are implemented.
*/
enum wxTextAttrEffects
{
const wxTextAttr& overlay);
+ /**
+ Partial equality test. If @a weakTest is @true, attributes of this object do not
+ have to be present if those attributes of @a attr are present. If @a weakTest is
+ @false, the function will fail if an attribute is present in @a attr but not
+ in this object.
+ */
+ bool EqPartial(const wxTextAttr& attr, bool weakTest = true) const;
+
/**
@name GetXXX functions
*/
bool HasFontItalic() const;
/**
- Returns @true if the attribute object specifies a font point size.
+ Returns @true if the attribute object specifies a font point or pixel size.
*/
bool HasFontSize() const;
+ /**
+ Returns @true if the attribute object specifies a font point size.
+ */
+ bool HasFontPointSize() const;
+
+ /**
+ Returns @true if the attribute object specifies a font pixel size.
+ */
+ bool HasFontPixelSize() const;
+
/**
Returns @true if the attribute object specifies either underlining or no
underlining.
Sets the attributes for the given font.
Note that wxTextAttr does not store an actual wxFont object.
*/
- void SetFont(const wxFont& font, int flags = wxTEXT_ATTR_FONT);
+ void SetFont(const wxFont& font, int flags = wxTEXT_ATTR_FONT & ~wxTEXT_ATTR_FONT_PIXEL_SIZE);
/**
Sets the font encoding.
*/
void SetFontSize(int pointSize);
+ /**
+ Sets the font size in points.
+ */
+ void SetFontPointSize(int pointSize);
+
+ /**
+ Sets the font size in pixels.
+ */
+ void SetFontPixelSize(int pixelSize);
+
/**
Sets the font style (normal, italic or slanted).
*/
Sets the text effects, a bit list of styles.
The ::wxTextAttrEffects enumeration values can be used.
- Of these, only wxTEXT_ATTR_EFFECT_CAPITALS and wxTEXT_ATTR_EFFECT_STRIKETHROUGH
- are implemented.
+ Of these, only wxTEXT_ATTR_EFFECT_CAPITALS, wxTEXT_ATTR_EFFECT_STRIKETHROUGH,
+ wxTEXT_ATTR_EFFECT_SUPERSCRIPT and wxTEXT_ATTR_EFFECT_SUBSCRIPT are implemented.
wxTEXT_ATTR_EFFECT_CAPITALS capitalises text when displayed (leaving the case
of the actual buffer text unchanged), and wxTEXT_ATTR_EFFECT_STRIKETHROUGH draws
/**
Assignment from a wxTextAttr object.
*/
- void operator operator=(const wxTextAttr& attr);
+ void operator=(const wxTextAttr& attr);
};
@beginStyleTable
@style{wxTE_PROCESS_ENTER}
- The control will generate the event @c wxEVT_COMMAND_TEXT_ENTER
+ The control will generate the event @c wxEVT_TEXT_ENTER
(otherwise pressing Enter key is either processed internally by the
control or used for navigation between dialog controls).
@style{wxTE_PROCESS_TAB}
@beginEventEmissionTable{wxCommandEvent}
@event{EVT_TEXT(id, func)}
- Respond to a @c wxEVT_COMMAND_TEXT_UPDATED event, generated when the text
+ Respond to a @c wxEVT_TEXT event, generated when the text
changes. Notice that this event will be sent when the text controls
contents changes -- whether this is due to user input or comes from the
program itself (for example, if wxTextCtrl::SetValue() is called); see
wxTextCtrl::ChangeValue() for a function which does not send this event.
This event is however not sent during the control creation.
@event{EVT_TEXT_ENTER(id, func)}
- Respond to a @c wxEVT_COMMAND_TEXT_ENTER event, generated when enter is
+ Respond to a @c wxEVT_TEXT_ENTER event, generated when enter is
pressed in a text control which must have wxTE_PROCESS_ENTER style for
this event to be generated.
@event{EVT_TEXT_URL(id, func)}
@library{wxcore}
@category{ctrl}
- @appearance{textctrl.png}
+ @appearance{textctrl}
@see wxTextCtrl::Create, wxValidator
*/
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxTextCtrlNameStr);
- /**
- Copies the selected text to the clipboard and removes the selection.
- */
- virtual void Cut();
-
/**
Resets the internal modified flag as if the current changes had been
saved.
+wxEventType wxEVT_TEXT;
+wxEventType wxEVT_TEXT_ENTER;
+wxEventType wxEVT_TEXT_URL;
+wxEventType wxEVT_TEXT_MAXLEN;
+
+
+class wxTextUrlEvent : public wxCommandEvent
+{
+public:
+ wxTextUrlEvent(int winid, const wxMouseEvent& evtMouse,
+ long start, long end);
+
+ wxTextUrlEvent(const wxTextUrlEvent& event);
+
+ // get the mouse event which happened over the URL
+ const wxMouseEvent& GetMouseEvent() const;
+
+ // get the start of the URL
+ long GetURLStart() const;
+
+ // get the end of the URL
+ long GetURLEnd() const;
+
+ virtual wxEvent *Clone() const;
+};
+
+
/**
@class wxStreamToTextRedirector