Subversion Repositories AndroidProjects

Rev

Rev 1468 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1441 chris 1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Threading.Tasks;
6
using System.Windows.Forms;
7
 
8
using BurutaruEditor.file;
9
 
10
namespace BurutaruEditor.interaction
11
{
12
    public class SelectMove : Interaction
13
    {
1459 chris 14
        public const int MOVE_ALL = -1;
15
 
1441 chris 16
        private bool mLeftDown = false;
17
        private int mLastX = 0;
18
        private int mLastY = 0;
19
 
20
        private LevelObject mSelectedObject = null;
1459 chris 21
        private int mSelectedObjectPart = -1;
1441 chris 22
 
1468 chris 23
        private bool mDocPartSelected = false;
24
 
1463 chris 25
        private LevelObject mHoverObject = null;
26
        private int mHoverObjectPart = -1;
27
 
1441 chris 28
        public SelectMove(MainForm owner)
29
            : base(owner)
30
        {
31
 
32
        }
33
 
34
        public override void MouseDown(MouseEventArgs e)
35
        {
36
            if (e.Button == MouseButtons.Left)
37
            {
38
                mLeftDown = true;
39
 
1459 chris 40
                mSelectedObject = Owner.View.FindObjectAt(e.X, e.Y, out mSelectedObjectPart, true);
1467 chris 41
 
42
                if (mSelectedObject == null)
43
                {
44
                    // choose Document
45
                    Owner.Properties.SelectedObject = Owner.Doc;
1477 chris 46
                    Owner.View.SelectedObject = null;
1468 chris 47
                    mSelectedObjectPart = Owner.View.FindDocumentObjectPart(e.X, e.Y);
48
                    if (mSelectedObjectPart != -1)
49
                    {
50
                        mDocPartSelected = true;
51
                    }
1467 chris 52
                    Owner.Properties.ExpandAllGridItems();
53
                }
54
                else
55
                {
56
                    Owner.View.SelectedObject = mSelectedObject;
57
                    Owner.View.SelectedObjectPart = mSelectedObjectPart;
1477 chris 58
                    Owner.Properties.SelectedObject = mSelectedObject;
59
                    Owner.Properties.ExpandAllGridItems();
1467 chris 60
                }
1441 chris 61
            }
62
 
63
            mLastX = e.X;
64
            mLastY = e.Y;
65
        }
66
 
67
        public override void MouseMove(MouseEventArgs e)
68
        {
1468 chris 69
            if (mLeftDown && ((mSelectedObject != null) || (mDocPartSelected)))
1441 chris 70
            {
71
                float dx = e.X - mLastX;
72
                float dy = e.Y - mLastY;
73
 
74
                if (mSelectedObject != null)
75
                {
1459 chris 76
                    mSelectedObject.MoveBy(dx, dy, mSelectedObjectPart);
1447 chris 77
                    Owner.Properties.Refresh();
1441 chris 78
                }
1467 chris 79
                else
80
                {
81
                    // move Document part
1468 chris 82
                    Owner.View.MoveDocPartBy(dx, dy, mSelectedObjectPart);
83
                    Owner.Properties.Refresh();
1467 chris 84
                }
1441 chris 85
            }
86
            else
87
            {
1463 chris 88
                mHoverObject = Owner.View.FindObjectAt(e.X, e.Y, out mHoverObjectPart);
1441 chris 89
 
1463 chris 90
                if (mHoverObject == null)
1468 chris 91
                {
92
                    mHoverObjectPart = Owner.View.FindDocumentObjectPart(e.X, e.Y);
93
                    if (mHoverObjectPart != -1)
94
                        Owner.GlView.Cursor = Cursors.SizeAll;
95
                    else
96
                        Owner.GlView.Cursor = Cursors.Arrow;
97
                }
1441 chris 98
                else
1463 chris 99
                {
1441 chris 100
                    Owner.GlView.Cursor = Cursors.SizeAll;
1463 chris 101
 
102
                }
1441 chris 103
            }
104
 
105
            mLastX = e.X;
106
            mLastY = e.Y;
107
        }
108
 
109
        public override void MouseUp(MouseEventArgs e)
110
        {
111
            if (e.Button == MouseButtons.Left)
112
            {
113
                mLeftDown = false;
114
                mSelectedObject = null;
1459 chris 115
                mSelectedObjectPart = -1;
1468 chris 116
                mDocPartSelected = false;
1441 chris 117
            }
118
        }
1463 chris 119
 
120
        public override void Render()
121
        {
122
            if (mHoverObject != null)
123
                mHoverObject.RenderSelected(mHoverObjectPart, true);
124
        }
1441 chris 125
    }
126
}