[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Object-oriented window systems.



	In reply to the question of clos-based window systems, I've been
working on something that may be of some interest.
	What: we usually call it Uncommon-windows - a version of the
Intellicorp-proposed (I think) window system standard ("Common-Windows")
based on CLOS/PCL rather than the pseudo-object-hackery that CW comes
with.  UW provides a superset of the functionality of CW to the extent
that UW and CW may non-destructively inhabit the same machine... even
cooperate.
	How: well, in order not to lose the single biggest benefit of
CW (that is, portability), rather than porting CW, we added a layer of
CLOS functionality on top.  Unfortunately, this sort of scheme, while
nice and portable, doesnt solve a number of important issues involving
integration with the native window system (whatever is behind CW) - when
you mouse-right-2 on a Uncommon-Window to reshape it, you want your CLOS
reshape methods to get called, rather than the default CW method(s).
Sooo... we get UW to dig itself into CW, replacing the top layer with all
generic functions with default methods for a number of different
sorts/implementations of windows which all do The Right Thing.
	Performance: The system does not seem to cause much of a slowdown
over vanilla common windows- in several cases, things have become faster
because of smarter methods.
	What it can do:  A sampling of what we've done: a constraint-frame
system, speed-panning graphics (dragging of window contents a la Mac),
numerous symbolics-window-system-function-clones (i.e. choose-variable-
values)), text-filling format/windows/hotspot-texts, and
presentation-like objects.
	How to get it: not quite sure yet - there are a few potential
problems, but I'm sure they can be "fixed" if there is any interest out
there.
	Questions? Comments?
	- Mike Thome (mthome@bbn.com)