#include "wx/choice.h"
#include "wx/utils.h"
#include "wx/log.h"
+ #include "wx/settings.h"
#endif
#include "wx/msw/private.h"
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl)
-#endif
// ============================================================================
// implementation
if ( !MSWCreateControl(wxT("COMBOBOX"), msStyle) )
return FALSE;
+ // A choice/combobox normally has a white background (or other, depending
+ // on global settings) rather than inheriting the parent's background colour.
+ SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
+
for ( int i = 0; i < n; i++ )
{
Append(choices[i]);
return TRUE;
}
-/*
wxChoice::~wxChoice()
{
Free();
}
-*/
// ----------------------------------------------------------------------------
// adding/deleting items to/from the list
void wxChoice::Clear()
{
-// Free();
+ Free();
SendMessage(GetHwnd(), CB_RESETCONTENT, 0, 0);
}
-/*
void wxChoice::Free()
{
if ( HasClientObjectData() )
}
}
}
-*/
// ----------------------------------------------------------------------------
// selection
wxControl::DoSetSize(x, y, width, -1, sizeFlags);
}
-wxSize wxChoice::DoGetBestSize()
+wxSize wxChoice::DoGetBestSize() const
{
// find the widest string
int wLine;
}
int n = GetSelection();
- wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId);
- event.SetInt(n);
- event.SetEventObject(this);
- event.SetString(GetStringSelection());
- if ( HasClientObjectData() )
- event.SetClientObject( GetClientObject(n) );
- else if ( HasClientUntypedData() )
- event.SetClientData( GetClientData(n) );
- ProcessCommand(event);
+ if (n > -1)
+ {
+ wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId);
+ event.SetInt(n);
+ event.SetEventObject(this);
+ event.SetString(GetStringSelection());
+ if ( HasClientObjectData() )
+ event.SetClientObject( GetClientObject(n) );
+ else if ( HasClientUntypedData() )
+ event.SetClientData( GetClientData(n) );
+ ProcessCommand(event);
+ }
return TRUE;
}