Hi, Andrew!

On 17/08/2018 07.10, Andrew Lutsenko wrote:
> Or are you asking to update docs in the repo?

I suggested to have your sample pluging and icon bundled with your patch, ready 
for git to apply (once committers agree...).

Clemens

On 17/08/2018 07.10, Andrew Lutsenko wrote:
> Hi Clemens,
> 
> See sample plugin attached. Extract it into kicad's share/scripting/plugins 
> folder.
> One of other scanned directories that are documented in kicadplugins.i 
> <https://github.com/KiCad/kicad-source-mirror/blob/6fdc5972f8431b4d5831a32649e67bfe20d05de8/scripting/kicadplugins.i#L180>
>  should work too.
> 
> Or are you asking to update docs in the repo?
> Documentation/development/pcbnew-plugins.md seems like the right place.
> I will update it once committers agree with the path I've chosen to implement 
> this.
> 
> 
> 
> On Thu, Aug 16, 2018 at 4:48 AM Clemens Koller <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>     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> <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] 
> <mailto:[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] 
> <mailto:[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

Reply via email to