Пример #1
0
        private void AddPanel()
        {
            var panel    = GetSelectedPanel();
            var row      = panel?.Parent ?? toolbarModel.Rows[0];
            var newPanel = new ToolbarModel.ToolbarPanel()
            {
                Title = "Panel",
                Index = panel?.Index ?? 0
            };
            var panelRow = new PanelItem(newPanel);
            var index    = panelList.SelectedIndex;

            index = index < 0 ? 0 : index;
            panelList.SelectedItem = panelList.InsertItem(index, panelRow);
            panelList.SelectedItem.DoubleClicked += () => panelRow.StartEdit();
            toolbarModel.InsertPanel(row, newPanel, newPanel.Index);
            RefreshUsedCommands();
            TangerineApp.Instance.Toolbar.Rebuild();
        }
Пример #2
0
        public static ToolbarModel DefaultToolbarModel()
        {
            IEnumerable <string> GetCommandIds(Type type)
            {
                foreach (var field in type.GetFields(System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public))
                {
                    var fieldType = field.FieldType;
                    if (fieldType == typeof(ICommand) || fieldType.IsSubclassOf(typeof(ICommand)))
                    {
                        yield return(field.Name);
                    }
                }
            }

            var createToolbarPanel = new ToolbarModel.ToolbarPanel {
                Title = "Create"
            };

            createToolbarPanel.CommandIds.AddRange(new[] {
                "Frame",
                "Button",
                "Image",
                "Audio",
                "Movie",
                "Bone",
                "ParticleEmitter",
                "ParticleModifier",
                "EmitterShapePoint",
                "ParticlesMagnet",
                "SimpleText",
                "RichText",
                "TextStyle",
                "NineGrid",
                "DistortionMesh",
                "Spline",
                "SplinePoint",
                "SplineGear",
                "Slider",
                "ImageCombiner",
                "Viewport3D",
                "Camera3D",
                "Model3D",
                "Node3D",
                "WidgetAdapter3D",
                "Spline3D",
                "SplinePoint3D",
                "SplineGear3D",
                "LightSource",
                "Polyline",
                "PolylinePoint",
                "TiledImage"
            }.Select(i => "Create" + i));

            var toolsToolbarPanel = new ToolbarModel.ToolbarPanel {
                Title = "Tools"
            };

            toolsToolbarPanel.CommandIds.AddRange(GetCommandIds(typeof(Tools)));

            return(new ToolbarModel {
                Rows =
                {
                    new ToolbarModel.ToolbarRow           {
                        Panels =
                        {
                            new ToolbarModel.ToolbarPanel {
                                Title = "History",
                                CommandIds =
                                {
                                    "Undo",
                                    "Redo",
                                    nameof(GenericCommands.Revert),
                                }
                            },
                            createToolbarPanel,
                            toolsToolbarPanel,
                        }
                    },
                }
            });
        }