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); }
public RulerRowView(Ruler ruler, Action onDelete, Action onEdit) { ThemedDeleteButton deleteButton; ThemedSimpleText label; Layout = new HBoxLayout(); Nodes.Add(label = new ThemedSimpleText { Padding = new Thickness { Left = 10 }, }); this.AddChangeWatcher(() => ruler.Name, (name) => label.Text = name); Nodes.Add(new Widget()); Nodes.Add(editButton = new ToolbarButton() { Anchors = Anchors.Right, LayoutCell = new LayoutCell(Alignment.LeftTop), Texture = IconPool.GetTexture("Tools.Edit"), Highlightable = false, }); Nodes.Add(deleteButton = new ThemedDeleteButton { Anchors = Anchors.Right, LayoutCell = new LayoutCell(Alignment.LeftTop) }); deleteButton.Clicked = onDelete; editButton.Clicked = onEdit; MinMaxHeight = RowHeight; }
private Widget CreateUpButton() { return(new ToolbarButton(IconPool.GetTexture("Filesystem.ArrowUp")) { Clicked = () => { view.GoUp(); } }); }
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 Widget CreateGoForwardButton() { return(new ToolbarButton(IconPool.GetTexture("Filesystem.ArrowRight")) { Clicked = () => view.GoForward(), }); }
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); }
public Rulerbar() { RootWidget = new Widget { Id = nameof(Rulerbar), MinMaxHeight = Metrics.ToolbarHeight, HitTestTarget = true }; RootWidget.CompoundPresenter.Add(new SyncDelegatePresenter <Widget>(Render)); RootWidget.LateTasks.Add( new KeyPressHandler(Key.Mouse0DoubleClick, RootWidget_DoubleClick), new KeyPressHandler(Key.Mouse1, (input, key) => new ContextMenu().Show()) ); RootWidget.AddChangeWatcher(() => Document.Current.AnimationFrame, (value) => { var markers = Document.Current.Animation.Markers; int i = markers.FindIndex(m => m.Frame == value); if (i >= 0) { upperMarker = markers[i]; } }); RootWidget.AddChangeWatcher(() => Document.Current.Container, (value) => { upperMarker = null; }); warningIcon = IconPool.GetTexture("Inspector.Warning"); }
private Widget CreateGotoCurrentProjectDirectoryButton() { return(new ToolbarButton(IconPool.GetTexture("Filesystem.Home")) { Clicked = () => { view.GoTo(Project.Current.AssetsDirectory); } }); }
public KeyframeButton() { foreach (var v in Enum.GetValues(typeof(KeyFunction))) { fillTextures.Add(IconPool.GetTexture("Inspector." + iconNames[(int)v] + "Fill")); outlineTextures.Add(IconPool.GetTexture("Inspector." + iconNames[(int)v] + "Outline")); } Nodes.Clear(); Size = MinMaxSize = new Vector2(22, 22); image = new Image { Size = Size, Shader = ShaderId.Silhuette, Texture = new SerializableTexture(), Color = Theme.Colors.WhiteBackground }; fillImage = new Image { Size = Size, Visible = false }; outlintImage = new Image { Size = Size, Visible = false }; Nodes.Add(outlintImage); Nodes.Add(fillImage); Nodes.Add(image); Layout = new StackLayout(); this.PostPresenter = new WidgetBoundsPresenter(ColorTheme.Current.Inspector.BorderAroundKeyframeColorbox); Awoke += Awake; }
private Widget CreateCloseButton() { return(new ToolbarButton(IconPool.GetTexture("Filesystem.Close")) { Clicked = () => { view.Close(); } }); }
ToolbarButton CreateEnterButton() { var button = new ToolbarButton { Texture = IconPool.GetTexture("Timeline.EnterContainer"), Highlightable = false }; button.Clicked += () => Core.Operations.EnterNode.Perform(nodeData.Node); return(button); }
private Widget CreateGoBackwardButton() { return(new ToolbarButton(IconPool.GetTexture("Filesystem.ArrowLeft")) { Clicked = () => { view.ScrollView.SetFocus(); view.GoBackward(); }, }); }
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 CreateExitButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.ExitContainer")) { Tip = "Exit current container (backspace)" }; button.Clicked += Core.Operations.LeaveNode.Perform; button.Updating += _ => button.Enabled = Core.Operations.LeaveNode.IsAllowed(); 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); }
private Widget CreateSplitVButton() { ToolbarButton b = null; return(b = new ToolbarButton(IconPool.GetTexture("Filesystem.SplitV")) { Clicked = () => { view.Split(SplitterType.Vertical); } }); }
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 CreateExitButton() { var button = new ToolbarButton(IconPool.GetTexture("Timeline.ExitContainer")) { Tip = "Exit current container (backspace)" }; button.AddTransactionClickHandler(Core.Operations.LeaveNode.Perform); button.Updating += _ => button.Enabled = Core.Operations.LeaveNode.IsAllowed(); button.Components.Add(new DocumentationComponent("ExitContainer")); return(button); }
public RollFolderView(Row row) { this.row = row; folder = row.Components.Get <FolderRow>().Folder; label = new ThemedSimpleText(); editBox = new ThemedEditBox { LayoutCell = new LayoutCell(Alignment.Center, stretchX: float.MaxValue) }; nodeIcon = new Image(IconPool.GetTexture("Tools.NewFolder")) { HitTestTarget = true, MinMaxSize = new Vector2(16, 16) }; expandButton = CreateExpandButton(); var expandButtonContainer = new Widget { Layout = new StackLayout { IgnoreHidden = false }, LayoutCell = new LayoutCell(Alignment.Center), Visible = true, Nodes = { expandButton } }; eyeButton = CreateEyeButton(); lockButton = CreateLockButton(); widget = new Widget { Padding = new Thickness { Left = 4, Right = 2 }, MinHeight = TimelineMetrics.DefaultRowHeight, Layout = new HBoxLayout { DefaultCell = new DefaultLayoutCell(Alignment.Center) }, HitTestTarget = true, Nodes = { (spacer = new Widget()), expandButtonContainer, nodeIcon, Spacer.HSpacer(3), label, editBox, new Widget(), eyeButton, lockButton, }, }; widget.Components.Add(new AwakeBehavior()); label.AddChangeWatcher(() => folder.Id, s => label.Text = folder.Id); widget.CompoundPresenter.Push(new SyncDelegatePresenter <Widget>(RenderBackground)); editBox.Visible = false; widget.Tasks.Add(HandleDobleClickTask()); }
public PathArrowButton(Func <string, bool> openPath, string path = null) : base() { this.path = path; this.openPath = openPath; MinMaxHeight = 20; Presenter = new PathButtonPresenter(); base.Presenter = Presenter; if (path == null) { Updating += (float delta) => { var prevState = State; if (Expanded) { State = PathBarButtonState.Press; } else { if (IsMouseOverThisOrDescendant()) { if (WasClicked()) { State = PathBarButtonState.Press; } else { State = PathBarButtonState.Hover; } } else { State = PathBarButtonState.Normal; } } if (prevState != State) { Presenter.SetState(State); } }; } Gestures.Add(new ClickGesture(0, FlipState)); Layout = new HBoxLayout(); MinMaxSize = new Vector2(11, 20); Nodes.Add(icon = new Image { LayoutCell = new LayoutCell { Alignment = new Alignment { X = HAlignment.Center, Y = VAlignment.Center } }, MinMaxSize = new Vector2(11, 6), Texture = IconPool.GetTexture("Filesystem.PathSeparatorCollapsed") }); Expanded = false; }
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); }
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 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 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); }
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 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); }
private Widget CreateGotoCurrentProjectDirectoryButton() { return(new ToolbarButton(IconPool.GetTexture("Filesystem.Home")) { Clicked = () => { if (Project.Current != Project.Null) { view.ScrollView.SetFocus(); view.GoTo(Project.Current.AssetsDirectory); } } }); }
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 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); }