// --------------------------------------------------------------------

    public static void Set(List <SceneObject> selected)
    {
        Selected.Clear();
        Selected.AddRange(selected);
        OnSelectionChanged?.Invoke(Selected);
    }
Exemple #2
0
        /// <summary>Handle navigation keyboard shortcuts</summary>
        public virtual void OnTranslateKey(KeyEventArgs e)
        {
            // Notes:
            //  - Default chart key bindings. These are intended as default key bindings
            //    Applications should probably set DefaultKeyboardShortcuts to false and
            //    handle key bindings themselves.

            if (e.Handled)
            {
                return;
            }

            // Allow users to handle the key
            TranslateKey?.Invoke(this, e);
            if (e.Handled)
            {
                return;
            }

            // Fall back to default
            switch (e.Key)
            {
            case Key.Escape:
            {
                // Deselect all on escape
                if (AllowSelection)
                {
                    Selected.Clear();
                    Invalidate();
                    e.Handled = true;
                }
                break;
            }

            case Key.Delete:
            {
                //if (AllowEditing)
                {
                    //// Allow the caller to cancel the deletion or change the selection
                    //var res = new DiagramChangedRemoveElementsEventArgs(Selected.ToArray());
                    //if (!RaiseDiagramChanged(res).Cancel)
                    //{
                    //	foreach (var elem in res.Elements)
                    //	{
                    //		var node = elem as Node;
                    //		if (node != null)
                    //			node.DetachConnectors();

                    //		var conn = elem as Connector;
                    //		if (conn != null)
                    //			conn.DetachNodes();

                    //		Elements.Remove(elem);
                    //	}
                    //	Invalidate();
                    //}
                }
                break;
            }

            case Key.F5:
            {
                View3d.ReloadScriptSources();
                Invalidate();
                e.Handled = true;
                break;
            }

            case Key.F7:
            {
                var bounds =
                    Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) ? Gfx.View3d.ESceneBounds.Selected :
                    Keyboard.Modifiers.HasFlag(ModifierKeys.Control) ? Gfx.View3d.ESceneBounds.Visible :
                    Gfx.View3d.ESceneBounds.All;

                AutoRange(who: bounds);
                Invalidate();
                e.Handled = true;
                break;
            }

            case Key.A:
            {
                if (Keyboard.Modifiers.HasFlag(ModifierKeys.Control))
                {
                    Selected.Clear();
                    Selected.AddRange(Elements);
                    Invalidate();
                    Debug.Assert(CheckConsistency());
                    e.Handled = true;
                }
                break;
            }
            }
        }
Exemple #3
0
 private void SelectAllItems()
 {
     Selected.AddRange(NotSelected);
     NotSelected.Clear();
 }