Fix generated interfaces visibility + add macro for PropertiesChanged
As discussed previously, it is not convenient at the moment to emit signals such as PropertiesChanged since some of the generated interfaces are not public (#132 (closed))
Changes:
- Introspectable, Peer and Properties are all public
- dbus_interface supports an additional attribute, property_changed, which generates a PropertiesChanged signal based on the method name, which must either match $property_changed (to distinguish from getter/setter) or be overridden using the "name" attribute as usual
What's missing:
- doc (I'd prefer to wait for your opinion before diving in too deep :p)
To discuss:
- whether you're OK or not with the macro changes
- the macro code is getting somewhat convoluted, I was thinking a few bits could be extracted? (the logic to create a getter/setter/signal, to map the method name, etc)
- naming? specifically, maybe a mod for Introspectable/Peer/Properties (zbus::generated? zbus::freedesktop?)
- tests (I don't know if there is a more minimal way to test the generated code, couldn't think of a way to do it)
Edited by Alexandre Trendel