1. undid my wrong fix to wxWindowBase::Centre
2. corrected fatal bug in wxCheckLstBox (double deletion of items) 3. wxTextCtrl::SetValue() only does it if the new text is different from the old one 4. wxBitmap(const wxIcon&) ctor added 5. compilation fixes for VC++ and generic Win32 implementation of wxGetCurrentTime() in timercmn.cpp git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -256,15 +256,15 @@ void wxListBox::Delete(int N)
|
||||
wxCHECK_RET( N >= 0 && N < m_noItems,
|
||||
wxT("invalid index in wxListBox::Delete") );
|
||||
|
||||
#if wxUSE_OWNER_DRAWN
|
||||
delete m_aItems[N];
|
||||
m_aItems.Remove(N);
|
||||
#else // !wxUSE_OWNER_DRAWN
|
||||
if ( HasClientObjectData() )
|
||||
{
|
||||
delete GetClientObject(N);
|
||||
}
|
||||
#endif // wxUSE_OWNER_DRAWN/!wxUSE_OWNER_DRAWN
|
||||
// for owner drawn objects, the data is used for storing wxOwnerDrawn
|
||||
// pointers and we shouldn't touch it
|
||||
#if !wxUSE_OWNER_DRAWN
|
||||
if ( !(m_windowStyle & wxLB_OWNERDRAW) )
|
||||
#endif // !wxUSE_OWNER_DRAWN
|
||||
if ( HasClientObjectData() )
|
||||
{
|
||||
delete GetClientObject(N);
|
||||
}
|
||||
|
||||
SendMessage(GetHwnd(), LB_DELETESTRING, N, 0);
|
||||
m_noItems--;
|
||||
@@ -747,13 +747,19 @@ bool wxListBox::MSWOnMeasure(WXMEASUREITEMSTRUCT *item)
|
||||
|
||||
MEASUREITEMSTRUCT *pStruct = (MEASUREITEMSTRUCT *)item;
|
||||
|
||||
HDC hdc = CreateIC(wxT("DISPLAY"), NULL, NULL, 0);
|
||||
|
||||
wxDC dc;
|
||||
dc.SetHDC((WXHDC)CreateIC(wxT("DISPLAY"), NULL, NULL, 0));
|
||||
dc.SetHDC((WXHDC)hdc);
|
||||
dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_ANSI_VAR_FONT));
|
||||
|
||||
pStruct->itemHeight = dc.GetCharHeight() + 2*OWNER_DRAWN_LISTBOX_EXTRA_SPACE;
|
||||
pStruct->itemWidth = dc.GetCharWidth();
|
||||
|
||||
dc.SetHDC(0);
|
||||
|
||||
DeleteDC(hdc);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user