X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..27c78e4552aaefac9a4db0d4453eff09cdfef2ad:/src/os2/choice.cpp?ds=sidebyside diff --git a/src/os2/choice.cpp b/src/os2/choice.cpp index 1320c33442..8235ed3532 100644 --- a/src/os2/choice.cpp +++ b/src/os2/choice.cpp @@ -1,17 +1,21 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp +// Name: src/os2/choice.cpp // Purpose: wxChoice // Author: David Webster // Modified by: // Created: 10/13/99 // RCS-ID: $Id$ // Copyright: (c) David Webster -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#include "wx/defs.h" + +#if wxUSE_CHOICE + #ifndef WX_PRECOMP #include "wx/choice.h" #include "wx/utils.h" @@ -62,7 +66,7 @@ bool wxChoice::Create( ,rValidator ,rsName )) - return FALSE; + return false; lSstyle = CBS_DROPDOWNLIST | WS_TABSTOP | WS_VISIBLE; @@ -79,7 +83,7 @@ bool wxChoice::Create( if (!OS2CreateControl( wxT("COMBOBOX") ,lSstyle )) - return FALSE; + return false; // // A choice/combobox normally has a white background (or other, depending @@ -102,7 +106,7 @@ bool wxChoice::Create( ,rSize.y ); delete pTextFont; - return TRUE; + return true; } // end of wxChoice::Create // ---------------------------------------------------------------------------- @@ -197,38 +201,10 @@ int wxChoice::GetCount() const return((int)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYITEMCOUNT, (MPARAM)0, (MPARAM)0))); } // end of wxChoice::GetCount -int wxChoice::FindString( - const wxString& rsStr -) const +void wxChoice::SetString( int n, const wxString& rsStr ) { - int nPos; - int nTextLength; - PSZ zStr; - int nItemCount; - - nItemCount = (int)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYITEMCOUNT, (MPARAM)0, (MPARAM)0)); - for (nPos = 0; nPos < nItemCount; nPos++) - { - nTextLength = (int)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYITEMTEXTLENGTH, (MPARAM)nPos, (MPARAM)0)); - zStr = new char[nTextLength + 1]; - ::WinSendMsg(GetHwnd(), LM_QUERYITEMTEXT, MPFROM2SHORT((SHORT)nPos, (SHORT)nTextLength), (MPARAM)zStr); - if (rsStr == (char*)zStr) - { - delete [] zStr; - break; - } - delete [] zStr; - } - return nPos; -} // end of wxChoice::FindString - -void wxChoice::SetString( - int n -, const wxString& rsStr -) -{ - LONG nIndexType = 0; - void* pData; + LONG nIndexType = 0; + void* pData; if ( m_clientDataItemsType != wxClientData_None ) { @@ -259,18 +235,16 @@ void wxChoice::SetString( } } // end of wxChoice::SetString -wxString wxChoice::GetString( - int n -) const +wxString wxChoice::GetString(int n) const { - int nLen = 0; - wxString sStr = ""; - char* zBuf; + int nLen = 0; + wxString sStr = wxEmptyString; + wxChar* zBuf; nLen = (size_t)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYITEMTEXTLENGTH, (MPARAM)n, (MPARAM)0)); if (nLen != LIT_ERROR && nLen > 0) { - zBuf = new char[nLen + 1]; + zBuf = new wxChar[nLen + 1]; ::WinSendMsg( GetHwnd() ,LM_QUERYITEMTEXT ,MPFROM2SHORT((SHORT)n, (SHORT)nLen) @@ -323,13 +297,11 @@ wxClientData* wxChoice::DoGetItemClientObject( // wxOS2 specific helpers // ---------------------------------------------------------------------------- -void wxChoice::DoSetSize( - int nX -, int nY -, int nWidth -, int nHeight -, int nSizeFlags -) +void wxChoice::DoSetSize(int nX, + int nY, + int nWidth, + int WXUNUSED(nHeight), + int nSizeFlags) { // // Ignore height parameter because height doesn't mean 'initially @@ -341,7 +313,7 @@ void wxChoice::DoSetSize( wxControl::DoSetSize( nX ,nY ,nWidth - ,-1 + ,wxDefaultCoord ,nSizeFlags ); } // end of wxChoice::DoSetSize @@ -356,6 +328,7 @@ wxSize wxChoice::DoGetBestSize() const int nItems = GetCount(); int nCx; int nCy; + wxFont vFont = (wxFont)GetFont(); for (int i = 0; i < nItems; i++) { @@ -382,7 +355,7 @@ wxSize wxChoice::DoGetBestSize() const wxGetCharSize( GetHWND() ,&nCx ,&nCy - ,(wxFont*)&GetFont() + ,&vFont ); nChoiceWidth += 5 * nCx; @@ -419,7 +392,7 @@ bool wxChoice::OS2Command( // // "selection changed" is the only event we're after // - return FALSE; + return false; } int n = GetSelection(); @@ -431,14 +404,14 @@ bool wxChoice::OS2Command( vEvent.SetInt(n); vEvent.SetEventObject(this); - vEvent.SetString((char*)GetStringSelection().c_str()); + vEvent.SetString(GetStringSelection()); if (HasClientObjectData()) vEvent.SetClientObject(GetClientObject(n)); else if (HasClientUntypedData()) vEvent.SetClientData(GetClientData(n)); ProcessCommand(vEvent); } - return TRUE; + return true; } // end of wxChoice::OS2Command void wxChoice::Free() @@ -452,4 +425,6 @@ void wxChoice::Free() delete GetClientObject(n); } } -} // end of wxhoice::Free +} // end of wxChoice::Free + +#endif // wxUSE_CHOICE