if ((point.y > m_y) && (point.y < m_y + m_height))
{
// FIXME why +5?
+ // Because that is the size of the plus sign, RR
if ((point.x > m_xCross-5) && (point.x < m_xCross+5) &&
(point.y > m_yCross-5) && (point.y < m_yCross+5) &&
(IsExpanded() || HasPlus()))
return this;
}
+ /* TODO: we should do a query here like
+ m_imageListNormal->GetSize( item->GetImage(), image_w, image_h ); */
int w = m_width;
- if (m_image != -1) w += 20;
+ if (m_image != -1) w += 24;
if ((point.x > m_x) && (point.x < m_x+w))
{
for(int i = 0; i < n ; i++)
{
m_imageListNormal->GetSize(i, width, height);
+ height += height/5; //20% extra spacing
if(height > m_lineHeight) m_lineHeight = height;
}
}
}
int total_h = (image_h > text_h) ? image_h : text_h;
- dc.DrawRectangle( item->GetX()-2, item->GetY()-2, image_w+text_w+4, total_h+4 );
+ if(m_lineHeight > total_h) total_h = m_lineHeight;
+
+ dc.DrawRectangle( item->GetX()-2, item->GetY(), image_w+text_w+4, total_h );
if ((item->IsExpanded()) && (item->GetSelectedImage() != -1))
{
int horizX = level*m_indent;
item->SetX( horizX+33 );
- item->SetY( y-m_lineHeight/3 );
+ item->SetY( y-m_lineHeight/2 );
item->SetHeight( m_lineHeight );
item->SetCross( horizX+15, y );
wxTreeItemId wxTreeCtrl::HitTest(const wxPoint& point, int& WXUNUSED(flags))
{
+ wxClientDC dc(this);
+ PrepareDC(dc);
+ long x = dc.DeviceToLogicalX( (long)point.x );
+ long y = dc.DeviceToLogicalY( (long)point.y );
+
bool onButton = FALSE;
- return m_anchor->HitTest( point, onButton );
+ return m_anchor->HitTest( wxPoint(x, y), onButton );
}
void wxTreeCtrl::OnMouse( wxMouseEvent &event )
int horizX = level*m_indent;
item->SetX( horizX+33 );
- item->SetY( y-m_lineHeight/3-2 );
+ item->SetY( y-m_lineHeight/2 );
item->SetHeight( m_lineHeight );
if ( !item->IsExpanded() )