[squeak-dev] The Trunk: Morphic-nice.1625.mcz
Thiede, Christoph
Christoph.Thiede at student.hpi.uni-potsdam.de
Mon Feb 17 17:36:25 UTC 2020
Thank you, I eventually repaired it via restore changes because I had unaccepted changes in my package.
________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
Gesendet: Montag, 17. Februar 2020 17:33:33
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] The Trunk: Morphic-nice.1625.mcz
The best thing to repair your image would be to load the pre-requisite Graphics-nice.425.
Installer squeakInbox package: 'Graphics-nice.425'; quietly; install.
or maybe:
Installer squeakTrunk package: 'Morphic'; latest; quietly; install.
You will loose your changes to either package though (I do not see an API for merging/reverting).
Le lun. 17 févr. 2020 à 17:22, Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de<mailto:Christoph.Thiede at student.hpi.uni-potsdam.de>> a écrit :
Hm, could you provide a rollback commit? It's very hard to revert this change without using any tools ^^
<http://www.hpi.de/>
________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org<mailto:squeak-dev-bounces at lists.squeakfoundation.org>> im Auftrag von Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com<mailto:nicolas.cellier.aka.nice at gmail.com>>
Gesendet: Montag, 17. Februar 2020 17:19:10
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] The Trunk: Morphic-nice.1625.mcz
Yes, apologies.
Le lun. 17 févr. 2020 à 17:19, Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de<mailto:Christoph.Thiede at student.hpi.uni-potsdam.de>> a écrit :
Is this the reason why I cannot open Browsers any longer?
[cid:17053f7528af456b1e51]
<http://www.hpi.de/>
________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org<mailto:squeak-dev-bounces at lists.squeakfoundation.org>> im Auftrag von Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com<mailto:nicolas.cellier.aka.nice at gmail.com>>
Gesendet: Montag, 17. Februar 2020 17:16:04
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] The Trunk: Morphic-nice.1625.mcz
Oups, sorry, this was for inbox!
Let me repair that if I can...
Le lun. 17 févr. 2020 à 17:07, <commits at source.squeak.org<mailto:commits at source.squeak.org>> a écrit :
Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-nice.1625.mcz
==================== Summary ====================
Name: Morphic-nice.1625
Author: nice
Time: 17 February 2020, 5:06:10.606532 pm
UUID: 094e2566-ddfe-2340-8fab-2338d255e164
Ancestors: Morphic-mt.1624
Free our mind from un-initialized LayoutFrame. There should not be any such thing.
Require Graphics-nice.425
=============== Diff against Morphic-mt.1624 ===============
Item was changed:
----- Method: BorderedMorph>>addMorph:fullFrame: (in category 'resize handling') -----
addMorph: aMorph fullFrame: aLayoutFrame
"Add aMorph according to aLayoutFrame."
self cellGap > 0 ifTrue: [
| left right bottom top spacing |
spacing := self cellGap.
+ left := aLayoutFrame leftOffset.
+ right := aLayoutFrame rightOffset.
- left := aLayoutFrame leftOffset ifNil: [0].
- right := aLayoutFrame rightOffset ifNil: [0].
+ bottom := aLayoutFrame bottomOffset.
+ top := aLayoutFrame topOffset.
- bottom := aLayoutFrame bottomOffset ifNil: [0].
- top := aLayoutFrame topOffset ifNil: [0].
"Add a spacing to the frame if it is not top or leftmost."
aLayoutFrame leftFraction = 0
ifFalse: [left := left + spacing]
ifTrue: [
"Expect another, resizable widget besides me if I have a fixed width."
aLayoutFrame hasFixedWidth ifTrue: [right := right - spacing]].
aLayoutFrame topFraction = 0
ifFalse: [top := top + spacing]
ifTrue: [
"Expect another, resizable widget besides me if I have a fixed height."
aLayoutFrame hasFixedHeight ifTrue: [bottom := bottom - spacing]].
aLayoutFrame
topOffset: top;
bottomOffset: bottom;
leftOffset: left;
rightOffset: right].
super addMorph: aMorph fullFrame: aLayoutFrame.
self wantsPaneSplitters ifTrue: [self addPaneSplitters].!
Item was changed:
----- Method: BorderedMorph>>addPaneHSplitterAtBottomOfRow: (in category 'resize handling') -----
addPaneHSplitterAtBottomOfRow: someMorphs
| targetY minX maxX splitter |
targetY := someMorphs first layoutFrame bottomFraction.
minX := (someMorphs detectMin: [:each | each layoutFrame leftFraction]) layoutFrame leftFraction.
maxX := (someMorphs detectMax: [:each | each layoutFrame rightFraction]) layoutFrame rightFraction.
splitter := ProportionalSplitterMorph new beSplitsTopAndBottom; yourself.
splitter layoutFrame: (LayoutFrame
fractions: (minX @ targetY corner: maxX @ targetY)
+ offsets: (someMorphs first layoutFrame leftOffset @ 0
+ corner: someMorphs first layoutFrame rightOffset @ AbstractResizerMorph gripThickness)).
- offsets: ((someMorphs first layoutFrame leftOffset ifNil: [0]) @ 0
- corner: (someMorphs first layoutFrame rightOffset ifNil: [0]) @ AbstractResizerMorph gripThickness)).
self addMorphBack: (splitter position: self position).!
Item was changed:
----- Method: BorderedMorph>>addPaneVSplitterAtRightOfColumn: (in category 'resize handling') -----
addPaneVSplitterAtRightOfColumn: someMorphs
| targetX minY maxY splitter |
targetX := someMorphs first layoutFrame rightFraction.
minY := (someMorphs detectMin: [:each | each layoutFrame topFraction]) layoutFrame topFraction.
maxY := (someMorphs detectMax: [:each | each layoutFrame bottomFraction]) layoutFrame bottomFraction.
splitter := ProportionalSplitterMorph new beSplitsLeftAndRight; yourself.
splitter layoutFrame: (LayoutFrame
fractions: (targetX @ minY corner: targetX @ maxY)
+ offsets: (0 @ (someMorphs first layoutFrame topOffset)
+ corner: (AbstractResizerMorph gripThickness@ (someMorphs first layoutFrame bottomOffset)))).
- offsets: (0 @ (someMorphs first layoutFrame topOffset ifNil: [0])
- corner: (AbstractResizerMorph gripThickness@ (someMorphs first layoutFrame bottomOffset ifNil: [0])))).
self addMorphBack: (splitter position: self position).!
Item was changed:
----- Method: BorderedMorph>>linkSubmorphsToSplitters (in category 'resize handling') -----
linkSubmorphsToSplitters
self splitters do: [:splitter |
splitter splitsTopAndBottom ifTrue: [
self submorphsDo: [:morph |
((morph ~= splitter
and: [morph layoutFrame bottomFraction = splitter layoutFrame topFraction])
and: [morph layoutFrame hasFixedHeight not
+ or: [(morph layoutFrame topOffset) < 0]])
- or: [(morph layoutFrame topOffset ifNil: [0]) < 0]])
ifTrue: [splitter addLeftOrTop: morph].
((morph ~= splitter
and: [morph layoutFrame topFraction = splitter layoutFrame bottomFraction])
and: [morph layoutFrame hasFixedHeight not
+ or: [(morph layoutFrame bottomOffset) > 0]])
- or: [(morph layoutFrame bottomOffset ifNil: [0]) > 0]])
ifTrue: [splitter addRightOrBottom: morph]]].
splitter splitsLeftAndRight ifTrue: [
self submorphsDo: [:morph |
((morph ~= splitter
and: [morph layoutFrame rightFraction = splitter layoutFrame leftFraction])
and: [morph layoutFrame hasFixedWidth not
+ or: [(morph layoutFrame leftOffset) < 0]])
- or: [(morph layoutFrame leftOffset ifNil: [0]) < 0]])
ifTrue: [splitter addLeftOrTop: morph].
((morph ~= splitter
and: [morph layoutFrame leftFraction = splitter layoutFrame rightFraction])
and: [morph layoutFrame hasFixedWidth not
+ or: [(morph layoutFrame rightOffset) > 0]])
- or: [(morph layoutFrame rightOffset ifNil: [0]) > 0]])
ifTrue: [splitter addRightOrBottom: morph]]]]!
Item was changed:
----- Method: ProportionalSplitterMorph>>balanceOffsets (in category 'events') -----
balanceOffsets
| fdx fdy |
(self hasProperty: #fullDelta) ifFalse: [^ self].
fdx := (self valueOfProperty: #fullDelta) x.
fdy := (self valueOfProperty: #fullDelta) y.
self layoutFrame hasFixedHeight ifTrue: [
| otop obot ctop cbot topf |
otop := (owner submorphs detect: [:m |
m layoutFrame topFraction isZero] ifNone: [^ self]) in: [:tm |
+ tm top - (tm layoutFrame topOffset)].
- tm top - (tm layoutFrame topOffset ifNil: [0])].
obot := (owner submorphs detect: [:m |
m layoutFrame bottomFraction = 1] ifNone: [^ self]) in: [:tm |
+ tm bottom - (tm layoutFrame bottomOffset)].
- tm bottom - (tm layoutFrame bottomOffset ifNil: [0])].
ctop := (self layoutFrame topFraction * (obot - otop)) rounded
+ + otop + (self layoutFrame topOffset).
- + otop + (self layoutFrame topOffset ifNil: [0]).
cbot := (self layoutFrame bottomFraction * (obot - otop)) rounded
+ + otop + (self layoutFrame bottomOffset).
- + otop + (self layoutFrame bottomOffset ifNil: [0]).
topf := self layoutFrame topFraction.
self layoutFrame topFraction: ((ctop + cbot) * 0.5 - otop) / (obot - otop) asFloat.
self layoutFrame bottomFraction: self layoutFrame topFraction.
self layoutFrame topOffset: self layoutFrame topOffset - fdy.
self layoutFrame bottomOffset: self layoutFrame bottomOffset - fdy.
(leftOrTop copy union: rightOrBottom) do: [:m |
(m layoutFrame topFraction closeTo: topf) ifTrue: [
m layoutFrame topFraction: self layoutFrame topFraction.
m layoutFrame topOffset: m layoutFrame topOffset - fdy].
(m layoutFrame bottomFraction closeTo: topf) ifTrue: [
m layoutFrame bottomFraction: self layoutFrame topFraction.
m layoutFrame bottomOffset: m layoutFrame bottomOffset - fdy]]] .
self layoutFrame hasFixedWidth ifTrue: [
| oleft oright cleft cright leftf |
oleft := (owner submorphs detect: [:m |
m layoutFrame leftFraction isZero] ifNone: [^ self]) in: [:tm |
+ tm left - (tm layoutFrame leftOffset)].
- tm left - (tm layoutFrame leftOffset ifNil: [0])].
oright := (owner submorphs detect: [:m |
m layoutFrame rightFraction = 1] ifNone: [^ self]) in: [:tm |
+ tm right - (tm layoutFrame rightOffset)].
- tm right - (tm layoutFrame rightOffset ifNil: [0])].
cleft := (self layoutFrame leftFraction * (oright - oleft)) rounded
+ + oleft + (self layoutFrame leftOffset).
- + oleft + (self layoutFrame leftOffset ifNil: [0]).
cright := (self layoutFrame rightFraction * (oright - oleft)) rounded
+ + oleft + (self layoutFrame rightOffset).
- + oleft + (self layoutFrame rightOffset ifNil: [0]).
leftf := self layoutFrame leftFraction.
self layoutFrame leftFraction: ((cleft + cright) * 0.5 - oleft) / (oright - oleft) asFloat.
self layoutFrame rightFraction: self layoutFrame leftFraction.
self layoutFrame leftOffset: self layoutFrame leftOffset - fdx.
self layoutFrame rightOffset: self layoutFrame rightOffset - fdx.
(leftOrTop copy union: rightOrBottom) do: [:m |
(m layoutFrame leftFraction closeTo: leftf) ifTrue: [
m layoutFrame leftFraction: self layoutFrame leftFraction.
m layoutFrame leftOffset: m layoutFrame leftOffset - fdx].
(m layoutFrame rightFraction closeTo: leftf) ifTrue: [
m layoutFrame rightFraction: self layoutFrame leftFraction.
m layoutFrame rightOffset: m layoutFrame rightOffset - fdx.]]] .
self removeProperty: #fullDelta.
owner layoutChanged
!
Item was changed:
----- Method: ProportionalSplitterMorph>>repositionBy: (in category 'events') -----
repositionBy: delta
| selfTop selfBottom selfLeft selfRight |
self setProperty: #fullDelta toValue: ((self valueOfProperty: #fullDelta) ifNil: [0 at 0]) + delta.
leftOrTop do:
[ : each | | firstRight firstBottom firstLeft firstTop |
+ firstRight := each layoutFrame rightOffset.
+ firstBottom := each layoutFrame bottomOffset.
- firstRight := each layoutFrame rightOffset ifNil: [ 0 ].
- firstBottom := each layoutFrame bottomOffset ifNil: [ 0 ].
each layoutFrame rightOffset: firstRight + delta x.
each layoutFrame bottomOffset: firstBottom + delta y.
each layoutFrame hasFixedHeight ifTrue: [
+ firstTop := each layoutFrame topOffset.
- firstTop := each layoutFrame topOffset ifNil: [ 0 ].
each layoutFrame topOffset: firstTop + delta y ].
each layoutFrame hasFixedWidth ifTrue: [
+ firstLeft := each layoutFrame leftOffset.
- firstLeft := each layoutFrame leftOffset ifNil: [ 0 ].
each layoutFrame leftOffset: firstLeft + delta x. ] ].
rightOrBottom do:
[ : each | | secondLeft secondTop secondRight secondBottom |
+ secondLeft := each layoutFrame leftOffset.
+ secondTop := each layoutFrame topOffset.
- secondLeft := each layoutFrame leftOffset ifNil: [ 0 ].
- secondTop := each layoutFrame topOffset ifNil: [ 0 ].
each layoutFrame leftOffset: secondLeft + delta x.
each layoutFrame topOffset: secondTop + delta y.
each layoutFrame hasFixedHeight ifTrue: [
+ secondBottom := each layoutFrame bottomOffset.
- secondBottom := each layoutFrame bottomOffset ifNil: [ 0 ].
each layoutFrame bottomOffset: secondBottom + delta y. ].
each layoutFrame hasFixedWidth ifTrue: [
+ secondRight := each layoutFrame rightOffset.
- secondRight := each layoutFrame rightOffset ifNil: [ 0 ].
each layoutFrame rightOffset: secondRight + delta x. ] ].
+ selfTop := self layoutFrame topOffset.
+ selfBottom := self layoutFrame bottomOffset.
+ selfLeft := self layoutFrame leftOffset.
+ selfRight := self layoutFrame rightOffset.
- selfTop := self layoutFrame topOffset ifNil: [ 0 ].
- selfBottom := self layoutFrame bottomOffset ifNil: [ 0 ].
- selfLeft := self layoutFrame leftOffset ifNil: [ 0 ].
- selfRight := self layoutFrame rightOffset ifNil: [ 0 ].
self layoutFrame
topOffset: selfTop + delta y ;
bottomOffset: selfBottom + delta y ;
leftOffset: selfLeft + delta x ;
rightOffset: selfRight + delta x.
self owner layoutChanged.
self movements removeFirst; add: (splitsTopAndBottom ifTrue: [ delta y sign ] ifFalse: [ delta x sign ])!
Item was changed:
----- Method: SystemWindow>>convertAlignment (in category 'layout') -----
convertAlignment
"Primarily Jesse Welton's code to convert old system windows to ones with modern layout scheme"
self layoutPolicy: ProportionalLayout new.
(paneMorphs isNil
or: [paneRects isNil or: [paneMorphs size ~= paneRects size]])
ifFalse:
[self addLabelArea.
self putLabelItemsInLabelArea.
self setFramesForLabelArea.
paneMorphs with: paneRects
do:
[:m :r |
| frame |
frame := LayoutFrame new.
frame
leftFraction: r left;
rightFraction: r right;
topFraction: r top;
bottomFraction: r bottom.
m layoutFrame: frame.
m
hResizing: #spaceFill;
vResizing: #spaceFill]].
labelArea isNil
ifTrue:
[self addLabelArea.
self putLabelItemsInLabelArea.
self setFramesForLabelArea.
paneMorphs ifNotNil:
[paneMorphs do:
[:m |
| frame |
frame := m layoutFrame ifNil: [LayoutFrame new].
+ frame topOffset: (frame topOffset) - self labelHeight.
- frame topOffset: (frame topOffset ifNil: [0]) - self labelHeight.
frame bottomFraction ~= 1.0
ifTrue:
+ [frame bottomOffset: (frame bottomOffset) - self labelHeight]]]].
- [frame bottomOffset: (frame bottomOffset ifNil: [0]) - self labelHeight]]]].
label ifNotNil:
[| frame |
frame := LayoutFrame new.
frame
leftFraction: 0.5;
topFraction: 0;
leftOffset: label width negated // 2.
label layoutFrame: frame].
collapseBox ifNotNil:
[| frame |
frame := LayoutFrame new.
frame
rightFraction: 1;
topFraction: 0;
rightOffset: -1;
topOffset: 1.
collapseBox layoutFrame: frame].
stripes ifNotNil:
[| frame |
frame := LayoutFrame new.
frame
leftFraction: 0;
topFraction: 0;
rightFraction: 1;
leftOffset: 1;
topOffset: 1;
rightOffset: -1.
stripes first layoutFrame: frame.
stripes first height: self labelHeight - 2.
stripes first hResizing: #spaceFill.
frame := LayoutFrame new.
frame
leftFraction: 0;
topFraction: 0;
rightFraction: 1;
leftOffset: 3;
topOffset: 3;
rightOffset: -3.
stripes last layoutFrame: frame.
stripes last height: self labelHeight - 6.
stripes last hResizing: #spaceFill].
menuBox ifNotNil:
[| frame |
frame := LayoutFrame new.
frame
leftFraction: 0;
leftOffset: 19;
topFraction: 0;
topOffset: 1.
menuBox layoutFrame: frame].
closeBox ifNotNil:
[| frame |
frame := LayoutFrame new.
frame
leftFraction: 0;
leftOffset: 4;
topFraction: 0;
topOffset: 1.
closeBox layoutFrame: frame]!
Item was changed:
----- Method: SystemWindow>>setPaneRectsFromBounds (in category 'geometry') -----
setPaneRectsFromBounds
"Reset proportional specs from actual bounds, eg, after reframing panes"
| layoutBounds |
layoutBounds := self layoutBounds.
paneMorphs do:[:m| | box left bottom top frame right |
frame := m layoutFrame.
box := m bounds.
frame ifNotNil:[
+ left := box left - layoutBounds left - frame leftOffset.
+ right := box right - layoutBounds left - frame rightOffset.
+ top := box top - layoutBounds top - frame topOffset.
+ bottom := box bottom - layoutBounds top - frame bottomOffset.
- left := box left - layoutBounds left - (frame leftOffset ifNil:[0]).
- right := box right - layoutBounds left - (frame rightOffset ifNil:[0]).
- top := box top - layoutBounds top - (frame topOffset ifNil:[0]).
- bottom := box bottom - layoutBounds top - (frame bottomOffset ifNil:[0]).
frame leftFraction: (left / layoutBounds width asFloat).
frame rightFraction: (right / layoutBounds width asFloat).
frame topFraction: (top / layoutBounds height asFloat).
frame bottomFraction: (bottom / layoutBounds height asFloat).
].
].!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200217/81b49df7/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImage.png
Type: image/png
Size: 46687 bytes
Desc: pastedImage.png
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200217/81b49df7/attachment-0001.png>
More information about the Squeak-dev
mailing list
|