> On Monday 31 October 2005 12:00 pm, DJ Delorie wrote:
> >  Special layer names "outline", "fab", and "drill" may be selected
> >      by name rather than idx, but it's assumed that the idx for a
> >      given special layer does not change between calls to
> >      set_layer_list() (below).  */
> >   int (*set_layer) (const char *name, int idx);
> 
> How should more than eight layers be handled at the GUI level?

(as an aside, I'm assuming the gui will directly tweak the layer list
structure, so that this call is just a way for the core to tell the
gui which layer it's on).

Well, in my trivial lesstif hid, I'm going to have a submenu for
selecting the active layer, and another for hiding/showing layers.
But that's just because it's the easiest thing to code in a hurry (the
menu is read from pcb-menu.res ;) and with lesstif you can tear off
those menus to make dialog boxes with no extra code :-)

I think the list-on-side layout is OK, it just needs some way of
scrolling if the list exceeds the space available.  You don't want to
make the space bigger, becuase screen space is valuable in these types
of programs.

Alternately, a way of "minimizing" a rarely used layer button
(reducing it to a few pixels, clicking on this 'line' expands it)
might be useful.

> Right now it makes sense to have them down the left side of the screen since 
> they all fit, but once we go to thirty-two layers they no longer fit on the 
> screen.  What is the best way to do this? 

Personally, I'd rather have the layer controls in a separate dialog.
That way, you can take the space needed and the user can position it
in a good spot (or even iconify or hide it).

Perhaps the dialog box could configure the sidebar to only show
selected layers, so you can put the layers you care about in the
sidebar and the "universe" in the dialog box.

> which I'm not sure all GUI widget kits support,

That's why I think HID wins here - each GUI kit does what it can, in a
way that makes sense and works well with its design.  In theory, we
can code different usage philosophies too, not just different toolkits
- for example, one layout that puts all the controls around the window
border (the pcb-xaw way), and another that relies on dialogs and
multiple windows (like gimp).  In Windows or OS/x, you'd use the
docking stuff.

But first, I have to finish it ;-)

Reply via email to