]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/control.h
pass wxIntPtr, not wxUIntPtr, to wxListCtrl::SortItems() callback as it's more compat...
[wxWidgets.git] / interface / wx / control.h
index a0a9fab11111de86acf56c891627e2a8156b8f5c..2d56ad3c609a1955ecaea54241ff81cffdc826c5 100644 (file)
@@ -6,14 +6,42 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+/**
+    Flags used by wxControl::Ellipsize function.
+*/
+enum wxEllipsizeFlags
+{
+    /// With this flag when calculating the size of the passed string, mnemonics
+    /// characters (see wxControl::SetLabel) will be automatically reduced to a
+    /// single character.
+    /// This leads to correct calculations only if the string passed to Ellipsize()
+    /// will be used with wxControl::SetLabel. If you don't want ampersand to
+    /// be interpreted as mnemonics (e.g. because you use wxControl::SetLabelText)
+    /// then don't use this flag.
+    wxELLIPSIZE_PROCESS_MNEMONICS = 1,
+
+    /// This flag tells wxControl::Ellipsize to calculate the width of tab
+    /// characters @c '\\t' as 6 spaces.
+    wxELLIPSIZE_EXPAND_TAB = 2,
+
+    /// The default flags for wxControl::Ellipsize.
+    wxELLIPSIZE_DEFAULT_FLAGS = wxELLIPSIZE_PROCESS_MNEMONICS|wxELLIPSIZE_EXPAND_TAB
+};
+
+
 /**
     The different ellipsization modes supported by the
     wxControl::Ellipsize function.
 */
 enum wxEllipsizeMode
 {
+    /// Put the ellipsis at the start of the string, if the string needs ellipsization.
     wxELLIPSIZE_START,
+
+    /// Put the ellipsis in the middle of the string, if the string needs ellipsization.
     wxELLIPSIZE_MIDDLE,
+
+    /// Put the ellipsis at the end of the string, if the string needs ellipsization.
     wxELLIPSIZE_END
 };
 
@@ -25,6 +53,16 @@ enum wxEllipsizeMode
     A control is generally a small window which processes user input and/or
     displays one or more item of data.
 
+    @beginEventEmissionTable{wxClipboardTextEvent}
+    @event{EVT_TEXT_COPY(id, func)}
+           Some or all of the controls content was copied to the clipboard.
+    @event{EVT_TEXT_CUT(id, func)}
+           Some or all of the controls content was cut (i.e. copied and
+           deleted).
+    @event{EVT_TEXT_PASTE(id, func)}
+           Clipboard content was pasted into the control.
+    @endEventTable
+
     @library{wxcore}
     @category{ctrl}
 
@@ -53,9 +91,12 @@ public:
             The ellipsization modes. See ::wxEllipsizeMode.
         @param maxWidth
             The maximum width of the returned string in pixels.
+        @param flags
+            One or more of the ::wxEllipsize
     */
     static wxString Ellipsize(const wxString& label, const wxDC& dc,
-                              wxEllipsizeMode mode, int maxWidth);
+                              wxEllipsizeMode mode, int maxWidth,
+                              int flags = wxELLIPSIZE_DEFAULT_FLAGS);
 
     /**
         Returns the control's text.
@@ -80,15 +121,50 @@ public:
     */
     static wxString RemoveMnemonics(const wxString& str);
 
+    /**
+        Escape the special mnemonics characters ("&") in the given string.
+
+        This function can be helpful if you need to set the controls label to a
+        user-provided string. If the string contains ampersands, they wouldn't
+        appear on the display but be used instead to indicate that the
+        character following the first of them can be used as a control mnemonic.
+        While this can sometimes be desirable (e.g. to allow the user to
+        configure mnemonics of the controls), more often you will want to use
+        this function before passing a user-defined string to SetLabel().
+        Alternatively, if the label is entirely user-defined, you can just call
+        SetLabelText() directly -- but this function must be used if the label
+        is a combination of a part defined by program containing the control
+        mnemonics and a user-defined part.
+
+        @param text
+            The string such as it should appear on the display.
+        @return
+            The same string with the ampersands in it doubled.
+     */
+    static wxString EscapeMnemonics(const wxString& text);
+
     /**
         Sets the item's text.
 
         Any "&" characters in the @a label are special and indicate that the
         following character is a @e mnemonic for this control and can be used to
         activate it from the keyboard (typically by using @e Alt key in
-        combination with it).
-        To insert a literal ampersand character, you need to double it, i.e. use "&&".
+        combination with it). To insert a literal ampersand character, you need
+        to double it, i.e. use use "&&". If this behaviour is undesirable, use
+        SetLabelText() instead.
     */
     void SetLabel(const wxString& label);
+
+    /**
+        Sets the item's text to exactly the given string.
+
+        Unlike SetLabel(), this function shows exactly the @a text passed to it
+        in the control, without interpreting ampersands in it in any way.
+        Notice that it means that the control can't have any mnemonic defined
+        for it using this function.
+
+        @see EscapeMnemonics()
+     */
+    void SetLabelText(const wxString& text);
 };