www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2013/08/30/13:15:15

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 <mail AT ssalewski DOT de>
To: geda-user AT delorie DOT com
Date: Fri, 30 Aug 2013 19:11:16 +0200
In-Reply-To: <alpine.DEB.2.10.1308301524590.4333@home.local>
References: <alpine DOT DEB DOT 2 DOT 10 DOT 1308292303260 DOT 15244 AT home DOT local>
<1377817580 DOT 23118 DOT 5 DOT camel AT AMD64X2 DOT fritz DOT box>
<alpine DOT DEB DOT 2 DOT 10 DOT 1308301524590 DOT 4333 AT home DOT local>
X-Mailer: Evolution 3.8.5
Mime-Version: 1.0
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

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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019