implement context menu in UEXML instead of code
This commit is contained in:
parent
5f4b25d121
commit
a8c5906a9b
@ -75,6 +75,111 @@
|
||||
</Command>
|
||||
|
||||
<Command ID="Transport" Title="Tra_nsport" />
|
||||
|
||||
<!-- Context Menu -->
|
||||
<Command ID="PianoRollEditor_ContextMenu_Arrow" Title="_Arrow" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Draw" Title="Dra_w" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Erase" Title="_Erase" />
|
||||
|
||||
<!-- Note Fixed Length : disables drawing note length, forcing to specified length -->
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_1" Title="1/1 [1920]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_2" Title="1/2 [968]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_4" Title="1/4 [480]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_8" Title="1/8 [240]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_16" Title="1/16 [120]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_32" Title="1/32 [60]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_64" Title="1/64 [30]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_Off" Title="Off" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_Triplet" Title="Triplet" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength_Dot" Title="Dot" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_NoteFixedLength" Title="_Note Fixed Length">
|
||||
<Items>
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_1" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_2" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_4" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_8" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_16" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_32" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_64" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_Off" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_Triplet" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength_Dot" />
|
||||
</Items>
|
||||
</Command>
|
||||
|
||||
<!-- Quantize : controls the quantize of position when drawing a new note -->
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize_4" Title="1/4 [480]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize_8" Title="1/8 [240]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize_16" Title="1/16 [120]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize_32" Title="1/32 [60]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize_64" Title="1/64 [30]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize_Off" Title="Off" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize_Triplet" Title="Triplet" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Quantize" Title="_Quantize">
|
||||
<Items>
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize_4" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize_8" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize_16" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize_32" /> <!-- default -->
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize_64" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize_Off" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize_Triplet" />
|
||||
</Items>
|
||||
</Command>
|
||||
|
||||
<!-- Length : controls the quantize of length when drawing a new note -->
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length_4" Title="1/4 [480]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length_8" Title="1/8 [240]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length_16" Title="1/16 [120]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length_32" Title="1/32 [60]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length_64" Title="1/64 [30]" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length_Off" Title="Off" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length_Triplet" Title="Triplet" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Length" Title="_Length">
|
||||
<Items>
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length_4" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length_8" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length_16" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length_32" /> <!-- default -->
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length_64" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length_Off" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length_Triplet" />
|
||||
</Items>
|
||||
</Command>
|
||||
|
||||
<Command ID="PianoRollEditor_ContextMenu_ShowGridLines" Title="_Show Grid Lines" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_SelectAllEvents" Title="Select All _Events" />
|
||||
<Command ID="PianoRollEditor_ContextMenu_InsertLyrics" Title="Insert _Lyrics..." />
|
||||
<Command ID="PianoRollEditor_ContextMenu_Properties" Title="P_roperties..." />
|
||||
|
||||
<Command ID="PianoRollEditor_ContextMenu">
|
||||
<Items>
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Arrow" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Draw" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Erase" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_NoteFixedLength" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Quantize" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Length" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_ShowGridLines" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="EditUndo" />
|
||||
<CommandReference CommandID="EditCut" />
|
||||
<CommandReference CommandID="EditCopy" />
|
||||
<CommandReference CommandID="EditPaste" />
|
||||
<CommandReference CommandID="EditDelete" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="EditSelectAll" />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_SelectAllEvents" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_InsertLyrics" />
|
||||
<Separator />
|
||||
<CommandReference CommandID="PianoRollEditor_ContextMenu_Properties" />
|
||||
</Items>
|
||||
</Command>
|
||||
</Commands>
|
||||
<MenuBar>
|
||||
<Items>
|
||||
|
||||
@ -32,68 +32,27 @@ namespace UniversalEditor.Editors.Multimedia.Audio.Synthesized.PianoRoll.Control
|
||||
{
|
||||
public class PianoRollView : /*View*/ CustomControl
|
||||
{
|
||||
private Menu contextMenu = null;
|
||||
public PianoRollView()
|
||||
{
|
||||
this.contextMenu = new Menu();
|
||||
this.contextMenu.Items.AddRange(new MenuItem[]
|
||||
{
|
||||
new CommandMenuItem("_Arrow", null, ContextMenuArrow_Click),
|
||||
new CommandMenuItem("Dra_w", null, ContextMenuPencil_Click),
|
||||
new CommandMenuItem("_Erase", null, ContextMenuErase_Click),
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("_Note Fixed Length", new MenuItem[] // disables drawing note length, forcing to specified length
|
||||
{
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_1", "1/1 [1920]", null, ContextMenu_NoteFixedLength_Click),
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_2", "1/2 [960]", null, ContextMenu_NoteFixedLength_Click),
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_4", "1/4 [480]", null, ContextMenu_NoteFixedLength_Click),
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_8", "1/8 [240]", null, ContextMenu_NoteFixedLength_Click),
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_16", "1/16 [120]", null, ContextMenu_NoteFixedLength_Click),
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_32", "1/32 [60]", null, ContextMenu_NoteFixedLength_Click),
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_64", "1/64 [30]", null, ContextMenu_NoteFixedLength_Click),
|
||||
new CommandMenuItem("ContextMenu_NoteFixedLength_Off", "Off", null, ContextMenu_NoteFixedLength_Click),
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("Triplet"),
|
||||
new CommandMenuItem("Dot")
|
||||
}),
|
||||
new CommandMenuItem("_Quantize", new MenuItem[] // controls the quantize of position when drawing a new note
|
||||
{
|
||||
new CommandMenuItem("1/4"),
|
||||
new CommandMenuItem("1/8"),
|
||||
new CommandMenuItem("1/16"),
|
||||
new CommandMenuItem("1/32"), // default
|
||||
new CommandMenuItem("1/64"),
|
||||
new CommandMenuItem("Off"),
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("Triplet")
|
||||
}),
|
||||
new CommandMenuItem("_Length", new MenuItem[] // controls the quantize of length when drawing a new note
|
||||
{
|
||||
new CommandMenuItem("1/4"),
|
||||
new CommandMenuItem("1/8"),
|
||||
new CommandMenuItem("1/16"),
|
||||
new CommandMenuItem("1/32"), // default
|
||||
new CommandMenuItem("1/64"),
|
||||
new CommandMenuItem("Off"),
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("Triplet")
|
||||
}),
|
||||
new CommandMenuItem("_Show Grid Lines", null, ContextMenuToggleGridLines_Click), // toggles grid lines for quantized positions
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("_Undo"), // should be CommandReferenceCommandItem for EditUndo application-global command
|
||||
new CommandMenuItem("Cu_t"),
|
||||
new CommandMenuItem("_Copy"),
|
||||
new CommandMenuItem("_Paste"),
|
||||
new CommandMenuItem("_Delete"),
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("Select _All"),
|
||||
new CommandMenuItem("Select All _Events"),
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("Insert _Lyrics..."),
|
||||
new SeparatorMenuItem(),
|
||||
new CommandMenuItem("P_roperties...", null, ContextMenuProperties_Click) // displays Note Property dialog
|
||||
});
|
||||
this.ContextMenu = contextMenu;
|
||||
this.ContextMenuCommandID = "PianoRollEditor_ContextMenu";
|
||||
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_Arrow", ContextMenuArrow_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_Draw", ContextMenuPencil_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_Erase", ContextMenuErase_Click);
|
||||
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_1", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_2", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_4", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_8", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_16", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_32", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_64", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_Off", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_Triplet", ContextMenu_NoteFixedLength_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_NoteFixedLength_Dot", ContextMenu_NoteFixedLength_Click);
|
||||
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_ShowGridLines", ContextMenuToggleGridLines_Click);
|
||||
Application.AttachCommandEventHandler("PianoRollEditor_ContextMenu_Properties", ContextMenuProperties_Click);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -128,10 +87,9 @@ namespace UniversalEditor.Editors.Multimedia.Audio.Synthesized.PianoRoll.Control
|
||||
{
|
||||
base.OnBeforeContextMenu(e);
|
||||
|
||||
contextMenu.Items[10].Visible = (SelectedCommands.Count > 0);
|
||||
contextMenu.Items[11].Visible = (SelectedCommands.Count > 0);
|
||||
contextMenu.Items[12].Visible = (SelectedCommands.Count > 0);
|
||||
contextMenu.Items[13].Visible = (SelectedCommands.Count > 0);
|
||||
this.ContextMenu.Items["EditCut"].Visible = (SelectedCommands.Count > 0);
|
||||
this.ContextMenu.Items["EditCopy"].Visible = (SelectedCommands.Count > 0);
|
||||
this.ContextMenu.Items["EditDelete"].Visible = (SelectedCommands.Count > 0);
|
||||
}
|
||||
|
||||
private void ContextMenuArrow_Click(object sender, EventArgs e)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user