Karl Ramberg uploaded a new version of Etoys to project Etoys:
http://source.squeak.org/etoys/Etoys-kfr.114.mcz
==================== Summary ====================
Name: Etoys-kfr.114
Author: kfr
Time: 5 March 2012, 8:56:49 pm
UUID: bd972f5f-ee95-dc4a-ac3f-8b79e04bb853
Ancestors: Etoys-kfr.113
Change Set: graphingFixes-sw
Date: 4 March 2012
Author: Scott Wallace
Addresses various bug-reports and recommendations relating to recent number-line and graph-paper updates:
- Enforce reasonable ranges for the sliders governing the grid parameters, taking the grid-size, coarse-grid-size , and playfield dimensions into account.
- Provide a button to request 'graph paper' from the 'generic property sheet' when appropriate.
- Retain position of number line when its pixelsPerUnit changes.
- Disable the 'offset' when coarse-grid in effect.
- Protect sliders against zero-divide that can happen if minVal = maxVal.
- Protect InfiniteForms against incidental calls to #darker and #twiceDarker that can be sent to any object's fillStyle by some of the custom border code.
- Removes about a dozen superfluous methods that had mistakenly lingered in the earlier updates, and removes three inst vars of NumberLineMorph that were remnants from earlier code
=============== Diff against Etoys-kfr.113 ===============
Item was added:
+ ----- Method: GenericPropertiesMorph>>doGraphPaper (in category 'graph paper') -----
+ doGraphPaper
+ "Switch to graph paper as a fill style."
+
+ self putUpGraphPaperPanel!
Item was added:
+ ----- Method: GenericPropertiesMorph>>putUpGraphPaperPanel (in category 'graph paper') -----
+ putUpGraphPaperPanel
+ "Adopt a graph-paper fill."
+
+ myTarget makeGraphPaper.
+ self delete.
+ !
Karl Ramberg uploaded a new version of Connectors to project Etoys:
http://source.squeak.org/etoys/Connectors-kfr.194.mcz
==================== Summary ====================
Name: Connectors-kfr.194
Author: kfr
Time: 5 March 2012, 8:56:01 pm
UUID: 383b9527-38a4-954e-bbc2-954808e0c54b
Ancestors: Connectors-kfr.193
Change Set: graphingFixes-sw
Date: 4 March 2012
Author: Scott Wallace
Addresses various bug-reports and recommendations relating to recent number-line and graph-paper updates:
- Enforce reasonable ranges for the sliders governing the grid parameters, taking the grid-size, coarse-grid-size , and playfield dimensions into account.
- Provide a button to request 'graph paper' from the 'generic property sheet' when appropriate.
- Retain position of number line when its pixelsPerUnit changes.
- Disable the 'offset' when coarse-grid in effect.
- Protect sliders against zero-divide that can happen if minVal = maxVal.
- Protect InfiniteForms against incidental calls to #darker and #twiceDarker that can be sent to any object's fillStyle by some of the custom border code.
- Removes about a dozen superfluous methods that had mistakenly lingered in the earlier updates, and removes three inst vars of NumberLineMorph that were remnants from earlier code
=============== Diff against Connectors-kfr.193 ===============
Item was changed:
----- Method: ObjectPropertiesMorph>>addOptionalButtonsTo: (in category '*connectors-visual properties') -----
addOptionalButtonsTo: aCollection
"Add optional buttons to the tableau."
aCollection
addLast: (self transparentSpacerOfSize: 20 @ 3).
"aCollection
addLast: (self
buttonNamed: 'Button' translated
action: #doButtonProperties
color: color lighter
help: 'open a button properties panel for the morph' translated)."
+
+ myTarget wantsGraphPaperAlternative
+ ifTrue:
+ [aCollection
+ addLast: (self
+ buttonNamed: 'Graph paper' translated
+ action: #doGraphPaper
+ color: color lighter
+ help: 'adopt graph paper as fill style' translated)].
+
myTarget wantsTextPropertiesSheet
ifTrue: [aCollection
addLast: (self
buttonNamed: 'Text' translated
action: #doTextProperties
color: color lighter
help: 'open a text properties panel for the morph' translated)].
myTarget wantsConnectorPropertiesSheet
ifTrue: [aCollection
addLast: (self
buttonNamed: 'Connector' translated
action: #doConnectorProperties
color: color lighter
help: 'open a Connector properties panel for the morph' translated)].
^ aCollection!
Repository: http://etoys.squeak.org/svn
Revision: 1104
Author: bf
Date: 2012-03-04 18:57:03 +0000 (Sun, 04 Mar 2012)
Log Message:
-----------
Release-HowTo.txt: explanation of how to add example projects to the gallery
Modified Paths:
--------------
trunk/Documentation/Release-HowTo.txt
Karl Ramberg uploaded a new version of Collections to project Etoys:
http://source.squeak.org/etoys/Collections-kfr.8.mcz
==================== Summary ====================
Name: Collections-kfr.8
Author: kfr
Time: 4 March 2012, 2:25:22 pm
UUID: 495f8cf3-0787-9441-a5e0-040b750b52c8
Ancestors: Collections-bf.7
Change the bumper that is put out at the front of a .pr file so if it is encountered by an older version of etoys, instead of simply refusing to load, it now describes the problem to the user and gives the option of proceeding anyway.
Note: also retains the older bumper guard against loading into even older systems. Pre-olpc-era projects can still not be loaded
=============== Diff against Collections-bf.7 ===============
Item was changed:
----- Method: ReadWriteStream>>fileOutVersionCheckNotification (in category 'fileIn/Out') -----
fileOutVersionCheckNotification
+ "Put a version-check bumper onto the project stream."
self nextChunkPut: ' | cont | (Smalltalk includesKey: #MorphExtensionPlus) ifFalse: [self inform: ''This project cannot be loaded into an older system.\Please use an OLPC Etoys compatible image.'' translated withCRs.
cont _ thisContext.
[cont notNil] whileTrue: [
cont selector == #handleEvent: ifTrue: [cont return: nil].
cont _ cont sender.
]]'; cr.
+
+ self nextChunkPut: ' | cont | (Smalltalk includesKey: #CalendarMorph) ifFalse:
+ [(self confirm: ''This project was created from a more recent\version of Etoys, and may not load or\work properly in an older system.\Ideally use Etoys 5.0 or newer\proceed anyway?'' translated withCRs) ifFalse:
+ [cont _ thisContext.
+ [cont notNil] whileTrue: [
+ cont selector == #handleEvent: ifTrue: [cont return: nil].
+ cont _ cont sender.
+ ]]]'; cr.
!
Karl Ramberg uploaded a new version of MorphicExtras to project Etoys:
http://source.squeak.org/etoys/MorphicExtras-kfr.60.mcz
==================== Summary ====================
Name: MorphicExtras-kfr.60
Author: kfr
Time: 3 March 2012, 4:53:19 pm
UUID: 14e74f78-4bf1-a64a-a745-f0c5dae69e27
Ancestors: MorphicExtras-kfr.59
More numbered lines
=============== Diff against MorphicExtras-kfr.59 ===============
Item was added:
+ ----- Method: EToyVocabulary>>masterOrderingOfPhraseSymbols (in category '*morphicExtras-Charts') -----
+ masterOrderingOfPhraseSymbols
+ "Answer a dictatorially-imposed presentation list of phrase-symbols. This governs the order in which suitable phrases are presented in etoy viewers using the etoy vocabulary. For any given category, the default implementation is that any items that are in this list will occur first, in the order specified here; after that, all other items will come, in alphabetic order by formal selector."
+
+ ^ #(beep: forward: turn: getX getY getLocationRounded getHeading getScaleFactor
+
+ getLeft getRight getTop getBottom
+ getLength getWidth
+ getTheta getDistance getHeadingTheta getUnitVector
+
+ startScript: pauseScript: stopScript: startAll: pauseAll: stopAll: tellAllSiblings: doScript:
+
+ getColor getUseGradientFill getSecondColor getRadialGradientFill getBorderWidth getBorderColor getBorderStyle getRoundedCorners getDropShadow getShadowColor
+
+ getVolume play playUntilPosition: stop rewind getIsRunning getRepeat getPosition getTotalFrames getTotalSeconds getFrameGraphic getVideoFileName getSubtitlesFileName
+
+ getGraphic getBaseGraphic
+
+ getAllowEtoyUserCustomEvents
+
+ #getAutoExpansion #getAutoLineLayout #getBatchPenTrails getDropProducesWatcher #getFenceEnabled #getIndicateCursor #getIsOpenForDragNDrop #getIsPartsBin #getMouseOverHalos #getOriginAtCenter #getShowThumbnail
+
+ getFenceEnabled getKeepTickingWhilePainting getOliveHandleForScriptedObjects getUseVectorVocabulary
+
+ #getRed #getGreen #getBlue #getAlpha #getHue #getBrightness #getSaturation
+
+ getLeftEdgeMode getRightEdgeMode getTopEdgeMode getBottomEdgeMode getPixelsPerPatch addToPatchDisplayList: addToTurtleDisplayList: removeAllFromPatchDisplayList removeAllFromTurtleDisplayList
+
+ clear diffusePatchVariable decayPatchVariable getDiffusionRate getEvaporationRate getSniffRange getDisplayType getDisplayScaleMax getDisplayShiftAmount
+
+ getPatchValueIn: die getUphillIn: getTurtleVisible getReplicated getTurtleOf: getAngleTo: getDistanceTo: bounceOn: bounceOnColor:
+
+ getVertexCursor getVerticesCount getXAtCursor getYAtCursor prependVertex insertVertexAtCursor appendVertex removeAllButCursor removeVertexAtCursor shuffleVertices getLineCurved getLineOpened getShowingHandles
+
+ getDate getDay getMonth getYear getDayName getMonthName getDateFormat goToToday getJulianDay
+
+ getMinVal getMaxVal getPixelsPerUnit getUnitsPerMark getMarksPerLegend getShowNegativeArrowHead getShowZero)!
Item was added:
+ ----- Method: Morph class>>additionsToViewerCategoryGraphing (in category '*morphicExtras-Charts') -----
+ additionsToViewerCategoryGraphing
+ "answer additions to the graphing viewer category"
+
+ ^ #(graphing
+ (
+ (slot xOnGraph 'If there is a horizontal axis present, gives the horizontal coordinate of the center of this object with respect to that axis ' Number readWrite Player getXOnGraph Player setXOnGraph:)
+ (slot yOnGraph 'If there is a vertical axis present, gives the vertical coordinate of the center of this object with respect to that axis ' Number readWrite Player getYOnGraph Player setYOnGraph:)
+ (slot locationOnGraph 'If there is are axes present, gives the coordinate of the center of this object with respect to those axes ' Point readWrite Player getLocationOnGraph Player setLocationOnGraph:)))!
Item was added:
+ ----- Method: Player>>fitPlayfield (in category '*morphicExtras-Charts') -----
+ fitPlayfield
+ "For number-lines: command to extend/contract the line so that it fits entirely within the containing playfield to which it pertains."
+
+ costume fitPlayfield!
Item was added:
+ ----- Method: Player>>getIncrement (in category '*morphicExtras-Charts') -----
+ getIncrement
+ ^ self getValueFromCostume: #increment!
Item was added:
+ ----- Method: Player>>getLocationOnGraph (in category '*morphicExtras-Charts') -----
+ getLocationOnGraph
+ "Answer the x-y with respect to a corresponding axis, if any; if none, for a dimension, use the simple x or y coordinate for it."
+
+ ^ (self getXOnGraph @ self getYOnGraph) asFloatPoint!
Item was added:
+ ----- Method: Player>>getMarksPerLegend (in category '*morphicExtras-Charts') -----
+ getMarksPerLegend
+ ^ self getValueFromCostume: #marksPerLegend!
Item was added:
+ ----- Method: Player>>getPixelsPerUnit (in category '*morphicExtras-Charts') -----
+ getPixelsPerUnit
+ "Answer the number of pixels per unit on a number line"
+
+ ^ costume renderedMorph pixelsPerUnit!
Item was added:
+ ----- Method: Player>>getShowNegativeArrowHead (in category '*morphicExtras-Charts') -----
+ getShowNegativeArrowHead
+ ^ self getValueFromCostume: #showNegativeArrowHead!
Item was added:
+ ----- Method: Player>>getShowZero (in category '*morphicExtras-Charts') -----
+ getShowZero
+ ^ self getValueFromCostume: #showZero!
Item was added:
+ ----- Method: Player>>getTicksPerLegend (in category '*morphicExtras-Charts') -----
+ getTicksPerLegend
+ ^ self getValueFromCostume: #ticksPerLegend!
Item was added:
+ ----- Method: Player>>getUnitsPerMark (in category '*morphicExtras-Charts') -----
+ getUnitsPerMark
+ ^ self getValueFromCostume: #unitsPerMark!
Item was added:
+ ----- Method: Player>>getXOnGraph (in category '*morphicExtras-Charts') -----
+ getXOnGraph
+ "Answer the x-coordinate with respect to a corresponding horizontal axis, if any; if none, answer the cartesian x"
+
+ | aCostume |
+ (aCostume _ self costume) isInWorld ifFalse: [^ self getX].
+
+ (aCostume referencePlayfield findA: HorizontalNumberLineMorph) ifNotNilDo:
+ [:aNumberLine |
+ ^ aNumberLine horizontalCoordinateOf: aCostume].
+ ^ self getX!
Item was added:
+ ----- Method: Player>>getYOnGraph (in category '*morphicExtras-Charts') -----
+ getYOnGraph
+ "Answer the y-coordinate with respect to a corresponding horizontal axis, if any; if none, answer the cartesian x"
+
+ | aCostume |
+ (aCostume := self costume) isInWorld ifFalse: [^ self getY].
+
+ (aCostume referencePlayfield findA: VerticalNumberLineMorph) ifNotNilDo:
+ [:aNumberLine |
+ ^ aNumberLine verticalCoordinateOf: aCostume].
+ ^ self getY!
Item was added:
+ ----- Method: Player>>setLocationOnGraph: (in category '*morphicExtras-Charts') -----
+ setLocationOnGraph: aPoint
+ "Set the location of the object to a given value, with respect to the axes found in the host playfield."
+
+ self setXOnGraph: aPoint x asFloat.
+ self setYOnGraph: aPoint y asFloat!
Item was added:
+ ----- Method: Player>>setMarksPerLegend: (in category '*morphicExtras-Charts') -----
+ setMarksPerLegend: aValue
+ self setCostumeSlot: #marksPerLegend: toValue: aValue!
Item was added:
+ ----- Method: Player>>setPixelsPerUnit: (in category '*morphicExtras-Charts') -----
+ setPixelsPerUnit: aNumber
+ self setCostumeSlot: #pixelsPerUnit: toValue: aNumber!
Item was added:
+ ----- Method: Player>>setShowNegativeArrowHead: (in category '*morphicExtras-Charts') -----
+ setShowNegativeArrowHead: aBoolean
+ self setCostumeSlot: #showNegativeArrowHead: toValue: aBoolean!
Item was added:
+ ----- Method: Player>>setShowZero: (in category '*morphicExtras-Charts') -----
+ setShowZero: aBoolean
+ self setCostumeSlot: #showZero: toValue: aBoolean!
Item was added:
+ ----- Method: Player>>setTicksPerLegend: (in category '*morphicExtras-Charts') -----
+ setTicksPerLegend: aNumber
+ self setCostumeSlot: #ticksPerLegend toValue: aNumber!
Item was added:
+ ----- Method: Player>>setUnitsPerMark: (in category '*morphicExtras-Charts') -----
+ setUnitsPerMark: aValue
+ self setCostumeSlot: #unitsPerMark: toValue: aValue!
Item was added:
+ ----- Method: Player>>setUnitsPerTick: (in category '*morphicExtras-Charts') -----
+ setUnitsPerTick: aNumber
+ self setCostumeSlot: #unitsPerTick: toValue: aNumber!
Item was added:
+ ----- Method: Player>>setXOnGraph: (in category '*morphicExtras-Charts') -----
+ setXOnGraph: aNumber
+ "Set the x-on-graph coordinate as indicated. If there is Horizontal Number Line in the same playfield, this is interpreted with reference to the position and scale of that number line; if not, this is no different from setX:"
+
+ | aCostume |
+ (aCostume _ self costume) isInWorld ifFalse: [^ self setX: aNumber].
+
+ (aCostume referencePlayfield findA: HorizontalNumberLineMorph) ifNotNilDo:
+ [:aNumberLine |
+ ^ aNumberLine setXOnGraphFor: aCostume to: aNumber].
+ ^ self getX!
Item was added:
+ ----- Method: Player>>setYOnGraph: (in category '*morphicExtras-Charts') -----
+ setYOnGraph: aNumber
+ "Set the y-on-graph coordinate as indicated. If there is Vertical Number Line in the same playfield, this is interpreted with reference to the position and scale of that number line; if not, this is no different from setY:"
+
+ | aCostume |
+ (aCostume := self costume) isInWorld ifFalse: [^ self setY: aNumber].
+ (aCostume referencePlayfield findA: VerticalNumberLineMorph) ifNotNilDo:
+ [:aNumberLine |
+ ^ aNumberLine setYOnGraphFor: aCostume to: aNumber].
+
+ ^ self setY: aNumber!