MagicListener constructor creates a listener just like the addlistener function. The difference is the constructor accepts one more input, one object or a cell of objects, and the life cycle of the returned object will be linked also on these objects.
Exemple:
Without MagicListener:
[Class1.m]
classdef Class1 < handle
	events
		myEvent
	end
end
[Class2.m]
classdef Class2 < handle
	methods
		function this = Class2( obj1 )
			addlistener( obj1, 'myEvent', @(H,E) this.callback() );
		end
		function callback( this )
			disp( 'CALLBACK!' );
		end
	end
end
>> obj1 = Class1();
>> obj2 = Class2( obj1 );
>> notify( obj1, 'myEvent' );
CALLBACK!
>> delete( obj2 );
>> notify( obj1, 'myEvent' );
Warning: Error occurred while executing callback:
Invalid or deleted object.
With MagicListener:
[Class1.m]
classdef Class1 < handle
	events
		myEvent
	end
end
[Class2.m]
classdef Class2 < handle
	methods
		function this = Class2( obj1 )
			MagicListener( obj1, 'myEvent', @(H,E) this.callback(), this );
		end
		function callback( this )
			disp( 'CALLBACK!' );
		end
	end
end
>> obj1 = Class1();
>> obj2 = Class2( obj1 );
>> notify( obj1, 'myEvent' );
CALLBACK!
>> delete( obj2 );
>> notify( obj1, 'myEvent' );
Cite As
Benoit Charles (2025). MagicListener (https://uk.mathworks.com/matlabcentral/fileexchange/34606-magiclistener), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Programming > Classes > Define Classes > Handle Classes >
Tags
Acknowledgements
Inspired: Graphical Wrappers
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0.0 | 
