]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/textctrl.h
Fix crash in wxDataViewCtrl::UpdateColWidths().
[wxWidgets.git] / interface / wx / textctrl.h
index 8fbf68404a4ac9803721310f145a1073d2dcc6ea..c17e10f9173a8c8a2b8420e357c0a228b4821bf1 100644 (file)
@@ -220,11 +220,6 @@ public:
     bool Apply(const wxTextAttr& style,
                const wxTextAttr* compareWith = NULL);
 
-    /**
-        Creates a font from the font attributes.
-    */
-    wxFont CreateFont() const;
-
     /**
         Copies all defined/valid properties from overlay to current object.
     */
@@ -796,7 +791,7 @@ public:
     void SetTabs(const wxArrayInt& tabs);
 
     /**
-        Sets the text foreground colout.
+        Sets the text foreground colour.
     */
     void SetTextColour(const wxColour& colText);
 
@@ -854,11 +849,11 @@ public:
 
     @beginStyleTable
     @style{wxTE_PROCESS_ENTER}
-           The control will generate the event wxEVT_COMMAND_TEXT_ENTER
+           The control will generate the event @c wxEVT_COMMAND_TEXT_ENTER
            (otherwise pressing Enter key is either processed internally by the
            control or used for navigation between dialog controls).
     @style{wxTE_PROCESS_TAB}
-           The control will receive wxEVT_CHAR events for TAB pressed -
+           The control will receive @c wxEVT_CHAR events for TAB pressed -
            normally, TAB is used for passing to the next control in a dialog
            instead. For the control created with this style, you can still use
            Ctrl-Enter to pass to the next control from the keyboard.
@@ -1049,14 +1044,14 @@ public:
 
     @beginEventEmissionTable{wxCommandEvent}
     @event{EVT_TEXT(id, func)}
-        Respond to a wxEVT_COMMAND_TEXT_UPDATED event, generated when the text
+        Respond to a @c wxEVT_COMMAND_TEXT_UPDATED 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 wxEVT_COMMAND_TEXT_ENTER event, generated when enter is
+        Respond to a @c wxEVT_COMMAND_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)}
@@ -1197,19 +1192,15 @@ public:
     /**
         Returns the number of lines in the text control buffer.
 
+        The returned number is the number of logical lines, i.e. just the count
+        of the number of newline characters in the control + 1, for wxGTK and
+        wxOSX/Cocoa ports while it is the number of physical lines, i.e. the
+        count of lines actually shown in the control, in wxMSW and wxOSX/Carbon.
+        Because of this discrepancy, it is not recommended to use this function.
+
         @remarks
             Note that even empty text controls have one line (where the
             insertion point is), so GetNumberOfLines() never returns 0.
-            For wxGTK using GTK+ 1.2.x and earlier, the number of lines in a
-            multi-line text control is calculated by actually counting newline
-            characters in the buffer, i.e. this function returns the number of
-            logical lines and doesn't depend on whether any of them are wrapped.
-            For all the other platforms, the number of physical lines in the
-            control is returned.
-            Also note that you may wish to avoid using functions that work with
-            line numbers if you are working with controls that contain large
-            amounts of text as this function has O(N) complexity for N being
-            the number of lines.
     */
     virtual int GetNumberOfLines() const;
 
@@ -1226,26 +1217,47 @@ public:
     */
     virtual bool GetStyle(long position, wxTextAttr& style);
 
+    //@{
     /**
         This function finds the character at the specified position expressed
         in pixels.
 
+        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.
+
         If the return code is not @c wxTE_HT_UNKNOWN the row and column of the
-        character closest to this position are returned in the @a col and @a
-        row parameters (unless the pointers are @NULL which is allowed).
-        Please note that this function is currently only implemented in wxUniv, wxMSW
-        and wxGTK2 ports.
+        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 col
+            Receives the column of the character at the given position. May be
+            @NULL.
+        @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;
+                                    wxTextCoord *col,
+                                    wxTextCoord *row) const;
+    //@}
 
     /**
         Returns @true if the text has been modified by user.
@@ -1327,6 +1339,28 @@ public:
     */
     virtual bool PositionToXY(long pos, long* x, long* y) const;
 
+    /**
+        Converts given text position to client coordinates in pixels.
+
+        This function allows to find where is the character at the given
+        position displayed in the text control.
+
+        @onlyfor{wxmsw,wxgtk}. Additionally, wxGTK only implements this method
+        for multiline controls and ::wxDefaultPosition is always returned for
+        the single line ones.
+
+        @param pos
+            Text position in 0 to GetLastPosition() range (inclusive).
+        @return
+            On success returns a wxPoint which contains client coordinates for
+            the given position in pixels, otherwise returns ::wxDefaultPosition.
+
+        @since 2.9.3
+
+        @see XYToPosition(), PositionToXY()
+    */
+    wxPoint PositionToCoords(long pos) const;
+
     /**
         Saves the contents of the control in a text file.