X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Message-ID: <1377882676.2092.32.camel@AMD64X2.fritz.box> Subject: Re: [geda-user] New GUI design From: Stefan Salewski To: geda-user AT delorie DOT com Date: Fri, 30 Aug 2013 19:11:16 +0200 In-Reply-To: References: <1377817580 DOT 23118 DOT 5 DOT camel AT AMD64X2 DOT fritz DOT box> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.8.5 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Fri, 2013-08-30 at 17:50 +0200, Roland Lutz wrote: > On Fri, 30 Aug 2013, Stefan Salewski wrote: > > What GUI toolkik did you use, seems to be not GTK or QT? > > When I started the project, I was using Qt. After some time I realized I > spent too much time and code working around the problems with Qt, > effectively writing a wrapper for the framework; some things didn't work > properly even then (docks, for example, and the property editor). GTK+ > solved some of the problems, but it didn't solve others (I'd still have to > poke around in the internals of the toolkit), so I decided to build a > custom toolkit which exactly suited the needs of the program. > > This worked out nicely. I spent much time on the trickier parts of the > toolkit (now I know why docks always are a problem), but the code turned > out to be much clearer, and it was much easier to do some of the features > that were previously a problem. > > > Did you wrote all from scratch? > > Yep. > That all in indeed very impressive, and it makes a lot sense when you have the time to continue working on that project in the next years fulltime -- or when you find people who contribute. The later is difficult of course, as gEDA and KiCad shows. And it should be much more difficult when people have to learn a new toolkit. I know that not all is very easy with GTK+. You may have seen my draft of a tiny schematics editor at http://www.ssalewski.de/PetEd.html.en That already took me about 800 hours of work, and maybe again 800 hours to make it a usable tool. Some points indeed where not easy, i.e the property editor, which is is a listview which contains various kinds of widgets to offer the most user friendly one for each data type. I had to ask at the gtk mailing list how to do it. Other points are: Moving objects without having to select it prior (gschem now can do that also), moving groups of elements, moving multiple nets endpoints with one mouse move. I had considered using a canvas like GTK goocanvas or Qt graphicsview, but was not sure if there are too many restrictions which limit user friendlyness. > > Which language did you use? > > C++. I'm planning to use a higher-level programming language (most > probably Python) for the application code, though. > Mixing languages can make all more complicated -- gschem with C and scheme is an example. Currently I favor Ruby -- I use it for the schematics tool and currently for my pcb autorouter experiments. Of course Python is currently more popular in western countries, and there is more support by mathplotlib, numpy, PyPy -- if one needs that and wants popularity. Of course Vala is interesting, but closely bound to GTK GObject. Do you try to support non Unix OS? For popularity (counted in the number of users) one may consider that, maybe even the new smartphone and tablet devices? > > Cairo or OpenGL rendering? > > Neither--the toolkit is based on bare X, and I haven't implemented a > dedicated renderer yet. > I used Cairo, it is fine, but of course not very fast. PS: I guess you are an expert in C++? Have you ever used BOOST or CGAL libraries? I wrote a few bindings for Ruby (Delaunay-Triangulation, Fibonacci Priority Queue). I got it working following the examples. But my current skills in Templates and similar advanced C++ stuff is very restricted, so it is good to know some experts... Best wishes, Stefan Salewski