Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 41 additions & 16 deletions src/Bloc-Serialization-Stash/BlElement.extension.st
Original file line number Diff line number Diff line change
Expand Up @@ -41,35 +41,23 @@ BlElement >> allSetterAndGettersForMyStashLayout [
]

{ #category : #'*Bloc-Serialization-Stash' }
BlElement >> allSetterAndGettersForMyStashTransformation [
BlElement >> allSetterAndGettersForMyStashMargin [

<stashAccessors>
self transformation isIdentity ifFalse: [
^ { #transformDo: -> #transformation } ].
self margin = BlInsets empty ifFalse: [
^ { #margin } ].
^ { }
]

{ #category : #'*Bloc-Serialization-Stash' }
BlElement >> allSetterAndGettersForMyStashVisuals [
BlElement >> allSetterAndGettersForMyStashOtherProperties [

<stashAccessors>
| settersAndGetters |
settersAndGetters := OrderedCollection new.
self background == BlElementVisuals defaultBackground ifFalse: [
settersAndGetters add: #background ].
self border == BlElementVisuals defaultBorder ifFalse: [
settersAndGetters add: #border ].
self geometry == BlElementVisuals defaultGeometry ifFalse: [
settersAndGetters add: #geometry ].
self effect == (BlElementVisuals classPool at: #DefaultEffect)
ifFalse: [ settersAndGetters add: #effect ].
self opacity == (BlElementVisuals classPool at: #DefaultOpacity)
ifFalse: [ settersAndGetters add: #opacity ].
self visibility
== (BlElementVisuals classPool at: #DefaultVisibility) ifFalse: [
settersAndGetters add: #visibility ].
self outskirts == (BlElementVisuals classPool at: #DefaultOutskirts)
ifFalse: [ settersAndGetters add: #outskirts ].
self clipChildren
== (BlElementVisuals classPool at: #DefaultClipChildren) ifFalse: [
settersAndGetters add: #clipChildren ].
Expand All @@ -84,5 +72,42 @@ BlElement >> allSetterAndGettersForMyStashVisuals [
== (BlElementVisuals classPool at: #DefaultMouseCursor) ifFalse: [
settersAndGetters add: #mouseCursor ].
^ settersAndGetters
]

{ #category : #'*Bloc-Serialization-Stash' }
BlElement >> allSetterAndGettersForMyStashPadding [

<stashAccessors>
self padding = BlInsets empty ifFalse: [ ^ { #padding } ].
^ { }
]

{ #category : #'*Bloc-Serialization-Stash' }
BlElement >> allSetterAndGettersForMyStashTransformation [

<stashAccessors>
self transformation isIdentity ifFalse: [
^ { #transformDo: -> #transformation } ].
^ { }
]

{ #category : #'*Bloc-Serialization-Stash' }
BlElement >> allSetterAndGettersForMyStashVisuals [

<stashAccessors>
| settersAndGetters |
settersAndGetters := OrderedCollection new.
self background == BlElementVisuals defaultBackground ifFalse: [
settersAndGetters add: #background ].
self border == BlElementVisuals defaultBorder ifFalse: [
settersAndGetters add: #border ].
self geometry == BlElementVisuals defaultGeometry ifFalse: [
settersAndGetters add: #geometry ].
self effect == (BlElementVisuals classPool at: #DefaultEffect)
ifFalse: [ settersAndGetters add: #effect ].
self opacity == (BlElementVisuals classPool at: #DefaultOpacity)
ifFalse: [ settersAndGetters add: #opacity ].
self outskirts == (BlElementVisuals classPool at: #DefaultOutskirts)
ifFalse: [ settersAndGetters add: #outskirts ].
^ settersAndGetters
]
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ Extension { #name : #BlLayoutCommonConstraints }

{ #category : #'*Bloc-Serialization-Stash' }
BlLayoutCommonConstraints >> stashAccessorsForCommonConstraints [

<stashAccessors>
| settersAndGetters |
settersAndGetters := OrderedCollection new.

self flow allSetterAndGettersForMyStash ifNotEmpty: [
settersAndGetters add: #flow onlyGetOnStash ].
self frame allSetterAndGettersForMyStash ifNotEmpty: [
Expand All @@ -20,12 +21,8 @@ BlLayoutCommonConstraints >> stashAccessorsForCommonConstraints [
settersAndGetters add: #relative onlyGetOnStash ].
self zoomable allSetterAndGettersForMyStash ifNotEmpty: [
settersAndGetters add: #zoomable onlyGetOnStash ].

self position = (0 @ 0) ifFalse: [ settersAndGetters add: #position ].
self padding = BlInsets empty ifFalse: [
settersAndGetters add: #padding ].
self margin = BlInsets empty ifFalse: [
settersAndGetters add: #margin ].

self maxHeight = Float infinity ifFalse: [
settersAndGetters add: #maxHeight ].
Expand All @@ -35,8 +32,8 @@ BlLayoutCommonConstraints >> stashAccessorsForCommonConstraints [
self minWidth = 0 ifFalse: [ settersAndGetters add: #minWidth ].

accountTransformation ifTrue: [
settersAndGetters add:
([ :c | #accountTransformation ] -> self) onlySetOnStash ].
settersAndGetters add:
([ :c | #accountTransformation ] -> self) onlySetOnStash ].

^ settersAndGetters
]
174 changes: 88 additions & 86 deletions src/Bloc-Serialization-Tests/BlocSerializationChildrenTests.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ BlocSerializationChildrenTests >> testChildren [
e3 }.

self test: origin on: [ :element |
self assert: element parent equals: nil.
self assert: element children size equals: 3.
self assert: (element childAt: 1) parent equals: element.
self assert: (element childAt: 1) isFirstChild equals: true.
self assert: (element childAt: 1) isLastChild equals: false.
self assert: (element childAt: 2) parent equals: element.
self assert: (element childAt: 2) isFirstChild equals: false.
self assert: (element childAt: 2) isLastChild equals: false.
self assert: (element childAt: 3) owner equals: element.
self assert: (element childAt: 3) isFirstChild equals: false.
self assert: (element childAt: 3) isLastChild equals: true ]
self assert: element parent equals: nil.
self assert: element children size equals: 3.
self assert: (element childAt: 1) parent equals: element.
self assert: (element childAt: 1) isFirstChild equals: true.
self assert: (element childAt: 1) isLastChild equals: false.
self assert: (element childAt: 2) parent equals: element.
self assert: (element childAt: 2) isFirstChild equals: false.
self assert: (element childAt: 2) isLastChild equals: false.
self assert: (element childAt: 3) parent equals: element.
self assert: (element childAt: 3) isFirstChild equals: false.
self assert: (element childAt: 3) isLastChild equals: true ]
]

{ #category : #tests }
Expand All @@ -45,7 +45,7 @@ BlocSerializationChildrenTests >> testChildren1 [
background: Color blue;
yourself.
e2 := BlElement new
size: 50 @ 10;
extent: 50 @ 10;
background: Color green;
yourself.
e3 := BlElement new
Expand All @@ -59,17 +59,17 @@ BlocSerializationChildrenTests >> testChildren1 [
e3 }.

self test: origin on: [ :element |
self assert: element parent equals: nil.
self assert: element children size equals: 3.
self assert: (element childAt: 1) owner equals: element.
self assert: (element childAt: 1) isFirstChild equals: true.
self assert: (element childAt: 1) isLastChild equals: false.
self assert: (element childAt: 2) owner equals: element.
self assert: (element childAt: 2) isFirstChild equals: false.
self assert: (element childAt: 2) isLastChild equals: false.
self assert: (element childAt: 3) owner equals: element.
self assert: (element childAt: 3) isFirstChild equals: false.
self assert: (element childAt: 3) isLastChild equals: true ]
self assert: element parent equals: nil.
self assert: element children size equals: 3.
self assert: (element childAt: 1) owner equals: element.
self assert: (element childAt: 1) isFirstChild equals: true.
self assert: (element childAt: 1) isLastChild equals: false.
self assert: (element childAt: 2) owner equals: element.
self assert: (element childAt: 2) isFirstChild equals: false.
self assert: (element childAt: 2) isLastChild equals: false.
self assert: (element childAt: 3) owner equals: element.
self assert: (element childAt: 3) isFirstChild equals: false.
self assert: (element childAt: 3) isLastChild equals: true ]
]

{ #category : #tests }
Expand All @@ -85,7 +85,7 @@ BlocSerializationChildrenTests >> testChildren2 [
background: Color blue;
yourself.
e2 := BlElement new
size: 50 @ 10;
extent: 50 @ 10;
background: Color green;
yourself.
e3 := BlElement new
Expand All @@ -99,26 +99,28 @@ BlocSerializationChildrenTests >> testChildren2 [
e3 }.

self test: origin on: [ :element |
self assert: element constraints horizontal resizer size equals: 300.
self assert: element constraints vertical resizer size equals: 500.
self
assert: (element childAt: 1) constraints horizontal resizer size
equals: 200.
self
assert: (element childAt: 2) constraints horizontal resizer size
equals: 50.
self
assert: (element childAt: 3) constraints horizontal resizer size
equals: 80.
self
assert: (element childAt: 1) constraints vertical resizer size
equals: 100.
self
assert: (element childAt: 2) constraints vertical resizer size
equals: 10.
self
assert: (element childAt: 3) constraints vertical resizer size
equals: 600 ]
self
assert: element constraints horizontal resizer size
equals: 300.
self assert: element constraints vertical resizer size equals: 500.
self
assert: (element childAt: 1) constraints horizontal resizer size
equals: 200.
self
assert: (element childAt: 2) constraints horizontal resizer size
equals: 50.
self
assert: (element childAt: 3) constraints horizontal resizer size
equals: 80.
self
assert: (element childAt: 1) constraints vertical resizer size
equals: 100.
self
assert: (element childAt: 2) constraints vertical resizer size
equals: 10.
self
assert: (element childAt: 3) constraints vertical resizer size
equals: 600 ]
]

{ #category : #tests }
Expand All @@ -134,7 +136,7 @@ BlocSerializationChildrenTests >> testChildren3 [
background: Color blue;
yourself.
e2 := BlElement new
size: 50 @ 10;
extent: 50 @ 10;
background: Color green;
yourself.
e3 := BlElement new
Expand All @@ -148,16 +150,16 @@ BlocSerializationChildrenTests >> testChildren3 [
e3 }.

self test: origin on: [ :element |
self assert: element background paint color equals: Color red.
self
assert: (element childAt: 1) background paint color
equals: Color blue.
self
assert: (element childAt: 2) background paint color
equals: Color green.
self
assert: (element childAt: 3) background paint color
equals: Color yellow ]
self assert: element background paint color equals: Color red.
self
assert: (element childAt: 1) background paint color
equals: Color blue.
self
assert: (element childAt: 2) background paint color
equals: Color green.
self
assert: (element childAt: 3) background paint color
equals: Color yellow ]
]

{ #category : #tests }
Expand All @@ -175,17 +177,17 @@ BlocSerializationChildrenTests >> testChildrenBasic1 [
e3 }.

self test: origin on: [ :element |
self assert: element parent equals: nil.
self assert: element children size equals: 3.
self assert: (element childAt: 1) parent equals: element.
self assert: (element childAt: 1) isFirstChild equals: true.
self assert: (element childAt: 1) isLastChild equals: false.
self assert: (element childAt: 2) parent equals: element.
self assert: (element childAt: 2) isFirstChild equals: false.
self assert: (element childAt: 2) isLastChild equals: false.
self assert: (element childAt: 3) owner equals: element.
self assert: (element childAt: 3) isFirstChild equals: false.
self assert: (element childAt: 3) isLastChild equals: true ]
self assert: element parent equals: nil.
self assert: element children size equals: 3.
self assert: (element childAt: 1) parent equals: element.
self assert: (element childAt: 1) isFirstChild equals: true.
self assert: (element childAt: 1) isLastChild equals: false.
self assert: (element childAt: 2) parent equals: element.
self assert: (element childAt: 2) isFirstChild equals: false.
self assert: (element childAt: 2) isLastChild equals: false.
self assert: (element childAt: 3) parent equals: element.
self assert: (element childAt: 3) isFirstChild equals: false.
self assert: (element childAt: 3) isLastChild equals: true ]
]

{ #category : #tests }
Expand All @@ -202,26 +204,26 @@ BlocSerializationChildrenTests >> testChildrenBasic2 [
e2 addChild: e3.

self test: origin on: [ :element |
self assert: element parent equals: nil.
self assert: element children size equals: 1.

self assert: (element childAt: 1) parent equals: element.
self assert: (element childAt: 1) children size equals: 1.

self
assert: ((element childAt: 1) childAt: 1) children size
equals: 1.
self
assert: ((element childAt: 1) childAt: 1) parent
equals: (element childAt: 1).

self
assert:
(((element childAt: 1) childAt: 1) childAt: 1) children size
equals: 0.
self
assert: (((element childAt: 1) childAt: 1) childAt: 1) owner
equals: ((element childAt: 1) childAt: 1) ]
self assert: element parent equals: nil.
self assert: element children size equals: 1.

self assert: (element childAt: 1) parent equals: element.
self assert: (element childAt: 1) children size equals: 1.

self
assert: ((element childAt: 1) childAt: 1) children size
equals: 1.
self
assert: ((element childAt: 1) childAt: 1) parent
equals: (element childAt: 1).

self
assert:
(((element childAt: 1) childAt: 1) childAt: 1) children size
equals: 0.
self
assert: (((element childAt: 1) childAt: 1) childAt: 1) parent
equals: ((element childAt: 1) childAt: 1) ]
]

{ #category : #tests }
Expand Down