The Trunk: Morphic-mt.1748.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Morphic-mt.1748.mcz

commits-2
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1748.mcz

==================== Summary ====================

Name: Morphic-mt.1748
Author: mt
Time: 13 April 2021, 4:58:42.939381 pm
UUID: c321b488-2e30-7d4d-b0be-79d866ac5ce0
Ancestors: Morphic-nice.1747

Complements MorphicExtras-mt.289

=============== Diff against Morphic-nice.1747 ===============

Item was removed:
- ----- Method: Form class>>exampleColorSees (in category '*Morphic-examples') -----
- exampleColorSees
- "Form exampleColorSees"
- "First column as above shows the sneaky red/yellow pirate sneaking up on the blue/peach galleon.
- Second column shows the 1bpp made from the red/yellow/transparent - white -> ignore this, black -> test this
- Third shows the hit area - where red touches blue - superimposed on the original scene.
- Fourth column is the tally of hits via the old algorithm
- Last column shows the tally of hits via the new prim"
-
- | formA formB maskA  offset tally map intersection left top dCanvas sensitiveColor soughtColor index |
- formA := formB := maskA := offset := tally := map := intersection :=  nil. "just to shut up the compiler when testing"
- Project current world restoreMorphicDisplay; doOneCycle.
-
- sensitiveColor := Color red.
- soughtColor := Color blue.
-
- top := 50.
- dCanvas := FormCanvas on: Display.
- -50 to: 80 by: 10 do:[:p|
- offset:= p@0. "vary this to check different states"
- left := 10.
-
- formA := (Form extent: 100@50 depth: 32) asFormOfDepth: 16 "so we can try original forms of other depths".
- formB := Form extent: 100@50 depth: 32.
-
- "make a red square in the middle of the form"
- (FormCanvas on: formA) fillRectangle: (25@25 extent: 50@5) fillStyle: sensitiveColor.
- (FormCanvas on: formA) fillRectangle: (25@30 extent: 50@5) fillStyle: Color transparent.
- (FormCanvas on: formA) fillRectangle: (25@35 extent: 50@50) fillStyle: Color yellow.
- "formA displayOn: Display at: left@top rule: Form paint.
- dCanvas frameRectangle: (left@top extent: formA extent) width:2 color: Color green.
- left := left + 150."
-
- "make a blue block on the right half of the form"
- (FormCanvas on: formB) fillRectangle: (50@0 extent: 50@100) fillStyle: soughtColor.
- (FormCanvas on: formB) fillRectangle: (60@0 extent: 10@100) fillStyle: Color palePeach.
- "formB displayOn: Display at: left@top rule: Form paint.
- dCanvas frameRectangle: (left@top extent: formA extent) width:2 color: Color green.
- left := left + 150."
-
- intersection := (formA boundingBox translateBy: offset) intersect: (formB boundingBox).
-
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 150.
-
- maskA := Form extent: intersection extent depth: 1.
-
- map := Bitmap new: (1 bitShift: (formA depth min: 15)).
- map at: (index := sensitiveColor indexInMap: map) put: 1.
-
- maskA copyBits: (intersection translateBy:  offset negated) from: formA at: 0@0 colorMap: map.
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- maskA displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green. left := left + 150.
-
- "intersect world pixels of the color we're looking for with sensitive pixels mask"
- map at: index put: 0.  "clear map and reuse it"
- map at: (soughtColor indexInMap: map) put: 1.
-
- maskA
- copyBits: intersection
- from: formB at: 0@0 clippingBox: formB boundingBox
- rule: Form and
- fillColor: nil
- map: map.
-
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- maskA displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 170.
-
- (maskA tallyPixelValues at: 2) asString asDisplayText displayOn: Display at: left@(top +20).
- left := left + 70.
-
- "now try using the new primitive"
- tally := (BitBlt
- destForm: formB
- sourceForm: formA
- fillColor: nil
- combinationRule: 3 "really ought to work with nil but prim code checks"
- destOrigin: intersection origin
- sourceOrigin: (offset negated max: 0@0)
- extent: intersection extent
- clipRect: intersection)
- primCompareColor: ((sensitiveColor pixelValueForDepth: formA depth) ) to: ((soughtColor pixelValueForDepth: formB depth) ) test: (Form compareMatchColor bitOr: Form compareTallyFlag).
- tally  asString asDisplayText displayOn: Display at: left@(top +20).
- top:= top + 60]!

Item was removed:
- ----- Method: Form class>>exampleTouchTest (in category '*Morphic-examples') -----
- exampleTouchTest
- "Form exampleTouchTest"
- "Demonstrate the algorithm used in Scratch code to determine if a sprite's non-transparent pixels touch a
- non-transparent pixel of the background upon which it is displayed.
- First column shows a form with a red block in the midst of transparent area sneaking up on a form with a transparent LHS and blue RHS. The green frame shows the intersection area.
- Second column shows in grey the part of the red that is within the intersection.
- Third column shows in black the blue that is within the intersection.
- Fourth column shows just the A touching B area.
- Fifth column is the tally of hits via the old algorithm
- Last column shows the tally of hits via the new prim"
- |formA formB maskA maskB offset tally map intersection left top dCanvas|
- formA := formB := maskA := maskB := offset := tally := map := intersection :=  nil. "just to shut up the compiler when testing"
-
- Project current world restoreMorphicDisplay; doOneCycle.
-
- top := 50.
- dCanvas := FormCanvas on: Display.
- -50 to: 80 by: 10 do:[:p|
- offset:= p@0. "vary this to check different states"
- left := 10.
-
- formA := Form extent: 100@50 depth: 32.
- formB := Form extent: 100@50 depth: 16.
-
- "make a red square in the middle of the form"
- (FormCanvas on: formA) fillRectangle: (25@25 extent: 50@5) fillStyle: Color yellow.
- (FormCanvas on: formA) fillRectangle: (25@30 extent: 50@5) fillStyle: Color transparent.
- (FormCanvas on: formA) fillRectangle: (25@35 extent: 50@50) fillStyle: Color red.
- "formA displayOn: Display at: left@top rule: Form paint.
- dCanvas frameRectangle: (left@top extent: formA extent) width:2 color: Color green.
- left := left + 150."
-
- "make a blue block on the right half of the form"
- (FormCanvas on: formB) fillRectangle: (50@0 extent: 50@100) fillStyle: Color blue.
- (FormCanvas on: formB) fillRectangle: (60@0 extent: 10@100) fillStyle: Color palePeach.
- "formB displayOn: Display at: left@top rule: Form paint.
- dCanvas frameRectangle: (left@top extent: formA extent) width:2 color: Color green.
- left := left + 150."
-
- intersection := (formA boundingBox translateBy: offset) intersect: (formB boundingBox).
-
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 150.
-
- maskA := Form extent: intersection extent depth: 2.
- formA displayOn: maskA at: offset  - intersection origin rule: Form paint.
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- maskA displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 150.
-
- maskB := Form extent: intersection extent depth: 2.
- formB displayOn: maskB at: intersection origin negated rule: Form paint.
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- maskB displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 150.
-
- map := Bitmap new: 4 withAll: 1.
- map at: 1 put: 0.  "transparent"
-
- maskA copyBits: maskA boundingBox from: maskA at: 0@0 colorMap: map.
- "maskA displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 150."
-
- maskB copyBits: maskB boundingBox from: maskB at: 0@0 colorMap: map.
- "maskB displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 150."
-
- maskB displayOn: maskA at: 0@0 rule: Form and.
- maskA displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 170.
-
- (maskA boundingBox area -( maskA tallyPixelValues at: 1)) asString asDisplayText displayOn: Display at: left@(top +20).
- left := left + 70.
-
- "now try using the new primitive"
- tally := (BitBlt
- destForm: formB
- sourceForm: formA
- fillColor: nil
- combinationRule: 3 "really ought to work with nil but prim code checks"
- destOrigin: intersection origin
- sourceOrigin: (offset negated max: 0@0)
- extent: intersection extent
- clipRect: intersection)
- primCompareColor: ((Color transparent pixelValueForDepth: formA depth) bitAnd: 16rFFFFFF) to: ((Color transparent pixelValueForDepth: formB depth) bitAnd: 16rFFFFFF) test: (Form compareNotColorANotColorB bitOr: Form compareTallyFlag).
- tally  asString asDisplayText displayOn: Display at: left@(top +20).
- top:= top + 60]!

Item was removed:
- ----- Method: Form class>>exampleTouchingColor (in category '*Morphic-examples') -----
- exampleTouchingColor
- "Form exampleTouchingColor"
- "Demonstrate the algorithm used in Scratch code to determine if a sprite's non-transparent pixels touch a
- particular color pixel of the background upon which it is displayed.
- First column as above shows the sneaky red/yellow pirate sneaking up on the blue/peach galleon.
- Second column shows the 1bpp made from the red/yellow/transparent - white -> ignore this, black -> test this
- Third shows the hit area (black) superimposed on the original scene
- Fourth column is the tally of hits via the old algorithm
- Last column shows the tally of hits via the new prim"
- |formA formB maskA  offset tally map intersection left top dCanvas ignoreColor soughtColor|
- formA := formB := maskA := offset := tally := map := intersection :=  nil. "just to shut up the compiler when testing"
- Project current world restoreMorphicDisplay; doOneCycle.
-
- ignoreColor := Color transparent.
- soughtColor := Color blue.
-
- top := 50.
- dCanvas := FormCanvas on: Display.
- -50 to: 80 by: 10 do:[:p|
- offset:= p@0. "vary this to check different states"
- left := 10.
-
- formA := (Form extent: 100@50 depth: 32) asFormOfDepth: 16 "so we can try original forms of other depths".
- formB := Form extent: 100@50 depth: 32.
-
- "make a red square in the middle of the form"
- (FormCanvas on: formA) fillRectangle: (25@25 extent: 50@5) fillStyle: Color red.
- (FormCanvas on: formA) fillRectangle: (25@30 extent: 50@5) fillStyle: Color transparent.
- (FormCanvas on: formA) fillRectangle: (25@35 extent: 50@50) fillStyle: Color yellow.
- "formA displayOn: Display at: left@top rule: Form paint.
- dCanvas frameRectangle: (left@top extent: formA extent) width:2 color: Color green.
- left := left + 150."
-
- "make a blue block on the right half of the form"
- (FormCanvas on: formB) fillRectangle: (50@0 extent: 50@100) fillStyle: soughtColor.
- (FormCanvas on: formB) fillRectangle: (60@0 extent: 10@100) fillStyle: Color palePeach.
- "formB displayOn: Display at: left@top rule: Form paint.
- dCanvas frameRectangle: (left@top extent: formA extent) width:2 color: Color green.
- left := left + 150."
-
- intersection := (formA boundingBox translateBy: offset) intersect: (formB boundingBox).
-
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 150.
-
- maskA := Form extent: intersection extent depth: 1.
-
- map := Bitmap new: (1 bitShift: (formA depth min: 15)).
- map atAllPut: 1.
- map at: ( ignoreColor indexInMap: map) put: 0.
-
- maskA copyBits: (intersection translateBy:  offset negated) from: formA at: 0@0 colorMap: map.
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- maskA displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green. left := left + 150.
-
- "intersect world pixels of the color we're looking for with sensitive pixels mask"
- map atAllPut: 0.  "clear map and reuse it"
- map at: (soughtColor indexInMap: map) put: 1.
-
- maskA
- copyBits: intersection
- from: formB at: 0@0 clippingBox: formB boundingBox
- rule: Form and
- fillColor: nil
- map: map.
-
- formB displayOn: Display at: left@top rule: Form paint.
- formA displayOn: Display at: (left@top) + offset rule: Form paint.
- maskA displayOn: Display at: (left@top) + intersection origin rule: Form paint.
- dCanvas frameRectangle: (intersection translateBy: left@top) width:2 color: Color green.
- left := left + 170.
-
- (maskA tallyPixelValues at: 2) asString asDisplayText displayOn: Display at: left@(top +20).
- left := left + 70.
-
- "now try using the new primitive"
- tally := (BitBlt
- destForm: formB
- sourceForm: formA
- fillColor: nil
- combinationRule: 3 "really ought to work with nil but prim code checks"
- destOrigin: intersection origin
- sourceOrigin: (offset negated max: 0@0)
- extent: intersection extent
- clipRect: intersection)
- primCompareColor: ((ignoreColor pixelValueForDepth: formA depth) bitAnd: 16rFFFFFF) to: ((soughtColor pixelValueForDepth: formB depth) bitAnd: 16rFFFFFF) test: (Form compareNotColorAMatchColorB bitOr: Form compareTallyFlag).
- tally  asString asDisplayText displayOn: Display at: left@(top +20).
- top:= top + 60]!

Item was removed:
- ----- Method: MenuIcons class>>backIconContents (in category 'private - icons') -----
- backIconContents
- "Private - Method generated with the content of the file /home/dgd/back.png"
- ^ 'iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABHNCSVQICAgIfAhkiAAAABF0
- RVh0U29mdHdhcmUAU29kaXBvZGmU4xfQAAADRElEQVRIie3WW4hVVRgH8N/e+5y56aCizpnR
- jJzUCNFqLhqEWGlQDz0mGEJBCSL1Ur1YZA9BSIZGZg9dVBoo0B5D6qGwOzVaairZiJiKZ0hs
- 1NE5c2bm7N3DmXF2zQyO5lv+YbFZa/2/77+/y9prcxNpNFnoHi3/xUU4LtYiszX5WGC/ULsW
- m69XMLgqo8UzEhtRlVpNJJb62Tc3TnCxnH7bBR65sra0nt8vkC9Ah9Ay7U5d2Z+jUrUaoRqx
- Hr/qGp9gk0cFPsB0UFfFugUsybH1N7YfS7O7UTE4/u2vgDze02ijXUrRCLFmzwtswwRhwGO3
- Wb55tcWNzQ75g7+KfNmZtqhEZoyXz2IKlutSIe+LNCnQ7A08NxRVuKHVywvXWG+lDXZ5SRs9
- A7Qd53g3pSQlG1GboTY7PKojNh/hXBFK+s0oC85XocoOrASzJ6p9+wE7c69I8K7PfKrdgBK4
- XYNWc+VMFgwGlkgU9Svo06OooOiksw7u3MPrhwySVmVAlTasAAummPzWg16oXWGdD+13fESe
- ulxSZ5I7zTJHg1tNVxIr6FNQ1KlLuw7fOkJ9dTqHDwWarBJoA7lqPlqiflJO58gGuz78cJZn
- fxya/ZQRutdQKZY1MKlifGJJzEA/A32UUs+4NDhispVcjtMRdmeU7BBag8iJM5yOmDmPYIwj
- 2pXn5MGy2LhQl3pJF0O/2CuwBXzfS0cnR7+j9/IoUSWcPnINYuhNcRN/DnXpRFUOoFFNwKYa
- wgJ1s2mYS1TuLedOceLAsIMwIsoSZEhC4oCBgD70xpzB9ktcGExr4PHhvLVqFPsaM02NeC2L
- XjKVTJtVdp7vKNfufB1bznO2RLE03lhj5P5ZqBZ3SHyFnFsyrM+SFEaabqrm6CjrY6Mf79tn
- 7cjOaDVfbA+mmRzyajUVqXpGE3g6NQ88IXZYKFISCUVioUAfetDjolOOKZbpo6HV3WK70SCL
- F2uZ0V3eOzCFd64cm8/t8/C1hDr29dSqXuwT3AfuyjIvy66etPVT9tp2YwShWRZvYu0ouydd
- MG8oVePFyOspjbxY3m4znMD9hm/90xJPOuzYmLZj4Oq/GENYZKqS1QKxPlsdNMqX4Sb+D/gb
- LOgMCUjhiw4AAAAASUVORK5CYII='!

Item was changed:
+ ----- Method: MenuIcons class>>blankIconOfWidth: (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>blankIconOfWidth: (in category 'private - icons') -----
  blankIconOfWidth: aNumber
  ^ Icons
  at: ('blankIcon-' , aNumber asString) asSymbol
  ifAbsentPut: [Form extent: aNumber @ 1 depth:8]!

Item was changed:
+ ----- Method: MenuIcons class>>configurationIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>configurationIcon (in category 'private - icons') -----
  configurationIcon
  "Private - Generated method"
  ^ Icons
  at: #'configuration'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self configurationIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>confirmIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>confirmIcon (in category 'private - icons') -----
  confirmIcon
  "Private - Generated method"
  ^ Icons
  at: #'confirm'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self confirmIconContents readStream) ].!

Item was removed:
- ----- Method: MenuIcons class>>forwardIconContents (in category 'private - icons') -----
- forwardIconContents
- "Private - Method generated with the content of the file /home/dgd/forward.png"
- ^ 'iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABHNCSVQICAgIfAhkiAAAABF0
- RVh0U29mdHdhcmUAU29kaXBvZGmU4xfQAAADXUlEQVRIie3WX2iVZRwH8M97znv2f1o2Fy4r
- hxMvhhCeTewmJcuEbiLLP0GECoJWEIlYUBoR3QTVhRRIXffvJupiBF4oRCZukq5Na4LhlKnT
- 6XE7c/P8ebs4O8fNlh3nVdEPHnif5/d8f9/3+33e53le/usRvyv0UknzzDXgQrmQ2IzJkt4V
- 6BT4xVJfWKa5HFgwI7J27fIOmerQmMBOnfbeGWGrChXmoVZeSlZKjzQisEyznA4s1lhFWwMd
- Z4tZIh0SNjk8vc03CZO2Yzcap32R6WLLIrYt5sgl3jvOudFiZlBki6O+vxVSsKTNK9iLurLJ
- 4PkFLKy38YE1Wp5b7uT1P+hJEakV2KDJiAGHpipMSmAIdeoT7GwlGzGaJT2pjeUK49l8Aflw
- HZtaqI57xwv22OhD33qj+2OZXYe5OFaYF/nIUTtMmB5ot0LeAbB5kSXbn9LqIRXCUksIBZOE
- Dxl2RJ8T+ktjKy2x1RpN5lh7aY/Lr+6n71qR9EvjXtLjRijnyVKt+TVOOqtNiyc84kENQnGJ
- Cef7XXLKgGtG9Ruc4u4B3Q7o1mKelxue9ennCYOv76fzMoENqmXxYiDpK6wD7y9ldVPZS3i7
- mKPe0PAQ6w/etDfwTIjh0qx0mounuXEdAUFAECMekqgkrCCsJFFReA7+/twYMkx9guVz+W7C
- +rwVIVKlWUGK/vPlSQgC5rfSuGD6fD7H6V76SvXGBPbFBJM2aCpTHhlEEQO/E+X/mhu+TO9B
- jl3lxETNyG5dTsbdb1xgK+gaY3YdFdXkagiqCWuIVxFWEYbEYhMkUUFFWEntPYWimXHOdHO2
- l5Fa3koVyQ5aaJteUYCYpAtoKFtdTYwd9zF/sGBtY3OBfOgcuSz5Wbw2zHgEXVilq7B0cUSa
- jKEdNWURZiL6MqyMCkrTVxhNFZTnZ7MrzWgeesSt0ulKETr1GFviXjUqkJAVE8rLysnIqZKT
- 0SzmR1SCfXVEIzfxV+t5e4QbEZzCY7oMTKa48+sp6TNsAetn8fi1wvY4Vssnw8Vb41c8rcuZ
- W+EzIVyNH0r99gT9Oc6XvtavZWx2XHo6+Mwu4DY/iTx6y2hO5E1HfXA76Ex/MTbh50n930RW
- /xMZM1VYxLZZK2/MQh2+kbuLWv/Hvyj+BJaPHpqZ0oo8AAAAAElFTkSuQmCC'!

Item was changed:
+ ----- Method: MenuIcons class>>fugueBroomIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>fugueBroomIcon (in category 'private - icons') -----
  fugueBroomIcon
 
  ^ Icons
  at: #broom
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self fugueBroomIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>fugueDocumentClockIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>fugueDocumentClockIcon (in category 'private - icons') -----
  fugueDocumentClockIcon
 
  ^ Icons
  at: #documentClock
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self fugueDocumentClockIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>fugueUserSilhouetteQuestionIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>fugueUserSilhouetteQuestionIcon (in category 'private - icons') -----
  fugueUserSilhouetteQuestionIcon
 
  ^ Icons
  at: #userSilhouetteQuestion
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self fugueUserSilhouetteQuestionIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>fullScreenIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>fullScreenIcon (in category 'private - icons') -----
  fullScreenIcon
  "Private - Generated method"
  ^ Icons
  at: #'fullScreen'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self fullScreenIconContents readStream) ].!

Item was removed:
- ----- Method: MenuIcons class>>helpIconContents (in category 'private - icons') -----
- helpIconContents
- "Private - Method generated with the content of the file /home/dgd/help.png"
- ^ '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
- W2tds0/6AAAAAElFTkSuQmCC'!

Item was changed:
+ ----- Method: MenuIcons class>>homeIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>homeIcon (in category 'private - icons') -----
  homeIcon
  "Private - Generated method"
  ^ Icons
  at: #'home'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self homeIconContents readStream) ].!

Item was changed:
  ----- Method: MenuIcons class>>initializeIcons (in category 'class initialization') -----
  initializeIcons
  "self initialize"
+
- | methods |
  Icons := IdentityDictionary new.
- methods := self class selectors
- select: [:each | '*Icon' match: each asString].
- methods
- do: [:each | Icons
- at: each
- put: (MenuIcons perform: each)].
  self initializeTranslations.
  !

Item was changed:
+ ----- Method: MenuIcons class>>jumpIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>jumpIcon (in category 'private - icons') -----
  jumpIcon
  "Private - Generated method"
  ^ Icons
  at: #'jump'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self jumpIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>objectsIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>objectsIcon (in category 'private - icons') -----
  objectsIcon
  "Private - Generated method"
  ^ Icons
  at: #'objects'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self objectsIconContents readStream) ].!

Item was removed:
- ----- Method: MenuIcons class>>openIconContents (in category 'private - icons') -----
- openIconContents
- "Private - Method generated with the content of the file /home/dgd/open.png"
- ^ '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
- 0/8ClPo3sCGCJrEAAAAASUVORK5CYII='!

Item was changed:
+ ----- Method: MenuIcons class>>paintIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>paintIcon (in category 'private - icons') -----
  paintIcon
  "Private - Generated method"
  ^ Icons
  at: #'paint'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self paintIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>projectIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>projectIcon (in category 'private - icons') -----
  projectIcon
  "Private - Generated method"
  ^ Icons
  at: #'project'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self projectIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>publishIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>publishIcon (in category 'private - icons') -----
  publishIcon
  "Private - Generated method"
  ^ Icons
  at: #'publish'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self publishIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallBackIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallBackIcon (in category 'private - icons') -----
  smallBackIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallBack'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallBackIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallDoItIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallDoItIcon (in category 'private - icons') -----
  smallDoItIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallDoIt'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallDoItIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallExpertIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallExpertIcon (in category 'private - icons') -----
  smallExpertIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallExpert'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallExpertIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallExportIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallExportIcon (in category 'private - icons') -----
  smallExportIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallExport'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallExportIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallForwardIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallForwardIcon (in category 'private - icons') -----
  smallForwardIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallForward'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallForwardIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallFullScreenIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallFullScreenIcon (in category 'private - icons') -----
  smallFullScreenIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallFullScreen'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallFullScreenIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallInspectItIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallInspectItIcon (in category 'private - icons') -----
  smallInspectItIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallInspectIt'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallInspectItIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallJumpIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallJumpIcon (in category 'private - icons') -----
  smallJumpIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallJump'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallJumpIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallLanguageIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallLanguageIcon (in category 'private - icons') -----
  smallLanguageIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallLanguage'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallLanguageIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallLoadProjectIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallLoadProjectIcon (in category 'private - icons') -----
  smallLoadProjectIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallLoadProject'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallLoadProjectIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallNewIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallNewIcon (in category 'private - icons') -----
  smallNewIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallNew'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallNewIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallObjectCatalogIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallObjectCatalogIcon (in category 'private - icons') -----
  smallObjectCatalogIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallObjectCatalog'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallObjectCatalogIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallObjectsIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallObjectsIcon (in category 'private - icons') -----
  smallObjectsIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallObjects'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallObjectsIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallPaintIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallPaintIcon (in category 'private - icons') -----
  smallPaintIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallPaint'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallPaintIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallPublishIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallPublishIcon (in category 'private - icons') -----
  smallPublishIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallPublish'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallPublishIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallSelectIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallSelectIcon (in category 'private - icons') -----
  smallSelectIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallSelect'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallSelectIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallSqueakIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallSqueakIcon (in category 'private - icons') -----
  smallSqueakIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallSqueak'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallSqueakIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallUpdateIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallUpdateIcon (in category 'private - icons') -----
  smallUpdateIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallUpdate'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallUpdateIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>smallVolumeIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>smallVolumeIcon (in category 'private - icons') -----
  smallVolumeIcon
  "Private - Generated method"
  ^ Icons
  at: #'smallVolume'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smallVolumeIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>squeakIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>squeakIcon (in category 'private - icons') -----
  squeakIcon
  "Private - Generated method"
  ^ Icons
  at: #'squeak'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self squeakIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>volumeIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>volumeIcon (in category 'private - icons') -----
  volumeIcon
  "Private - Generated method"
  ^ Icons
  at: #'volume'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self volumeIconContents readStream) ].!

Item was changed:
+ ----- Method: MenuIcons class>>windowIcon (in category 'accessing - icons') -----
- ----- Method: MenuIcons class>>windowIcon (in category 'private - icons') -----
  windowIcon
  "Private - Generated method"
  ^ Icons
  at: #'window'
  ifAbsentPut:[ Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self windowIconContents readStream) ].!