[squeak-dev] Subcanvas

Juan Vuletich juan at jvuletich.org
Fri Jul 4 12:53:52 UTC 2008


Hi Gulik,

I know you know this, but I think that the choosing a coordinate system 
is the application programmer's problem, not the framework designer's.

You favor real metric units, i.e. micrometers. However, I prefer 
zoomeable interfaces. The actual size of objects on the screen can be 
adjusted by the user. That's what resolution independence is for!

Anyway, what is the pixel size for a projector?

Cheers,
Juan Vuletich

Ps. I tried to refrain from speaking about the wonders of the Image 
Processing approach to anti-aliasing and non-linear coordinate systems 
and transformations!

Michael van der Gulik wrote:
> Hi all.
>
> I'm about to start work on a project called "Subcanvas", which will be 
> a refactoring of the Canvas class. The intention is that this forms a 
> platform for other GUI projects, including a possible future version 
> of Morphic. It will be a general 2-D drawing API and event handling 
> system.
>
> Is anybody interested in this? Does anybody have any comments on any 
> of the following? Are there any annoyances with the current Canvas 
> class that people want to rant about?
>
> Current "design sketches" are at http://gulik.pbwiki.com/Canvas.
>
> This API will be the main graphics / event-handling API for my 
> SecureSqueak project (http://gulik.pbwiki.com/SecureSqueak). It is 
> likely that Morphic will be ported to it at some stage. The code will 
> be written using Namespaces and my own Package system, and it will be 
> the first real trial of my Namespaces architecture.
>
> Features of it are:
> * Some canvases can have child canvases, each with a z-index. These 
> could be used, e.g., to implement movable windows, sprites, clipped 
> scrollable areas, or flyweight graphics. This will use the underlying 
> graphics system's capabilities.
>
> * The Canvas will be a general abstraction for underlying 2-D 
> vector-based or raster-based drawing APIs - e.g. Forms/BitBlt, OpenGL, 
> VNC.
>
> * An event handling system will also be part of this package. Mouse 
> events will have a canvas (or sub-canvas) coordinate; keyboard events 
> will be sent to the canvas that has the "keyboard focus".
>
> * Canvases must be "secure"; as this will be part of SecureSqueak. 
> Specifically:
>    * Canvas methods must be locked down so that users cannot gain 
> unauthorised access to anything or cause destructive behaviour.
>    * Drawing operations will be clipped. Having access to a canvas 
> only allows the user to draw in that particular area.
>    * Stalled event handlers or drawOn: methods will not affect the 
> operation of other Canvases on the screen.
>
> * The coordinate system will use micrometers; 0 at 0 will be at the 
> bottom left corner of the canvas. Each Canvas will provide a 
> "pixelPitch" method to return the number of micrometers in each pixel 
> (if that Canvas has pixels :-) ) so that pixel-based operations are 
> possible.
>
> I don't know how to handle fonts - I don't know what the pros/cons of 
> having a font API built in to the canvas is, or whether it is better 
> to have the font drawing done externally by each application.
>
> Gulik.
>
>
> -- 
> http://people.squeakfoundation.org/person/mikevdg
> http://gulik.pbwiki.com/
> ------------------------------------------------------------------------
>
>
>   
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG. 
> Version: 7.5.524 / Virus Database: 270.4.3/1528 - Release Date: 7/1/2008 7:26 AM
>   




More information about the Squeak-dev mailing list