Mouse events

Marcel Weiher marcel at system.de
Sat Jan 23 09:33:54 UTC 1999


> > But this does require a rewrite of the simple (and hence easily
> > extensible) Controller polling loop.
>
> Hm. If it's easy to do: Why hasn't this been done before? If it  
ain't so
> easy: Could anybody do it?
> See, I'm just evaluating the thing; I'm a complete novice to  
Squeak (and
> a relative novice to Smalltalk in general). Getting used to the system 
> is *difficult* for me. I'm adventurous enough to muck around even with 
> basic mechanisms of mouse input, but I'm not so megalomaniac to assume 
> that such changes will work reliably, or for everybody, or without 
> having adverse effects on classes that I haven't used yet.

I have been thinking about this for a while as well, and have pretty  
much the same questions, though with some preliminary/tentative  
answers:

The new morphic system is event driven, so I think that the rewrite  
is in progress, though not exactly as described above.

"An Event-Driven Model-View-Controller Framework for Smalltalk" by  
Yen-Ping Shan describes an integration where polling and events are  
used in parellel.  He claims that implementing one on top of the  
other is not possible and therefore both need the be present unless  
all the Controllers are rewritten.  I haven't checked that part yet.   
The paper can be found in the OOPSLA 89 proceedings.

Contrller hierarchy:


Object ()

	Controller ('model' 'view' 'sensor' 'lastActivityTime' )
		FormMenuController ()
		ModalController ('modeActive' )
		MorphWorldController ()
		MouseMenuController ('redButtonMenu'  
'redButtonMessages' 'yellowButtonMenu' 'yellowButtonMessages'  
'blueButtonMenu' 'blueButtonMessages' )
			BitEditor ('scale' 'squareForm' 'color'  
'transparent' )
			FormEditor ('form' 'tool' 'grid'  
'togglegrid' 'mode' 'previousTool' 'color' 'unNormalizedColor'  
'xgridOn' 'ygridOn' )
			ScreenController ()
			ScrollController ('scrollBar' 'marker'  
'savedArea' 'menuBar' 'savedMenuBarArea' )
				ListController ()
					PluggableListController  
('terminateDuringSelect' )
						 
PluggableListControllerOfMany ()
				ParagraphEditor ('paragraph'  
'startBlock' 'stopBlock' 'beginTypeInBlock' 'emphasisHere'  
'initialText' 'selectionShowing' 'otherInterval' )
					StringHolderController ()
						 
FillInTheBlankController ()
						PluggableTextController ()
							 
ReadOnlyTextController ()
					TextMorphEditor ('morph'  
'oldInterval' 'pivotBlock' )
			StandardSystemController ('status' )
				ProjectController ()
		NoController ()
		PluggableButtonController ('selector' 'arguments' )

Marcel





More information about the Squeak-dev mailing list