kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #37155
Re: [PATCH] RFC: toolbar button support for action plugins
-
To:
kicad-developers@xxxxxxxxxxxxxxxxxxx
-
From:
Clemens Koller <cko@xxxxxxxxx>
-
Date:
Thu, 16 Aug 2018 13:43:21 +0200
-
In-reply-to:
<CADn3vW0D3EdL+=JFPvRLw_DaRX3+TPJSXzuMd=Hp7LBU55ZYaw@mail.gmail.com>
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0
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 : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
Follow ups
References