%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name:        combopopup.tex
%% Purpose:     wxComboPopup docs
%% Author:      Jaakko Salli
%% Modified by:
%% Created:
%% RCS-ID:      $Id$
%% Copyright:   (c) Jaakko Salli
%% License:     wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{\class{wxComboPopup}}\label{wxcombopopup}

In order to use a custom popup with \helpref{wxComboCtrl}{wxcomboctrl},
an interface class must be derived from wxComboPopup. For more information
how to use it, see \helpref{Setting Custom Popup for wxComboCtrl}{wxcomboctrl}.

\wxheading{Include files}

<wx/combo.h>

\wxheading{Library}

\helpref{wxCore}{librarieslist}

\wxheading{See also}

\helpref{wxComboCtrl}{wxcomboctrl}

\latexignore{\rtfignore{\wxheading{Members}}}


\membersection{wxComboPopup::wxComboPopup}\label{wxcombopopupwxcombopopup}

\func{}{wxComboPopup}{\void}

Default constructor. It is recommended that internal variables
are prepared in \helpref{Init}{wxcombopopupinit} instead
(because \helpref{m\_combo}{wxcombopopupmcombo} is not valid in constructor).


\membersection{wxComboPopup::m\_combo}\label{wxcombopopupmcombo}

\member{wxComboCtrl}{m\_combo}

Parent \helpref{wxComboCtrl}{wxcomboctrl}. This is parameter has
been prepared before \helpref{Init}{wxcombopopupinit} is called.


\membersection{wxComboPopup::Create}\label{wxcombopopupcreate}

\func{bool}{Create}{\param{wxWindow* }{parent}}

The derived class must implement this to create the popup control.

\wxheading{Return value}

\true if the call succeeded, \false otherwise.


\membersection{wxComboPopup::Dismiss}\label{wxcombopopupdismiss}

\func{void}{Dismiss}{\void}

Utility function that hides the popup.


\membersection{wxComboPopup::GetAdjustedSize}\label{wxcombopopupgetadjustedsize}

\func{wxSize}{GetAdjustedSize}{\param{int }{minWidth}, \param{int }{prefHeight}, \param{int }{maxHeight}}

The derived class may implement this to return adjusted size
for the popup control, according to the variables given.

\wxheading{Parameters}

\docparam{minWidth}{Preferred minimum width.}
\docparam{prefHeight}{Preferred height. May be -1 to indicate
no preference.}
\docparam{maxWidth}{Max height for window, as limited by
screen size.}

\wxheading{Remarks}

Called each time popup is about to be shown.


\membersection{wxComboPopup::GetControl}\label{wxcombopopupgetcontrol}

\func{wxWindow*}{GetControl}{\void}

The derived class must implement this to return pointer
to the associated control created in \helpref{Create}{wxcombopopupcreate}.


\membersection{wxComboPopup::GetStringValue}\label{wxcombopopupgetstringvalue}

\constfunc{wxString}{GetStringValue}{\void}

The derived class must implement this to return
string representation of the value.


\membersection{wxComboPopup::Init}\label{wxcombopopupinit}

\func{void}{Init}{\void}

The derived class must implement this to initialize
its internal variables. This method is called immediately
after construction finishes. \helpref{m\_combo}{wxcombopopupmcombo}
member variable has been initialized before the call.


\membersection{wxComboPopup::IsCreated}\label{wxcombopopupiscreated}

\constfunc{bool}{IsCreated}{\void}

Utility method that returns \true if Create has been called.

Useful in conjunction with \helpref{LazyCreate}{wxcombopopuplazycreate}.


\membersection{wxComboPopup::LazyCreate}\label{wxcombopopuplazycreate}

\func{bool}{LazyCreate}{\void}

The derived class may implement this to return
\true if it wants to delay call to \helpref{Create}{wxcombopopupcreate}
until the popup is shown for the first time. It is more
efficient, but on the other hand it is often more convenient
to have the control created immediately.

\wxheading{Remarks}

Base implementation returns \false.


\membersection{wxComboPopup::OnComboDoubleClick}\label{wxcombopopuponcombodoubleclick}

\func{void}{OnComboDoubleClick}{\void}

The derived class may implement this to do something
when the parent \helpref{wxComboCtrl}{wxcomboctrl} gets double-clicked.


\membersection{wxComboPopup::OnComboKeyEvent}\label{wxcombopopuponcombokeyevent}

\func{void}{OnComboKeyEvent}{\param{wxKeyEvent\& }{event}}

The derived class may implement this to receive
key events from the parent \helpref{wxComboCtrl}{wxcomboctrl}.

Events not handled should be skipped, as usual.


\membersection{wxComboPopup::OnDismiss}\label{wxcombopopupondismiss}

\func{void}{OnDismiss}{\void}

The derived class may implement this to do
special processing when popup is hidden.


\membersection{wxComboPopup::OnPopup}\label{wxcombopopuponpopup}

\func{void}{OnPopup}{\void}

The derived class may implement this to do
special processing when popup is shown.


\membersection{wxComboPopup::PaintComboControl}\label{wxcombopopuppaintcombocontrol}

\func{void}{PaintComboControl}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}}

The derived class may implement this to paint
the parent \helpref{wxComboCtrl}{wxcomboctrl}.

Default implementation draws value as string.


\membersection{wxComboPopup::SetStringValue}\label{wxcombopopupsetstringvalue}

\func{void}{SetStringValue}{\param{const wxString\& }{value}}

The derived class must implement this to receive
string value changes from \helpref{wxComboCtrl}{wxcomboctrl}.

