void ShowGroupContextMenu(Rect rect, string groupName, SelectionGroup group) { var menu = new GenericMenu(); menu.AddItem(new GUIContent("Duplicate Group"), false, () => { SelectionGroupManager.instance.DuplicateGroup(group.groupId); }); menu.AddItem(new GUIContent("Clear Group"), false, () => { Undo.RegisterCompleteObjectUndo(SelectionGroupManager.instance, "Clear"); group.Clear(); }); menu.AddItem(new GUIContent("Configure Group"), false, () => SelectionGroupConfigurationDialog.Open(group, this)); menu.AddItem(new GUIContent("Delete Group"), false, () => { SelectionGroupManager.instance.RemoveGroup(group.groupId); }); menu.DropDown(rect); }
void HandleHeaderMouseEvents(Rect rect, string groupName, SelectionGroup group) { var e = Event.current; if (rect.Contains(e.mousePosition)) { switch (e.type) { case EventType.MouseDown: switch (e.button) { case RIGHT_MOUSE_BUTTON: ShowGroupContextMenu(rect, groupName, group); break; case LEFT_MOUSE_BUTTON: if (e.clickCount == 1) { activeSelectionGroup = group; } else { SelectionGroupConfigurationDialog.Open(group, this); } break; } break; case EventType.MouseDrag: DragAndDrop.PrepareStartDrag(); DragAndDrop.StartDrag(groupName); DragAndDrop.objectReferences = group.ToArray(); e.Use(); break; } } }