protected void OnTreeviewPatternsCursorChanged(object sender, EventArgs e) { TreeModel model; TreeIter iter; if ((sender as TreeView).Selection.GetSelected(out model, out iter)) { SelectedPattern = (Pattern)model.GetValue(iter, PatternColumn); if (ignoreNextClick) { ignoreNextClick = false; return; } TreePath path; TreeViewColumn column; (sender as TreeView).GetCursor(out path, out column); if (column == (sender as TreeView).Columns[4]) //Delete clicked { if (MainWindow.ConfirmDelete()) { ignoreNextClick = true; PatternListStore.Remove(ref iter); DataModel.Patterns.Remove(SelectedPattern); SelectedPattern = null; } } else if (column == (sender as TreeView).Columns[3]) //Copy clicked { Pattern pattern = new Pattern(); pattern.Assign(SelectedPattern); pattern.Name = DataModel.GetPatternName(SelectedPattern.Name, 2); if (EditPatternDialog.ShowForm(pattern, DataModel, "Copy Pattern " + SelectedPattern.Name)) { AddPattern(pattern); } } else if (column == (sender as TreeView).Columns[2]) //Edit clicked { EditPatternDialog.ShowForm(SelectedPattern, DataModel, "Edit Pattern"); } else if (column == (sender as TreeView).Columns[0]) //Play clicked { if (SelectedPattern == PlayingPattern) { StopPattern(); } else { PlayPattern(SelectedPattern); model.SetValue(iter, 0, "icon-dark-stop"); } } } }