[M3devel] FW: Win32/ScrollerVBTClass.m3

Jay K jay.krell at cornell.edu
Sun Dec 13 06:47:29 CET 2009


I keep trying to understand Trestle but I keep failing.

I tried to read the comments explaining how its locking

works and I got lost quickly.

I suspect that compares well to other GUI libraries

in that they probably just don't do threading well.

Easy to understand though.

 

 

The Trestle apps are all pretty ugly and oddly behaved.

Granted, I have no "real use" for them. I just exercise

them a bit as test cases.

I did notice you made the scrollbars look "nice" on Windows.

 

 

The close box is marked "C".

The grow box is marked "G".

Yuck.

 

 

As I said though, the more I look into Trestle, the more I think

it is implementing a rather complete "windows system" and not

just a library of widgets, nor even widgets + resizing algorithms.

Nor even just widgets + resizing + event routing.

Like, it seems to also manage clipping, knowing what needs

redrawing, etc.

But I'm not sure.

It adds up to a lot of code, is my concern.

That is good and bad.

 

 

 - Jay

 


Date: Sun, 13 Dec 2009 00:12:21 -0500
From: rcoleburn at scires.com
To: jay.krell at cornell.edu; m3devel at elegosoft.com
Subject: Re: [M3devel] FW: Win32/ScrollerVBTClass.m3




Jay:
 
You would get opposition from anyone who likes Trestle and FormsVBT.  Really, the concepts, simplicity, and extensibility of Trestle/FormsVBT are very good and probably ahead of their time in terms of the then current state of commercial practice.
 
Ditching Trestle would not bode well for any of the work I've done.  I have a lot of cm3 code that runs on both Unix X-Windows and on Windows without any application source modification.
 
Indeed, having a GUI that worked on both types of platforms was one of the main selling points/features of the work we did in Modula-3 back in the late 90's.
 
Also, to follow up on my prior response, one of the reasons it took 11 years for me to incorporate the Win32 customizations had to do with licensing and also with standing up the repository after the demise of the commercial cm3 venture.  Not much had been done to these sources over the 11 years.  Mainly, I think most of the changes had to do with stuff that came out of PM3 and some bug fixes.  So, I had to get back into this code and do a real merge/integration effort taking care not to break anything.
 
Regards,
Randy

>>> Jay K <jay.krell at cornell.edu> 12/12/2009 10:46 PM >>>
eh, actually zchassis 3.6 matches current posix zchassis except for whitespace.
scrollertvbtclass is pretty close, though current adds "shadows".
Maybe we're ok in practise, but I still don't like it.
 
(Really I'd love to ditch Trestle in favor of Qt or such, but I have this nagging
feeling that Trestle reinvents far more than most other gui libraries.)
 
 - Jay
 




From: jay.krell at cornell.edu
To: rcoleburn at scires.com; m3devel at elegosoft.com
Date: Sun, 13 Dec 2009 03:41:25 +0000
Subject: [M3devel] FW: Win32/ScrollerVBTClass.m3



2008-05-27 02:29  rcoleburn

  * m3-ui/vbtkit/src/: lego/m3makefile, vbtkitresources/ScrollBg,
    vbtkitresources/close.ppm, vbtkitresources/down.ppm,
    vbtkitresources/grow.ppm, vbtkitresources/left.ppm,
    vbtkitresources/m3makefile, vbtkitresources/right.ppm,
    vbtkitresources/up.ppm, lego/POSIX/ScrollerVBTClass.m3,
    lego/POSIX/ZChassisVBT.m3, lego/POSIX/m3makefile,
    vbtkitutils/m3makefile, lego/WIN32/ScrollerVBTClass.m3,
    lego/WIN32/ZChassisVBT.m3, lego/WIN32/m3makefile,
    vbtkitutils/POSIX/VBTKitEnv.i3, vbtkitutils/POSIX/m3makefile,
    vbtkitutils/WIN32/VBTKitEnv.i3, vbtkitutils/WIN32/m3makefile:

  Incorporate changes made to vbtkit by Critical Mass circa September 1997 that make the GUI appearance more like that of Windows.  The m3makefiles have been adjusted so that these changes affect only Windows (WIN32) platforms.  These changes were part of work sponsored by Randy Coleburn at Scientific Research Corporation (SRC).  The main files affected are VBTKitEnv.i3, ScrollerVBTClass.m3, and ZChassisVBT.m3, plus some new resource files have been added for WIN32 only.


Randy, are files from 1997 really correct to incorporate into the tree 11 years later? Or maybe they are rather out of date?
Can the work be redone against the 2008 versions? And factor out the common parts?
 
I guess I should go and diff these against the 3.6 or 4.1 versions?
And then apply those diffs to the Posix file to get the Win32 version?
(Or again, try to share what is the same?)
 
 
 - Jay
 
> Date: Sun, 13 Dec 2009 04:37:34 +0000
> To: m3commit at elegosoft.com
> From: jkrell at elego.de
> Subject: [M3commit] CVS Update: cm3
> 
> CVSROOT: /usr/cvs
> Changes by: jkrell at birch. 09/12/13 04:37:34
> 
> Modified files:
> cm3/m3-ui/vbtkit/src/lego/: Tag: release_branch_cm3_5_8 
> m3makefile 
> cm3/m3-ui/vbtkit/src/lego/WIN32/: Tag: release_branch_cm3_5_8 
> ScrollerVBTClass.m3 
> 
> Log message:
> I forgot to mention: I'm really just guessing here. It seems to work.
> 
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20091213/db72e479/attachment-0002.html>


More information about the M3devel mailing list