ToolbarButton CreateContentExpandButton() { var button = new ToolbarButton { Highlightable = false, Padding = new Thickness(5) }; button.Texture = IconPool.GetTexture("Timeline.plus"); button.AddChangeWatcher( () => boneData.ChildrenExpanded, i => button.Texture = IconPool.GetTexture(i ? "Timeline.minus" : "Timeline.plus") ); button.AddChangeWatcher( () => boneData.HaveChildren, i => button.Visible = i); button.Clicked += () => { using (Document.Current.History.BeginTransaction()) { Core.Operations.SetProperty.Perform(boneData, nameof(BoneRow.ChildrenExpanded), !boneData.ChildrenExpanded); if (button.Input.IsKeyPressed(Key.Control)) { ExpandChildrenRecursively( boneData.Bone, boneData.Bone.Parent.AsWidget.Nodes.OfType <Bone>().ToList(), boneData.ChildrenExpanded); } if (boneData.ChildrenExpanded) { Timeline.Instance.EnsureRowChildsVisible(row); } Document.Current.History.CommitTransaction(); } }; return(button); }
private ToolbarButton CreateFrameProgressionButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.FrameProgression")) { Tooltip = "Frame progression mode" }; button.AddChangeWatcher(() => CoreUserPreferences.ShowFrameProgression, i => button.Checked = i); button.Clicked += () => CoreUserPreferences.ShowFrameProgression = !CoreUserPreferences.ShowFrameProgression; button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
private ToolbarButton CreateTimelineCursorLockButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.TimelineCursorLock")) { Tooltip = "Lock timeline cursor" }; button.AddChangeWatcher(() => CoreUserPreferences.LockTimelineCursor, i => button.Checked = i); button.Clicked += () => CoreUserPreferences.LockTimelineCursor = !CoreUserPreferences.LockTimelineCursor; button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateAutoKeyframesButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.Key")) { Tooltip = "Automatic keyframes" }; button.AddChangeWatcher(() => CoreUserPreferences.AutoKeyframes, i => button.Checked = i); button.Clicked += () => CoreUserPreferences.AutoKeyframes = !CoreUserPreferences.AutoKeyframes; button.Components.Add(new DocumentationComponent("AutomaticKeyframes")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateAnimationStretchButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.AnimationStretch")) { Tooltip = "Animation stretch mode" }; button.AddChangeWatcher(() => UserPreferences.AnimationStretchMode, i => button.Checked = i); button.Clicked += () => UserPreferences.AnimationStretchMode = !UserPreferences.AnimationStretchMode; button.Components.Add(new DocumentationComponent("AnimationStretch.md")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateCurveEditorButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.Curve")) { Tooltip = "Edit curves" }; button.AddChangeWatcher(() => UserPreferences.EditCurves, i => button.Checked = i); button.Clicked += () => UserPreferences.EditCurves = !UserPreferences.EditCurves; button.Components.Add(new DocumentationComponent("EditCurves")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateApplyZeroPoseButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.ApplyZeroPose")) { Tooltip = "Apply zero pose" }; button.AddTransactionClickHandler(() => { Core.Operations.SetProperty.Perform(Document.Current.Animation, nameof(Animation.ApplyZeroPose), !Document.Current.Animation.ApplyZeroPose); }); button.AddChangeWatcher(() => Document.Current.Animation.ApplyZeroPose, i => button.Checked = i); button.Components.Add(new DocumentationComponent("ApplyZeroPose")); button.AddChangeWatcher(() => !Document.Current.Animation.IsLegacy && !Document.Current.Animation.IsCompound, v => button.Visible = v); return(button); }
ToolbarButton CreateEyeButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.Eye")) { Tooltip = "Show widgets" }; button.AddTransactionClickHandler(() => { var nodes = !RootWidget.Input.IsKeyPressed(Key.Shift) ? Document.Current.Container.Nodes.ToList() : Document.Current.SelectedNodes().ToList(); var visibility = NodeVisibility.Hidden; if (nodes.All(i => i.EditorState().Visibility == NodeVisibility.Hidden)) { visibility = NodeVisibility.Shown; } else if (nodes.All(i => i.EditorState().Visibility == NodeVisibility.Shown)) { visibility = NodeVisibility.Default; } foreach (var node in nodes) { Core.Operations.SetProperty.Perform(node.EditorState(), nameof(NodeEditorState.Visibility), visibility); } }); button.Components.Add(new DocumentationComponent("ShowWidgets")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateLockAnimationButton() { var button = new ToolbarButton { Highlightable = false }; button.AddChangeWatcher( () => GetAnimationState(nodeData.Node), i => { var texture = "Timeline.Empty"; if (i == AnimationState.Enabled) { texture = "Timeline.AnimationEnabled"; } else if (i == AnimationState.PartiallyEnabled) { texture = "Timeline.AnimationPartiallyEnabled"; } else if (i == AnimationState.Disabled) { texture = "Timeline.AnimationDisabled"; } button.Texture = IconPool.GetTexture(texture); } ); button.Clicked += () => { var enabled = GetAnimationState(nodeData.Node) == AnimationState.Enabled; foreach (var a in nodeData.Node.Animators) { Core.Operations.SetProperty.Perform(a, nameof(IAnimator.Enabled), !enabled); } }; return(button); }
ToolbarButton CreateExpandButton() { var button = new ToolbarButton { Highlightable = false, Padding = new Thickness(5) }; button.Texture = IconPool.GetTexture("Timeline.minus"); button.AddChangeWatcher( () => folder.Expanded, i => button.Texture = IconPool.GetTexture(i ? "Timeline.minus" : "Timeline.plus") ); button.AddChangeWatcher( () => folder.Items.Count != 0, i => button.Visible = folder.Items.Count != 0 ); button.AddTransactionClickHandler(ExpandOrCollapse); return(button); }
ToolbarButton CreateExpandButton() { var button = new ToolbarButton { Highlightable = false, Padding = new Thickness(5) }; button.Texture = IconPool.GetTexture("Timeline.minus"); button.AddChangeWatcher( () => folder.Expanded, i => button.Texture = IconPool.GetTexture(i ? "Timeline.minus" : "Timeline.plus") ); button.AddChangeWatcher( () => folder.Items.Count != 0, i => button.Visible = folder.Items.Count != 0 ); button.Clicked += () => Core.Operations.SetProperty.Perform(folder, nameof(Folder.Expanded), !folder.Expanded); return(button); }
ToolbarButton CreateAnimationModeButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.AnimationMode")) { Tip = "Animation mode" }; button.AddChangeWatcher(() => UserPreferences.AnimationMode, i => button.Checked = i); button.Clicked += () => UserPreferences.AnimationMode = !UserPreferences.AnimationMode; return(button); }
ToolbarButton CreateAutoKeyframesButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.Key")) { Tip = "Automatic keyframes" }; button.AddChangeWatcher(() => CoreUserPreferences.AutoKeyframes, i => button.Checked = i); button.Clicked += () => CoreUserPreferences.AutoKeyframes = !CoreUserPreferences.AutoKeyframes; return(button); }
ToolbarButton CreateCurveEditorButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.Curve")) { Tip = "Edit curves" }; button.AddChangeWatcher(() => UserPreferences.EditCurves, i => button.Checked = i); button.Clicked += () => UserPreferences.EditCurves = !UserPreferences.EditCurves; return(button); }
ToolbarButton CreateExpandButton() { var button = new ToolbarButton { LayoutCell = new LayoutCell(Alignment.Center) }; var s = propRow.Animator.EditorState(); button.AddChangeWatcher(() => s.CurvesShown, i => button.Texture = IconPool.GetTexture(i ? "Timeline.Expanded" : "Timeline.Collapsed")); button.Clicked += () => Core.Operations.SetProperty.Perform(s, nameof(AnimatorEditorState.CurvesShown), !s.CurvesShown); return(button); }
ToolbarButton CreateAnimationModeButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.AnimationMode")) { Tooltip = "Animation mode" }; button.AddChangeWatcher(() => CoreUserPreferences.AnimationMode, i => button.Checked = i); button.Clicked += () => CoreUserPreferences.AnimationMode = !CoreUserPreferences.AnimationMode; button.Components.Add(new DocumentationComponent("AnimationMode")); return(button); }
private ToolbarButton CreateSlowMotionButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.SlowMotionMode")) { Tooltip = "Slow motion mode (~)" }; button.AddChangeWatcher(() => UserPreferences.SlowMotionMode, i => button.Checked = i); button.Clicked += () => UserPreferences.SlowMotionMode = !UserPreferences.SlowMotionMode; button.Components.Add(new DocumentationComponent("SlowMotionMode.md")); return(button); }
ToolbarButton CreateExitButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.ExitContainer")) { Tooltip = "Exit current container (backspace)" }; button.AddTransactionClickHandler(Core.Operations.LeaveNode.Perform); button.Updating += _ => button.Enabled = Core.Operations.LeaveNode.IsAllowed(); button.Components.Add(new DocumentationComponent("ExitContainer")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateLockButton() { var button = new ToolbarButton { Highlightable = false }; button.AddChangeWatcher( () => trackRow.Locked, i => button.Texture = IconPool.GetTexture(i ? "Timeline.Lock" : "Timeline.Dot") ); button.AddTransactionClickHandler(() => Core.Operations.SetProperty.Perform(trackRow, nameof(AnimationTrackRow.Locked), !trackRow.Locked)); return(button); }
ToolbarButton CreateLockButton() { var button = new ToolbarButton { Highlightable = false }; button.AddChangeWatcher( () => nodeData.Locked, i => button.Texture = IconPool.GetTexture(i ? "Timeline.Lock" : "Timeline.Dot") ); button.Clicked += () => Core.Operations.SetProperty.Perform(nodeData, nameof(NodeRow.Locked), !nodeData.Locked); return(button); }
ToolbarButton CreateExpandButton() { var button = new ToolbarButton { Highlightable = false, Padding = new Thickness(5) }; button.Texture = IconPool.GetTexture("Timeline.minus"); button.AddChangeWatcher( () => folder.Expanded, i => button.Texture = IconPool.GetTexture(i ? "Timeline.minus" : "Timeline.plus") ); button.AddChangeWatcher( () => folder.Items.Count != 0, i => button.Visible = folder.Items.Count != 0 ); button.AddTransactionClickHandler(() => { Core.Operations.SetProperty.Perform(folder, nameof(Folder.Expanded), !folder.Expanded); if (folder.Expanded) { Timeline.Instance.EnsureRowChildsVisible(row); } }); return(button); }
ToolbarButton CreateLockAnimationButton() { var button = new ToolbarButton { Highlightable = false }; button.AddChangeWatcher( () => propRow.Animator.Enabled, i => button.Texture = IconPool.GetTexture(i ? "Timeline.AnimationEnabled" : "Timeline.AnimationDisabled") ); button.AddTransactionClickHandler(() => { Core.Operations.SetProperty.Perform(propRow.Animator, nameof(IAnimator.Enabled), !propRow.Animator.Enabled); }); return(button); }
private static Widget CreateAnimeshStateButton(AnimeshTools.ModificationState state, Command command, string text) { var tb = new ToolbarButton(text) { Highlightable = true, Tooltip = command.Text, }; tb.AddChangeWatcher(() => AnimeshTools.State, s => tb.Checked = s == state); tb.Clicked += () => { if (!tb.Checked) { command.Issue(); } }; return(tb); }
ToolbarButton CreateFolderButton() { var button = new ToolbarButton(IconPool.GetTexture("Tools.NewFolder")) { Tooltip = "Create folder" }; button.AddTransactionClickHandler(() => { var folder = new Folder { Id = "Folder" }; Core.Operations.InsertFolderItem.Perform(folder); Core.Operations.ClearRowSelection.Perform(); Core.Operations.SelectRow.Perform(Document.Current.GetRowForObject(folder)); }); button.Components.Add(new DocumentationComponent("CreateFolder")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateLockButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.Lock")) { Tooltip = "Lock widgets" }; button.AddTransactionClickHandler(() => { var nodes = !RootWidget.Input.IsKeyPressed(Key.Shift) ? Document.Current.Container.Nodes.ToList() : Document.Current.SelectedNodes().ToList(); var locked = nodes.All(i => !i.EditorState().Locked); foreach (var node in nodes) { Core.Operations.SetProperty.Perform(node.EditorState(), nameof(NodeEditorState.Locked), locked); } }); button.Components.Add(new DocumentationComponent("LockWidgets")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateLockAnimationButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.AnimationEnabled")) { Tooltip = "Lock animation" }; button.AddTransactionClickHandler(() => { var nodes = !RootWidget.Input.IsKeyPressed(Key.Shift) ? Document.Current.Container.Nodes.ToList() : Document.Current.SelectedNodes().ToList(); var enable = !nodes.All(IsAnimationEnabled); foreach (var node in nodes) { foreach (var animator in node.Animators) { Core.Operations.SetProperty.Perform(animator, nameof(IAnimator.Enabled), enable); } } }); button.Components.Add(new DocumentationComponent("LockAnimation")); button.AddChangeWatcher(() => Document.Current.Animation.IsCompound, v => button.Visible = !v); return(button); }
ToolbarButton CreateEyeButton() { var button = new ToolbarButton { Highlightable = false }; button.AddChangeWatcher(() => trackRow.Visibility, i => { var texture = "Timeline.Dot"; if (i == AnimationTrackVisibility.Shown) { texture = "Timeline.Eye"; } else if (i == AnimationTrackVisibility.Hidden) { texture = "Timeline.Cross"; } button.Texture = IconPool.GetTexture(texture); }); button.AddTransactionClickHandler( () => Core.Operations.SetProperty.Perform(trackRow, nameof(AnimationTrackRow.Visibility), (AnimationTrackVisibility)(((int)trackRow.Visibility + 1) % 3)) ); return(button); }
ToolbarButton CreateEyeButton() { var button = new ToolbarButton { Highlightable = false }; button.AddChangeWatcher(() => nodeData.Visibility, i => { var texture = "Timeline.Dot"; if (i == NodeVisibility.Shown) { texture = "Timeline.Eye"; } else if (i == NodeVisibility.Hidden) { texture = "Timeline.Cross"; } button.Texture = IconPool.GetTexture(texture); }); button.Clicked += () => { Core.Operations.SetProperty.Perform(nodeData, nameof(NodeRow.Visibility), (NodeVisibility)(((int)nodeData.Visibility + 1) % 3)); }; return(button); }