#endif
#include "wx/colordlg.h"
+#include "wx/numdlg.h"
#include "wx/image.h"
#include "wx/imaglist.h"
MENU_LINK(IncSpacing)
MENU_LINK(DecSpacing)
MENU_LINK(ToggleIcon)
+ MENU_LINK(SelectRoot)
#undef MENU_LINK
END_EVENT_TABLE()
MyFrame *frame = new MyFrame(wxT("wxTreeCtrl Test"), 50, 50, 450, 600);
// Show the frame
- frame->Show(TRUE);
+ frame->Show(true);
SetTopWindow(frame);
- return TRUE;
+ return true;
}
// My frame constructor
MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h)
- : wxFrame((wxFrame *)NULL, -1, title, wxPoint(x, y), wxSize(w, h)),
- m_treeCtrl(NULL), m_textCtrl(NULL)
+ : wxFrame((wxFrame *)NULL, wxID_ANY, title, wxPoint(x, y), wxSize(w, h)),
+ m_treeCtrl(NULL)
+#if wxUSE_LOG
+ , m_textCtrl(NULL)
+#endif // wxUSE_LOG
{
// This reduces flicker effects - even better would be to define
// OnEraseBackground to do nothing. When the tree control's scrollbars are
file_menu->AppendSeparator();
file_menu->Append(TreeTest_Quit, wxT("E&xit\tAlt-X"));
- style_menu->Append(TreeTest_TogButtons, wxT("Toggle &normal buttons"), wxT(""), TRUE);
- style_menu->Append(TreeTest_TogTwist, wxT("Toggle &twister buttons"), wxT(""), TRUE);
- style_menu->Append(TreeTest_ToggleButtons, wxT("Toggle image &buttons"), wxT(""), TRUE);
+ style_menu->AppendCheckItem(TreeTest_TogButtons, wxT("Toggle &normal buttons"));
+ style_menu->AppendCheckItem(TreeTest_TogTwist, wxT("Toggle &twister buttons"));
+ style_menu->AppendCheckItem(TreeTest_ToggleButtons, wxT("Toggle image &buttons"));
style_menu->AppendSeparator();
- style_menu->Append(TreeTest_TogLines, wxT("Toggle &connecting lines"), wxT(""), TRUE);
- style_menu->Append(TreeTest_TogRootLines, wxT("Toggle &lines at root"), wxT(""), TRUE);
- style_menu->Append(TreeTest_TogHideRoot, wxT("Toggle &hidden root"), wxT(""), TRUE);
- style_menu->Append(TreeTest_TogBorder, wxT("Toggle &item border"), wxT(""), TRUE);
- style_menu->Append(TreeTest_TogFullHighlight, wxT("Toggle &full row highlight"), wxT(""), TRUE);
- style_menu->Append(TreeTest_TogEdit, wxT("Toggle &edit mode"), wxT(""), TRUE);
+ style_menu->AppendCheckItem(TreeTest_TogLines, wxT("Toggle &connecting lines"));
+ style_menu->AppendCheckItem(TreeTest_TogRootLines, wxT("Toggle &lines at root"));
+ style_menu->AppendCheckItem(TreeTest_TogHideRoot, wxT("Toggle &hidden root"));
+ style_menu->AppendCheckItem(TreeTest_TogBorder, wxT("Toggle &item border"));
+ style_menu->AppendCheckItem(TreeTest_TogFullHighlight, wxT("Toggle &full row highlight"));
+ style_menu->AppendCheckItem(TreeTest_TogEdit, wxT("Toggle &edit mode"));
#ifndef NO_MULTIPLE_SELECTION
- style_menu->Append(TreeTest_ToggleSel, wxT("Toggle &selection mode"), wxT(""), TRUE);
+ style_menu->AppendCheckItem(TreeTest_ToggleSel, wxT("Toggle &selection mode"));
#endif // NO_MULTIPLE_SELECTION
- style_menu->Append(TreeTest_ToggleImages, wxT("Toggle show ima&ges"), wxT(""), TRUE);
+ style_menu->AppendCheckItem(TreeTest_ToggleImages, wxT("Toggle show ima&ges"));
style_menu->Append(TreeTest_SetImageSize, wxT("Set image si&ze..."));
style_menu->AppendSeparator();
style_menu->Append(TreeTest_SetFgColour, wxT("Set &foreground colour..."));
tree_menu->Append(TreeTest_Delete, wxT("&Delete this item"));
tree_menu->Append(TreeTest_DeleteChildren, wxT("Delete &children"));
tree_menu->Append(TreeTest_DeleteAll, wxT("Delete &all items"));
+ tree_menu->Append(TreeTest_SelectRoot, wxT("Select root item"));
tree_menu->AppendSeparator();
tree_menu->Append(TreeTest_Count, wxT("Count children of current item"));
tree_menu->Append(TreeTest_CountRec, wxT("Recursively count children of current item"));
SetMenuBar(menu_bar);
#endif // wxUSE_MENUS
+#if wxUSE_LOG
// create the controls
- m_textCtrl = new wxTextCtrl(this, -1, wxT(""),
+ m_textCtrl = new wxTextCtrl(this, wxID_ANY, wxT(""),
wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE | wxSUNKEN_BORDER);
+#endif // wxUSE_LOG
CreateTreeWithDefStyle();
- menu_bar->Check(TreeTest_ToggleImages, TRUE);
+ menu_bar->Check(TreeTest_ToggleImages, true);
#if wxUSE_STATUSBAR
// create a status bar
CreateStatusBar(2);
#endif // wxUSE_STATUSBAR
+#if wxUSE_LOG
#ifdef __WXMOTIF__
// For some reason, we get a memcpy crash in wxLogStream::DoLogStream
// on gcc/wxMotif, if we use wxLogTextCtl. Maybe it's just gcc?
wxLogTextCtrl *logWindow = new wxLogTextCtrl(m_textCtrl);
delete wxLog::SetActiveTarget(logWindow);
#endif
+#endif // wxUSE_LOG
}
MyFrame::~MyFrame()
{
+#if wxUSE_LOG
delete wxLog::SetActiveTarget(NULL);
+#endif // wxUSE_LOG
}
void MyFrame::CreateTreeWithDefStyle()
void MyFrame::OnSize(wxSizeEvent& event)
{
- if ( m_treeCtrl && m_textCtrl )
+ if ( m_treeCtrl
+#if wxUSE_LOG
+ && m_textCtrl
+#endif // wxUSE_LOG
+ )
{
Resize();
}
void MyFrame::Resize()
{
wxSize size = GetClientSize();
- m_treeCtrl->SetSize(0, 0, size.x, 2*size.y/3);
+ m_treeCtrl->SetSize(0, 0, size.x, size.y
+#if !wxUSE_LOG
+ );
+#else
+ *2/3);
m_textCtrl->SetSize(0, 2*size.y/3, size.x, size.y/3);
+#endif
}
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
- Close(TRUE);
+ Close(true);
}
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
CHECK_ITEM( item );
- int i = m_treeCtrl->GetChildrenCount( item, FALSE );
+ int i = m_treeCtrl->GetChildrenCount( item, false );
wxLogMessage(wxT("%d children"), i);
}
m_treeCtrl->SelectItem(m_treeCtrl->GetSelection());
}
+void MyFrame::OnSelectRoot(wxCommandEvent& WXUNUSED(event))
+{
+ m_treeCtrl->SelectItem(m_treeCtrl->GetRootItem());
+}
+
void MyFrame::OnUnselect(wxCommandEvent& WXUNUSED(event))
{
m_treeCtrl->UnselectAll();
return;
m_treeCtrl->CreateImageList(size);
- wxGetApp().SetShowImages(TRUE);
+ wxGetApp().SetShowImages(true);
}
void MyFrame::OnToggleImages(wxCommandEvent& WXUNUSED(event))
if ( wxGetApp().ShowImages() )
{
m_treeCtrl->CreateImageList(-1);
- wxGetApp().SetShowImages(FALSE);
+ wxGetApp().SetShowImages(false);
}
else
{
m_treeCtrl->CreateImageList(0);
- wxGetApp().SetShowImages(TRUE);
+ wxGetApp().SetShowImages(true);
}
}
if ( wxGetApp().ShowButtons() )
{
m_treeCtrl->CreateButtonsImageList(-1);
- wxGetApp().SetShowButtons(FALSE);
+ wxGetApp().SetShowButtons(false);
}
else
{
m_treeCtrl->CreateButtonsImageList(15);
- wxGetApp().SetShowButtons(TRUE);
+ wxGetApp().SetShowButtons(true);
}
#endif
}
long style)
: wxTreeCtrl(parent, id, pos, size, style)
{
- m_reverseSort = FALSE;
+ m_reverseSort = false;
CreateImageList();
m_imageSize = size;
// Make an image list containing small icons
- wxImageList *images = new wxImageList(size, size, TRUE);
+ wxImageList *images = new wxImageList(size, size, true);
// should correspond to TreeCtrlIcon_xxx enum
wxBusyCursor wait;
}
// Make an image list containing small icons
- wxImageList *images = new wxImageList(size, size, TRUE);
+ wxImageList *images = new wxImageList(size, size, true);
// should correspond to TreeCtrlIcon_xxx enum
wxBusyCursor wait;
#endif
}
-MyTreeCtrl::~MyTreeCtrl()
-{
-}
-
int MyTreeCtrl::OnCompareItems(const wxTreeItemId& item1,
const wxTreeItemId& item2)
{
{
//attempt to guess where to show the menu
if (item.IsOk())
- {
+ {
//if an item was clicked, show menu to the right of it
wxRect rect;
GetBoundingRect(item, rect, true); //true = only the label
//event was generated by mouse, use supplied coords
pt = ScreenToClient(pt);
}
-
+
ShowMenu(item, pt);
}
Bool2String(tree->IsExpanded(GetId())),
Bool2String(tree->IsBold(GetId())),
tree->GetChildrenCount(GetId()),
- tree->GetChildrenCount(GetId(), FALSE));
+ tree->GetChildrenCount(GetId(), false));
}