#include "wx/wx.h"
#endif
+#if !defined(__WXMSW__) || wxUSE_XPM_IN_MSW
+/* Closed folder */
+static char * icon1_xpm[] = {
+/* width height ncolors chars_per_pixel */
+"16 16 6 1",
+/* colors */
+" s None c None",
+". c #000000",
+"+ c #c0c0c0",
+"@ c #808080",
+"# c #ffff00",
+"$ c #ffffff",
+/* pixels */
+" ",
+" @@@@@ ",
+" @#+#+#@ ",
+" @#+#+#+#@@@@@@ ",
+" @$$$$$$$$$$$$@.",
+" @$#+#+#+#+#+#@.",
+" @$+#+#+#+#+#+@.",
+" @$#+#+#+#+#+#@.",
+" @$+#+#+#+#+#+@.",
+" @$#+#+#+#+#+#@.",
+" @$+#+#+#+#+#+@.",
+" @$#+#+#+#+#+#@.",
+" @@@@@@@@@@@@@@.",
+" ..............",
+" ",
+" "};
+
+/* File */
+static char * icon2_xpm[] = {
+/* width height ncolors chars_per_pixel */
+"16 16 3 1",
+/* colors */
+" s None c None",
+". c #000000",
+"+ c #ffffff",
+/* pixels */
+" ",
+" ........ ",
+" .++++++.. ",
+" .+.+.++.+. ",
+" .++++++.... ",
+" .+.+.+++++. ",
+" .+++++++++. ",
+" .+.+.+.+.+. ",
+" .+++++++++. ",
+" .+.+.+.+.+. ",
+" .+++++++++. ",
+" .+.+.+.+.+. ",
+" .+++++++++. ",
+" ........... ",
+" ",
+" "};
+#endif
+
#include "wx/imaglist.h"
#include "tree.h"
m_scrolledWindow->EnableScrolling(FALSE, FALSE);
+ // Let the two controls know about each other
+ m_valueWindow->SetTreeCtrl(m_tree);
+ m_tree->SetCompanionWindow(m_valueWindow);
+
// set the frame icon
SetIcon(wxICON(mondrian));
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
wxString msg;
- msg.Printf( _T("This is the about dialog of tree sample.\n")
+ msg.Printf( _T("This is the about dialog of splittree sample.\n")
_T("Welcome to %s"), wxVERSION_STRING);
wxMessageBox(msg, "About Tree Test", wxOK | wxICON_INFORMATION, this);
IMPLEMENT_CLASS(TestTree, wxRemotelyScrolledTreeCtrl)
BEGIN_EVENT_TABLE(TestTree, wxRemotelyScrolledTreeCtrl)
+ EVT_PAINT(TestTree::OnPaint)
END_EVENT_TABLE()
TestTree::TestTree(wxWindow* parent, wxWindowID id, const wxPoint& pt,
#if !defined(__WXMSW__) // || wxUSE_XPM_IN_MSW
m_imageList->Add(wxIcon(icon1_xpm));
m_imageList->Add(wxIcon(icon2_xpm));
- m_imageList->Add(wxIcon(icon3_xpm));
- m_imageList->Add(wxIcon(icon4_xpm));
- m_imageList->Add(wxIcon(icon5_xpm));
- m_imageList->Add(wxIcon(icon6_xpm));
- m_imageList->Add(wxIcon(icon7_xpm));
- m_imageList->Add(wxIcon(icon8_xpm));
#elif defined(__WXMSW__)
m_imageList->Add(wxIcon(wxT("wxICON_SMALL_CLOSED_FOLDER"), wxBITMAP_TYPE_ICO_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_OPEN_FOLDER"), wxBITMAP_TYPE_ICO_RESOURCE));
m_imageList->Add(wxIcon(wxT("wxICON_SMALL_FILE"), wxBITMAP_TYPE_ICO_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_COMPUTER"), wxBITMAP_TYPE_ICO_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_DRIVE"), wxBITMAP_TYPE_ICO_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_CDROM"), wxBITMAP_TYPE_ICO_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_FLOPPY"), wxBITMAP_TYPE_ICO_RESOURCE));
- m_imageList->Add(wxIcon(wxT("wxICON_SMALL_REMOVEABLE"), wxBITMAP_TYPE_ICO_RESOURCE));
#else
#error "Sorry, we don't have icons available for this platforms."
#endif
// Add some dummy items
- wxTreeItemId rootId = AddRoot(_("Root"), 3, -1);
+ wxTreeItemId rootId = AddRoot(_("Root"), -1, -1);
int i;
for (i = 1; i <= 20; i++)
{
wxString label;
label.Printf(wxT("Item %d"), i);
wxTreeItemId id = AppendItem(rootId, label, 0);
- SetItemImage( id, 1, wxTreeItemIcon_Expanded );
+ //SetItemImage( id, 1, wxTreeItemIcon_Expanded );
int j;
for (j = 0; j < 10; j++)
- AppendItem(id, _("Child"), 2);
+ AppendItem(id, _("Child"), 1);
}
Expand(rootId);
}
delete m_imageList;
}
+void TestTree::OnPaint(wxPaintEvent& event)
+{
+ wxPaintDC dc(this);
+
+ wxTreeCtrl::OnPaint(event);
+
+ // Reset the device origin since it may have been set
+ dc.SetDeviceOrigin(0, 0);
+
+ wxPen pen(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID);
+ dc.SetPen(pen);
+ dc.SetBrush(* wxTRANSPARENT_BRUSH);
+
+ wxSize clientSize = GetClientSize();
+ wxRect itemRect;
+ int cy=0;
+ wxTreeItemId h, lastH;
+ for(h=GetFirstVisibleItem();h;h=GetNextVisible(h))
+ {
+ if (GetBoundingRect(h, itemRect))
+ {
+ cy = itemRect.GetTop();
+ dc.DrawLine(0, cy, clientSize.x, cy);
+ lastH = h;
+ }
+ }
+ if (GetBoundingRect(lastH, itemRect))
+ {
+ cy = itemRect.GetBottom();
+ dc.DrawLine(0, cy, clientSize.x, cy);
+ }
+}
+
/*
* TestValueWindow
*/
//IMPLEMENT_CLASS(TestValueWindow, wxWindow)
-BEGIN_EVENT_TABLE(TestValueWindow, wxWindow)
- EVT_SIZE(TestValueWindow::OnSize)
+BEGIN_EVENT_TABLE(TestValueWindow, wxTreeCompanionWindow)
END_EVENT_TABLE()
TestValueWindow::TestValueWindow(wxWindow* parent, wxWindowID id,
const wxPoint& pos,
const wxSize& sz,
long style):
- wxWindow(parent, id, pos, sz, style)
+ wxTreeCompanionWindow(parent, id, pos, sz, style)
{
SetBackgroundColour(* wxWHITE);
}
-
-void TestValueWindow::OnSize(wxSizeEvent& event)
-{
-}