#if wxUSE_CHOICE
+#include "wx/choice.h"
+
#ifndef WX_PRECOMP
- #include "wx/choice.h"
#include "wx/utils.h"
#include "wx/log.h"
#include "wx/settings.h"
// on global settings) rather than inheriting the parent's background colour.
//
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
+
+ // initialize the controls contents
for (int i = 0; i < n; i++)
{
Append(asChoices[i]);
,rSize.x
,rSize.y
);
+
+ // Set height to use with sizers i.e. without the dropdown listbox
+ wxFont vFont = GetFont();
+ int nCx,nCy;
+ wxGetCharSize( GetHWND(), &nCx, &nCy, &vFont );
+ int nEditHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nCy);
+ SetBestFittingSize(wxSize(-1,nEditHeight));
+
return true;
} // end of wxChoice::Create
+wxChoice::~wxChoice()
+{
+ Free();
+}
+
// ----------------------------------------------------------------------------
// adding/deleting items to/from the list
// ----------------------------------------------------------------------------
void wxChoice::Delete(unsigned int n)
{
wxCHECK_RET( IsValid(n), wxT("invalid item index in wxChoice::Delete") );
+
+ if ( HasClientObjectData() )
+ {
+ delete GetClientObject(n);
+ }
+
::WinSendMsg(GetHwnd(), LM_DELETEITEM, (MPARAM)n, (MPARAM)0);
} // end of wxChoice::Delete
nLen = (size_t)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYITEMTEXTLENGTH, (MPARAM)n, (MPARAM)0));
if (nLen != LIT_ERROR && nLen > 0)
{
- zBuf = new wxChar[nLen + 1];
+ zBuf = new wxChar[++nLen];
::WinSendMsg( GetHwnd()
,LM_QUERYITEMTEXT
,MPFROM2SHORT((SHORT)n, (SHORT)nLen)