+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name: treectrl.tex
+%% Purpose: wxChoice documentation
+%% Author: wxWidgets Team
+%% Modified by:
+%% Created:
+%% RCS-ID: $Id$
+%% Copyright: (c) wxWidgets Team
+%% License: wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\section{\class{wxChoice}}\label{wxchoice}
A choice item is used to select one of a list of strings. Unlike a
\wxheading{Derived from}
+\helpref{wxControlWithItems}{wxcontrolwithitems}\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
<wx/choice.h>
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
\wxheading{Window styles}
-There are no special styles for wxChoice.
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\windowstyle{wxCB\_SORT}}{Sorts the entries alphabetically.}
+\end{twocollist}
See also \helpref{window styles overview}{windowstyles}.
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxChoice::wxChoice}\label{wxchoiceconstr}
+
+\membersection{wxChoice::wxChoice}\label{wxchoicector}
\func{}{wxChoice}{\void}
\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp
\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``choice"}}
+\func{}{wxChoice}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp
+\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp
+\param{const wxArrayString\& }{choices},\rtfsp
+\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``choice"}}
+
Constructor, creating and showing a choice.
\wxheading{Parameters}
\helpref{wxChoice::Create}{wxchoicecreate}, \helpref{wxValidator}{wxvalidator}
-\pythonnote{The wxChoice constructor in wxPython reduces the \tt{n}
-and \tt{choices} arguments are to a single argument, which is
+\pythonnote{The wxChoice constructor in wxPython reduces the {\tt n}
+and {\tt choices} arguments are to a single argument, which is
a list of strings.}
-\membersection{wxChoice::\destruct{wxChoice}}
-
-\func{}{\destruct{wxChoice}}{\void}
-
-Destructor, destroying the choice item.
-
-\membersection{wxChoice::Append}\label{wxchoiceappend}
-
-\func{void}{Append}{\param{const wxString\& }{ item}}
-
-Adds the item to the end of the choice control.
-
-\func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}}
-
-Adds the item to the end of the combobox, associating the given data
-with the item.
+\perlnote{In wxPerl there is just an array reference in place of {\tt n}
+and {\tt choices}.}
-\wxheading{Parameters}
-
-\docparam{item}{String to add.}
-\docparam{clientData}{Client data to associate with the item.}
+\membersection{wxChoice::\destruct{wxChoice}}\label{wxchoicedtor}
-\membersection{wxChoice::Clear}\label{wxchoiceclear}
+\func{}{\destruct{wxChoice}}{\void}
-\func{void}{Clear}{\void}
+Destructor, destroying the choice item.
-Clears the strings from the choice item.
\membersection{wxChoice::Create}\label{wxchoicecreate}
\func{bool}{Create}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp
\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp
\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp
-\param{long}{ style = 0}, \param{const wxString\& }{name = ``choice"}}
-
-Creates the choice for two-step construction. See \helpref{wxChoice::wxChoice}{wxchoiceconstr}.
-
-\membersection{wxChoice::FindString}\label{wxchoicefindstring}
-
-\constfunc{int}{FindString}{\param{const wxString\& }{string}}
-
-Finds a choice matching the given string.
-
-\wxheading{Parameters}
+\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp
+\param{const wxString\& }{name = ``choice"}}
-\docparam{string}{String to find.}
+\func{bool}{Create}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp
+\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp
+\param{const wxArrayString\& }{choices},\rtfsp
+\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp
+\param{const wxString\& }{name = ``choice"}}
-\wxheading{Return value}
+Creates the choice for two-step construction. See \helpref{wxChoice::wxChoice}{wxchoicector}.
-Returns the position if found, or -1 if not found.
\membersection{wxChoice::GetColumns}\label{wxchoicegetcolumns}
\wxheading{Remarks}
-This is implemented for Motif only.
-
-\membersection{wxChoice::GetClientData}\label{wxchoicegetclientdata}
-
-\constfunc{void*}{GetClientData}{\param{int}{ n}}
-
-Returns a pointer to the client data associated with the given item (if any).
-
-\wxheading{Parameters}
-
-\docparam{n}{An item, starting from zero.}
-
-\wxheading{Return value}
+This is implemented for Motif only and always returns $1$ for the other
+platforms.
-A pointer to the client data, or NULL if the item was not found.
-\membersection{wxChoice::GetSelection}\label{wxchoicegetselection}
+\membersection{wxChoice::GetCurrentSelection}\label{wxchoicegetcurrentselection}
-\constfunc{int}{GetSelection}{\void}
+\constfunc{int}{GetCurrentSelection}{\void}
-Gets the id (position) of the selected string, or -1 if there is no selection.
+Unlike \helpref{GetSelection}{wxcontrolwithitemsgetselection} which only
+returns the accepted selection value, i.e. the selection in the control once
+the user closes the dropdown list, this function returns the current selection.
+That is, while the dropdown list is shown, it returns the currently selected
+item in it. When it is not shown, its result is the same as for the other
+function.
-\membersection{wxChoice::GetString}\label{wxchoicegetstring}
+\newsince{2.6.2} (before this version
+\helpref{GetSelection}{wxcontrolwithitemsgetselection} itself behaved like
+this).
-\constfunc{wxString}{GetString}{\param{int}{ n}}
-
-Returns the string at the given position.
-
-\wxheading{Parameters}
-
-\docparam{n}{The zero-based position.}
-
-\wxheading{Return value}
-
-The string at the given position, or the empty string if {\it n} is invalid.
-
-\membersection{wxChoice::GetStringSelection}\label{wxchoicegetstringselection}
-
-\constfunc{wxString}{GetStringSelection}{\void}
-
-Gets the selected string, or the empty string if no string is selected.
-
-\membersection{wxChoice::Number}\label{wxchoicenumber}
-
-\constfunc{int}{Number}{\void}
-
-Returns the number of strings in the choice control.
-
-\membersection{wxChoice::SetClientData}\label{wxchoicesetclientdata}
-
-\func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}}
-
-Associates the given client data pointer with the given item.
-
-\wxheading{Parameters}
-
-\docparam{n}{The zero-based item.}
-
-\docparam{data}{The client data.}
\membersection{wxChoice::SetColumns}\label{wxchoicesetcolumns}
\wxheading{Remarks}
-This is implemented for Motif only.
-
-\membersection{wxChoice::SetSelection}\label{wxchoicesetselection}
-
-\func{void}{SetSelection}{\param{int}{ n}}
-
-Sets the choice by passing the desired string position. This does not cause
-a wxEVT\_COMMAND\_CHOICE\_SELECTED event to get emitted.
-
-\wxheading{Parameters}
-
-\docparam{n}{The string position to select, starting from zero.}
-
-\wxheading{See also}
-
-\helpref{wxChoice::SetStringSelection}{wxchoicesetstringselection}
-
-\membersection{wxChoice::SetStringSelection}\label{wxchoicesetstringselection}
-
-\func{void}{SetStringSelection}{\param{const wxString\& }{ string}}
-
-Sets the choice by passing the desired string. This does not cause
-a wxEVT\_COMMAND\_CHOICE\_SELECTED event to get emitted.
-
-\wxheading{Parameters}
-
-\docparam{string}{The string to select.}
-
-\wxheading{See also}
-
-\helpref{wxChoice::SetSelection}{wxchoicesetselection}
-
+This is implemented for Motif only and doesn't do anything under other
+platforms.