Hello, I just joined this list, so pardon me if I'm a little ignorant of how things work here. I don't know much about the dia code, either.
I've had the urge many times to create a tree- or graph-oriented application with intelligent autorouting and usually some drag-n-drop functionality. Sometimes I just want a quick solution so that I can easily see the data structures in a program to debug it. But I've searched a lot and it seems like to get that kind of functionality, I'd either have to hack something very specific like diacanvas or build it from scratch on a GTK+ canvas. I'm not sure if graphviz would help...I've seen it and some other libraries that looked promising at first, but they don't seem to be very versatile or suited for drag-n-drop apps. I've also looked for applications with similar interfaces, and everything I've found looks like it was built from the ground up. I think it would be quite feasible to make a library designed to encapsulate the issues of routing edges, searching for optimal paths, and also finding the optimal arrangement of nodes (if desired) into a library with extremely fine-grained control over behavior parameters, both globally and for individual nodes and edges. For instance, the style of edges (direct, orthogonal, etc.), shape and size of nodes, workspace size and off-limits regions could be specified. My plan was to create a library to plan the actual edge paths which could be used in any environment, and a GTK+ widget to use that library and add a ton of interaction behavior. It might also be a good idea to include a plugin system for the core library, since the actual routing needs to take a ton of factors into account, such as maximizing parallel edges or having a labeled "shortcut" when the path is too cluttered; but I'm not sure about that detail, because it seems like it might be overkill. I think a lot of free applications in fields like circuit design, UML modeling, and tons of others would benefit from this effort, possibly including dia on some level (I saw "better autorouting" on the Google SoC wishlist), so I want it to be very flexible and support many graphics toolkits and programming languages. I don't know if I'll be able to take the idea very far, but I wondered (a) if I was mistaken thinking no such library already exists or (b) if I'm not alone thinking such a project would be useful. David Barnett P.S. Sorry I wrote so much...I get a little excited =)
_______________________________________________ Dia-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/dia-list FAQ at http://live.gnome.org/Dia/Faq Main page at http://live.gnome.org/Dia
