[cad-linux-dev] Re: braindead gui toolkits

  • From: phrostie <pfrostie@xxxxxxxxx>
  • To: cad-linux-dev@xxxxxxxxxxxxx
  • Date: Fri, 29 Oct 2004 07:47:24 -0700 (PDT)

I've played with a number of IDEs for building GUIs and the easiest for me was
Visual-TCL also known as V-TCL.  not familiar with Zinc, but just want to say
think you for not binding this with KDE/Gnome.  things(building/distributing)
always get too complicated with you start down that path.


--- Eric Wilhelm <ewilhelm@> wrote:

> Ok, I'm just coming out of the woods with my adventures in Tk::Zinc.  
> The text zooming did indeed work out, but it took some juggling to 
> get from a "height" to a "font" (and that font is currently 
> hard-coded.)  If you're feeling adventurous, feel free to dig into 
> the subversion repository.
>   http://ericwilhelm.homeip.net/svn/CAD-Drawing/trunk/code/CAD/Drawing/
> 
> Sorry, no tarballs yet.  Maybe once it's seen some use I'll put it on 
> CPAN.
> 
> Some interesting issues come up in how to create keybindings between 
> multiple windows.  For instance, the zoom function.  The "z" key 
> activates zoom from any toplevel widget, but which canvas should it 
> put that functionality into?  My solution is "all of them".  The 
> problem then is how to tell the other canvases that you are done 
> zooming (and that therefore they should be too.)  This leads to the 
> sharing of the functionality CAD::Drawing::GUI and 
> CAD::Drawing::GUI::View modules.  The GUI module handles the 
> management of multiple canvases, while the View object is a single 
> canvas (though it has to have the same drawing on it, scale and etc 
> are independent.)
> 
> As for the braind-dead-ness.  I looked at GTK, QT, TK, WX, and finally 
> ended up with Tk::Zinc because it was the only one that was able to 
> scale text without having to do the recalculate-approximate dance 
> (which leads to really bumpy zooming when you have to jump from 12pt 
> to 24pt.)
> 
> So, why are we using points to describe text in a world of pixels?
> 
> Furthermore, why does the y-axis have to point downward?  Sure, that's 
> how X works, but isn't the point of toolkits to make programming 
> easier?  Am I thinking upside-down, or is that everyone else?
> 
> Finally, what's with the rectangles?  Okay, a rectangle can be 
> described with two points, but it's just a special case of a 
> polyline.  A circle usually doesn't have it's own method (we have to 
> call it an arc), so why rectangles?  On top of that, we describe said 
> rectangles as a list of four points?!  Isn't it a pair of pairs?
> 
> While I'm at the rectangles, why are arcs and elliptical arcs 
> described as fitting inside of a rectangle?  At least with Tk::Zinc, 
> I can apply rotation afterwards (to get a slanted elliptical arc 
> (though that makes for some hairy math), but Tk and Wx also suffer 
> from the rectangular world syndrome and don't seem to have a way to 
> rotate entities.
> 
> Is there not any demand for these things?  I just want a right-side-up 
> canvas with arcs described by a center and radius, scalable 
> pixel-sized text, and the ability to draw angled elliptical arcs.
> 
> It's getting to the point where I just want to abandon most of the API 
> and draw everything as bezier curves.  Of course, the slow-down of 
> evaluating these curves in Perl would not be fun.
> 
> On a more upbeat note, working on this did give me an idea for a 
> cadfs-based toolkit.  Basically, this would be like Draft in that it 
> immediately displays what happens in the database.  However, to be 
> able to repurpose (embed, etc) it for other applications, you would 
> want a way to bind callbacks and such to this gui (particularly, a 
> way for those callbacks to involve multiple viewports, etc.)  
> Unfortunately, my latest effort is attached to the aging CAD::Drawing 
> data-structure, but the concepts could easily be re-attached to 
> something else (and should maybe be done so in a compiled language.)
> 
> --Eric
> -- 
> "Left to themselves, things tend to go from bad to worse."
>                                         --Murphy's Corollary

Given any mechanical device and the probablity for error to occure.
as long as all component are proportionally in error, then the device will
continue to funtion in a normal manor.

or as my father would say, make it fit.

> 


=====
phrostie
Oh I have slipped the surly bonds of DOS
and danced the skies on Linux silvered wings.
http://pfrostie.freeservers.com/cad-tastrafy/
//www.freelists.org/webpage/cad-linux
//www.freelists.org/webpage/cad-linux-dev
//www.freelists.org/webpage/snafuu

Other related posts: