@@ -3226,27 +3226,38 @@ def set_history_buttons(self):
3226
3226
3227
3227
3228
3228
class ToolEvent (object ):
3229
- """Base event for tool communication """
3230
- def __init__ (self , name , sender ):
3229
+ """Event for tool manipulation (add/remove) """
3230
+ def __init__ (self , name , sender , tool ):
3231
3231
self .name = name
3232
3232
self .sender = sender
3233
+ self .tool = tool
3233
3234
3234
3235
3235
3236
class ToolTriggerEvent (ToolEvent ):
3236
3237
"""Event to inform that a tool has been triggered"""
3237
- def __init__ (self , name , tool , sender , canvasevent = None , data = None ):
3238
- ToolEvent .__init__ (self , name , sender )
3239
- self .tool = tool
3238
+ def __init__ (self , name , sender , tool , canvasevent = None , data = None ):
3239
+ ToolEvent .__init__ (self , name , sender , tool )
3240
3240
self .canvasevent = canvasevent
3241
3241
self .data = data
3242
3242
3243
3243
3244
- class NavigationEvent (ToolEvent ):
3245
- """Event for navigation tool management (add/remove/message)"""
3246
- def __init__ (self , name , sender , ** kwargs ):
3247
- ToolEvent .__init__ (self , name , sender )
3248
- for key , value in kwargs .items ():
3249
- setattr (self , key , value )
3244
+ class ToolAddedEvent (ToolEvent ):
3245
+ """Event triggered when a tool is added"""
3246
+ def __init__ (self , name , sender , tool , group , position ):
3247
+ ToolEvent .__init__ (self , name , sender , tool )
3248
+ self .group = group
3249
+ self .position = position
3250
+
3251
+
3252
+ class NavigationMessageEvent (object ):
3253
+ """Event carring messages from navigation
3254
+
3255
+ Messages are generaly displayed to the user by the toolbar
3256
+ """
3257
+ def __init__ (self , name , sender , message ):
3258
+ self .name = name
3259
+ self .sender = sender
3260
+ self .message = message
3250
3261
3251
3262
3252
3263
class NavigationBase (object ):
@@ -3303,7 +3314,7 @@ def mpl_disconnect(self, cid):
3303
3314
3304
3315
Example usage::
3305
3316
3306
- cid = navigation.mpl_connect('tool-trigger-zoom ', on_press)
3317
+ cid = navigation.mpl_connect('tool_trigger_zoom ', on_press)
3307
3318
#...later
3308
3319
navigation.mpl_disconnect(cid)
3309
3320
"""
@@ -3315,7 +3326,7 @@ def message_event(self, message, sender=None):
3315
3326
sender = self
3316
3327
3317
3328
s = 'tool_message_event'
3318
- event = NavigationEvent (s , sender , message = message )
3329
+ event = NavigationMessageEvent (s , sender , message )
3319
3330
self ._callbacks .process (s , event )
3320
3331
3321
3332
@property
@@ -3388,7 +3399,7 @@ def remove_tool(self, name):
3388
3399
self ._remove_keys (name )
3389
3400
3390
3401
s = 'tool_removed_event'
3391
- event = NavigationEvent (s , self , tool = tool )
3402
+ event = ToolEvent (s , self , tool )
3392
3403
self ._callbacks .process (s , event )
3393
3404
3394
3405
del self ._tools [name ]
@@ -3449,28 +3460,28 @@ def add_tool(self, name, tool, group=None, position=None):
3449
3460
3450
3461
def _tool_added_event (self , tool , group , position ):
3451
3462
s = 'tool_added_event'
3452
- event = NavigationEvent (s , self ,
3453
- tool = tool ,
3454
- group = group ,
3455
- position = position )
3463
+ event = ToolAddedEvent (s , self ,
3464
+ tool ,
3465
+ group ,
3466
+ position )
3456
3467
self ._callbacks .process (s , event )
3457
3468
3458
- def _handle_toggle (self , name , sender , canvasevent , data ):
3469
+ def _handle_toggle (self , tool , sender , canvasevent , data ):
3459
3470
# Toggle tools, need to be untoggled before other Toggle tool is used
3460
3471
# This is called from tool_trigger_event
3461
3472
3462
- if self ._toggled == name :
3473
+ if self ._toggled == tool . name :
3463
3474
toggled = None
3464
3475
elif self ._toggled is None :
3465
- toggled = name
3476
+ toggled = tool . name
3466
3477
else :
3467
3478
# Untoggle previously toggled tool
3468
3479
self .tool_trigger_event (self ._toggled , self , canvasevent , data )
3469
- toggled = name
3480
+ toggled = tool . name
3470
3481
3471
3482
self ._toggled = toggled
3472
- for a in self .canvas .figure .get_axes ():
3473
- a .set_navigate_mode (self ._toggled )
3483
+ # for a in self.canvas.figure.get_axes():
3484
+ # a.set_navigate_mode(self._toggled)
3474
3485
3475
3486
def _get_cls_to_instantiate (self , callback_class ):
3476
3487
# Find the class that corresponds to the tool
@@ -3512,7 +3523,8 @@ def tool_trigger_event(self, name, sender=None, canvasevent=None,
3512
3523
self ._trigger_tool (name , sender , canvasevent , data )
3513
3524
3514
3525
s = 'tool-trigger-%s' % name
3515
- event = ToolTriggerEvent (s , self ._tools [name ], sender , canvasevent , data )
3526
+ event = ToolTriggerEvent (s , sender , self ._tools [name ], canvasevent ,
3527
+ data )
3516
3528
self ._callbacks .process (s , event )
3517
3529
3518
3530
def _trigger_tool (self , name , sender = None , canvasevent = None , data = None ):
@@ -3523,7 +3535,7 @@ def _trigger_tool(self, name, sender=None, canvasevent=None, data=None):
3523
3535
tool = self ._tools [name ]
3524
3536
3525
3537
if isinstance (tool , tools .ToolToggleBase ):
3526
- self ._handle_toggle (name , sender , canvasevent , data )
3538
+ self ._handle_toggle (tool , sender , canvasevent , data )
3527
3539
3528
3540
# Important!!!
3529
3541
# This is where the Tool object is triggered
0 commit comments