> 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 ;-)
