[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
gEDA-user: PCB Gtk port
Hi all,
Since the things left to do on the PCB gtk port are starting to look
more and more like loose ends, I think it's time to give an update
on its status. Maybe it can now begin to work its way into CVS
and in the meantime I'm giving a tarball link below for anyone
interested in giving it a spin right now.
I'll list the user interface differences to expect and then run
through some issues or things not yet done.
User Interface differences
--------------------------
0) First up, as I've indicated in some previous postings, the Xt/Xaw
interface is completely replaced with a Gtk interface that uses
the Gtk 2.4 api. Where you previously would edit the PCB
resource file, there is now a gui editing in File->Preferences.
I'm sure there's some configuration I've overlooked, so people
should speak up about configurability they need added.
1) Top level window layout:
1 click drawing layer selection instead of the drop down layer menu.
1 click routing style selection instead of the top "Style" menu.
1 click access to editing the current routing style sizes.
2) Edited route stylechanges can be diverted to a couple of temporary
route styles to get a larger set of working route styles.
3) Various windows (top level, netlist, library height) remember your last
resize so PCB restarts give you windows at the size you last had them.
4) All colors can be configured in the preferences gui and color schemes
can be saved to files which can be reloaded at any time.
5) With the mouse scroll wheel you can pan the layout vertically,
<shift>scroll pans horizontally.
6) Quick zoom level changes using the mouse scroll wheel in a zoom
spin button. Autoscroll speed is a function of zoom level which
combined with mouse wheel layout panning gives you nice
control during line routing at all zoom levels.
7) Consistent mil <-> mm units handling in the gui. When you select
"Settings->Enable millimeter grid units", everything in the gui better be
millimeters else it's a bug! Except that keyboard commands entered still
need the "mil" or "mm" args and maybe that can be changed later so that if
the units are omitted, the currents units in use will be used as default.
8) Command entry is optionally a separate window or the traditional
overlay of the status line. A command window can conveniently stay
up for repeated command entries and it provides access to an
experimental mini command reference which can be expanded if
people think it's a good thing to have. The history list can be
accessed with cursor key navigation or a popdown combo box list
for quick access to previous commands.
9) There's a runtime key shortcut reference window. Also experimental,
but I think having these references can be useful for new users,
or certainly for me after I haven't used PCB for a month or so.
10) dynamic top window widget repacking to be friendly to narrow
screens, selectable in the preferences gui.
A few things not done or issues
-------------------------------
1) PCB documentation is heavily influenced by the Xt resource terminology
and it's something that needs looking at to change to or merge with
the Gtk interface.
2) I did not implement all the command line arguments. It seemed
inconsistent that some settings were command line settable while others
were not and besides, settings are now to be user configurable in the gui.
But this is a minor point, command line args are trivial to add back in.
3) Gtk doesn't have a panner widget analogous to the Xt panner widget and
I couldn't think of an elegant substitute, so a print panner widget
is not implemented. It means that printouts will simply be centered
on the print media. But there's a spot for something in the print
dialog window should someone have an idea. It could be a simple
couple of spin buttons that set offsets into the media, radio buttons
to justify printouts top, bottom, left, right, centered, or someone
(with some time!) could write a custom Gtk panner widget. Or it could
be left as is with centered printouts.
The top window panner is replaced with Gtk horizontal and vertical
scrollbars which is fine. With this and the new mouse wheel
scrolling, I find I don't miss the top window Xt panner at all.
4) Commands entered via the command window can operate only on selected
objects since with a separate window you can't be entering a command
and have the cursor wandering over the layout window. But this is not
trapped out yet and if you try it you'll get surprise results. Command
entry in the status line area mode should work as before.
5) The background image feature is not ported yet because I didn't
have an image to work with right now. I suspect this is low
priority and can be done later. Should be easy with gdk_pixbuf.
6) Vertical pin name/number text is not implemented. My first cut at it
using Pango didn't work and I haven't gotten back to it yet. (I'm not
talking about the text tool text being rotated vertical, that's fine).
7) The "disable all nets" of the netlist window is not implemented.
I'm sort of fuzzy on what it's purpose is and the Xt code indicates
individual nets can be disabled but I couldn't see the mechanism
on how that could happen. So if somebody can clear up my confusion
there's no problem adding in the disable nets function. But I do
get a segfault in the Xt PCB if I disable all nets and autoroute
some selected rats.
8) I've been hunting for bugs but the ones I've been finding lately
are also in the Xt PCB. So unless the bug directly impacted
my gtk gui implementation (and didn't require extensive changes
to the core PCB, eg pinout window), I'm not trying to fix those yet.
Well, that's the broad overview. Dan worked up a configure script for
configuring for a Gtk compile and I hope it can work well enough after
all my changes to make it possible for people to give the Gtk PCB
a bug finding workout.
You can find the tarball:
http://members.dslextreme.com/users/billw/test/pcb-gtk.tar.gz
Untar it and:
cd pcb-gtk
./configure --enable-gtk --disable-xaw
make
to run it (the wrapper pcbtest.sh should not be used):
cd src
./pcb-bin
If you want to run it much maybe copy it to some bin directory as
pcb-test or something, but I doubt you should do an install yet... so
if you want the gtk pcb to find your existing library installation,
make your configure command:
./configure --enable-gtk --disable-xaw --prefix same-as-installed-pcb
When it runs, it uses a ~/.pcb directory for saving the preferences
file and color schemes.
I'll continue to periodically update the web tarball with any changes
I make until I know what can happen with CVS.
And that's all I know,
Bill