コード例 #1
0
        /// <summary>
        /// 移動情報を更新する
        /// 注意:いったんスクリーン座標に変換して移動するので、コード座標に変換誤差が生じる可能性がある。
        /// </summary>
        /// <param name="dragStartPos">移動開始時のマウス座標(ドラッグ開始点)</param>
        /// <param name="currentPos">現在のマウス座標</param>
        /// <param name="type">座標変更タイプ</param>
        public void Develop(ScreenPos dragStartPos, ScreenPos currentPos, DevelopType type)
        {
            _lastDevelpType = type;
            var sdelta = currentPos - dragStartPos;     // マウスの移動量

            _prevShift = sdelta;

            foreach (DictionaryEntry de in this)            // 選択中全パーツに対して行う
            {
                var p3     = (Pos3)de.Value;
                var target = (PartsBase)de.Key;
                p3.Pre = p3.Now;                                                                              // ひとつ前の座標に記憶
                p3.Now = (CodeRect)p3.Now.Clone();                                                            // サイズ系の処理が正しく動作するために必要
                var virtualPos = target.GetCdRect(p3.NowPane, target.GetScRect(p3.OrgPane, p3.Org) + sdelta); // 移動後の位置を計算
                var d          = target.GetCdPos(p3.NowPane, sdelta);
                //Debug.WriteLine( string.Format( "[{0}] Delta[{1}]:Offset[{2}]", i, d, p3.Offset) );

                virtualPos = CodeRect.FromLTWH(virtualPos.LT.X + p3.Offset.X, virtualPos.LT.Y, virtualPos.Width, virtualPos.Height);

                switch (type)
                {
                case DevelopType.Move:
                    p3.Now = virtualPos;
                    if (p3.Now.Width != p3.Org.Width)
                    {
                        p3.Now.RB.X = p3.Now.LT.X + p3.Org.Width - 1;       // 幅が変わらないようにする
                    }
                    break;

                case DevelopType.SizeRight:
                    p3.Now.RB.X = virtualPos.RB.X;
                    break;

                case DevelopType.SizeLeft:
                    p3.Now.LT.X = virtualPos.LT.X;
                    break;

                case DevelopType.SizeTop:
                    p3.Now.LT.Y = virtualPos.LT.Y;
                    break;

                case DevelopType.SizeBottom:
                    p3.Now.RB.Y = virtualPos.RB.Y;
                    break;
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// 動作タイプを指定する
 /// </summary>
 /// <param name="value"></param>
 public void SetDevelop(DevelopType value)
 {
     dev             = value;
     _lastDevelpType = dev;
 }
コード例 #3
0
 public DevelopmentInfo(DevelopType t, string team, string profile)
 {
     developmentTeam         = team;
     provisioningProfileName = profile;
     tag = t;
 }