Пример #1
0
        public EditCMenu(ScorePanel sPanel, ScoreLane selectedLane, Score selectedScore, Position clickPosition)
        {
            barAddItems = new ToolStripItem[]
            {
                new ToolStripMenuItem("選択小節の1つ前", null, BarAddBackward),
                new ToolStripMenuItem("選択小節の1つ先", null, BarAddForward),
                new ToolStripMenuItem("カスタム...", null, BarAddCustom)
            };
            barAddWithNoteItems = new ToolStripItem[]
            {
                new ToolStripMenuItem("選択小節の1つ前", null, BarAddBackwardWithNote),
                new ToolStripMenuItem("選択小節の1つ先", null, BarAddForwardWithNote),
                new ToolStripMenuItem("カスタム...", null, BarAddCustomWithNote)
            };
            barDeleteItems = new ToolStripItem[]
            {
                new ToolStripMenuItem("選択小節", null, BarDeleteSelected),
                new ToolStripMenuItem("カスタム...", null, BarDeleteCustom)
            };
            barDeleteWithNoteItems = new ToolStripItem[]
            {
                new ToolStripMenuItem("選択小節", null, BarDeleteSelectedWithNote),
                new ToolStripMenuItem("カスタム...", null, BarDeleteCustomWithNote)
            };
            laneFillItems = new ToolStripItem[]
            {
                new ToolStripMenuItem("レーン全体", null, LaneFillAll),
                new ToolStripMenuItem("選択レーン以降", null, LaneFill)
            };
            ToolStripMenuItem barAddWithNote = new ToolStripMenuItem("小節を挿入", null)
            {
                ToolTipText = "選択した小節の前後に新しい小節を追加します\nすでに配置されているノーツの相対座標は変更されます"
            };

            barAddWithNote.DropDownItems.AddRange(barAddWithNoteItems);
            ToolStripMenuItem barAdd = new ToolStripMenuItem("小節を挿入(小節のみ)", null)
            {
                ToolTipText = "選択した小節の前後に新しい小節を追加します\nすでに配置されているノーツの相対座標は変更されません"
            };

            barAdd.DropDownItems.AddRange(barAddItems);
            ToolStripMenuItem barDeleteWithNote = new ToolStripMenuItem("小節を削除", null)
            {
                ToolTipText = "選択した小節またはそれ以降の複数の小節を削除します\n削除対象の小節にノーツが配置されている場合、ノーツも削除されます"
            };

            barDeleteWithNote.DropDownItems.AddRange(barDeleteWithNoteItems);
            ToolStripMenuItem barDelete = new ToolStripMenuItem("小節を削除(小節のみ)", null)
            {
                ToolTipText = "選択した小節またはそれ以降の複数の小節を削除します\n小節のみ削除するため、ノーツは削除されません"
            };

            barDelete.DropDownItems.AddRange(barDeleteItems);
            ToolStripMenuItem laneFill = new ToolStripMenuItem("レーンを詰める", null);

            laneFill.DropDownItems.AddRange(laneFillItems);
            stripItems = new ToolStripItem[]
            {
                barAddWithNote,
                barAdd,
                barDeleteWithNote,
                barDelete,
                new ToolStripMenuItem("選択小節を改行", null, BarDivide),
                laneFill,
                new ToolStripSeparator(),
                new ToolStripMenuItem("貼り付け", null, (s, e) => sPanel.PasteNotes(clickPosition))
                {
                    Enabled = Status.IsPasteAvailable
                },
                new ToolStripMenuItem("左右反転して貼り付け", null, (s, e) =>
                {
                    sPanel.PasteAndReverseNotes(clickPosition);
                })
                {
                    Enabled = Status.IsPasteAvailable
                }
            };
            Items.AddRange(stripItems);
            this.sPanel        = sPanel;
            this.selectedLane  = selectedLane;
            this.selectedScore = selectedScore;
        }