[mcclim-devel] possible buglet in highlighting shapes
Duncan Rose
duncan at robotcat.demon.co.uk
Fri Apr 29 17:03:40 UTC 2005
On Friday, April 29, 2005, at 08:54 AM, Paolo Amoroso wrote:
> Duncan Rose <duncan at robotcat.demon.co.uk> writes:
>
>> something that's slow) but getting the correct part is the trick. I've
>> read certain sections of the spec repeatedly ('geometry substrate',
>> 'windowing substrate', parts of 'building applications' mainly), and
>> inspected the McCLIM code in detail too in these areas and I still
>> have no idea what the 'correct' behaviour is in many cases.
>
> You may check the CLIM mailing list archives. They provide
> explanations and clarifications on many design decisions and
> implementation issues.
>
This is a useful resource (well... it's interesting) but not helpful in
this case. I wasn't very clear but I was more talking about things that
might relate the the back end. For example, what is a 'mirror region'?
Is it the visible (presumably rectangular) area of the mirror that is
visible, not accounting for occlusion? Or is it the 'physical' area of
the mirror, which only makes sense when the mirror transform is taken
in account? What does it mean to modify the mirror region?
I talk about this specifically because when McCLIM resizes a mirrored
sheet, the size of the mirror also appears to change. This is a good
thing in CLX since it appears to me that scrolling can be implemented
just by informing the X server what the new offsets are, and the
display is updated *by X*. This is not however so good for Beagle,
since it just means I end up with a potentially huge window server
object which then has to be redisplayed via the CLIM machinery. Now
Cocoa has very good support for performing windowing operations that
parallel CLIMs support in many ways, but it's hard to use them when
dealing with a mirror that has a region of 550 x 16245 (say) and a
mirror transformation that modifies y ordinates by -15800, when I could
have a mirror with a region that's 550 x 445, and a noop transform.
The CLIM spec is very quiet on these kinds of issues, preferring to
leave these kinds of things up to the back ends (which is a good thing)
but it's very difficult to get any indication of what a 'mirror region'
is INTENDED to be. I was toying with moving 'update-mirror-geometry'
into the back ends, so CLX + Beagle could do this differently (and
'care-for-new-native-transformation' seems to never be invoked which is
strange) but I haven't decided whether to do this or not.
It wasn't until I happened to read the glossary in the Lispworks CLIM
UG that I understood that in CLIM terminology, a 'window' is just a
clim-stream-pane class. Basic, maybe, but it certainly helps
understanding what people are talking about sometimes ;-)
>
>> Most of this (IMHO) is definitely down to vagueness in the spec (for
>> another example, according to the LispWorks CLIM user guide, a
>> platform-specific fontspec can be used as a text-style (e.g. an X
>> fontspec), and this is intimated at in the spec too, but it's not made
>> clear). I have no idea if McCLIM supports this though (I think:
>
> The main problem with CLIM vendors manuals is that they don't make
> clear what is in the spec and what is an extension.
>
>
> Paolo
> --
> Lisp Propulsion Laboratory log - http://www.paoloamoroso.it/log
> _______________________________________________
> mcclim-devel mailing list
> mcclim-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/mcclim-devel
>
More information about the mcclim-devel
mailing list