X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0934d91c7bb42c817785f9285b853d86931044b8..5c62cb6c7dfce1fac3ec9ac23cfef8cd2a043214:/src/os2/choice.cpp diff --git a/src/os2/choice.cpp b/src/os2/choice.cpp index b8940322b3..0a2f5254f6 100644 --- a/src/os2/choice.cpp +++ b/src/os2/choice.cpp @@ -14,8 +14,9 @@ #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" @@ -99,6 +100,14 @@ bool wxChoice::Create( ,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 @@ -176,17 +185,6 @@ void wxChoice::Clear() // ---------------------------------------------------------------------------- int wxChoice::GetSelection() const -{ - // if m_lastAcceptedSelection is set, it means that the dropdown is - // currently shown and that we want to use the last "permanent" selection - // instead of whatever is under the mouse pointer currently - // - // otherwise, get the selection from the control - return m_lastAcceptedSelection == wxID_NONE ? GetCurrentSelection() - : m_lastAcceptedSelection; -} - -int wxChoice::GetCurrentSelection() const { return((int)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYSELECTION, (MPARAM)LIT_FIRST, (MPARAM)0))); } // end of wxChoice::GetSelection @@ -252,7 +250,7 @@ wxString wxChoice::GetString(unsigned int n) const 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)