#include "wx/brush.h"
#include "wx/font.h"
#include "wx/dc.h"
+#include "wx/dcscreen.h"
#include "wx/utils.h"
#include "wx/scrolwin.h"
#endif
m_nSelected = 0;
} // end of wxListBox::wxListBox
+bool wxListBox::Create(
+ wxWindow* pParent
+, wxWindowID vId
+, const wxPoint& rPos
+, const wxSize& rSize
+, const wxArrayString& asChoices
+, long lStyle
+, const wxValidator& rValidator
+, const wxString& rsName
+)
+{
+ wxCArrayString chs(asChoices);
+
+ return Create(pParent, vId, rPos, rSize, chs.GetCount(), chs.GetStrings(),
+ lStyle, rValidator, rsName);
+}
+
bool wxListBox::Create(
wxWindow* pParent
, wxWindowID vId
, int n
, const wxString asChoices[]
, long lStyle
-#if wxUSE_VALIDATORS
, const wxValidator& rValidator
-#endif
, const wxString& rsName
)
{
const wxString& rsItem
)
{
- int nIndex = 0;
- SHORT nIndexType = 0;
+ long lIndex = 0;
+ LONG lIndexType = 0;
if (m_windowStyle & wxLB_SORT)
- nIndexType = LIT_SORTASCENDING;
+ lIndexType = LIT_SORTASCENDING;
else
- nIndexType = LIT_END;
- nIndex = (int)::WinSendMsg(GetHwnd(), LM_INSERTITEM, (MPARAM)nIndexType, (MPARAM)rsItem.c_str());
+ lIndexType = LIT_END;
+ lIndex = (long)::WinSendMsg(GetHwnd(), LM_INSERTITEM, (MPARAM)lIndexType, (MPARAM)rsItem.c_str());
m_nNumItems++;
#if wxUSE_OWNER_DRAWN
if (m_windowStyle & wxLB_OWNERDRAW)
{
- wxOwnerDrawn* pNewItem = CreateItem(nIndex); // dummy argument
+ wxOwnerDrawn* pNewItem = CreateItem(lIndex); // dummy argument
+ wxScreenDC vDc;
+
pNewItem->SetName(rsItem);
- m_aItems.Insert(pNewItem, nIndex);
- ::WinSendMsg(GetHwnd(), LM_SETITEMHANDLE, (MPARAM)((SHORT)nIndex), MPFROMP(pNewItem));
+ m_aItems.Insert(pNewItem, lIndex);
+ ::WinSendMsg(GetHwnd(), LM_SETITEMHANDLE, (MPARAM)lIndex, MPFROMP(pNewItem));
pNewItem->SetFont(GetFont());
}
#endif
- return nIndex;
+ return (int)lIndex;
} // end of wxListBox::DoAppend
void wxListBox::DoSetItems(
)
{
BOOL bHideAndShow = IsShown();
- int nCount = 0;
int i;
- SHORT nIndexType = 0;
+ LONG lIndexType = 0;
if (bHideAndShow)
{
{
if (m_windowStyle & wxLB_SORT)
- nIndexType = LIT_SORTASCENDING;
+ lIndexType = LIT_SORTASCENDING;
else
- nIndexType = LIT_END;
- ::WinSendMsg(GetHwnd(), LM_INSERTITEM, (MPARAM)nIndexType, (MPARAM)raChoices[i].c_str());
+ lIndexType = LIT_END;
+ ::WinSendMsg(GetHwnd(), LM_INSERTITEM, (MPARAM)lIndexType, (MPARAM)raChoices[i].c_str());
if (ppClientData)
{
m_aItems.Insert(pNewItem, nIndex);
::WinSendMsg( GetHwnd()
,LM_SETITEMHANDLE
- ,(MPARAM)((SHORT)nIndex)
+ ,(MPARAM)((LONG)nIndex)
,MPFROMP(pNewItem)
);
m_nNumItems += nItems;
//
#define OWNER_DRAWN_LISTBOX_EXTRA_SPACE (1)
-bool wxListBox::OS2OnMeasure(
+long wxListBox::OS2OnMeasure(
WXMEASUREITEMSTRUCT* pItem
)
{
vDc.SetFont(GetFont());
wxCoord vHeight;
+ wxCoord vWidth;
+
+ GetSize( &vWidth
+ ,NULL
+ );
- pMeasureStruct->rclItem.xRight = 0;
+ pMeasureStruct->rclItem.xRight = (USHORT)vWidth;
pMeasureStruct->rclItem.xLeft = 0;
pMeasureStruct->rclItem.yTop = 0;
pMeasureStruct->rclItem.yBottom = 0;
- vHeight = vDc.GetCharHeight() * 2.5;
- pMeasureStruct->rclItem.yTop = vHeight;
+ vHeight = (wxCoord)(vDc.GetCharHeight() * 2.5);
+ pMeasureStruct->rclItem.yTop = (USHORT)vHeight;
- ::WinSendMsg( GetHWND()
- ,LM_SETITEMHEIGHT
- ,MPFROMLONG(vHeight)
- ,MPFROMLONG(pMeasureStruct->idItem)
- );
- return TRUE;
+ return long(MRFROM2SHORT((USHORT)vHeight, (USHORT)vWidth));
} // end of wxListBox::OS2OnMeasure
bool wxListBox::OS2OnDraw (