Update MIGRATING.md

pull/95/head
jmoenig 2020-07-10 19:59:21 +02:00
rodzic e256a09cf1
commit 306fdb5f8c
1 zmienionych plików z 31 dodań i 31 usunięć

Wyświetl plik

@ -10,15 +10,15 @@ The second section is a recipe how to actually migrate your code. It's a list of
## Morphic Changes
* `noticesTransparentClick` => `!isFreeForm` (reversed default)
* `drawOn()` / `fullDrawOn()` takes context instead of Canvas as first arg
* `drawNew()` is deprecated => `render()`, also takes context as arg
* new`rerender()` to earmark for rerendering
* `.image`accessing has been turned intoa getter method: `getImage()`
* `.image`property has been deprecated, renamed to `cachedImage`for Morphs that need to check for pixel-wise collision frequently
* new `isCachingImage` flag (default: false)
* new `shouldRerender` flag (default: false)
* `fixLayout()`is now available for all Morphs, determines extent and arranges submorphs, if any, gets called from `setExtent()`
* `noticesTransparentClick` => `!isFreeForm` (reversed default)
* `drawOn()` / `fullDrawOn()` takes context instead of Canvas as first arg
* `drawNew()` is deprecated => `render()`, also takes context as arg
* new`rerender()` to earmark for rerendering
* `.image`accessing has been turned intoa getter method: `getImage()`
* `.image`property has been deprecated, renamed to `cachedImage`for Morphs that need to check for pixel-wise collision frequently
* new `isCachingImage` flag (default: false)
* new `shouldRerender` flag (default: false)
* `fixLayout()`is now available for all Morphs, determines extent and arranges submorphs, if any, gets called from `setExtent()`
* new `fixHolesLayout()` method in case your Morphs have untouchable areas ("holes")
* "silent" - functions are no longer needed, e.g. `silentSetExtent()`, `silentMoveBy()`
- `silentSetExtent` => use `bounds.setExtent()` to avoid infinite recursion
@ -37,7 +37,7 @@ The second section is a recipe how to actually migrate your code. It's a list of
- `new Color()`, `new Color(0, 0, 0)` => `BLACK`
- `new Color(255, 255, 255)` => `WHITE`
* `virtualKeyboard` property in Morphic preference has been deprecated
* `fullImageClassic()` => is now always just `fullImage()`
* `fullImageClassic()` => is now always just `fullImage()`
* `keyboardReceiver` => `keyboardFocus`
* keyboard navigation can be activated for any visible menu by pressing an arbitrary key
* new `noDropShadow` property for Morphs that already have built-in shadows (Menus, SpeechBubbles)
@ -47,33 +47,33 @@ The second section is a recipe how to actually migrate your code. It's a list of
Search your code for these words and replace them according to the instructions. It's best to follow the order given here. The last 3 replacements with constants are optional optimizations and can be left out.
**Words to search your code for**
**Words to search your code for:**
* **drawNew**
- rename method definitions to "render", notice that the first argument needs to be the 2D context, therefore remove the part in the code that makes a new canvas and queries its context.
- factor out the parts of the code that determine and set the extent and move them into a - possibly new - method named fixLayout()
- rename function calls to drawNew() to fixLayout() and/or rerender(), check whether the call is at all needed as it might be redundant in the new system
* **wantsRedraw** => replace with rerender()
* **noticesTransparentClick** => replace with => !isFreeForm, use with caution, as free forms should also cache their image for performance reason, which in turn strains memory usage
* **.image** => remove getters to getImage(), use with caution because of performance bottlenecks
- rename method definitions to `render`, notice that the first argument needs to be the 2D context, therefore remove the part in the code that makes a new canvas and queries its context.
- factor out the parts of the code that determine and set the extent and move them into a - possibly new - method named `fixLayout()`
- rename function calls to `drawNew()` to `fixLayout()` and/or `rerender()`, check whether the call is at all needed as it might be redundant in the new system
* **wantsRedraw** => replace with `rerender()`
* **noticesTransparentClick** => replace with `!isFreeForm`, use with caution, as free forms should also cache their image for performance reason, which in turn strains memory usage
* **.image** => rename getters to `getImage()`, use with caution because of performance bottlenecks
* **cachedFullImage** => no longer supported, remove all references
* **fullImageClassic** => rename method calls to just fullImage()
* **fullImageClassic** => rename method calls to just `fullImage()`
* **silentSet**
- remove method definitions
- rename method calls:
- silentSetExtent => use bounds.setExtent() to avoid infinite recursion
- silentMoveBy => use moveBy()
- silentSetPosition => use setPosition()
- silentSetWidth => use bounds.setWidth() to avoid infinite recursion
- silentSetHeight = use bounds.setHeight() to avoid infinite recursion
* **silentMove** => replace silentMoveBy() with moveBy()
- *silentSetExtent* => use `bounds.setExtent()` to avoid infinite recursion
- *silentMoveBy* => use `moveBy()`
- *silentSetPosition* => use `setPosition()`
- *silentSetWidth* => use `bounds.setWidth()` to avoid infinite recursion
- *silentSetHeight* = use `bounds.setHeight()` to avoid infinite recursion
* **silentMove** => replace `silentMoveBy()` with `moveBy()`
* **silentReplace** => (Snap! only) use replace instead
* **silent** => remove parameters named "silent" from function definitions and calls
* **cachedFullBounds** => no longer supported, remove all references
* **trackChanges** => no longer supported, remove all references
* **keyboardReceiver** => rename to keyboardFocus
* **startLayout** => no longer supported, remove all calls
* **cachedFullBounds** => no longer supported, remove all references
* **trackChanges** => no longer supported, remove all references
* **keyboardReceiver** => rename to `keyboardFocus`
* **startLayout** => no longer supported, remove all calls
* **endLayout** => no longer supported, remove all calls
* **new Point(0, 0)** => ZERO, but only if the point is not to be mutated
* **new Color() / new Color(0, 0, 0)** => BLACK, again, only if the color is not to be mutated
* **new Color(255, 255, 255)** => WHITE
* **new Point(0, 0)** => `ZERO`, but only if the point is not to be mutated
* **new Color() / new Color(0, 0, 0)** => `BLACK`, again, only if the color is not to be mutated
* **new Color(255, 255, 255)** => `WHITE`