Hello, Andrew! I am somehow missing the Python example you are giving in your patch. Can you add this a simple example to the sources to get a basic/dummy skeleton working right from scratch?
Regards, Clemens On 15/08/2018 11.31, Andrew Lutsenko wrote: > 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 <http://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 > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

