private ToolStrip CreateNewNoteTypeToolStrip(NoteView noteView) { var tapButton = new ToolStripButton("TAP", Resources.TapIcon, (s, e) => noteView.NewNoteType = NoteType.Tap) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var exTapButton = new ToolStripButton("ExTAP", Resources.ExTapIcon, (s, e) => noteView.NewNoteType = NoteType.ExTap) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var holdButton = new ToolStripButton("HOLD", Resources.HoldIcon, (s, e) => noteView.NewNoteType = NoteType.Hold) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var slideButton = new ToolStripButton("SLIDE", Resources.SlideIcon, (s, e) => { noteView.NewNoteType = NoteType.Slide; noteView.IsNewSlideStepVisible = false; }) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var slideStepButton = new ToolStripButton(MainFormStrings.SlideStep, Resources.SlideStepIcon, (s, e) => { noteView.NewNoteType = NoteType.Slide; noteView.IsNewSlideStepVisible = true; }) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var airActionButton = new ToolStripButton("AIR-ACTION", Resources.AirActionIcon, (s, e) => noteView.NewNoteType = NoteType.AirAction) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var flickButton = new ToolStripButton("FLICK", Resources.FlickIcon, (s, e) => noteView.NewNoteType = NoteType.Flick) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var damageButton = new ToolStripButton("DAMAGE", Resources.DamgeIcon, (s, e) => noteView.NewNoteType = NoteType.Damage) { DisplayStyle = ToolStripItemDisplayStyle.Image }; var airKind = new CheckableToolStripSplitButton() { DisplayStyle = ToolStripItemDisplayStyle.Image }; airKind.Text = "AIR"; airKind.Click += (s, e) => noteView.NewNoteType = NoteType.Air; airKind.DropDown.Items.AddRange(new ToolStripItem[] { new ToolStripMenuItem(MainFormStrings.AirUp, Resources.AirUpIcon, (s, e) => noteView.AirDirection = new AirDirection(VerticalAirDirection.Up, HorizontalAirDirection.Center)), new ToolStripMenuItem(MainFormStrings.AirLeftUp, Resources.AirLeftUpIcon, (s, e) => noteView.AirDirection = new AirDirection(VerticalAirDirection.Up, HorizontalAirDirection.Left)), new ToolStripMenuItem(MainFormStrings.AirRightUp, Resources.AirRightUpIcon, (s, e) => noteView.AirDirection = new AirDirection(VerticalAirDirection.Up, HorizontalAirDirection.Right)), new ToolStripMenuItem(MainFormStrings.AirDown, Resources.AirDownIcon, (s, e) => noteView.AirDirection = new AirDirection(VerticalAirDirection.Down, HorizontalAirDirection.Center)), new ToolStripMenuItem(MainFormStrings.AirLeftDown, Resources.AirLeftDownIcon, (s, e) => noteView.AirDirection = new AirDirection(VerticalAirDirection.Down, HorizontalAirDirection.Left)), new ToolStripMenuItem(MainFormStrings.AirRightDown, Resources.AirRightDownIcon, (s, e) => noteView.AirDirection = new AirDirection(VerticalAirDirection.Down, HorizontalAirDirection.Right)) }); airKind.Image = Resources.AirUpIcon; var quantizeTicks = new int[] { 4, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192 }; var quantizeComboBox = new ToolStripComboBox("クォンタイズ") { DropDownStyle = ComboBoxStyle.DropDownList, AutoSize = false, Width = 80 }; quantizeComboBox.Items.AddRange(quantizeTicks.Select(p => p + MainFormStrings.Division).ToArray()); quantizeComboBox.Items.Add(MainFormStrings.Custom); quantizeComboBox.SelectedIndexChanged += (s, e) => { if (quantizeComboBox.SelectedIndex == quantizeComboBox.Items.Count - 1) { // ユーザー定義 var form = new CustomQuantizeSelectionForm(ScoreBook.Score.TicksPerBeat * 4); if (form.ShowDialog(this) == DialogResult.OK) { noteView.QuantizeTick = form.QuantizeTick; } } else { noteView.QuantizeTick = noteView.UnitBeatTick * 4 / quantizeTicks[quantizeComboBox.SelectedIndex]; } noteView.Focus(); }; quantizeComboBox.SelectedIndex = 1; noteView.NewNoteTypeChanged += (s, e) => { tapButton.Checked = noteView.NewNoteType.HasFlag(NoteType.Tap); exTapButton.Checked = noteView.NewNoteType.HasFlag(NoteType.ExTap); holdButton.Checked = noteView.NewNoteType.HasFlag(NoteType.Hold); slideButton.Checked = noteView.NewNoteType.HasFlag(NoteType.Slide) && !noteView.IsNewSlideStepVisible; slideStepButton.Checked = noteView.NewNoteType.HasFlag(NoteType.Slide) && noteView.IsNewSlideStepVisible; airKind.Checked = noteView.NewNoteType.HasFlag(NoteType.Air); airActionButton.Checked = noteView.NewNoteType.HasFlag(NoteType.AirAction); flickButton.Checked = noteView.NewNoteType.HasFlag(NoteType.Flick); damageButton.Checked = noteView.NewNoteType.HasFlag(NoteType.Damage); }; noteView.AirDirectionChanged += (s, e) => { switch (noteView.AirDirection.HorizontalDirection) { case HorizontalAirDirection.Center: airKind.Image = noteView.AirDirection.VerticalDirection == VerticalAirDirection.Up ? Resources.AirUpIcon : Resources.AirDownIcon; break; case HorizontalAirDirection.Left: airKind.Image = noteView.AirDirection.VerticalDirection == VerticalAirDirection.Up ? Resources.AirLeftUpIcon : Resources.AirLeftDownIcon; break; case HorizontalAirDirection.Right: airKind.Image = noteView.AirDirection.VerticalDirection == VerticalAirDirection.Up ? Resources.AirRightUpIcon : Resources.AirRightDownIcon; break; } }; return(new ToolStrip(new ToolStripItem[] { tapButton, exTapButton, holdButton, slideButton, slideStepButton, airKind, airActionButton, flickButton, damageButton, quantizeComboBox })); }