9
9
using ReClassNET . Extensions ;
10
10
using ReClassNET . Memory ;
11
11
using ReClassNET . Nodes ;
12
- using ReClassNET . Project ;
13
12
using ReClassNET . Util ;
14
13
15
14
namespace ReClassNET . UI
@@ -219,6 +218,8 @@ protected override void OnPaint(PaintEventArgs e)
219
218
catch ( Exception )
220
219
{
221
220
Debug . Assert ( false ) ;
221
+
222
+ throw ;
222
223
}
223
224
}
224
225
@@ -239,149 +240,142 @@ protected override void OnMouseClick(MouseEventArgs e)
239
240
{
240
241
if ( hotSpot . Rect . Contains ( e . Location ) )
241
242
{
242
- try
243
- {
244
- var hitObject = hotSpot . Node ;
243
+ var hitObject = hotSpot . Node ;
245
244
246
- if ( hotSpot . Type == HotSpotType . OpenClose )
247
- {
248
- hitObject . ToggleLevelOpen ( hotSpot . Level ) ;
245
+ if ( hotSpot . Type == HotSpotType . OpenClose )
246
+ {
247
+ hitObject . ToggleLevelOpen ( hotSpot . Level ) ;
249
248
250
- invalidate = true ;
249
+ invalidate = true ;
251
250
252
- break ;
253
- }
254
- if ( hotSpot . Type == HotSpotType . Click )
255
- {
256
- hitObject . Update ( hotSpot ) ;
251
+ break ;
252
+ }
253
+ if ( hotSpot . Type == HotSpotType . Click )
254
+ {
255
+ hitObject . Update ( hotSpot ) ;
257
256
258
- invalidate = true ;
257
+ invalidate = true ;
259
258
260
- break ;
261
- }
262
- if ( hotSpot . Type == HotSpotType . Select )
259
+ break ;
260
+ }
261
+ if ( hotSpot . Type == HotSpotType . Select )
262
+ {
263
+ if ( e . Button == MouseButtons . Left )
263
264
{
264
- if ( e . Button == MouseButtons . Left )
265
+ if ( ModifierKeys == Keys . None )
265
266
{
266
- if ( ModifierKeys == Keys . None )
267
- {
268
- ClearSelection ( ) ;
267
+ ClearSelection ( ) ;
269
268
270
- hitObject . IsSelected = true ;
269
+ hitObject . IsSelected = true ;
271
270
272
- selectedNodes . Add ( hotSpot ) ;
271
+ selectedNodes . Add ( hotSpot ) ;
273
272
274
- OnSelectionChanged ( ) ;
273
+ OnSelectionChanged ( ) ;
275
274
276
- selectionAnchor = selectionCaret = hotSpot ;
275
+ selectionAnchor = selectionCaret = hotSpot ;
276
+ }
277
+ else if ( ModifierKeys == Keys . Control )
278
+ {
279
+ hitObject . IsSelected = ! hitObject . IsSelected ;
280
+
281
+ if ( hitObject . IsSelected )
282
+ {
283
+ selectedNodes . Add ( hotSpot ) ;
277
284
}
278
- else if ( ModifierKeys == Keys . Control )
285
+ else
279
286
{
280
- hitObject . IsSelected = ! hitObject . IsSelected ;
287
+ selectedNodes . Remove ( selectedNodes . FirstOrDefault ( c => c . Node == hitObject ) ) ;
288
+ }
281
289
282
- if ( hitObject . IsSelected )
290
+ OnSelectionChanged ( ) ;
291
+ }
292
+ else if ( ModifierKeys == Keys . Shift )
293
+ {
294
+ if ( selectedNodes . Count > 0 )
295
+ {
296
+ var selectedNode = selectedNodes [ 0 ] . Node ;
297
+ if ( hitObject . GetParentContainer ( ) != null && selectedNode . GetParentContainer ( ) != hitObject . GetParentContainer ( ) )
283
298
{
284
- selectedNodes . Add ( hotSpot ) ;
299
+ continue ;
285
300
}
286
- else
301
+
302
+ if ( hotSpot . Node is BaseContainerNode )
287
303
{
288
- selectedNodes . Remove ( selectedNodes . FirstOrDefault ( c => c . Node == hitObject ) ) ;
304
+ continue ;
289
305
}
290
306
291
- OnSelectionChanged ( ) ;
292
- }
293
- else if ( ModifierKeys == Keys . Shift )
294
- {
295
- if ( selectedNodes . Count > 0 )
296
- {
297
- var selectedNode = selectedNodes [ 0 ] . Node ;
298
- if ( hitObject . GetParentContainer ( ) != null && selectedNode . GetParentContainer ( ) != hitObject . GetParentContainer ( ) )
299
- {
300
- continue ;
301
- }
307
+ var first = Utils . Min ( selectedNodes [ 0 ] , hotSpot , h => h . Node . Offset . ToInt32 ( ) ) ;
308
+ var last = first == hotSpot ? selectedNodes [ 0 ] : hotSpot ;
302
309
303
- if ( hotSpot . Node is BaseContainerNode )
304
- {
305
- continue ;
306
- }
307
-
308
- var first = Utils . Min ( selectedNodes [ 0 ] , hotSpot , h => h . Node . Offset . ToInt32 ( ) ) ;
309
- var last = first == hotSpot ? selectedNodes [ 0 ] : hotSpot ;
310
-
311
- ClearSelection ( ) ;
312
-
313
- var containerNode = selectedNode . GetParentContainer ( ) ;
314
- foreach ( var spot in containerNode . Nodes
315
- . SkipWhile ( n => n != first . Node )
316
- . TakeUntil ( n => n == last . Node )
317
- . Select ( n => new HotSpot
318
- {
319
- Address = containerNode . Offset . Add ( n . Offset ) ,
320
- Node = n ,
321
- Memory = first . Memory ,
322
- Level = first . Level
323
- } ) )
310
+ ClearSelection ( ) ;
311
+
312
+ var containerNode = selectedNode . GetParentContainer ( ) ;
313
+ foreach ( var spot in containerNode . Nodes
314
+ . SkipWhile ( n => n != first . Node )
315
+ . TakeUntil ( n => n == last . Node )
316
+ . Select ( n => new HotSpot
324
317
{
325
- spot . Node . IsSelected = true ;
326
- selectedNodes . Add ( spot ) ;
327
- }
318
+ Address = containerNode . Offset . Add ( n . Offset ) ,
319
+ Node = n ,
320
+ Memory = first . Memory ,
321
+ Level = first . Level
322
+ } ) )
323
+ {
324
+ spot . Node . IsSelected = true ;
325
+ selectedNodes . Add ( spot ) ;
326
+ }
328
327
329
- OnSelectionChanged ( ) ;
328
+ OnSelectionChanged ( ) ;
330
329
331
- selectionAnchor = first ;
332
- selectionCaret = last ;
333
- }
330
+ selectionAnchor = first ;
331
+ selectionCaret = last ;
334
332
}
335
333
}
336
- else if ( e . Button == MouseButtons . Right )
334
+ }
335
+ else if ( e . Button == MouseButtons . Right )
336
+ {
337
+ // If there is only one selected node, select the node the user clicked at.
338
+ if ( selectedNodes . Count <= 1 )
337
339
{
338
- // If there is only one selected node, select the node the user clicked at.
339
- if ( selectedNodes . Count <= 1 )
340
- {
341
- ClearSelection ( ) ;
342
-
343
- hitObject . IsSelected = true ;
340
+ ClearSelection ( ) ;
344
341
345
- selectedNodes . Add ( hotSpot ) ;
342
+ hitObject . IsSelected = true ;
346
343
347
- OnSelectionChanged ( ) ;
344
+ selectedNodes . Add ( hotSpot ) ;
348
345
349
- selectionAnchor = selectionCaret = hotSpot ;
350
- }
346
+ OnSelectionChanged ( ) ;
351
347
352
- ShowNodeContextMenu ( e . Location ) ;
348
+ selectionAnchor = selectionCaret = hotSpot ;
353
349
}
354
350
355
- invalidate = true ;
356
- }
357
- else if ( hotSpot . Type == HotSpotType . Drop )
358
- {
359
351
ShowNodeContextMenu ( e . Location ) ;
360
-
361
- break ;
362
352
}
363
- else if ( hotSpot . Type == HotSpotType . Delete )
364
- {
365
- hotSpot . Node . GetParentContainer ( ) . RemoveNode ( hotSpot . Node ) ;
366
353
367
- invalidate = true ;
354
+ invalidate = true ;
355
+ }
356
+ else if ( hotSpot . Type == HotSpotType . Drop )
357
+ {
358
+ ShowNodeContextMenu ( e . Location ) ;
368
359
369
- break ;
370
- }
371
- else if ( hotSpot . Type == HotSpotType . ChangeClassType || hotSpot . Type == HotSpotType . ChangeWrappedType || hotSpot . Type == HotSpotType . ChangeEnumType )
372
- {
373
- var handler = hotSpot . Type == HotSpotType . ChangeClassType
374
- ? ChangeClassTypeClick : hotSpot . Type == HotSpotType . ChangeWrappedType
375
- ? ChangeWrappedTypeClick : ChangeEnumTypeClick ;
360
+ break ;
361
+ }
362
+ else if ( hotSpot . Type == HotSpotType . Delete )
363
+ {
364
+ hotSpot . Node . GetParentContainer ( ) . RemoveNode ( hotSpot . Node ) ;
376
365
377
- handler ? . Invoke ( this , new NodeClickEventArgs ( hitObject , hotSpot . Address , hotSpot . Memory , e . Button , e . Location ) ) ;
366
+ invalidate = true ;
378
367
379
- break ;
380
- }
368
+ break ;
381
369
}
382
- catch ( Exception ex )
370
+ else if ( hotSpot . Type == HotSpotType . ChangeClassType || hotSpot . Type == HotSpotType . ChangeWrappedType || hotSpot . Type == HotSpotType . ChangeEnumType )
383
371
{
384
- Program . Logger . Log ( ex ) ;
372
+ var handler = hotSpot . Type == HotSpotType . ChangeClassType
373
+ ? ChangeClassTypeClick : hotSpot . Type == HotSpotType . ChangeWrappedType
374
+ ? ChangeWrappedTypeClick : ChangeEnumTypeClick ;
375
+
376
+ handler ? . Invoke ( this , new NodeClickEventArgs ( hitObject , hotSpot . Address , hotSpot . Memory , e . Button , e . Location ) ) ;
377
+
378
+ break ;
385
379
}
386
380
}
387
381
}
0 commit comments