// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "listbox.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
InvalidateBestSize();
}
-int wxListBox::FindString(const wxString& s) const
+int wxListBox::FindString(const wxString& s, bool bCase) const
{
- int pos = ListBox_FindStringExact(GetHwnd(), (WPARAM)-1, s);
+ // back to base class search for not native search type
+ if (bCase)
+ return wxItemContainerImmutable::FindString( s, bCase );
+
+ int pos = ListBox_FindStringExact(GetHwnd(), -1, s);
if (pos == LB_ERR)
return wxNOT_FOUND;
else
InvalidateBestSize();
}
+int wxListBox::DoListHitTest(const wxPoint& point) const
+{
+ LRESULT lRes = ::SendMessage(GetHwnd(), LB_ITEMFROMPOINT,
+ 0L, MAKELONG(point.x, point.y));
+
+ // non zero high-order word means that this item is outside of the client
+ // area, IOW the point is outside of the listbox
+ return HIWORD(lRes) ? wxNOT_FOUND : lRes;
+}
+
void wxListBox::SetString(int N, const wxString& s)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
HDC hdc = CreateIC(wxT("DISPLAY"), NULL, NULL, 0);
#endif
- wxDC dc;
- dc.SetHDC((WXHDC)hdc);
- dc.SetFont(GetFont());
-
- pStruct->itemHeight = dc.GetCharHeight() + 2*OWNER_DRAWN_LISTBOX_EXTRA_SPACE;
- pStruct->itemWidth = dc.GetCharWidth();
+ {
+ wxDCTemp dc((WXHDC)hdc);
+ dc.SetFont(GetFont());
- dc.SetHDC(0);
+ pStruct->itemHeight = dc.GetCharHeight() + 2*OWNER_DRAWN_LISTBOX_EXTRA_SPACE;
+ pStruct->itemWidth = dc.GetCharWidth();
+ }
+#ifdef __WXWINCE__
+ ReleaseDC(NULL, hdc);
+#else
DeleteDC(hdc);
+#endif
return true;
}