Hi KiCad devs, I am proposing an addition to plugin system. Probably most will agree that menus suck. Toolbars suck less :)
In my plugin I added a dirty hack to modify top toolbar from plugin init code to add a button that calls plugins run() method. It is broken on linux X11 and is not a sustainable way others can add buttons in their plugins. But having a button was quite popular among users so I decided to implement this functionality directly in pcbnew. I introduced one more field plugin writers can define in defaults() that contains path to png icon and if that string is not empty, pcbnew will attempt to load that icon and add a button to top toolbar with action that calls the same run() method. I traced in code how plugin action menu is generated and added similar logic for buttons. Here is how the result looks like: https://i.imgur.com/f3xg1FE.gif Sample dummy plugin __init__.py code: import os import pcbnew import wx class Plugin1(pcbnew.ActionPlugin): def defaults(self): self.name = "Dummy Plugin 1" self.category = "Read PCB" self.description = "" self.icon_file_name = os.path.join(os.path.dirname(__file__), 'icon.png') def Run(self): wx.MessageBox("Plugin 1") Plugin1().register() It's as simple as that. The patch is attached. It probably needs some error checking but seems to be working great. Tested in win64 so far. I'm open to suggestions on how to get it to good state, I will also test on linux asap. Regards, Andrew
0001-Add-toolbar-buttons-for-action-plugins.patch
Description: Binary data
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

