[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Code Sprint prep.



> (1) for the implementation of the ":foo" process. Specificly this, I
> would like to change the dialog from a dropdown menu to a more
> vim-like prompt on the bottom of the window. For now I'd like to
> give a go at allowing up/down keys for history, so I don't need to
> use a mouse.

The lesstif HID does it this way; the : key replaces the status bar
with a command prompt window.  I have no idea how to do it in gtk, but
it's all going to be in src/hid/gtk/*

> (2) for drc() window focus, so you can deal with each DRC
> individually, as it appears. That way there is no need to re-call
> drc().

Lesstif does this also, so again, a gtk hid thing.

> (3) adding non-90deg rotates.  I found rotate.{ch}, and I think I
> have a grasp on those routines, but where do I look for the calls to
> the functions in rotate.c.

This is more interesting.  I've asked Harry about this, and there's a
bunch of things that need to know about rotated parts (specifically,
rotated pads) in order for it all to work right.

There are a couple of things that can be worked on independently:

* The code to draw non-90 pads.  Easy to test; make a footprint file
  and edit the pads with a text editor to be at an angle.  Use the
  library window to add it to a blank board and make sure everything
  works.  Specifically, square pads at odd angles need to be drawn as
  polygons for gerber output.

* The code to rotate things by other than 90 degrees.  rotate.c does
  the work (or should).  The calls come through the rotate tool in
  src/action.c via Notify().  Be careful - free rotation can easily
  mess up spacing due to rounding errors.  I'm thinking that storing
  the rotation angle in the element, rather than actually rotating it,
  avoids this; although it makes everything else more complex.

  A separate action that free-rotates might be safer, less likely to
  be accidentally invoked.  Also easier to specify the angle, like
  :RotateAny(35)

* Everything else, like drc, autorouter, optimizer, connection
  checking ("find"), reports, etc.


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user