OSDN Git Service

Initial contents of nt2chview
[nt2chview/stable.git] / NT2chView45 / MainWindow_toolbar_dragdrop.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Windows;\r
5 using System.Windows.Controls;\r
6 using System.Windows.Input;\r
7 using System.Windows.Media;\r
8 using NT2chView.NtUI;\r
9 \r
10 namespace NT2chView\r
11 {\r
12     partial class MainWindow\r
13     {\r
14         private void hideAllToolbarDropCanvas()\r
15         {\r
16             mThreadTitleViewLHSDragCanvas.Visibility = System.Windows.Visibility.Collapsed;\r
17             mThreadTitleViewRHSDragCanvas.Visibility = System.Windows.Visibility.Collapsed;\r
18             mLHSDragCanvas.Visibility = System.Windows.Visibility.Collapsed;\r
19             mRHSDragCanvas.Visibility = System.Windows.Visibility.Collapsed;\r
20         }\r
21 \r
22         private void mLHSDragCanvas_DragEnter(object sender, DragEventArgs e)\r
23         {\r
24             if (validateResViewToolbarDropData(e))\r
25                 mLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragBrush");\r
26         }\r
27 \r
28         private void mLHSDragCanvas_DragLeave(object sender, DragEventArgs e)\r
29         {\r
30             mLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragOrgBrush");\r
31         }\r
32 \r
33         private void mLHSDragCanvas_DragOver(object sender, DragEventArgs e)\r
34         {\r
35             if (validateResViewToolbarDropData(e))\r
36                 mLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragBrush");\r
37         }\r
38 \r
39         private void mLHSDragCanvas_Drop(object sender, DragEventArgs e)\r
40         {\r
41             mLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragOrgBrush");\r
42             if (validateResViewToolbarDropData(e))\r
43             {\r
44                 mTooltrayResView.SetValue(DockPanel.DockProperty, Dock.Left);\r
45                 NTUserPreference.ResViewToolbarPosition = NTDragDrop.TOOLBAR_LOCATION_LEFT;\r
46             }\r
47             hideAllToolbarDropCanvas();\r
48         }\r
49 \r
50         private void mRHSDragCanvas_DragEnter(object sender, DragEventArgs e)\r
51         {\r
52             if (validateResViewToolbarDropData(e))\r
53                 mRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragBrush");\r
54         }\r
55 \r
56         private void mRHSDragCanvas_DragLeave(object sender, DragEventArgs e)\r
57         {\r
58             mRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragOrgBrush");\r
59         }\r
60 \r
61         private void mRHSDragCanvas_DragOver(object sender, DragEventArgs e)\r
62         {\r
63             if (validateResViewToolbarDropData(e))\r
64                 mRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragBrush");\r
65         }\r
66 \r
67         private void mRHSDragCanvas_Drop(object sender, DragEventArgs e)\r
68         {\r
69             mRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragOrgBrush");\r
70             if (validateResViewToolbarDropData(e))\r
71             {\r
72                 mTooltrayResView.SetValue(DockPanel.DockProperty, Dock.Right);\r
73                 NTUserPreference.ResViewToolbarPosition = NTDragDrop.TOOLBAR_LOCATION_RIGHT;\r
74             }\r
75             hideAllToolbarDropCanvas();\r
76         }\r
77 \r
78         bool validateResViewToolbarDropData(DragEventArgs e)\r
79         {\r
80             IDataObject data = e.Data;\r
81 \r
82             if (!data.GetDataPresent(NTDragDrop.RES_VIEW_TOOLBAR_DRAG_FORMAT))\r
83             {\r
84                 e.Effects = DragDropEffects.None;\r
85                 return false;\r
86             }\r
87             else\r
88             {\r
89                 e.Effects = DragDropEffects.Move;\r
90                 e.Handled = true;\r
91                 return true;\r
92             }\r
93         }\r
94 \r
95 \r
96         bool mResViewToolbarDragCapture = false;\r
97         Point mResViewPointCapture;\r
98 \r
99         void startDrag()\r
100         {\r
101             NTDragDrop.ResViewToolbarData data = new NTDragDrop.ResViewToolbarData();\r
102             DataObject dObj = new DataObject(NTDragDrop.RES_VIEW_TOOLBAR_DRAG_FORMAT, data);\r
103             DragDrop.DoDragDrop(mToolbarResView, dObj, DragDropEffects.All);\r
104             hideAllToolbarDropCanvas();\r
105         }\r
106 \r
107         private void mResViewToolHandle_MouseEnter(object sender, MouseEventArgs e)\r
108         {\r
109 \r
110         }\r
111 \r
112         private void mResViewToolHandle_MouseLeave(object sender, MouseEventArgs e)\r
113         {\r
114 \r
115         }\r
116 \r
117         private void mResViewToolHandle_MouseLeftBouttnDown(object sender, MouseButtonEventArgs e)\r
118         {\r
119             mResViewToolbarDragCapture = true;\r
120             mResViewPointCapture = e.GetPosition(mToolbarResView);\r
121 \r
122         }\r
123 \r
124         private void mResViewToolHandle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)\r
125         {\r
126             mResViewToolbarDragCapture = false;\r
127 \r
128         }\r
129 \r
130         private void mResViewToolHandle_MouseMove(object sender, MouseEventArgs e)\r
131         {\r
132             if (!mResViewToolbarDragCapture)\r
133                 return;\r
134             Point p = e.GetPosition(mToolbarResView);\r
135             Vector v = Point.Subtract(p, mResViewPointCapture);\r
136             if (v.Length > NTDragDrop.DRAG_START_MOVE_DELTA)\r
137             {\r
138                 if (NTUserPreference.ResViewToolbarPosition\r
139                     == NTDragDrop.TOOLBAR_LOCATION_RIGHT)\r
140                 {\r
141                     mLHSDragCanvas.Visibility = System.Windows.Visibility.Visible;\r
142                 }\r
143                 else\r
144                 {\r
145                     mRHSDragCanvas.Visibility = System.Windows.Visibility.Visible;\r
146                 }\r
147                 startDrag();\r
148                 e.Handled = true;\r
149                 mResViewToolbarDragCapture = false;\r
150             }\r
151 \r
152         }\r
153 //----------------------------\r
154         private void mThreadTitleViewLHSDragCanvas_DragEnter(object sender, DragEventArgs e)\r
155         {\r
156             if (validateThreadTitleViewToolbarDropData(e))\r
157                 mThreadTitleViewLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragBrush");\r
158         }\r
159 \r
160         private void mThreadTitleViewLHSDragCanvas_DragLeave(object sender, DragEventArgs e)\r
161         {\r
162             mThreadTitleViewLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragOrgBrush");\r
163         }\r
164 \r
165         private void mThreadTitleViewLHSDragCanvas_DragOver(object sender, DragEventArgs e)\r
166         {\r
167             if (validateThreadTitleViewToolbarDropData(e))\r
168                 mThreadTitleViewLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragBrush");\r
169         }\r
170 \r
171         private void mThreadTitleViewLHSDragCanvas_Drop(object sender, DragEventArgs e)\r
172         {\r
173             mThreadTitleViewLHSDragCanvas.Background = (Brush)TryFindResource("lhsDragOrgBrush");\r
174             if (validateThreadTitleViewToolbarDropData(e))\r
175             {\r
176                 mTooltrayThreadTitleView.SetValue(DockPanel.DockProperty, Dock.Left);\r
177                 NTUserPreference.ThreadTitleViewToolbarPosition = NTDragDrop.TOOLBAR_LOCATION_LEFT;\r
178             }\r
179             hideAllToolbarDropCanvas();\r
180         }\r
181 \r
182         private void mThreadTitleViewRHSDragCanvas_DragEnter(object sender, DragEventArgs e)\r
183         {\r
184             if (validateThreadTitleViewToolbarDropData(e))\r
185                 mThreadTitleViewRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragBrush");\r
186         }\r
187 \r
188         private void mThreadTitleViewRHSDragCanvas_DragLeave(object sender, DragEventArgs e)\r
189         {\r
190             mThreadTitleViewRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragOrgBrush");\r
191         }\r
192 \r
193         private void mThreadTitleViewRHSDragCanvas_DragOver(object sender, DragEventArgs e)\r
194         {\r
195             if (validateThreadTitleViewToolbarDropData(e))\r
196                 mThreadTitleViewRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragBrush");\r
197         }\r
198 \r
199         private void mThreadTitleViewRHSDragCanvas_Drop(object sender, DragEventArgs e)\r
200         {\r
201             mThreadTitleViewRHSDragCanvas.Background = (Brush)TryFindResource("rhsDragOrgBrush");\r
202             if (validateThreadTitleViewToolbarDropData(e))\r
203             {\r
204                 mTooltrayThreadTitleView.SetValue(DockPanel.DockProperty, Dock.Right);\r
205                 NTUserPreference.ThreadTitleViewToolbarPosition = NTDragDrop.TOOLBAR_LOCATION_RIGHT;\r
206             }\r
207             hideAllToolbarDropCanvas();\r
208         }\r
209 \r
210         bool validateThreadTitleViewToolbarDropData(DragEventArgs e)\r
211         {\r
212             IDataObject data = e.Data;\r
213 \r
214             if (!data.GetDataPresent(NTDragDrop.THREADTITLE_VIEW_TOOLBAR_DRAG_FORMAT))\r
215             {\r
216                 e.Effects = DragDropEffects.None;\r
217                 return false;\r
218             }\r
219             else\r
220             {\r
221                 e.Effects = DragDropEffects.Move;\r
222                 e.Handled = true;\r
223                 return true;\r
224             }\r
225         }\r
226 \r
227 \r
228         bool mThreadTitleViewToolbarDragCapture = false;\r
229         Point mThreadTitleViewPointCapture;\r
230 \r
231         void startDrag2()\r
232         {\r
233             NTDragDrop.ThreadTitleToolbarData data = new NTDragDrop.ThreadTitleToolbarData();\r
234             DataObject dObj = new DataObject(NTDragDrop.THREADTITLE_VIEW_TOOLBAR_DRAG_FORMAT, data);\r
235             DragDrop.DoDragDrop(mToolbarThreadTitleView, dObj, DragDropEffects.All);\r
236             hideAllToolbarDropCanvas();\r
237         }\r
238 \r
239         private void mThreadTitleViewToolHandle_MouseEnter(object sender, MouseEventArgs e)\r
240         {\r
241 \r
242         }\r
243 \r
244         private void mThreadTitleViewToolHandle_MouseLeave(object sender, MouseEventArgs e)\r
245         {\r
246 \r
247         }\r
248 \r
249         private void mThreadTitleViewToolHandle_MouseLeftBouttnDown(object sender, MouseButtonEventArgs e)\r
250         {\r
251             mThreadTitleViewToolbarDragCapture = true;\r
252             mThreadTitleViewPointCapture = e.GetPosition(mToolbarThreadTitleView);\r
253 \r
254         }\r
255 \r
256         private void mThreadTitleViewToolHandle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)\r
257         {\r
258             mThreadTitleViewToolbarDragCapture = false;\r
259 \r
260         }\r
261 \r
262         private void mThreadTitleViewToolHandle_MouseMove(object sender, MouseEventArgs e)\r
263         {\r
264             if (!mThreadTitleViewToolbarDragCapture)\r
265                 return;\r
266             Point p = e.GetPosition(mToolbarThreadTitleView);\r
267             Vector v = Point.Subtract(p, mThreadTitleViewPointCapture);\r
268             if (v.Length > NTDragDrop.DRAG_START_MOVE_DELTA)\r
269             {\r
270                 if (NTUserPreference.ThreadTitleViewToolbarPosition\r
271                     == NTDragDrop.TOOLBAR_LOCATION_RIGHT)\r
272                 {\r
273                     mThreadTitleViewLHSDragCanvas.Visibility = System.Windows.Visibility.Visible;\r
274                 }\r
275                 else\r
276                 {\r
277                     mThreadTitleViewRHSDragCanvas.Visibility = System.Windows.Visibility.Visible;\r
278                 }\r
279                 startDrag2();\r
280                 e.Handled = true;\r
281                 mThreadTitleViewToolbarDragCapture = false;\r
282             }\r
283 \r
284         }\r
285 \r
286     }\r
287 }\r