/// <summary> /// デザイナー:ドラッグ開始 /// </summary> private void pnlPreview_MouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left || this.mgr.EdittingData?.CurrentLayer == null || this.lstFrameList.SelectedIndex == -1) { return; } var NotFound = true; //現在のレイヤーを掴めているか判定する var layerSize = new Size( (int)(this.mgr.EdittingData.CurrentLayer.SectionSize.Width * this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].Extend / 100.0), (int)(this.mgr.EdittingData.CurrentLayer.SectionSize.Height * this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].Extend / 100.0) ); var layerRect = new Rectangle( this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].ViewPosition.X + mgrDBEffect.ScreenSize.Width / 2 - layerSize.Width / 2, this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].ViewPosition.Y + mgrDBEffect.ScreenSize.Height / 2 - layerSize.Height / 2, layerSize.Width, layerSize.Height ); //ドラッグ可能な領域である場合 if (layerRect.Contains(e.X, e.Y)) { this.drugObj = new DrugObject(-1, new Point(e.X, e.Y)); NotFound = false; } if (NotFound) { this.drugObj = null; this.picPallet.Refresh(); } }
/// <summary> /// デザイナー:ドラッグ開始 /// </summary> private void picPreview_MouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } var NotFound = true; //レイヤーはインデックスが後ろになるほど上に描画される構造であるため、逆から判定する for (var i = this.mgr.EdittingData.Enemies.Count - 1; i >= 0; i--) { //拡大率を適用する var enemyPos = this.mgr.EdittingData.Enemies[i].Position; var enemySize = this.mgr.EdittingData.Enemies[i].Size; var pos = new Point(e.X, e.Y); ViewScale.RestoreOriginalPoint(ref pos, this.mgr.Scale); ViewScale.ApplyRateToPoint(ref enemyPos, this.mgr.Scale); ViewScale.ApplyRateToSize(ref enemySize, this.mgr.Scale); //ドラッグ可能な領域である場合 if (new Rectangle(enemyPos, enemySize).Contains(e.X, e.Y)) { this.drugObj = new DrugObject(i, new Point(e.X, e.Y)); this.ltvAnalyzer.SelectedIndices.Add(i); NotFound = false; break; } } if (NotFound) { this.drugObj = null; this.ltvAnalyzer.SelectedIndices.Clear(); this.picPreview.Refresh(); } }
/// <summary> /// デザイナー:ドラッグ中断 /// </summary> private void pnlPreview_MouseLeave(object sender, EventArgs e) { this.drugObj = null; }
/// <summary> /// デザイナー:ドラッグ終了 /// </summary> private void pnlPreview_MouseUp(object sender, MouseEventArgs e) { this.pnlPreview_MouseMove(sender, e); this.drugObj = null; }