'From etoys3.0 of 7 March 2008 [latest update: #2138] on 9 September 2008 at 3:27:10 pm'! "Change Set: dbusObjects7-bf Date: 9 September 2008 Author: Bert Freudenberg Name: DBus-Objects-bf.7 Author: bf Time: 9 September 2008, 3:25:55 pm UUID: fb4a88ea-6ca3-4420-a046-f8192d70bd76 Ancestors: DBus-Objects-bf.6 - add argument matching on DBusProxy"! !DBusProxy methodsFor: 'signals' stamp: 'bf 9/9/2008 14:37'! onDBusSignal: memberString interface: interfaceString arguments: argMatches send: aSelector to: anObject "argMatches are zero-based: {0->'some string'} matches the first argument" | match | match := DBusMatch new. match path: self dbusPath. memberString ifNotNil: [match member: memberString]. interfaceString ifNotNil: [match interface: interfaceString]. argMatches do: [:arg | match arg: arg key is: arg value]. aSelector ifNil: [self dbusConnection removeMatch: match. ^match]. self dbusConnection onMatch: match do: [:msg | anObject perform: aSelector withEnoughArguments: (msg arguments collect: [:each | each fromDBusArgument: self])]. ^match! ! !DBusProxy methodsFor: 'signals' stamp: 'bf 9/9/2008 14:19'! onDBusSignal: memberString interface: interfaceString send: aSelector to: anObject ^self onDBusSignal: memberString interface: interfaceString arguments: #() send: aSelector to: anObject ! !