[UPDATES] More for 2.7 alpha

Dan Ingalls Dan.Ingalls at disney.com
Wed Nov 10 23:56:17 UTC 1999


Folks -

Here are the ones I've had time to forward.  There still are a lot of submissions from recent times that i haven't had a chance to examine and integrate.

	- Dan
------------------------------

1593FasterAll-ar -- Andreas Raab -- 1 November 1999
Speed up gathering all method selectors for smart updates."

1594inspectorMenu-sw -- Scott Wallace -- 3 November 1999
Adds browse-hierarchy item to inspect-list menu"

1595findClass-sw -- Scott Wallace -- 8 November 1999
Integrates enhancements to Browser.findClass submitted recently by Chris Norton, Ted Kaehler, Stephan Rudlof, and Scott Wallace.
The result is that when you request 'find class' in any browser offering it, and you type something in to the ensuing request pane...
* In the event of an *exact* match, the exactly-matched item is put at the head of the proffered list (Chris).
* If the user puts a trailing '.' and if the user's input minus that trailing dot is indeed the name of an existing class, then no list is presented -- instead, the requested class is directly gone to (Ted).
* It now works properly in Hierarchy Browsers. (Stephan).
* The list offered in response to a Find-class request now only includes classes that are potentially available in the tool at hand.  (Scott)
Related fixups:
* System-category-list browsers no longer offer menu items in the system-category-singleton pane which are not appropriate for this kind of browser. (Scott)
* Stephan's nicer implementation of Browser.selectClass: is included.

1596buttons-bf -- Bert Freudenberg -- 8 October 1999
Makes using ThreePhaseButtons as checkboxes or radiobuttons easier. Provides forms for both (square and round). Uses the new checkbox in version windows."

1597WnldMorphic-ar -- Andreas Raab -- 8 November 1999
This change set makes 3D objects behave very much like any other morph:
* get halos on 3D objects
	- Cmd-Clicking on an object will cycle you through the 3D hierarchy
* move and resize 3D objects using halo handles
	- Shift-Move and Shift-Resize will constrain the modifications to x/y
	[Side note: Shift-Move is currently unimplemented]
	[Future work: rotation, duplication, picking up 3D guys etc]
* change the color using the color picker
	- choose 'change color' from the red halo menu
* drag and drop any morph onto a 3D object as texture
	- choose 'open to drag and drop' from the WonderlandCameraMorph
	- drop the morph onto the object
	- extract the texture/morph by selecting the gray halo to the right
* automatically adjust objects to the texture aspect ratio
	- select 'auto adjust to texture' from the red halo of a 3D object
	- drop the texture/morph onto the object
	- WARNING: The object will be adjusted in *local* x/y coordinates only
* interact with morphs representing textures
	- turn on 'enable active texture' from the red halo menu of a 3D object
	- drop a morph onto it
	- click and do whatever you like in 3D
	[Fun demo: From an empty Wonderland workspace do
		w makePlaneNamed: 'plane'.
		- Turn on 'open to drag and drop' in the camera morph
		- Turn on 'auto adjust texture' for the plane.
		- Turn on 'enable active textures' for the plane
		- Turn on #allowSysWindowEmbedding in the preferences
		- Drop a browser onto the plane
		- Go programming ;-))))]
* define local viewpoints
	- drive the camera to the appropriate location
	- choose 'set user point of view' from the red halo menu
* use local viewpoints
	- turn on 'enable active texture' [must be set for keeping consistent default behavior]
	- shift-click on the object will send you to the user defined POV
The morphic like behavior is implement by a set of wrappers dynamically created for the 3D objects whenever the user Cmd-Clicks on a camera morph. The wrappers basically translate standard morphic behavior into appropriate behavior for 3D actors.
Note that this change set includes some really dirty hacks. These are necessary for making the event dispatch work - since Morphs are too stupid to figure out where an event should go everything must be done by a hand and this requires some ugly hacks. The same is true for stepping morphs. Since a world does only step morphs that have a valid owner chain several hacks are necessary to make this work if the morph is in fact in a 3D world (where it could even be multiply referenced).
Here are a two methods to look for in case something breaks (mainly a reminder for myself):
* WonderlandActor>>dispatchEvent:using:
* WonderlandCameraMorph>>acceptDroppingMorph:event:
[Side note: We *must* fix event dispatching, halo handling and stepping at some point. The idea that some external object (e.g., HaloMorph or HandMorph) can completely understand who might want which behavior at any given time is just ridiculous (most of these methods should be made a responsibility of Morph and are trivial to implement right there). For now, I am either living with hacks (see above) or with a duplication of many methods (for halo behavior), both of which shouldn't be necessary]
ALSO: Since the change set deals with halo handling several methods in Morph and HandMorph have been changed (mainly to pass the generating event into the method).
ALSO: This change set introduces 2D bounds recording of 3D Wonderland actors during rendering. This information is stored in the camera so that one can get the 2D extent of an actor with respect to any given camera in the scene. Rendering any meshes now requires to return the 2D extent or nil if the mesh is not visible (collecting the extents is done automatically by the actors).
ALSO: This change set removes two now outdated classes from the system (WonderlandTextureMorph and WonderlandHandMorph). This is done in a subtle way to transform the existing textures into something that can still be used. Some small fixes may be necessary (such as re-initializing the default actions of the object the old texture was mapped on) and enabling the active textures from a halo (no big deal). Because of the transformation of morphs it is important to NEVER FILE OUT THIS CHANGE SET FOR TRANSMITTING. The recorded changes are inappropriate for transmission (e.g., the fileOut will contain a class removal before the cleanup has been done). Only transmit the change set as it has come in (e.g., use the file from the server directly).

1598menuMessages-tkLR -- Ted Kaehler -- 4 Nov 1999
	Dan's fix, 1578ThreeTweaks-di.cs, removed the redundant methods to get ParagraphEditor's shifted yellow button menu.  
	This change removes the separate shiftedYellowButtonMessages query.  Anyone who needs it should generate a menu and then ask for the selections.  Previously, shiftedYellowButtonMessages maintained a separate list, which was always out of date."
MouseMenuController removeSelector: #shiftedYellowButtonMessages

1599obsolete-tkLY -- Ted Kaehler -- 9 November 1999
Puts up an error if the user is trying to export an object or export image segment that has an instance of an obsolete class in it.
Further refinement to deleting old image segments on the disk."

1600OOPSLAtweaks-di -- Dan Ingalls -- 4 November 1999
A few bug fixes and enhancements culled from preparations for the OOPSLA demo...
	Fixes a problem with text propagation between linked containers.
	Finally allows the SelectorFinder to present its examples with the data as typed.
		Changes the window title to 'Method Finder' since that's what it does.
		Makes the default extent in morphic be 350x250, as in MVC
	Fixes a typo (titel --> title) in choose new window title.
	Colors the pan and volume sliders of MIDI score players.

1601SliderColor-di -- Dan Ingalls -- 9 November 1999
This supports specification of a color for slider handles, apart from that of the slider as a whole.
Mainly used in MIDI scorePlayers.

1602MessageNameFix

1603menuConstructor-sw -- Scott Wallace -- 8 November 1999
Provides a more direct way to construct a SelectionMenu, which keeps the labels and corresponding selectors together, and allows lines to be specified more straightforwardly.
The call is:
  SelectionMenu fromArray: anArray
where each of anArray's elements is either a pair of the form
     <label string>   <selector>
or else, to specify a line, simply a - symbol.
Example
  SelectionMenu fromArray:
	#(	('first label'		first)
		('second label'	second)
		-
		('third label' 	third))
is the equivalent of
   SelectionMenu labels: #('first label' 'second label' 'third label') lines: #(2) selectors: #(first second third)
To see a serious use of this constructor, see method ParagraphEditor class #shiftedYellowButtonMenu, the first method in the system to take advantage of the new construct.

1604prettyPrint-sw -- Scott Wallace -- 9 November 1999
Adds a new preference, colorWhenPrettyPrinting, which, if true, dictates that when pretty-printing, the color option should be used,
Makes it possible directly to request, for any code being viewed,  immediate display of pretty-print in either classic (monochrome) or fancy (polychrome) form, via two menu items in the code-pane menu.
When submitting code in polychrome pretty-print mode, bypass the prompt warning about first use of style, provided that the only text attributes used are cosmetic.
For the FileContentsBrowser, adds a way (in morphic) that the showing of diffs can be turned off, allowing pretty-printing to show through."

1605dropNewMorph-sw

1606twoFixes-sw -- Scott Wallace -- 10 November 1999
Makes project.enter:, which no longer called within Squeak but still invoked by some button scripts in the flagship, work again.
Fixes three seemingly long-present off-by-one bugs in Parser method #correctVariable:interval: that made it 'lose' a global declaration in the rare case that there were no near-matches and that could incorrectly position both separator lines in the correction menu."





More information about the Squeak-dev mailing list