X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5ddb3b8c535567e281e7a437e5e700e82d1516b4..cb04da13bddf9c70028b7adb55ac4efbb92ce4d4:/src/msw/combobox.cpp diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp index 46b1c482c1..dc91cfb252 100644 --- a/src/msw/combobox.cpp +++ b/src/msw/combobox.cpp @@ -39,7 +39,6 @@ #endif #include "wx/clipbrd.h" -#include "wx/dynlib.h" #include "wx/wupdlock.h" #include "wx/msw/private.h" @@ -378,26 +377,13 @@ bool wxComboBox::MSWShouldPreProcessMessage(WXMSG *pMsg) WXHWND wxComboBox::GetEditHWNDIfAvailable() const { -#if wxUSE_DYNLIB_CLASS + // FIXME-VC6: Only VC6 needs this guard, see WINVER definition in + // include/wx/msw/wrapwin.h #if defined(WINVER) && WINVER >= 0x0500 - typedef BOOL (WINAPI *GetComboBoxInfo_t)(HWND, COMBOBOXINFO*); - static GetComboBoxInfo_t s_pfnGetComboBoxInfo = NULL; - static bool s_triedToLoad = false; - if ( !s_triedToLoad ) - { - s_triedToLoad = true; - wxLoadedDLL dllUser32("user32.dll"); - wxDL_INIT_FUNC(s_pfn, GetComboBoxInfo, dllUser32); - } - - if ( s_pfnGetComboBoxInfo ) - { - WinStruct info; - (*s_pfnGetComboBoxInfo)(GetHwnd(), &info); + WinStruct info; + if ( MSWGetComboBoxInfo(&info) ) return info.hwndItem; - } #endif // WINVER >= 0x0500 -#endif // wxUSE_DYNLIB_CLASS if (HasFlag(wxCB_SIMPLE)) { @@ -679,4 +665,20 @@ bool wxComboBox::SetHint(const wxString& hintOrig) #endif // wxUSE_UXTHEME +wxSize wxComboBox::DoGetSizeFromTextSize(int xlen, int ylen) const +{ + wxSize tsize( wxChoice::DoGetSizeFromTextSize(xlen, ylen) ); + + if ( !HasFlag(wxCB_READONLY) ) + { + // Add the margins we have previously set + wxPoint marg( GetMargins() ); + marg.x = wxMax(0, marg.x); + marg.y = wxMax(0, marg.y); + tsize.IncBy( marg ); + } + + return tsize; +} + #endif // wxUSE_COMBOBOX