git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62058
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// free all memory we have (used by Clear() and dtor)
void Free();
// free all memory we have (used by Clear() and dtor)
void Free();
+ // set the height for simple combo box
+ int SetHeightSimpleComboBox(int nItems) const;
+
#if wxUSE_DEFERRED_SIZING
virtual void MSWEndDeferWindowPos();
#endif // wxUSE_DEFERRED_SIZING
#if wxUSE_DEFERRED_SIZING
virtual void MSWEndDeferWindowPos();
#endif // wxUSE_DEFERRED_SIZING
// don't make the drop down list too tall, arbitrarily limit it to 30
// items max and also don't make it too small if it's currently empty
size_t nItems = GetCount();
// don't make the drop down list too tall, arbitrarily limit it to 30
// items max and also don't make it too small if it's currently empty
size_t nItems = GetCount();
- if ( !nItems )
- nItems = 9;
- else if ( nItems > 30 )
- nItems = 30;
+ if (!HasFlag(wxCB_SIMPLE))
+ {
+ if ( !nItems )
+ nItems = 9;
+ else if ( nItems > 30 )
+ nItems = 30;
+ }
const int hItem = SendMessage(GetHwnd(), CB_GETITEMHEIGHT, 0, 0);
const int hItem = SendMessage(GetHwnd(), CB_GETITEMHEIGHT, 0, 0);
- const int heightWithItems = height + hItem*nItems;
+ int heightWithItems = 0;
+ if (!HasFlag(wxCB_SIMPLE))
+ heightWithItems = height + hItem*nItems;
+ else
+ heightWithItems = SetHeightSimpleComboBox(nItems);
// do resize the native control
// do resize the native control
{
// find the widest string
int wChoice = 0;
{
// find the widest string
int wChoice = 0;
const unsigned int nItems = GetCount();
for ( unsigned int i = 0; i < nItems; i++ )
{
const unsigned int nItems = GetCount();
for ( unsigned int i = 0; i < nItems; i++ )
{
// the combobox should be slightly larger than the widest string
wChoice += 5*GetCharWidth();
// the combobox should be slightly larger than the widest string
wChoice += 5*GetCharWidth();
+ if( HasFlag( wxCB_SIMPLE ) )
+ {
+ hChoice = SetHeightSimpleComboBox( nItems );
+ }
+ else
+ hChoice = EDIT_HEIGHT_FROM_CHAR_HEIGHT(GetCharHeight());
- wxSize best(wChoice, EDIT_HEIGHT_FROM_CHAR_HEIGHT(GetCharHeight()));
+ wxSize best(wChoice, hChoice);
CacheBestSize(best);
return best;
}
CacheBestSize(best);
return best;
}
+int wxChoice::SetHeightSimpleComboBox(int nItems) const
+{
+ int cx, cy;
+ wxGetCharSize( GetHWND(), &cx, &cy, GetFont() );
+ int hItem = SendMessage(GetHwnd(), CB_GETITEMHEIGHT, -1, 0);
+ return EDIT_HEIGHT_FROM_CHAR_HEIGHT( cy ) * wxMin( wxMax( nItems, 3 ), 6 ) + hItem - 1;
+}
+
// ----------------------------------------------------------------------------
// MSW message handlers
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// MSW message handlers
// ----------------------------------------------------------------------------