X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/50e55c13ea2da06b1b03069673ae45edd780fc99..92c0fc34c104c8d7c12d6a3b78ea232690fc23f4:/interface/wx/textctrl.h diff --git a/interface/wx/textctrl.h b/interface/wx/textctrl.h index 048cf6564a..cac926f5fe 100644 --- a/interface/wx/textctrl.h +++ b/interface/wx/textctrl.h @@ -2,7 +2,6 @@ // Name: textctrl.h // Purpose: interface of wxTextAttr // Author: wxWidgets team -// RCS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -87,19 +86,23 @@ enum wxTextAttrFlags 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, @@ -175,7 +178,9 @@ enum wxTextAttrBulletStyle 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 }; /** @@ -290,6 +295,14 @@ public: 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 */ @@ -567,10 +580,20 @@ public: 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. @@ -738,7 +761,7 @@ public: 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. @@ -760,6 +783,16 @@ public: */ 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). */ @@ -904,7 +937,7 @@ public: @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} @@ -1099,14 +1132,14 @@ public: @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)} @@ -1119,7 +1152,7 @@ public: @library{wxcore} @category{ctrl} - @appearance{textctrl.png} + @appearance{textctrl} @see wxTextCtrl::Create, wxValidator */ @@ -1189,11 +1222,6 @@ public: 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. @@ -1272,14 +1300,34 @@ public: */ virtual bool GetStyle(long position, wxTextAttr& style); - //@{ /** - This function finds the character at the specified position expressed - in pixels. + Finds the position of the character at the specified point. + + If the return code is not @c wxTE_HT_UNKNOWN the row and column of the + character closest to this position are returned, otherwise the output + parameters are not modified. + + Please note that this function is currently only implemented in wxUniv, + wxMSW and wxGTK2 ports and always returns @c wxTE_HT_UNKNOWN in the + other ports. + + @beginWxPerlOnly + In wxPerl this function takes only the @a pt argument and + returns a 3-element list (result, col, row). + @endWxPerlOnly + + @param pt + The position of the point to check, in window device coordinates. + @param pos + Receives the position of the character at the given position. May + be @NULL. + + @see PositionToXY(), XYToPosition() + */ + wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const; - The two overloads of this method allow to find either the position of - the character, as an index into the text control contents, or its row - and column. + /** + Finds the row and column of the character at the specified point. If the return code is not @c wxTE_HT_UNKNOWN the row and column of the character closest to this position are returned, otherwise the output @@ -1302,17 +1350,12 @@ public: @param row Receives the row of the character at the given position. May be @NULL. - @param pos - Receives the position of the character at the given position. May - be @NULL. @see PositionToXY(), XYToPosition() */ - wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const; wxTextCtrlHitTestResult HitTest(const wxPoint& pt, wxTextCoord *col, wxTextCoord *row) const; - //@} /** Returns @true if the text has been modified by user. @@ -1528,6 +1571,33 @@ public: +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