a4d6005e61
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
226 lines
8.3 KiB
TeX
226 lines
8.3 KiB
TeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%% Name: odcbox.tex
|
|
%% Purpose: wxOwnerDrawnComboBox docs
|
|
%% Author: Jaakko Salli
|
|
%% Modified by:
|
|
%% Created:
|
|
%% RCS-ID: $Id$
|
|
%% Copyright: (c) Jaakko Salli
|
|
%% License: wxWindows license
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\section{\class{wxOwnerDrawnComboBox}}\label{wxownerdrawncombobox}
|
|
|
|
wxOwnerDrawnComboBox is a combobox with owner-drawn list items.
|
|
In essence, it is a \helpref{wxComboCtrl}{wxcomboctrl} with
|
|
\helpref{wxVListBox}{wxvlistbox} popup and \helpref{wxControlWithItems}{wxcontrolwithitems}
|
|
interface.
|
|
|
|
Implementing item drawing and measuring is similar to \helpref{wxVListBox}{wxvlistbox}.
|
|
Application needs to subclass wxOwnerDrawnComboBox and implement
|
|
\helpref{OnDrawItem()}{wxownerdrawncomboboxondrawitem}, \helpref{OnMeasureItem()}{wxownerdrawncomboboxonmeasureitem}
|
|
and \helpref{OnMeasureItemWidth()}{wxownerdrawncomboboxonmeasureitemwidth}.
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
\helpref{wxComboCtrl}{wxcomboctrl}\\
|
|
\helpref{wxControlWithItems}{wxcontrolwithitems}\\
|
|
\helpref{wxControl}{wxcontrol}\\
|
|
\helpref{wxWindow}{wxwindow}\\
|
|
\helpref{wxEvtHandler}{wxevthandler}\\
|
|
\helpref{wxObject}{wxobject}
|
|
|
|
\wxheading{Include files}
|
|
|
|
<wx/odcombo.h>
|
|
|
|
\wxheading{Library}
|
|
|
|
\helpref{wxAdv}{librarieslist}
|
|
|
|
\wxheading{Window styles}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{\windowstyle{wxODCB\_DCLICK\_CYCLES}}{Double-clicking cycles item
|
|
if wxCB\_READONLY is also used. Synonymous with wxCC\_SPECIAL\_DCLICK.}
|
|
\twocolitem{\windowstyle{wxODCB\_STD\_CONTROL\_PAINT}}{Control itself is not
|
|
custom painted using OnDrawItem. Even if this style is not used, writable
|
|
wxOwnerDrawnComboBox is never custom painted unless SetCustomPaintWidth is
|
|
called.}
|
|
\end{twocollist}
|
|
|
|
See also \helpref{wxComboCtrl window styles}{wxcomboctrl} and
|
|
base \helpref{window styles overview}{windowstyles}.
|
|
|
|
\wxheading{Event handling}
|
|
|
|
\twocolwidtha{7cm}
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED event,
|
|
when an item on the list is selected. Note that calling
|
|
\helpref{GetValue}{wxcomboctrlgetvalue} returns the new value of selection.}
|
|
\end{twocollist}
|
|
|
|
See also events emitted by \helpref{wxComboCtrl}{wxcomboctrl}.
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxComboCtrl}{wxcomboctrl}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxVListBox}{wxvlistbox},
|
|
\rtfsp\helpref{wxCommandEvent}{wxcommandevent}
|
|
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::wxOwnerDrawnComboBox}\label{wxownerdrawncomboboxctor}
|
|
|
|
\func{}{wxOwnerDrawnComboBox}{\void}
|
|
|
|
Default constructor.
|
|
|
|
\func{}{wxOwnerDrawnComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
|
|
\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
|
|
\param{int}{ n = 0}, \param{const wxString }{choices[] = NULL},\rtfsp
|
|
\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}}
|
|
|
|
\func{}{wxOwnerDrawnComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
|
|
\param{const wxString\& }{value}, \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 = ``comboBox"}}
|
|
|
|
Constructor, creating and showing a owner-drawn combobox.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{parent}{Parent window. Must not be NULL.}
|
|
|
|
\docparam{id}{Window identifier. A value of -1 indicates a default value.}
|
|
|
|
\docparam{value}{Initial selection string. An empty string indicates no selection.}
|
|
|
|
\docparam{pos}{Window position.}
|
|
|
|
\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
|
|
appropriately.}
|
|
|
|
\docparam{n}{Number of strings with which to initialise the control.}
|
|
|
|
\docparam{choices}{An array of strings with which to initialise the control.}
|
|
|
|
\docparam{style}{Window style. See \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}.}
|
|
|
|
\docparam{validator}{Window validator.}
|
|
|
|
\docparam{name}{Window name.}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxOwnerDrawnComboBox::Create}{wxownerdrawncomboboxcreate}, \helpref{wxValidator}{wxvalidator}
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::\destruct{wxOwnerDrawnComboBox}}\label{wxownerdrawncomboboxdtor}
|
|
|
|
\func{}{\destruct{wxOwnerDrawnComboBox}}{\void}
|
|
|
|
Destructor, destroying the owner-drawn combobox.
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::Create}\label{wxownerdrawncomboboxcreate}
|
|
|
|
\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
|
|
\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp
|
|
\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp
|
|
\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}}
|
|
|
|
\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp
|
|
\param{const wxString\& }{value}, \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 = ``comboBox"}}
|
|
|
|
Creates the combobox for two-step construction. Derived classes
|
|
should call or replace this function. See
|
|
\helpref{wxOwnerDrawnComboBox::wxOwnerDrawnComboBox}{wxownerdrawncomboboxctor}\rtfsp
|
|
for further details.
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::GetWidestItem}\label{wxownerdrawncomboboxgetwidestitem}
|
|
|
|
\constfunc{int}{GetWidestItem}{\void}
|
|
|
|
Returns index to the widest item in the list.
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::GetWidestItemWidth}\label{wxownerdrawncomboboxgetwidestitemwidth}
|
|
|
|
\constfunc{int}{GetWidestItemWidth}{\void}
|
|
|
|
Returns width of the widest item in the list.
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::OnDrawBackground}\label{wxownerdrawncomboboxondrawbackground}
|
|
|
|
\constfunc{void}{OnDrawBackground}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{item}, \param{int }{flags}}
|
|
|
|
This method is used to draw the items background and, maybe, a border around it.
|
|
|
|
The base class version implements a reasonable default behaviour which consists
|
|
in drawing the selected item with the standard background colour and drawing a
|
|
border around the item if it is either selected or current.
|
|
|
|
\wxheading{Remarks}
|
|
|
|
\arg{flags} has the same meaning as with \helpref{OnDrawItem}{wxownerdrawncomboboxondrawitem}.
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::OnDrawItem}\label{wxownerdrawncomboboxondrawitem}
|
|
|
|
\constfunc{void}{OnDrawItem}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{item}, \param{int }{flags}}
|
|
|
|
The derived class may implement this function to actually draw the item
|
|
with the given index on the provided DC. If function is not implemented,
|
|
the item text is simply drawn, as if the control was a normal combobox.
|
|
|
|
\wxheading{Parameters}
|
|
|
|
\docparam{dc}{The device context to use for drawing}
|
|
|
|
\docparam{rect}{The bounding rectangle for the item being drawn (DC clipping
|
|
region is set to this rectangle before calling this function)}
|
|
|
|
\docparam{item}{The index of the item to be drawn}
|
|
|
|
\docparam{flags}{Combines any of the following flag values:}
|
|
|
|
\twocolwidtha{7cm}%
|
|
\begin{twocollist}\itemsep=0pt
|
|
\twocolitem{{\tt wxODCB\_PAINTING\_CONTROL}}{Combo control is being
|
|
painted, instead of a list item. Argument item may be wxNOT\_FOUND in this
|
|
case.}
|
|
\twocolitem{{\tt wxODCB\_PAINTING\_SELECTED}}{An item with selection
|
|
background is being painted. DC text colour should already be correct.}
|
|
\end{twocollist}
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::OnMeasureItem}\label{wxownerdrawncomboboxonmeasureitem}
|
|
|
|
\constfunc{wxCoord}{OnMeasureItem}{\param{size\_t }{item}}
|
|
|
|
The derived class may implement this method to return the height of the
|
|
specified item (in pixels).
|
|
|
|
The default implementation returns text height, as if this control was
|
|
a normal combobox.
|
|
|
|
|
|
\membersection{wxOwnerDrawnComboBox::OnMeasureItemWidth}\label{wxownerdrawncomboboxonmeasureitemwidth}
|
|
|
|
\constfunc{wxCoord}{OnMeasureItemWidth}{\param{size\_t }{item}}
|
|
|
|
The derived class may implement this method to return the width of the
|
|
specified item (in pixels). If -1 is returned, then the item text width
|
|
is used.
|
|
|
|
The default implementation returns -1.
|
|
|