]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/choice.cpp
Implemented wxTextAttrEx::CombineEx and wxRichTextAttr::Combine
[wxWidgets.git] / src / os2 / choice.cpp
index 50551d72a2e732c83ff4f338826eedd445c3c4d7..0a2f5254f6a611c18f20dd7e4fdb409d69d01a3d 100644 (file)
@@ -100,6 +100,14 @@ bool wxChoice::Create(
             ,rSize.x
             ,rSize.y
            );
             ,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
 
     return true;
 } // end of wxChoice::Create
 
@@ -177,17 +185,6 @@ void wxChoice::Clear()
 // ----------------------------------------------------------------------------
 
 int wxChoice::GetSelection() const
 // ----------------------------------------------------------------------------
 
 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
 {
     return((int)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYSELECTION, (MPARAM)LIT_FIRST, (MPARAM)0)));
 } // end of wxChoice::GetSelection
@@ -253,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)
     {
     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)
         ::WinSendMsg( GetHwnd()
                      ,LM_QUERYITEMTEXT
                      ,MPFROM2SHORT((SHORT)n, (SHORT)nLen)