| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/textentry.h
 
- // Purpose:     interface of wxTextEntry
 
- // Author:      Vadim Zeitlin
 
- // Created:     2009-03-01 (extracted from wx/textctrl.h)
 
- // Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwindows.org>
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     wxTextPos is a position in the text
 
- */
 
- typedef long wxTextPos;
 
- /**
 
-     @class wxTextEntry
 
-     Common base class for single line text entry fields.
 
-     This class is not a control itself, as it doesn't derive from wxWindow.
 
-     Instead it is used as a base class by other controls, notably wxTextCtrl
 
-     and wxComboBox and gathers the methods common to both of them.
 
-     @library{wxcore}
 
-     @category{ctrl}
 
-     @see wxTextCtrl, wxComboBox
 
-     @since 2.9.0
 
- */
 
- class wxTextEntry
 
- {
 
- public:
 
-     /**
 
-         Appends the text to the end of the text control.
 
-         @param text
 
-             Text to write to the text control.
 
-         @remarks
 
-             After the text is appended, the insertion point will be at the
 
-             end of the text control. If this behaviour is not desired, the
 
-             programmer should use GetInsertionPoint() and SetInsertionPoint().
 
-         @see WriteText()
 
-     */
 
-     virtual void AppendText(const wxString& text);
 
-     /**
 
-         Call this function to enable auto-completion of the text typed in a
 
-         single-line text control using the given @a choices.
 
-         Notice that currently this function is only implemented in wxGTK2,
 
-         wxMSW and wxOSX/Cocoa (for wxTextCtrl only, but not for wxComboBox)
 
-         ports and does nothing under the other platforms.
 
-         @since 2.9.0
 
-         @return
 
-             @true if the auto-completion was enabled or @false if the operation
 
-             failed, typically because auto-completion is not supported by the
 
-             current platform.
 
-         @see AutoCompleteFileNames()
 
-     */
 
-     bool AutoComplete(const wxArrayString& choices);
 
-     /**
 
-         Enable auto-completion using the provided completer object.
 
-         This method should be used instead of AutoComplete() overload taking
 
-         the array of possible completions if the total number of strings is too
 
-         big as it allows to return the completions dynamically, depending on
 
-         the text already entered by user and so is more efficient.
 
-         The specified @a completer object will be used to retrieve the list of
 
-         possible completions for the already entered text and will be deleted
 
-         by wxTextEntry itself when it's not needed any longer.
 
-         Notice that you need to include @c wx/textcompleter.h in order to
 
-         define your class inheriting from wxTextCompleter.
 
-         Currently this method is only implemented in wxMSW and wxOSX/Cocoa (for
 
-         wxTextCtrl only, but not for wxComboBox).
 
-         @since 2.9.2
 
-         @param completer
 
-             The object to be used for generating completions if non-@NULL. If
 
-             it is @NULL, auto-completion is disabled. The wxTextEntry object
 
-             takes ownership of this pointer and will delete it in any case
 
-             (i.e. even if this method returns @false).
 
-         @return
 
-             @true if the auto-completion was enabled or @false if the operation
 
-             failed, typically because auto-completion is not supported by the
 
-             current platform.
 
-         @see wxTextCompleter
 
-      */
 
-     bool AutoComplete(wxTextCompleter *completer);
 
-     /**
 
-         Call this function to enable auto-completion of the text typed in a
 
-         single-line text control using all valid file system paths.
 
-         Notice that currently this function is only implemented in wxMSW port
 
-         and does nothing under the other platforms.
 
-         @since 2.9.0
 
-         @return
 
-             @true if the auto-completion was enabled or @false if the operation
 
-             failed, typically because auto-completion is not supported by the
 
-             current platform.
 
-         @see AutoComplete()
 
-     */
 
-     bool AutoCompleteFileNames();
 
-     /**
 
-         Call this function to enable auto-completion of the text using the file
 
-         system directories.
 
-         Unlike AutoCompleteFileNames() which completes both file names and
 
-         directories, this function only completes the directory names.
 
-         Notice that currently this function is only implemented in wxMSW port
 
-         and does nothing under the other platforms.
 
-         @since 2.9.3
 
-         @return
 
-             @true if the auto-completion was enabled or @false if the operation
 
-             failed, typically because auto-completion is not supported by the
 
-             current platform.
 
-         @see AutoComplete()
 
-      */
 
-     bool AutoCompleteDirectories();
 
-     /**
 
-         Returns @true if the selection can be copied to the clipboard.
 
-     */
 
-     virtual bool CanCopy() const;
 
-     /**
 
-         Returns @true if the selection can be cut to the clipboard.
 
-     */
 
-     virtual bool CanCut() const;
 
-     /**
 
-         Returns @true if the contents of the clipboard can be pasted into the
 
-         text control.
 
-         On some platforms (Motif, GTK) this is an approximation and returns
 
-         @true if the control is editable, @false otherwise.
 
-     */
 
-     virtual bool CanPaste() const;
 
-     /**
 
-         Returns @true if there is a redo facility available and the last
 
-         operation can be redone.
 
-     */
 
-     virtual bool CanRedo() const;
 
-     /**
 
-         Returns @true if there is an undo facility available and the last
 
-         operation can be undone.
 
-     */
 
-     virtual bool CanUndo() const;
 
-     /**
 
-         Sets the new text control value.
 
-         It also marks the control as not-modified which means that IsModified()
 
-         would return @false immediately after the call to ChangeValue().
 
-         The insertion point is set to the start of the control (i.e. position
 
-         0) by this function.
 
-         This functions does not generate the @c wxEVT_TEXT
 
-         event but otherwise is identical to SetValue().
 
-         See @ref overview_events_prog for more information.
 
-         @since 2.7.1
 
-         @param value
 
-             The new value to set. It may contain newline characters if the text
 
-             control is multi-line.
 
-     */
 
-     virtual void ChangeValue(const wxString& value);
 
-     /**
 
-         Clears the text in the control.
 
-         Note that this function will generate a @c wxEVT_TEXT
 
-         event, i.e. its effect is identical to calling @c SetValue("").
 
-     */
 
-     virtual void Clear();
 
-     /**
 
-         Copies the selected text to the clipboard.
 
-     */
 
-     virtual void Copy();
 
-     /**
 
-         Copies the selected text to the clipboard and removes it from the control.
 
-     */
 
-     virtual void Cut();
 
-     /**
 
-         Returns the insertion point, or cursor, position.
 
-         This is defined as the zero based index of the character position to
 
-         the right of the insertion point. For example, if the insertion point
 
-         is at the end of the single-line text control, it is equal to
 
-         GetLastPosition().
 
-         Notice that insertion position is, in general, different from the index
 
-         of the character the cursor position at in the string returned by
 
-         GetValue(). While this is always the case for the single line controls,
 
-         multi-line controls can use two characters @c "\\r\\n" as line
 
-         separator (this is notably the case under MSW) meaning that indices in
 
-         the control and its string value are offset by 1 for every line.
 
-         Hence to correctly get the character at the current cursor position,
 
-         taking into account that there can be none if the cursor is at the end
 
-         of the string, you could do the following:
 
-         @code
 
-         wxString GetCurrentChar(wxTextCtrl *tc)
 
-         {
 
-             long pos = tc->GetInsertionPoint();
 
-             if ( pos == tc->GetLastPosition() )
 
-                 return wxString();
 
-             return tc->GetRange(pos, pos + 1);
 
-         }
 
-         @endcode
 
-     */
 
-     virtual long GetInsertionPoint() const;
 
-     /**
 
-         Returns the zero based index of the last position in the text control,
 
-         which is equal to the number of characters in the control.
 
-     */
 
-     virtual wxTextPos GetLastPosition() const;
 
-     /**
 
-         Returns the string containing the text starting in the positions
 
-         @a from and up to @a to in the control.
 
-         The positions must have been returned by another wxTextCtrl method.
 
-         Please note that the positions in a multiline wxTextCtrl do @b not
 
-         correspond to the indices in the string returned by GetValue() because
 
-         of the different new line representations (@c CR or @c CR LF) and so
 
-         this method should be used to obtain the correct results instead of
 
-         extracting parts of the entire value. It may also be more efficient,
 
-         especially if the control contains a lot of data.
 
-     */
 
-     virtual wxString GetRange(long from, long to) const;
 
-     /**
 
-         Gets the current selection span.
 
-         If the returned values are equal, there was no selection. Please note
 
-         that the indices returned may be used with the other wxTextCtrl methods
 
-         but don't necessarily represent the correct indices into the string
 
-         returned by GetValue() for multiline controls under Windows (at least,)
 
-         you should use GetStringSelection() to get the selected text.
 
-         @param from
 
-             The returned first position.
 
-         @param to
 
-             The returned last position.
 
-         @beginWxPerlOnly
 
-         In wxPerl this method takes no parameters and returns a
 
-         2-element list (from, to).
 
-         @endWxPerlOnly
 
-     */
 
-     virtual void GetSelection(long* from, long* to) const;
 
-     /**
 
-         Gets the text currently selected in the control.
 
-         If there is no selection, the returned string is empty.
 
-     */
 
-     virtual wxString GetStringSelection() const;
 
-     /**
 
-         Gets the contents of the control.
 
-         Notice that for a multiline text control, the lines will be separated
 
-         by (Unix-style) @c \\n characters, even under Windows where they are
 
-         separated by a @c \\r\\n sequence in the native control.
 
-     */
 
-     virtual wxString GetValue() const;
 
-     /**
 
-         Returns @true if the controls contents may be edited by user (note that
 
-         it always can be changed by the program).
 
-         In other words, this functions returns @true if the control hasn't been
 
-         put in read-only mode by a previous call to SetEditable().
 
-     */
 
-     virtual bool IsEditable() const;
 
-     /**
 
-         Returns @true if the control is currently empty.
 
-         This is the same as @c GetValue().empty() but can be much more
 
-         efficient for the multiline controls containing big amounts of text.
 
-         @since 2.7.1
 
-     */
 
-     virtual bool IsEmpty() const;
 
-     /**
 
-         Pastes text from the clipboard to the text item.
 
-     */
 
-     virtual void Paste();
 
-     /**
 
-         If there is a redo facility and the last operation can be redone,
 
-         redoes the last operation.
 
-         Does nothing if there is no redo facility.
 
-     */
 
-     virtual void Redo();
 
-     /**
 
-         Removes the text starting at the first given position up to
 
-         (but not including) the character at the last position.
 
-         This function puts the current insertion point position at @a to as a
 
-         side effect.
 
-         @param from
 
-             The first position.
 
-         @param to
 
-             The last position.
 
-     */
 
-     virtual void Remove(long from, long to);
 
-     /**
 
-         Replaces the text starting at the first position up to
 
-         (but not including) the character at the last position with the given text.
 
-         This function puts the current insertion point position at @a to as a
 
-         side effect.
 
-         @param from
 
-             The first position.
 
-         @param to
 
-             The last position.
 
-         @param value
 
-             The value to replace the existing text with.
 
-     */
 
-     virtual void Replace(long from, long to, const wxString& value);
 
-     /**
 
-         Makes the text item editable or read-only, overriding the
 
-         @b wxTE_READONLY flag.
 
-         @param editable
 
-             If @true, the control is editable. If @false, the control is
 
-             read-only.
 
-         @see IsEditable()
 
-     */
 
-     virtual void SetEditable(bool editable);
 
-     /**
 
-         Sets the insertion point at the given position.
 
-         @param pos
 
-             Position to set, in the range from 0 to GetLastPosition() inclusive.
 
-     */
 
-     virtual void SetInsertionPoint(long pos);
 
-     /**
 
-         Sets the insertion point at the end of the text control.
 
-         This is equivalent to calling wxTextCtrl::SetInsertionPoint() with
 
-         wxTextCtrl::GetLastPosition() argument.
 
-     */
 
-     virtual void SetInsertionPointEnd();
 
-     /**
 
-         This function sets the maximum number of characters the user can enter
 
-         into the control.
 
-         In other words, it allows to limit the text value length to @a len not
 
-         counting the terminating @c NUL character.
 
-         If @a len is 0, the previously set max length limit, if any, is discarded
 
-         and the user may enter as much text as the underlying native text control widget
 
-         supports (typically at least 32Kb).
 
-         If the user tries to enter more characters into the text control when it
 
-         already is filled up to the maximal length, a @c wxEVT_TEXT_MAXLEN
 
-         event is sent to notify the program about it (giving it the possibility
 
-         to show an explanatory message, for example) and the extra input is discarded.
 
-         Note that in wxGTK this function may only be used with single line text controls.
 
-     */
 
-     virtual void SetMaxLength(unsigned long len);
 
-     /**
 
-         Selects the text starting at the first position up to (but not
 
-         including) the character at the last position.
 
-         If both parameters are equal to -1 all text in the control is selected.
 
-         Notice that the insertion point will be moved to @a from by this
 
-         function.
 
-         @param from
 
-             The first position.
 
-         @param to
 
-             The last position.
 
-         @see SelectAll()
 
-     */
 
-     virtual void SetSelection(long from, long to);
 
-     /**
 
-         Selects all text in the control.
 
-         @see SetSelection()
 
-     */
 
-     virtual void SelectAll();
 
-     /**
 
-         Deselects selected text in the control.
 
-         @since 2.9.5
 
-     */
 
-     virtual void SelectNone();
 
-     /**
 
-         Sets a hint shown in an empty unfocused text control.
 
-         The hints are usually used to indicate to the user what is supposed to
 
-         be entered into the given entry field, e.g. a common use of them is to
 
-         show an explanation of what can be entered in a wxSearchCtrl.
 
-         The hint is shown (usually greyed out) for an empty control until it
 
-         gets focus and is shown again if the control loses it and remains
 
-         empty. It won't be shown once the control has a non-empty value,
 
-         although it will be shown again if the control contents is cleared.
 
-         Because of this, it generally only makes sense to use hints with the
 
-         controls which are initially empty.
 
-         Notice that hints are known as <em>cue banners</em> under MSW or
 
-         <em>placeholder strings</em> under OS X.
 
-         @remarks For the platforms without native hints support (and currently
 
-             only the MSW port does have it and even there it is only used under
 
-             Windows Vista and later only), the implementation has several known
 
-             limitations. Notably, the hint display will not be properly updated
 
-             if you change wxTextEntry contents programmatically when the hint
 
-             is displayed using methods other than SetValue() or ChangeValue()
 
-             or others which use them internally (e.g. Clear()). In other words,
 
-             currently you should avoid calling methods such as WriteText() or
 
-             Replace() when using hints and the text control is empty.
 
-         @remarks Hints can only be used for single line text controls,
 
-             native multi-line text controls don't support hints under any
 
-             platform and hence wxWidgets doesn't provide them neither.
 
-         @since 2.9.0
 
-      */
 
-     virtual bool SetHint(const wxString& hint);
 
-     /**
 
-         Returns the current hint string.
 
-         See SetHint() for more information about hints.
 
-         @since 2.9.0
 
-      */
 
-     virtual wxString GetHint() const;
 
-     //@{
 
-     /**
 
-         Attempts to set the control margins. When margins are given as wxPoint,
 
-         x indicates the left and y the top margin. Use -1 to indicate that
 
-         an existing value should be used.
 
-         @return
 
-             @true if setting of all requested margins was successful.
 
-         @since 2.9.1
 
-     */
 
-     bool SetMargins(const wxPoint& pt);
 
-     bool SetMargins(wxCoord left, wxCoord top = -1);
 
-     //@}
 
-     /**
 
-         Returns the margins used by the control. The @c x field of the returned
 
-         point is the horizontal margin and the @c y field is the vertical one.
 
-         @remarks If given margin cannot be accurately determined, its value
 
-                 will be set to -1. On some platforms you cannot obtain valid
 
-                 margin values until you have called SetMargins().
 
-         @see SetMargins()
 
-         @since 2.9.1
 
-     */
 
-     wxPoint GetMargins() const;
 
-     /**
 
-         Sets the new text control value.
 
-         It also marks the control as not-modified which means that IsModified()
 
-         would return @false immediately after the call to SetValue().
 
-         The insertion point is set to the start of the control (i.e. position
 
-         0) by this function.
 
-         Note that, unlike most other functions changing the controls values,
 
-         this function generates a @c wxEVT_TEXT event. To avoid
 
-         this you can use ChangeValue() instead.
 
-         @param value
 
-             The new value to set. It may contain newline characters if the text
 
-             control is multi-line.
 
-     */
 
-     virtual void SetValue(const wxString& value);
 
-     /**
 
-         If there is an undo facility and the last operation can be undone,
 
-         undoes the last operation.
 
-         Does nothing if there is no undo facility.
 
-     */
 
-     virtual void Undo();
 
-     /**
 
-         Writes the text into the text control at the current insertion position.
 
-         @param text
 
-             Text to write to the text control.
 
-         @remarks
 
-             Newlines in the text string are the only control characters
 
-             allowed, and they will cause appropriate line breaks.
 
-             See operator<<() and AppendText() for more convenient ways of
 
-             writing to the window.
 
-             After the write operation, the insertion point will be at the end
 
-             of the inserted text, so subsequent write operations will be appended.
 
-             To append text after the user may have interacted with the control,
 
-             call wxTextCtrl::SetInsertionPointEnd() before writing.
 
-     */
 
-     virtual void WriteText(const wxString& text);
 
- };
 
 
  |