#include "wx/font.h"
#include "wx/dc.h"
#include "wx/utils.h"
+#include "wx/scrolwin.h"
#endif
#define INCL_M
//
lStyle |= LS_NOADJUSTPOS;
- //
- // If the parent is a scrolled window the controls must
- // have this style or they will overlap the scrollbars
- //
- if (pParent)
- if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
- pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
- lStyle |= WS_CLIPSIBLINGS;
-
m_hWnd = (WXHWND)::WinCreateWindow( GetWinHwnd(pParent) // Parent
,WC_LISTBOX // Default Listbox class
,"LISTBOX" // Control's name
{
Append(asChoices[lUi]);
}
- SetFont(pParent->GetFont());
-
+ wxFont* pTextFont = new wxFont( 10
+ ,wxMODERN
+ ,wxNORMAL
+ ,wxNORMAL
+ );
+ SetFont(*pTextFont);
+
//
// Set standard wxWindows colors for Listbox items and highlighting
//
,nWidth
,nHeight
);
+ delete pTextFont;
return TRUE;
} // end of wxListBox::Create
wxOwnerDrawn* pNewItem = CreateItem(nIndex); // dummy argument
pNewItem->SetName(rsItem);
- m_aItems.Add(pNewItem);
+ m_aItems.Insert(pNewItem, nIndex);
::WinSendMsg(GetHwnd(), LM_SETITEMHANDLE, (MPARAM)((SHORT)nIndex), MPFROMP(pNewItem));
pNewItem->SetFont(GetFont());
}
//
// First delete old items
//
- size_t lUi = m_aItems.Count();
-
- while (lUi-- != 0)
- {
- delete m_aItems[lUi];
- }
- m_aItems.Empty();
+ WX_CLEAR_ARRAY(m_aItems);
//
// Then create new ones
//
- for (lUi = 0; lUi < (size_t)m_nNumItems; lUi++)
+ for (size_t ui = 0; ui < (size_t)m_nNumItems; ui++)
{
- wxOwnerDrawn* pNewItem = CreateItem(lUi);
+ wxOwnerDrawn* pNewItem = CreateItem(ui);
- pNewItem->SetName(raChoices[lUi]);
+ pNewItem->SetName(raChoices[ui]);
m_aItems.Add(pNewItem);
- ::WinSendMsg(GetHwnd(), LM_SETITEMHANDLE, MPFROMLONG(lUi), MPFROMP(pNewItem));
+ ::WinSendMsg(GetHwnd(), LM_SETITEMHANDLE, MPFROMLONG(ui), MPFROMP(pNewItem));
}
}
#endif // wxUSE_OWNER_DRAWN
int nItems = asItems.GetCount();
for (int i = 0; i < nItems; i++)
- ::WinSendMsg(GetHwnd(), LM_INSERTITEM, MPFROMLONG((LONG)(i + nPos)), (MPARAM)asItems[i].c_str());
- m_nNumItems += nItems;
+ {
+ int nIndex = (int)::WinSendMsg( GetHwnd()
+ ,LM_INSERTITEM
+ ,MPFROMLONG((LONG)(i + nPos))
+ ,(MPARAM)asItems[i].c_str()
+ );
+
+ wxOwnerDrawn* pNewItem = CreateItem(nIndex);
+
+ pNewItem->SetName(asItems[i]);
+ pNewItem->SetFont(GetFont());
+ m_aItems.Insert(pNewItem, nIndex);
+ ::WinSendMsg( GetHwnd()
+ ,LM_SETITEMHANDLE
+ ,(MPARAM)((SHORT)nIndex)
+ ,MPFROMP(pNewItem)
+ );
+ m_nNumItems += nItems;
+ }
} // end of wxListBox::DoInsertItems
void wxListBox::SetString(