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(); }
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, } }, } }); }