On Sat, 2007-03-31 at 18:39 -0400, Stuart Brorson wrote: > If I were to be granted my wish, a better way to traverse hierarchy is > to have a tree widget (i.e. directory/file browser) either on the left > side of the gschem screen (like in -- ugh! -- MS Windows' file system > browser), or maybe in a pop-up window. Then if you click on a > particular sheet, it opens up in the main gschem window.
Got it in one ;) There is the corner case though, you might go "symbol/schematic->down" in multiple palaces, with the same child symbol / schematic. (Say "resistor-2.sym" for sake of example - even if it isn't a useful one) libgeda should only ever open one copy at once. It tries, but the path checking is broken by a "./" in the search path. With the gafrc I've played with, its a problem for down->schematic, not the symbol library. There needs to be a little differentiation between the structure, and what files are currently open - in that respect at least. > This pre-supposes that you have created the concept of "design" in > gschem. (That is, right now gschem only has the concept of a schematic > page. Yes, you can link schematic pages together in gschem, but the > different pages can have nothing to do with one another -- they were > just opened during the same gschem session.) The concept of "design" > would form the top-level data structure which would tie together all > the different, associated schematic pages into a logical unit. Then, > the tree widget would reflect the actual structure of the entire > design. A fact which is limiting libgeda unfortunately. This is one of the points Peter B and myself were looking to address in our data-structure diagram. I realised today we don't need a "root design" file, but we do need a "circuit" file - one for each level of hierarchy, referencing the schematic pages which make it up. Opening the root circuit is essentially enough to drag in the information about the design. It might be possible to tag an attribute in the schematic page to pull in siblings in that circuit, but I think a file is cleaner. "top-level" as exists now is difficult, it doesn't really map well, and has bits of everything in it. We used new names in our diagram to keep the concept clean, however I see a development path as follows: Force one gschem window per sub-circuit (hierarchy level). Each window has its own toplevel, and page list, so this maps nicely to the "circuit" concept. If we keep one instance of gschem (and hence libgeda) per "design", then the one running process has all the data it needs in the entire design, and allows us easy play at the sub-circuit level. (Which is where the core of the nice internal nelisting comes in). > I like the left/right arrows and the p. X of Y very much! I'm a > little unclear on the two down arrows, but suppose they are down > symbol and down schematic, right? If so, where's the up button? Ha.. I broke "up" in the flattening I mentioned before. I think it is easier, and functionally similar to replace it with "back" (as in web-brower navigation). Up was broken in libgeda anyway, if you consider the case of going "up" from, say a resistor symbol - which could be instantiated in multiple pages anyway. (It was certainly broken if you used the page-manager to jump pages in the mean time). The down arrows are as you say. The one with the under-bar is gtk stock for goto-bottom - a weak analogy, that a symbol is the lowest atom you get. In reality, I wanted to over-lay the goto-down arrow with an "S" or "C" for symbol and circuit, but didn't have time to code that, or make new stock icons. There is yet another page-navigation metaphor available to us.. the tabbed notebook, but to do this properly (as I discovered over the summer), requires major data-structure changes. Peter _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user