@@ -37,9 +37,7 @@ public class Application
37
37
private readonly PaintEventArgs paintEventArgs ;
38
38
private float mousePositionX ;
39
39
private float mousePositionY ;
40
- private MouseEvents userMouseEvent ;
41
- private MouseEventArgs userMouseArgs ;
42
-
40
+
43
41
public Application ( )
44
42
{
45
43
TabSwitching = true ;
@@ -157,107 +155,30 @@ public void ProccessKeys(KeyEventArgs args, KeyEvents keyEventType)
157
155
if ( keyEventType == KeyEvents . Down )
158
156
currentKeyDown = args . KeyCode ;
159
157
}
160
- public void ProccessMouse ( float mouseX , float mouseY )
158
+ public void ProccessMouse ( MouseEvents mE , float mX , float mY , MouseButtons mButton , int clicks , int delta )
161
159
{
162
160
if ( scaleX != 1f || scaleY != 1f )
163
161
{
164
- mouseX /= scaleX ;
165
- mouseY /= scaleY ;
162
+ mX /= scaleX ;
163
+ mY /= scaleY ;
166
164
}
167
165
168
- mouseEvent = MouseEvents . None ;
169
- mouseButton = MouseButtons . None ;
166
+ mouseEvent = mE ;
167
+ mouseButton = mButton ;
168
+ mouseWheelDelta = delta ;
170
169
171
- mousePositionChanged = mousePositionX != mouseX || mousePositionY != mouseY ;
170
+ mousePositionChanged = mousePositionX != mX || mousePositionY != mY ;
172
171
if ( mousePositionChanged )
173
172
updateHoveredControl = true ;
174
173
175
- mousePositionX = mouseX ;
176
- mousePositionY = mouseY ;
177
-
178
- #region Set events.
179
-
180
- int eventButton = - 1 ;
181
- int eventClicks = 0 ;
182
- float eventDelta = 0 ;
183
- EventType eventType = EventType . Ignore ;
184
-
185
- if ( userMouseArgs != null )
186
- {
187
- switch ( userMouseArgs . Button )
188
- {
189
- case MouseButtons . Left : eventButton = 0 ; break ;
190
- case MouseButtons . Right : eventButton = 1 ; break ;
191
- case MouseButtons . Middle : eventButton = 2 ; break ;
192
- }
193
- eventClicks = userMouseArgs . Clicks ;
194
- eventDelta = userMouseArgs . Delta ;
195
- switch ( userMouseEvent )
196
- {
197
- case MouseEvents . Down : eventType = EventType . MouseDown ; break ;
198
- case MouseEvents . Up : eventType = EventType . MouseUp ; break ;
199
- case MouseEvents . Wheel : eventType = EventType . ScrollWheel ; break ;
200
- }
201
- userMouseArgs = null ;
202
- }
203
- else
204
- {
205
- eventButton = Event . current . button ;
206
- eventClicks = Event . current . clickCount ;
207
- eventDelta = Event . current . delta . y ;
208
- eventType = Event . current . type ;
209
- }
210
-
211
- switch ( eventType )
212
- {
213
- case EventType . MouseDown :
214
- switch ( eventButton )
215
- {
216
- case 0 :
217
- mouseButton = MouseButtons . Left ;
218
- mouseEvent = MouseEvents . Down ;
219
- if ( eventClicks > 1 )
220
- mouseEvent = MouseEvents . DoubleClick ;
221
- break ;
222
- case 1 :
223
- mouseButton = MouseButtons . Right ;
224
- mouseEvent = MouseEvents . Down ;
225
- break ;
226
- case 2 :
227
- mouseButton = MouseButtons . Middle ;
228
- mouseEvent = MouseEvents . Down ;
229
- break ;
230
- }
231
- break ;
232
- case EventType . MouseUp :
233
- switch ( eventButton )
234
- {
235
- case 0 :
236
- mouseButton = MouseButtons . Left ;
237
- mouseEvent = MouseEvents . Up ;
238
- break ;
239
- case 1 :
240
- mouseButton = MouseButtons . Right ;
241
- mouseEvent = MouseEvents . Up ;
242
- break ;
243
- case 2 :
244
- mouseButton = MouseButtons . Middle ;
245
- mouseEvent = MouseEvents . Up ;
246
- break ;
247
- }
248
- break ;
249
- case EventType . ScrollWheel :
250
- mouseEvent = MouseEvents . Wheel ;
251
- mouseWheelDelta = eventDelta ;
252
- break ;
253
- }
254
-
255
- #endregion
256
-
174
+ mousePositionX = mX ;
175
+ mousePositionY = mY ;
176
+
257
177
//if (_mouseLastClickControl != null && _mouseEvent == MouseEvents.None && _mouseMovePosition != mousePosition)
258
178
// _ProcessControl(mousePosition, _mouseLastClickControl, true);
259
179
260
- if ( mouseEvent == MouseEvents . None && ! mousePositionChanged ) return ;
180
+ if ( mE == MouseEvents . None && ! mousePositionChanged )
181
+ return ;
261
182
262
183
// Dispose context first.
263
184
for ( int i = Contexts . Count - 1 ; i >= 0 ; i -- ) // We want to dispose child context first.
@@ -266,53 +187,43 @@ public void ProccessMouse(float mouseX, float mouseY)
266
187
if ( ! contextControl . uwfContext ) continue ;
267
188
268
189
if ( Contains ( contextControl , hoveredControl ) ) continue ;
269
- if ( mouseEvent != MouseEvents . Down ) continue ;
190
+ if ( mE != MouseEvents . Down ) continue ;
270
191
271
192
contextControl . Dispose ( ) ;
272
193
}
273
194
274
- if ( hoveredControl == null && mouseEvent == MouseEvents . Up )
195
+ if ( hoveredControl == null && mE == MouseEvents . Up )
275
196
{
276
197
dragndrop = false ;
277
198
dragData = null ;
278
199
dragRender = null ;
279
200
}
280
201
281
202
if ( hoveredControl != null )
282
- _ProcessControl ( new PointF ( mouseX , mouseY ) , hoveredControl , false ) ;
203
+ _ProcessControl ( new PointF ( mX , mY ) , hoveredControl , false ) ;
283
204
284
- if ( mouseEvent == MouseEvents . Down )
205
+ if ( mE == MouseEvents . Down )
285
206
{
286
- var downArgs = new MouseEventArgs ( mouseButton , 1 , ( int ) mouseX , ( int ) mouseY , 0 ) ;
207
+ var downArgs = new MouseEventArgs ( mouseButton , clicks , ( int ) mX , ( int ) mY , delta ) ;
287
208
MouseHook . RaiseMouseDown ( hoveredControl , downArgs ) ;
288
209
}
289
210
290
- if ( mouseEvent == MouseEvents . Up )
211
+ if ( mE == MouseEvents . Up )
291
212
{
292
- var upArgs = new MouseEventArgs ( mouseButton , 1 , ( int ) mouseX , ( int ) mouseY , 0 ) ;
213
+ var upArgs = new MouseEventArgs ( mouseButton , clicks , ( int ) mX , ( int ) mY , delta ) ;
293
214
MouseHook . RaiseMouseUp ( hoveredControl , upArgs ) ;
294
215
}
295
216
}
296
- public void ProccessMouse ( PointF mousePosition )
297
- {
298
- ProccessMouse ( mousePosition . X , mousePosition . Y ) ;
299
- }
300
217
public void RaiseMouseEvent ( MouseEvents mEv , MouseEventArgs mArgs )
301
218
{
302
- userMouseEvent = mEv ;
303
- userMouseArgs = mArgs ;
304
-
305
- ProccessMouse ( new Drawing . PointF ( mArgs . X , mArgs . Y ) ) ;
219
+ if ( mArgs != null )
220
+ ProccessMouse ( mEv , mArgs . X , mArgs . Y , mArgs . Button , mArgs . Clicks , mArgs . Delta ) ;
306
221
}
307
222
/// <summary>
308
223
/// Redrawing the whole screen.
309
224
/// </summary>
310
225
public void Redraw ( )
311
226
{
312
- // Scale if needed.
313
- if ( scaleX != 1f || scaleY != 1f )
314
- UnityEngine . GUI . matrix = UnityEngine . Matrix4x4 . TRS ( Vector3 . zero , Quaternion . AngleAxis ( 0 , Vector3 . up ) , new Vector3 ( scaleX , scaleY , 1 ) ) ;
315
-
316
227
paintEventArgs . Graphics . Clear ( System . Drawing . Color . White ) ;
317
228
318
229
for ( int i = 0 ; i < Forms . Count ; i ++ )
0 commit comments