wxListBox(3)

NAME
wxListBox - Functions for wxListBox class

DESCRIPTION

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 (not implemented in wx) or wxListCtrl with 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 the list box doesn't support control characters other than TAB.

Styles

This class supports the following styles:

See: wxEditableListBox (not implemented in wx), wxChoice, wxComboBox, wxListCtrl, wxCommandEvent

This class is derived (and can use functions) from: wxControlWithItems wxControl wxWindow wxEvtHandler

wxWidgets docs: wxListBox

EVENTS

Event types emitted from this class: command_listbox_selected, command_listbox_doubleclicked

DATA TYPES
wxListBox() = wx:wx_object()

EXPORTS

new() -> wxListBox()

    Default constructor.

new(Parent, Id) -> wxListBox()

    Types:
        Parent = wxWindow:wxWindow()
        Id = integer()

new(Parent, Id, Options :: [Option]) -> wxListBox()

    Types:
        Parent = wxWindow:wxWindow()
        Id = integer()
        Option =
            {pos, {X :: integer(), Y :: integer()}} |
            {size, {W :: integer(), H :: integer()}} |
            {choices, [unicode:chardata()]} |
            {style, integer()} |
            {validator, wx:wx_object()}

    Constructor, creating and showing a list box.

    See the other new/3 constructor; the only difference is that this overload takes a wxArrayString (not implemented in wx) instead of a pointer to an array of wxString (not implemented in wx).

destroy(This :: wxListBox()) -> ok

    Destructor, destroying the list box.

create(This, Parent, Id, Pos, Size, Choices) -> boolean()

    Types:
        This = wxListBox()
        Parent = wxWindow:wxWindow()
        Id = integer()
        Pos = {X :: integer(), Y :: integer()}
        Size = {W :: integer(), H :: integer()}
        Choices = [unicode:chardata()]

create(This, Parent, Id, Pos, Size, Choices, Options :: [Option]) ->
          boolean()

    Types:
        This = wxListBox()
        Parent = wxWindow:wxWindow()
        Id = integer()
        Pos = {X :: integer(), Y :: integer()}
        Size = {W :: integer(), H :: integer()}
        Choices = [unicode:chardata()]
        Option = {style, integer()} | {validator, wx:wx_object()}

deselect(This, N) -> ok

    Types:
        This = wxListBox()
        N = integer()

    Deselects an item in the list box.

    Remark: This applies to multiple selection listboxes only.

getSelections(This) -> Result

    Types:
        Result = {Res :: integer(), Selections :: [integer()]}
        This = wxListBox()

    Fill an array of ints with the positions of the currently selected items.

    Return: The number of selections.

    Remark: Use this with a multiple selection listbox.

    See: wxControlWithItems:getSelection/1, wxControlWithItems:getStringSelection/1, wxControlWithItems:setSelection/2

insertItems(This, Items, Pos) -> ok

    Types:
        This = wxListBox()
        Items = [unicode:chardata()]
        Pos = integer()

    Insert the given number of strings before the specified position.

isSelected(This, N) -> boolean()

    Types:
        This = wxListBox()
        N = integer()

    Determines whether an item is selected.

    Return: true if the given item is selected, false otherwise.

set(This, Items) -> ok

    Types:
        This = wxListBox()
        Items = [unicode:chardata()]

    Replaces the current control contents with the given items.

    Notice that calling this method is usually much faster than appending them one by one if you need to add a lot of items.

hitTest(This, Point) -> integer()

    Types:
        This = wxListBox()
        Point = {X :: integer(), Y :: integer()}

    Returns the item located at point, or wxNOT_FOUND if there is no item located at point.

    It is currently implemented for wxMSW, wxMac and wxGTK2 ports.

    Return: Item located at point, or wxNOT_FOUND if unimplemented or the item does not exist.

    Since: 2.7.0

hitTest(This, X, Y) -> integer()

    Types:
        This = wxListBox()
        X = Y = integer()

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

setFirstItem(This, N) -> ok
setFirstItem(This, String) -> ok

    Types:
        This = wxListBox()
        String = unicode:chardata()

    Set the specified item to be the first visible item.