Hello, I have developed these two plugins in Python
I know how plugins are supposed to work in Synfig, they take sif file as input and return a sif file with it’s internal data modified. And there is no way for plugin to get input from user, here’s a example for why there is need for input from user.
For the plugin I created (which centers the origin) if there would be some kind of UI for the plugins to interact with users I can get the which layers the user want to center the origin. It’s not necessary that user always wants all the layers to be operated on.
I haven’t tried but taking input from command line doesn’t seem to be a good option, think of it like what if user wants to select multiple objects. If you would not be efficient to select all the options with command line.
What do you want ?
I think if we can use webview to provide a UI for the plugin it will be great feature for plugin developers. Software like Adobe AfterEffects do this, they have a web view panel which plugin developers can use to render UI .
Why can’t you do it ?
I am still learning C++ and I don’t have much experience with it, but if someone guided me so that I can properly start making improvements to the UI of Synfig, I would definitely help.
How should we do it ?
I found this
This can implemented with gtkmm, according to them “It supports two-way JavaScript bindings (to call JavaScript from C/C++/Go and to call C/C++/Go from JavaScript).” So we can call functions from JavaScript to C++ so we don’t need to have C++ knowledge for it. If some how we make all the function call available to JavaScript then plugin will be more powerful.
Is this really necessary ?
I think it is really necessary, if Synfig allows for development of plugins which will also have control for UI then more powerful plugins can be developed, for example we can create something like Animation Nodes (doesn’t use webview) for Synfig. It will give more potential for developers.
What are other suggestions?
I don’t necessarily think webview is needed. But some way to show the UI is needed.

