#include "wx/font.h"
#include "wx/dc.h"
#include "wx/utils.h"
+#include "wx/scrolwin.h"
#endif
#define INCL_M
{
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
+ //
+ wxColour vColour;
+
+ vColour.Set(wxString("WHITE"));
+
+ LONG lColor = (LONG)vColour.GetPixel();
+
+ ::WinSetPresParam( m_hWnd
+ ,PP_HILITEFOREGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
+ vColour.Set(wxString("NAVY"));
+ lColor = (LONG)vColour.GetPixel();
+ ::WinSetPresParam( m_hWnd
+ ,PP_HILITEBACKGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
+
SetSize( nX
,nY
,nWidth
,nHeight
);
+ delete pTextFont;
return TRUE;
} // end of wxListBox::Create
void wxListBox::SetupColours()
{
- SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
+ SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
SetForegroundColour(GetParent()->GetForegroundColour());
} // end of wxListBox::SetupColours
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(