RefreshLine(pItem);
}
+bool wxGenericTreeCtrl::SetFont( const wxFont &font )
+{
+ wxScrolledWindow::SetFont(font);
+
+ m_normalFont = font ;
+ m_boldFont = wxFont( m_normalFont.GetPointSize(),
+ m_normalFont.GetFamily(),
+ m_normalFont.GetStyle(),
+ wxBOLD,
+ m_normalFont.GetUnderlined());
+
+ return TRUE;
+}
+
+
// -----------------------------------------------------------------------------
// item status inquiries
// -----------------------------------------------------------------------------
dc.SetBrush(wxBrush(colBg, wxSOLID));
}
- dc.DrawRectangle( item->GetX()-2, item->GetY(), item->GetWidth()+2, total_h );
+ if (item->IsSelected() && image != NO_IMAGE)
+ {
+ // If it's selected, and there's an image, then we should
+ // take care to leave the area under the image painted in the
+ // background colour.
+ dc.DrawRectangle( item->GetX() + image_w - 2, item->GetY(), item->GetWidth() - image_w + 2, total_h );
+ }
+ else
+ dc.DrawRectangle( item->GetX()-2, item->GetY(), item->GetWidth()+2, total_h );
if ( image != NO_IMAGE )
{
m_imageListNormal->GetSize( image, image_w, image_h );
image_w += 4;
}
- else // !RightDown() && !LeftUp() ==> LeftDown() || LeftDClick()
+ else
{
wxFAIL_MSG(_T("you must create an image list to use images!"));
}
}
x += image_w;
w -= image_w + 4; // I don't know why +4 is needed
- if ( flags & wxTREE_HITTEST_ONITEMBUTTON )
- {
- // only toggle the item for a single click, double click on
- // the button doesn't do anything (it toggles the item twice)
- if ( event.LeftDown() )
- {
- Toggle( item );
- }
-
- // don't select the item if the button was clicked
- return;
- }
-
wxClientDC dc(this);
PrepareDC( dc );
x = dc.LogicalToDeviceX( x );
y = dc.LogicalToDeviceY( y );
- wxTreeTextCtrl *text = new wxTreeTextCtrl(
- this, -1, &m_renameAccept, &m_renameRes, this, s, wxPoint(x-4,y-4), wxSize(w+11,h+8) );
+ wxTreeTextCtrl *text = new wxTreeTextCtrl(this, -1,
+ &m_renameAccept,
+ &m_renameRes,
+ this,
+ s,
+ wxPoint(x-4,y-4),
+ wxSize(w+11,h+8));
text->SetFocus();
}
m_lastOnSame = FALSE;
}
}
- else
+ else // !RightDown() && !LeftUp() ==> LeftDown() || LeftDClick()
{
if ( event.LeftDown() )
{
m_lastOnSame = item == m_current;
}
+ if ( flags & wxTREE_HITTEST_ONITEMBUTTON )
+ {
+ // only toggle the item for a single click, double click on
+ // the button doesn't do anything (it toggles the item twice)
+ if ( event.LeftDown() )
+ {
+ Toggle( item );
+ }
+
+ // don't select the item if the button was clicked
+ return;
+ }
+
// how should the selection work for this event?
bool is_multiple, extended_select, unselect_others;
EventFlagsToSelType(GetWindowStyleFlag(),