X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a35169b622c8ba90b41d02729e1db4c564690c7e..210bfffb977785bb329c9913318c40f59c36eebf:/samples/dataview/dataview.cpp?ds=sidebyside diff --git a/samples/dataview/dataview.cpp b/samples/dataview/dataview.cpp index 0127cd5ddd..1f43e05adb 100644 --- a/samples/dataview/dataview.cpp +++ b/samples/dataview/dataview.cpp @@ -91,6 +91,11 @@ public: // event handlers void OnPrependList(wxCommandEvent& event); void OnDeleteList(wxCommandEvent& event); + // Fourth page. + void OnDeleteTreeItem(wxCommandEvent& event); + void OnDeleteAllTreeItems(wxCommandEvent& event); + void OnAddTreeItem(wxCommandEvent& event); + void OnAddTreeContainerItem(wxCommandEvent& event); void OnValueChanged( wxDataViewEvent &event ); @@ -270,7 +275,12 @@ enum ID_PREPEND_LIST = 200, ID_DELETE_LIST = 201, ID_GOTO = 202, - ID_ADD_MANY = 203 + ID_ADD_MANY = 203, + // Fourth page. + ID_DELETE_TREE_ITEM = 400, + ID_DELETE_ALL_TREE_ITEMS = 401, + ID_ADD_TREE_ITEM = 402, + ID_ADD_TREE_CONTAINER_ITEM = 403 }; BEGIN_EVENT_TABLE(MyFrame, wxFrame) @@ -295,6 +305,11 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_BUTTON( ID_DELETE_LIST, MyFrame::OnDeleteList ) EVT_BUTTON( ID_GOTO, MyFrame::OnGoto) EVT_BUTTON( ID_ADD_MANY, MyFrame::OnAddMany) + // Fourth page. + EVT_BUTTON( ID_DELETE_TREE_ITEM, MyFrame::OnDeleteTreeItem ) + EVT_BUTTON( ID_DELETE_ALL_TREE_ITEMS, MyFrame::OnDeleteAllTreeItems ) + EVT_BUTTON( ID_ADD_TREE_ITEM, MyFrame::OnAddTreeItem ) + EVT_BUTTON( ID_ADD_TREE_CONTAINER_ITEM, MyFrame::OnAddTreeContainerItem ) EVT_DATAVIEW_ITEM_VALUE_CHANGED( ID_MUSIC_CTRL, MyFrame::OnValueChanged ) @@ -348,7 +363,7 @@ MyFrame::MyFrame(wxFrame *frame, const wxString &title, int x, int y, int w, int wxMenu *file_menu = new wxMenu; file_menu->Append(ID_CLEARLOG, "&Clear log\tCtrl-L"); - file_menu->Append(ID_FOREGROUND_COLOUR, "Set &foreground colour...\tCtrl-F"); + file_menu->Append(ID_FOREGROUND_COLOUR, "Set &foreground colour...\tCtrl-S"); file_menu->Append(ID_BACKGROUND_COLOUR, "Set &background colour...\tCtrl-B"); file_menu->Append(ID_STYLE_MENU, "&Style", style_menu); file_menu->AppendSeparator(); @@ -429,9 +444,16 @@ MyFrame::MyFrame(wxFrame *frame, const wxString &title, int x, int y, int w, int wxPanel *fourthPanel = new wxPanel( m_notebook, wxID_ANY ); BuildDataViewCtrl(fourthPanel, 3); // sets m_ctrl[3] + // Buttons + wxBoxSizer *button_sizer4 = new wxBoxSizer( wxHORIZONTAL ); + button_sizer4->Add( new wxButton( fourthPanel, ID_DELETE_TREE_ITEM, "Delete Selected"), 0, wxALL, 10 ); + button_sizer4->Add( new wxButton( fourthPanel, ID_DELETE_ALL_TREE_ITEMS, "Delete All"), 0, wxALL, 10 ); + button_sizer4->Add( new wxButton( fourthPanel, ID_ADD_TREE_ITEM, "Add Item"), 0, wxALL, 10 ); + button_sizer4->Add( new wxButton( fourthPanel, ID_ADD_TREE_CONTAINER_ITEM, "Add Container"), 0, wxALL, 10 ); wxSizer *fourthPanelSz = new wxBoxSizer( wxVERTICAL ); fourthPanelSz->Add(m_ctrl[3], 1, wxGROW|wxALL, 5); + fourthPanelSz->Add(button_sizer4); fourthPanel->SetSizerAndFit(fourthPanelSz); @@ -1046,3 +1068,39 @@ void MyFrame::OnAddMany(wxCommandEvent& WXUNUSED(event)) m_list_model->AddMany(); } +// ---------------------------------------------------------------------------- +// MyFrame - event handlers for the fourth page +// ---------------------------------------------------------------------------- + +void MyFrame::OnDeleteTreeItem(wxCommandEvent& WXUNUSED(event)) +{ + wxDataViewTreeCtrl* ctrl = (wxDataViewTreeCtrl*) m_ctrl[3]; + wxDataViewItem selected = ctrl->GetSelection(); + if (!selected.IsOk()) + return; + + ctrl->DeleteItem(selected); +} + +void MyFrame::OnDeleteAllTreeItems(wxCommandEvent& WXUNUSED(event)) +{ + wxDataViewTreeCtrl* ctrl = (wxDataViewTreeCtrl*) m_ctrl[3]; + ctrl->DeleteAllItems(); +} + +void MyFrame::OnAddTreeItem(wxCommandEvent& WXUNUSED(event)) +{ + wxDataViewTreeCtrl* ctrl = (wxDataViewTreeCtrl*) m_ctrl[3]; + wxDataViewItem selected = ctrl->GetSelection(); + if (ctrl->IsContainer(selected)) + ctrl->AppendItem( selected, "Item", 0 ); +} + +void MyFrame::OnAddTreeContainerItem(wxCommandEvent& WXUNUSED(event)) +{ + wxDataViewTreeCtrl* ctrl = (wxDataViewTreeCtrl*) m_ctrl[3]; + wxDataViewItem selected = ctrl->GetSelection(); + if (ctrl->IsContainer(selected)) + ctrl->AppendContainer(selected, "Container", 0 ); +} +