// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
+// important: the #pragma argument must be different from treectrl.cpp,
+// otherwise gcc gets confused (as there is also treectrl.cpp in the library
+// which has identical #pragma) and the sample crashes on startup!
#ifdef __GNUG__
- #pragma implementation
- #pragma interface
+ #pragma interface "treetest.cpp"
+ #pragma implementation "treetest.cpp"
#endif
// For compilers that support precompilation, includes "wx/wx.h".
EVT_MENU(TreeTest_ToggleIcon, MyFrame::OnToggleIcon)
END_EVENT_TABLE()
+#if USE_GENERIC_TREECTRL
+BEGIN_EVENT_TABLE(MyTreeCtrl, wxGenericTreeCtrl)
+#else
BEGIN_EVENT_TABLE(MyTreeCtrl, wxTreeCtrl)
+#endif
EVT_TREE_BEGIN_DRAG(TreeTest_Ctrl, MyTreeCtrl::OnBeginDrag)
EVT_TREE_BEGIN_RDRAG(TreeTest_Ctrl, MyTreeCtrl::OnBeginRDrag)
EVT_TREE_END_DRAG(TreeTest_Ctrl, MyTreeCtrl::OnEndDrag)
m_treeCtrl = new MyTreeCtrl(this, TreeTest_Ctrl,
wxDefaultPosition, wxDefaultSize,
- wxTR_HAS_BUTTONS |
+ wxTR_HAS_BUTTONS | // wxTR_NO_LINES |
wxTR_EDIT_LABELS |
#ifndef NO_VARIABLE_HEIGHT
wxTR_HAS_VARIABLE_ROW_HEIGHT |
void MyFrame::OnToggleImages(wxCommandEvent& event)
{
- wxGetApp().SetShowImages(!wxGetApp().ShowImages());
+ if ( wxGetApp().ShowImages() )
+ {
+ m_treeCtrl->CreateImageList(-1);
+
+ wxGetApp().SetShowImages(FALSE);
+ }
+ else
+ {
+ m_treeCtrl->CreateImageList();
+
+ wxGetApp().SetShowImages(TRUE);
+ }
OnRecreate(event);
}
}
// MyTreeCtrl implementation
+#if USE_GENERIC_TREECTRL
+IMPLEMENT_DYNAMIC_CLASS(MyTreeCtrl, wxGenericTreeCtrl)
+#else
IMPLEMENT_DYNAMIC_CLASS(MyTreeCtrl, wxTreeCtrl)
+#endif
MyTreeCtrl::MyTreeCtrl(wxWindow *parent, const wxWindowID id,
const wxPoint& pos, const wxSize& size,
if ( size == -1 )
{
m_imageListNormal = NULL;
-
- return;
}
+ else
+ {
+ // Make an image list containing small icons
+ m_imageListNormal = new wxImageList(size, size, TRUE);
- // Make an image list containing small icons
- m_imageListNormal = new wxImageList(size, size, TRUE);
-
- // should correspond to TreeCtrlIcon_xxx enum
+ // should correspond to TreeCtrlIcon_xxx enum
#if defined(__WXMSW__) && defined(__WIN16__)
- m_imageListNormal->Add(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE));
- m_imageListNormal->Add(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE));
- m_imageListNormal->Add(wxBitmap("bitmap3", wxBITMAP_TYPE_BMP_RESOURCE));
- m_imageListNormal->Add(wxBitmap("bitmap4", wxBITMAP_TYPE_BMP_RESOURCE));
- m_imageListNormal->Add(wxBitmap("bitmap5", wxBITMAP_TYPE_BMP_RESOURCE));
-#else
- wxIcon icons[5];
- icons[0] = wxICON(icon1);
- icons[1] = wxICON(icon2);
- icons[2] = wxICON(icon3);
- icons[3] = wxICON(icon4);
- icons[4] = wxICON(icon5);
-
- int sizeOrig = icons[0].GetWidth();
- for ( size_t i = 0; i < WXSIZEOF(icons); i++ )
- {
- if ( size == sizeOrig )
- {
- m_imageListNormal->Add(icons[i]);
- }
- else
+ m_imageListNormal->Add(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE));
+ m_imageListNormal->Add(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE));
+ m_imageListNormal->Add(wxBitmap("bitmap3", wxBITMAP_TYPE_BMP_RESOURCE));
+ m_imageListNormal->Add(wxBitmap("bitmap4", wxBITMAP_TYPE_BMP_RESOURCE));
+ m_imageListNormal->Add(wxBitmap("bitmap5", wxBITMAP_TYPE_BMP_RESOURCE));
+#else // !MSW
+ wxIcon icons[5];
+ icons[0] = wxICON(icon1);
+ icons[1] = wxICON(icon2);
+ icons[2] = wxICON(icon3);
+ icons[3] = wxICON(icon4);
+ icons[4] = wxICON(icon5);
+
+ int sizeOrig = icons[0].GetWidth();
+ for ( size_t i = 0; i < WXSIZEOF(icons); i++ )
{
- m_imageListNormal->Add(wxImage(icons[i]).Rescale(size, size).
- ConvertToBitmap());
+ if ( size == sizeOrig )
+ {
+ m_imageListNormal->Add(icons[i]);
+ }
+ else
+ {
+ m_imageListNormal->Add(wxImage(icons[i]).Rescale(size, size).
+ ConvertToBitmap());
+ }
}
+#endif // MSW/!MSW
}
-#endif
SetImageList(m_imageListNormal);
}