| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        combobox.h
 
- // Purpose:     interface of wxComboBox
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxComboBox
 
-     A combobox is like a combination of an edit control and a listbox.
 
-     It can be displayed as static list with editable or read-only text field;
 
-     or a drop-down list with text field; or a drop-down list without a text
 
-     field depending on the platform and presence of wxCB_READONLY style.
 
-     A combobox permits a single selection only. Combobox items are numbered
 
-     from zero.
 
-     If you need a customized combobox, have a look at wxComboCtrl,
 
-     wxOwnerDrawnComboBox, wxComboPopup and the ready-to-use wxBitmapComboBox.
 
-     Please refer to wxTextEntry documentation for the description of methods
 
-     operating with the text entry part of the combobox and to wxItemContainer
 
-     for the methods operating with the list of strings. Notice that at least
 
-     under MSW wxComboBox doesn't behave correctly if it contains strings
 
-     differing in case only so portable programs should avoid adding such
 
-     strings to this control.
 
-     @beginStyleTable
 
-     @style{wxCB_SIMPLE}
 
-            Creates a combobox with a permanently displayed list. Windows only.
 
-     @style{wxCB_DROPDOWN}
 
-            Creates a combobox with a drop-down list. MSW and Motif only.
 
-     @style{wxCB_READONLY}
 
-            A combobox with this style behaves like a wxChoice (and may look in
 
-            the same way as well, although this is platform-dependent), i.e. it
 
-            allows the user to choose from the list of options but doesn't allow
 
-            to enter a value not present in the list.
 
-     @style{wxCB_SORT}
 
-            Sorts the entries in the list alphabetically.
 
-     @style{wxTE_PROCESS_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).
 
-     @endStyleTable
 
-     @beginEventEmissionTable{wxCommandEvent}
 
-     @event{EVT_COMBOBOX(id, func)}
 
-            Process a @c wxEVT_COMBOBOX event, when an item on
 
-            the list is selected. Note that calling GetValue() returns the new
 
-            value of selection.
 
-     @event{EVT_TEXT(id, func)}
 
-            Process a @c wxEVT_TEXT event, when the combobox text
 
-            changes.
 
-     @event{EVT_TEXT_ENTER(id, func)}
 
-            Process a @c wxEVT_TEXT_ENTER event, when RETURN is pressed in
 
-            the combobox (notice that the combobox must have been created with
 
-            wxTE_PROCESS_ENTER style to receive this event).
 
-     @event{EVT_COMBOBOX_DROPDOWN(id, func)}
 
-            Process a @c wxEVT_COMBOBOX_DROPDOWN event, which is generated
 
-            when the list box part of the combo box is shown (drops down).
 
-            Notice that this event is only supported by wxMSW, wxGTK with GTK+
 
-            2.10 or later, and wxOSX/Cocoa.
 
-     @event{EVT_COMBOBOX_CLOSEUP(id, func)}
 
-            Process a @c wxEVT_COMBOBOX_CLOSEUP event, which is generated
 
-            when the list box of the combo box disappears (closes up). This
 
-            event is only generated for the same platforms as
 
-            @c wxEVT_COMBOBOX_DROPDOWN above. Also note that only wxMSW and
 
-            wxOSX/Cocoa support adding or deleting items in this event.
 
-     @endEventTable
 
-     @library{wxcore}
 
-     @category{ctrl}
 
-     @appearance{combobox}
 
-     @see wxListBox, wxTextCtrl, wxChoice, wxCommandEvent
 
- */
 
- class wxComboBox : public wxControl,
 
-                    public wxItemContainer,
 
-                    public wxTextEntry
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-     */
 
-     wxComboBox();
 
-     /**
 
-         Constructor, creating and showing a combobox.
 
-         @param parent
 
-             Parent window. Must not be @NULL.
 
-         @param id
 
-             Window identifier. The value wxID_ANY indicates a default value.
 
-         @param value
 
-             Initial selection string. An empty string indicates no selection.
 
-             Notice that for the controls with @c wxCB_READONLY style this
 
-             string must be one of the valid choices if it is not empty.
 
-         @param pos
 
-             Window position.
 
-             If ::wxDefaultPosition is specified then a default position is chosen.
 
-         @param size
 
-             Window size. 
 
-             If ::wxDefaultSize is specified then the window is sized appropriately.
 
-         @param n
 
-             Number of strings with which to initialise the control.
 
-         @param choices
 
-             An array of strings with which to initialise the control.
 
-         @param style
 
-             Window style. See wxComboBox.
 
-         @param validator
 
-             Window validator.
 
-         @param name
 
-             Window name.
 
-         @beginWxPerlOnly
 
-         Not supported by wxPerl.
 
-         @endWxPerlOnly
 
-         @see Create(), wxValidator
 
-     */
 
-     wxComboBox(wxWindow* parent, wxWindowID id,
 
-                const wxString& value = wxEmptyString,
 
-                const wxPoint& pos = wxDefaultPosition,
 
-                const wxSize& size = wxDefaultSize,
 
-                int n = 0,
 
-                const wxString choices[] = NULL,
 
-                long style = 0,
 
-                const wxValidator& validator = wxDefaultValidator,
 
-                const wxString& name = wxComboBoxNameStr);
 
-     /**
 
-         Constructor, creating and showing a combobox.
 
-         @param parent
 
-             Parent window. Must not be @NULL.
 
-         @param id
 
-             Window identifier. The value wxID_ANY indicates a default value.
 
-         @param value
 
-             Initial selection string. An empty string indicates no selection.
 
-         @param pos
 
-             Window position.
 
-         @param size
 
-             Window size. If wxDefaultSize is specified then the window is sized
 
-             appropriately.
 
-         @param choices
 
-             An array of strings with which to initialise the control.
 
-         @param style
 
-             Window style. See wxComboBox.
 
-         @param validator
 
-             Window validator.
 
-         @param name
 
-             Window name.
 
-         @beginWxPerlOnly
 
-         Use an array reference for the @a choices parameter.
 
-         @endWxPerlOnly
 
-         @see Create(), wxValidator
 
-     */
 
-     wxComboBox(wxWindow* parent, wxWindowID id,
 
-                const wxString& value,
 
-                const wxPoint& pos,
 
-                const wxSize& size,
 
-                const wxArrayString& choices,
 
-                long style = 0,
 
-                const wxValidator& validator = wxDefaultValidator,
 
-                const wxString& name = wxComboBoxNameStr);
 
-     /**
 
-         Destructor, destroying the combobox.
 
-     */
 
-     virtual ~wxComboBox();
 
-     //@{
 
-     /**
 
-         Creates the combobox for two-step construction. Derived classes should
 
-         call or replace this function. See wxComboBox() for further details.
 
-     */
 
-     bool Create(wxWindow *parent, wxWindowID id,
 
-                 const wxString& value = wxEmptyString,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 int n = 0, const wxString choices[] = (const wxString *) NULL,
 
-                 long style = 0,
 
-                 const wxValidator& validator = wxDefaultValidator,
 
-                 const wxString& name = wxComboBoxNameStr);
 
-     bool Create(wxWindow *parent, wxWindowID id,
 
-                 const wxString& value,
 
-                 const wxPoint& pos,
 
-                 const wxSize& size,
 
-                 const wxArrayString& choices,
 
-                 long style = 0,
 
-                 const wxValidator& validator = wxDefaultValidator,
 
-                 const wxString& name = wxComboBoxNameStr);
 
-     //@}
 
-     /**
 
-         Returns the item being selected right now.
 
-         This function does the same things as wxChoice::GetCurrentSelection()
 
-         and returns the item currently selected in the dropdown list if it's
 
-         open or the same thing as wxControlWithItems::GetSelection() otherwise.
 
-     */
 
-     virtual int GetCurrentSelection() const;
 
-     /**
 
-         Same as wxTextEntry::GetInsertionPoint().
 
-         @note Under wxMSW, this function always returns 0 if the combobox
 
-               doesn't have the focus.
 
-     */
 
-     virtual long GetInsertionPoint() const;
 
-     /**
 
-         IsEmpty() is not available in this class.
 
-         This method is documented here only to notice that it can't be used
 
-         with this class because of the ambiguity between the methods with the
 
-         same name inherited from wxItemContainer and wxTextEntry base classes.
 
-         Because of this, any attempt to call it results in a compilation error
 
-         and you should use either IsListEmpty() or IsTextEmpty() depending on
 
-         what exactly do you want to test.
 
-      */
 
-     bool IsEmpty() const;
 
-     /**
 
-         Returns true if the list of combobox choices is empty.
 
-         Use this method instead of (not available in this class) IsEmpty() to
 
-         test if the list of items is empty.
 
-         @since 2.9.3
 
-      */
 
-     bool IsListEmpty() const;
 
-     /**
 
-         Returns true if the text of the combobox is empty.
 
-         Use this method instead of (not available in this class) IsEmpty() to
 
-         test if the text currently entered into the combobox is empty.
 
-         @since 2.9.3
 
-      */
 
-     bool IsTextEmpty() const;
 
-     /**
 
-         Same as wxTextEntry::SetSelection().
 
-     */
 
-     virtual void SetSelection(long from, long to);
 
-     /**
 
-         Sets the text for the combobox text field.
 
-         Notice that this method will generate a @c wxEVT_TEXT
 
-         event, use wxTextEntry::ChangeValue() if this is undesirable.
 
-         @note For a combobox with @c wxCB_READONLY style the string must be in
 
-               the combobox choices list, otherwise the call to SetValue() is
 
-               ignored. This is case insensitive.
 
-         @param text
 
-             The text to set.
 
-     */
 
-     virtual void SetValue(const wxString& text);
 
-     /**
 
-         Shows the list box portion of the combo box.
 
-         Currently this method is implemented in wxMSW, wxGTK and wxOSX/Cocoa.
 
-         Notice that calling this function will generate a
 
-         @c wxEVT_COMBOBOX_DROPDOWN event except under wxOSX where
 
-         generation of this event is not supported at all.
 
-         @since 2.9.1
 
-     */
 
-     virtual void Popup();
 
-     /**
 
-         Hides the list box portion of the combo box.
 
-         Currently this method is implemented in wxMSW, wxGTK and wxOSX/Cocoa.
 
-         Notice that calling this function will generate a
 
-         @c wxEVT_COMBOBOX_CLOSEUP event except under wxOSX where
 
-         generation of this event is not supported at all.
 
-         @since 2.9.1
 
-     */
 
-     virtual void Dismiss();
 
-     virtual int GetSelection() const;
 
-     virtual void GetSelection(long *from, long *to) const;
 
-     virtual void SetSelection(int n);
 
-     virtual int FindString(const wxString& s, bool bCase = false) const;
 
-     virtual wxString GetString(unsigned int n) const;
 
-     virtual wxString GetStringSelection() const;
 
-     /**
 
-         Changes the text of the specified combobox item.
 
-         Notice that if the item is the currently selected one, i.e. if its text
 
-         is displayed in the text part of the combobox, then the text is also
 
-         replaced with the new @a text.
 
-      */
 
-     virtual void SetString(unsigned int n, const wxString& text);
 
-     virtual unsigned int GetCount() const;
 
- };
 
 
  |