| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        listbox.h
 
- // Purpose:     interface of wxListBox
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     @class wxListBox
 
-     A listbox is used to select one or more of a list of strings.
 
-     The strings are displayed in a scrolling box, with the selected string(s)
 
-     marked in reverse video. A listbox can be single selection (if an item is
 
-     selected, the previous selection is removed) or multiple selection
 
-     (clicking an item toggles the item on or off independently of other
 
-     selections).
 
-     List box elements are numbered from zero and while the maximal number of
 
-     elements is unlimited, it is usually better to use a virtual control, not
 
-     requiring to add all the items to it at once, such as wxDataViewCtrl or
 
-     wxListCtrl with @c wxLC_VIRTUAL style, once more than a few hundreds items
 
-     need to be displayed because this control is not optimized, neither from
 
-     performance nor from user interface point of view, for large number of
 
-     items.
 
-     Notice that currently @c TAB characters in list box items text are not
 
-     handled consistently under all platforms, so they should be replaced by
 
-     spaces to display strings properly everywhere. The list box doesn't
 
-     support any other control characters at all.
 
-     @beginStyleTable
 
-     @style{wxLB_SINGLE}
 
-         Single-selection list.
 
-     @style{wxLB_MULTIPLE}
 
-         Multiple-selection list: the user can toggle multiple items on and off.
 
-         This is the same as wxLB_EXTENDED in wxGTK2 port.
 
-     @style{wxLB_EXTENDED}
 
-         Extended-selection list: the user can extend the selection by using
 
-         @c SHIFT or @c CTRL keys together with the cursor movement keys or
 
-         the mouse.
 
-     @style{wxLB_HSCROLL}
 
-         Create horizontal scrollbar if contents are too wide (Windows only).
 
-     @style{wxLB_ALWAYS_SB}
 
-         Always show a vertical scrollbar.
 
-     @style{wxLB_NEEDED_SB}
 
-         Only create a vertical scrollbar if needed.
 
-     @style{wxLB_NO_SB}
 
-         Don't create vertical scrollbar (wxMSW only).
 
-     @style{wxLB_SORT}
 
-         The listbox contents are sorted in alphabetical order.
 
-     @endStyleTable
 
-     Note that @c wxLB_SINGLE, @c wxLB_MULTIPLE and @c wxLB_EXTENDED styles are
 
-     mutually exclusive and you can specify at most one of them (single selection
 
-     is the default). See also @ref overview_windowstyles.
 
-     @beginEventEmissionTable{wxCommandEvent}
 
-     @event{EVT_LISTBOX(id, func)}
 
-         Process a @c wxEVT_LISTBOX event, when an item on the
 
-         list is selected or the selection changes.
 
-     @event{EVT_LISTBOX_DCLICK(id, func)}
 
-         Process a @c wxEVT_LISTBOX_DCLICK event, when the listbox
 
-         is double-clicked.
 
-     @endEventTable
 
-     @library{wxcore}
 
-     @category{ctrl}
 
-     @appearance{listbox}
 
-     @see wxEditableListBox, wxChoice, wxComboBox, wxListCtrl, wxCommandEvent
 
- */
 
- class wxListBox : public wxControl,
 
-                   public wxItemContainer
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-     */
 
-     wxListBox();
 
-     /**
 
-         Constructor, creating and showing a list box.
 
-         @param parent
 
-             The parent window.
 
-         @param id
 
-             The ID of this control. A value of @c wxID_ANY indicates a default value.
 
-         @param pos
 
-             The initial position.
 
-             If ::wxDefaultPosition is specified then a default position is chosen.
 
-         @param size
 
-             The initial size.
 
-             If ::wxDefaultSize is specified then the window is sized appropriately.
 
-         @param n
 
-             Number of strings with which to initialise the control.
 
-         @param choices
 
-             The strings to use to initialize the control.
 
-         @param style
 
-             Window style. See wxListBox.
 
-         @param validator
 
-             The validator for this control.
 
-         @param name
 
-             The name of this class.
 
-         @beginWxPerlOnly
 
-         Not supported by wxPerl.
 
-         @endWxPerlOnly
 
-     */
 
-     wxListBox(wxWindow* parent, wxWindowID id,
 
-               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 = wxListBoxNameStr);
 
-     /**
 
-         Constructor, creating and showing a list box.
 
-         See the other wxListBox() constructor; the only difference is that
 
-         this overload takes a wxArrayString instead of a pointer to an array
 
-         of wxString.
 
-         @beginWxPerlOnly
 
-         Use an array reference for the @a choices parameter.
 
-         @endWxPerlOnly
 
-     */
 
-     wxListBox(wxWindow* parent, wxWindowID id,
 
-               const wxPoint& pos,
 
-               const wxSize& size,
 
-               const wxArrayString& choices,
 
-               long style = 0,
 
-               const wxValidator& validator = wxDefaultValidator,
 
-               const wxString& name = wxListBoxNameStr);
 
-     /**
 
-         Destructor, destroying the list box.
 
-     */
 
-     virtual ~wxListBox();
 
-     //@{
 
-     /**
 
-         Creates the listbox for two-step construction.
 
-         See wxListBox() for further details.
 
-     */
 
-     bool Create(wxWindow *parent, wxWindowID id,
 
-                 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 = wxListBoxNameStr);
 
-     bool Create(wxWindow *parent, wxWindowID id,
 
-                 const wxPoint& pos,
 
-                 const wxSize& size,
 
-                 const wxArrayString& choices,
 
-                 long style = 0,
 
-                 const wxValidator& validator = wxDefaultValidator,
 
-                 const wxString& name = wxListBoxNameStr);
 
-     //@}
 
-     /**
 
-         Deselects an item in the list box.
 
-         @param n
 
-             The zero-based item to deselect.
 
-         @remarks This applies to multiple selection listboxes only.
 
-     */
 
-     void Deselect(int n);
 
-     virtual void SetSelection(int n);
 
-     
 
-     virtual int GetSelection() const;
 
-     
 
-     virtual bool SetStringSelection(const wxString& s, bool select);
 
-     virtual bool SetStringSelection(const wxString& s);
 
-     /**
 
-         Fill an array of ints with the positions of the currently selected items.
 
-         @param selections
 
-             A reference to an wxArrayInt instance that is used to store the result of
 
-             the query.
 
-         @return The number of selections.
 
-         @remarks Use this with a multiple selection listbox.
 
-         @beginWxPerlOnly
 
-         In wxPerl this method takes no parameters and return the
 
-         selected items as a list.
 
-         @endWxPerlOnly
 
-         @see wxControlWithItems::GetSelection, wxControlWithItems::GetStringSelection,
 
-              wxControlWithItems::SetSelection
 
-     */
 
-     virtual int GetSelections(wxArrayInt& selections) const;
 
-     /**
 
-         Returns the item located at @a point, or @c wxNOT_FOUND if there
 
-         is no item located at @a point.
 
-         It is currently implemented for wxMSW, wxMac and wxGTK2 ports.
 
-         @param point
 
-             Point of item (in client coordinates) to obtain
 
-         @return Item located at point, or wxNOT_FOUND if unimplemented or the
 
-                 item does not exist.
 
-         @since 2.7.0
 
-     */
 
-     int HitTest(const wxPoint& point) const;
 
-     /**
 
-         @overload
 
-     */
 
-     int HitTest(int x, int y) const;
 
-     /**
 
-         Insert the given number of strings before the specified position.
 
-         @param nItems
 
-             Number of items in the array items
 
-         @param items
 
-             Labels of items to be inserted
 
-         @param pos
 
-             Position before which to insert the items: if pos is 0 the
 
-             items will be inserted in the beginning of the listbox
 
-         @beginWxPerlOnly
 
-         Not supported by wxPerl.
 
-         @endWxPerlOnly
 
-     */
 
-     void InsertItems(unsigned int nItems, const wxString *items,
 
-                      unsigned int pos);
 
-     /**
 
-         Insert the given number of strings before the specified position.
 
-         @param items
 
-             Labels of items to be inserted
 
-         @param pos
 
-             Position before which to insert the items: if pos is @c 0 the
 
-             items will be inserted in the beginning of the listbox
 
-         @beginWxPerlOnly
 
-         Use an array reference for the @a items parameter.
 
-         @endWxPerlOnly
 
-     */
 
-     void InsertItems(const wxArrayString& items,
 
-                      unsigned int pos);
 
-     /**
 
-         Determines whether an item is selected.
 
-         @param n
 
-             The zero-based item index.
 
-         @return @true if the given item is selected, @false otherwise.
 
-     */
 
-     virtual bool IsSelected(int n) const;
 
-     /**
 
-         Set the specified item to be the first visible item.
 
-         @param n
 
-             The zero-based item index that should be visible.
 
-     */
 
-     void SetFirstItem(int n);
 
-     /**
 
-         Set the specified item to be the first visible item.
 
-         @param string
 
-             The string that should be visible.
 
-     */
 
-     void SetFirstItem(const wxString& string);
 
-     /**
 
-         Ensure that the item with the given index is currently shown.
 
-         Scroll the listbox if necessary.
 
-         This method is currently only implemented in wxGTK and wxOSX and does
 
-         nothing in other ports.
 
-         @see SetFirstItem()
 
-      */
 
-     virtual void EnsureVisible(int n);
 
-     /**
 
-         Return true if the listbox has ::wxLB_SORT style.
 
-         This method is mostly meant for internal use only.
 
-      */
 
-     virtual bool IsSorted() const;
 
-     // NOTE: Phoenix needs to see the implementation of pure virtuals so it
 
-     // knows that this class is not abstract.
 
-     virtual unsigned int GetCount() const; 
 
-     virtual wxString GetString(unsigned int n) const; 
 
-     virtual void SetString(unsigned int n, const wxString& s); 
 
-     virtual int FindString(const wxString& s, bool bCase = false) const;     
 
- };
 
 
  |