90 lines
No EOL
2.8 KiB
C#
90 lines
No EOL
2.8 KiB
C#
using System;
|
|
using JD.Reflection.Attributes;
|
|
using JD.TeaBoxAddinSystem.Bootstrap;
|
|
using JD.Timeline.Plugin;
|
|
using TeaBox;
|
|
using TeaBox.Actions;
|
|
using TeaBox.Bootstrap;
|
|
using TeaBox.Gui;
|
|
using TD.SandBar;
|
|
|
|
namespace JD.Timeline.View.Actions
|
|
{
|
|
public class OpenTapeDropDownMenu : DropDownMenuItemBase
|
|
{
|
|
public enum OpenType
|
|
{
|
|
OpenFile,
|
|
OpenMaster,
|
|
OpenFromEngine
|
|
}
|
|
|
|
private OpenType _defaultOpenType = OpenType.OpenFile;
|
|
|
|
public OpenTapeDropDownMenu()
|
|
: base(typeof(OpenType))
|
|
{
|
|
Enabled = true;
|
|
SelectedMode = _defaultOpenType;
|
|
}
|
|
|
|
protected override bool EnabledWrapAround { get { return false; } }
|
|
|
|
public override void UpdateState()
|
|
{
|
|
if (TimelinePlugin.IsCreated())
|
|
_defaultOpenType = TimelinePlugin.Instance.IsConnected ? OpenType.OpenMaster : OpenType.OpenFile;
|
|
|
|
if (SelectedMode == null || (OpenType)SelectedMode != _defaultOpenType)
|
|
SelectedMode = _defaultOpenType;
|
|
|
|
foreach (MenuButtonItem item in Items)
|
|
{
|
|
item.Enabled = IsEnabledAction((Enum)item.Tag);
|
|
}
|
|
|
|
base.UpdateState();
|
|
}
|
|
|
|
protected override bool IsEnabledAction(Enum @enum)
|
|
{
|
|
return (OpenType)@enum == OpenType.OpenFile || (TimelinePlugin.IsCreated() && TimelinePlugin.Instance.IsConnected);
|
|
}
|
|
|
|
protected override void Execute()
|
|
{
|
|
switch ((OpenType)SelectedMode)
|
|
{
|
|
case OpenType.OpenFromEngine:
|
|
OpenFromEngine.OpenTape();
|
|
break;
|
|
case OpenType.OpenMaster:
|
|
TimelinePlugin.Instance.SendGetMasterTape();
|
|
break;
|
|
case OpenType.OpenFile:
|
|
TeaBox.ObjectModel.Application.Main.Open.FromFile();
|
|
break;
|
|
}
|
|
SelectedMode = _defaultOpenType;
|
|
}
|
|
|
|
[Export(typeof(IBootstrapCommand))]
|
|
public class ToolbarHijacker : IBootstrapCommand
|
|
{
|
|
public void Execute()
|
|
{
|
|
((SimpleAction)TeaBox.ObjectModel.Application.Main.Actions[ApplicationActions.OpenFileFromToolbar]).DefaultHandler = new InvisibleHandler();
|
|
((SimpleAction)TeaBox.ObjectModel.Application.Main.Actions[ApplicationActions.OpenFile]).Text = "Open from file...";
|
|
}
|
|
|
|
class InvisibleHandler : ActionHandler
|
|
{
|
|
public override bool Update(ActionContext context, ActionInfo info)
|
|
{
|
|
info.Visible = false;
|
|
return base.Update(context, info);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |