if (s.IsNull()) s = "H";
wxCoord lw,lh;
dc->GetTextExtent( s, &lw, &lh );
+ if (lh < 15) lh = 15;
item->SetSize( item->GetWidth(), lh );
m_bound_all.width += lw;
m_bound_all.height = lh;
{
wxCoord lw,lh;
dc->GetTextExtent( "H", &lw, &lh );
+ if (lh < 15) lh = 15;
m_bound_all.x = 0;
m_bound_all.y -= 0;
m_bound_all.height = lh+3;
if (s.IsEmpty()) s = wxT("H");
wxCoord lw,lh;
dc->GetTextExtent( s, &lw, &lh );
+ if (lh < 15) lh = 15;
m_bound_label.width = lw;
m_bound_label.height = lh;
if (item->HasImage())
void wxListLineData::DoDraw( wxDC *dc, bool hilight, bool paintBG )
{
- wxCoord dev_x = dc->LogicalToDeviceX( m_bound_all.x-2 );
- wxCoord dev_y = dc->LogicalToDeviceY( m_bound_all.y-2 );
- wxCoord dev_w = dc->LogicalToDeviceXRel( m_bound_all.width+4 );
- wxCoord dev_h = dc->LogicalToDeviceYRel( m_bound_all.height+4 );
+ wxCoord dev_x = 0;
+ wxCoord dev_y = 0;
+ m_owner->CalcScrolledPosition( m_bound_all.x, m_bound_all.y, &dev_x, &dev_y );
+ wxCoord dev_w = m_bound_all.width;
+ wxCoord dev_h = m_bound_all.height;
if (!m_owner->IsExposed( dev_x, dev_y, dev_w, dev_h ))
- {
return;
- }
wxWindow *listctrl = m_owner->GetParent();
while (node)
{
wxListItemData *item = (wxListItemData*)node->Data();
- dc->SetClippingRegion( item->GetX(), item->GetY(), item->GetWidth()-3, item->GetHeight() );
int x = item->GetX();
if (item->HasImage())
{
m_owner->GetImageSize( item->GetImage(), x, y );
x += item->GetX() + 5;
}
+ dc->SetClippingRegion( item->GetX(), item->GetY(), item->GetWidth()-3, item->GetHeight() );
if (item->HasText())
{
- dc->DrawText( item->GetText(), x, item->GetY() );
+ dc->DrawText( item->GetText(), x, item->GetY()+1 );
}
dc->DestroyClippingRegion();
node = node->Next();
{
if (m_dirty) return;
+ if (!line) return;
+
int x = 0;
int y = 0;
int w = 0;
int h = 0;
- if (line)
- {
- wxClientDC dc(this);
- PrepareDC( dc );
- line->GetExtent( x, y, w, h );
- wxRect rect(
- dc.LogicalToDeviceX(x-3),
- dc.LogicalToDeviceY(y-3),
- dc.LogicalToDeviceXRel(w+6),
- dc.LogicalToDeviceXRel(h+6) );
- Refresh( TRUE, &rect );
- }
+ line->GetExtent( x, y, w, h );
+ CalcScrolledPosition( x, y, &x, &y );
+ wxRect rect( x, y, w, h );
+ Refresh( TRUE, &rect );
}
void wxListMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )