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

FM events

Occasionally I'll send out messages about things done in FM ("Frontend
Magic" :-).

I just got my event dispatch loop and event taxonomy in order.  The
taxonomy is currently:

Event (time)
	UserEvent (mousePos buckyBits)
		ButtonEvent (buttonName clickCount)
		KeyEvent (keycode keyName repeatCount(unused))
		TraverseEvent (startPoint) - used for mouse motion

Event types to be added eventually:

	ActivateEvent (activationState)
	TimerEvent (startTime)
	SelectionEvents (action) - used for menus - in flux

The most interesting of these events is the TraverseEvent.  I came up
with these while revamping the Viewers event mechanism a long time
ago.  A traverse event represents the path of the mouse as it moves.
The existing one just abstracts to a line, but more complex ones would
track the actual movement better.  This allows drawing programs to
find the actual path of the mouse, even if mouseEvents get delayed.
Since the control structure will eventually only generate events that
some controller will actaully react to, traverse events won't cost
anything until a program actaully requires them, and then only for
that application.

Eventually we'll compare this set of events with the ones supplied by
various window system and figure out how to adapt one or the other.

Finally, there is one bug due to some wierdness in Smalltalk or the
Mac.  I can't get ahold of a frozen representation of the time, so I
can't tell yet whether a mouseClick has been repeated within the
doubleClick interval.  Eventually I'll find a workaround (or my bug