samples/custom-layout.yml in squib-0.0.3 vs samples/custom-layout.yml in squib-0.0.4
- old
+ new
@@ -1,39 +1,59 @@
-frame:
- x: 38
- y: 38
- width: 750
- height: 1050
- radius: 25
-title:
- x: 125
- y: 50
- width: 625
- height: 100
- align: !ruby/symbol center #see http://www.yaml.org/YAML_for_ruby.html#symbols
- valign: !ruby/symbol middle
-subtitle:
- x: 150
- y: 150
- width: 575
- height: 60
- align: !ruby/symbol center
- valign: !ruby/symbol middle
-
-# Yaml has this beautfiul feature for us: merge keys
-# http://www.yaml.org/YAML_for_ruby.html#merge_key
-# Define an alias with &foo, then use <<: *foo to include it
-# Everything gets merged, with later merges overriding
-icon: &icon
- width: 125
- height: 125
- y: 250
-icon_left:
- <<: *icon
- x: 150
-icon_middle:
- <<: *icon
- x: 350
- y: 400 #overrides the y inherited from icon
-icon_right:
- <<: *icon
- x: 550
+frame:
+ x: 38
+ y: 38
+ width: 750
+ height: 1050
+ radius: 25
+title:
+ x: 125
+ y: 50
+ width: 625
+ height: 100
+ align: !ruby/symbol center #see http://www.yaml.org/YAML_for_ruby.html#symbols
+ valign: !ruby/symbol middle
+subtitle:
+ x: 150
+ y: 150
+ width: 575
+ height: 60
+ align: !ruby/symbol center
+ valign: !ruby/symbol middle
+icon:
+ width: 125
+ height: 125
+ y: 250
+icon_left:
+ extends: icon
+ x: 150
+icon_middle:
+ extends: icon
+ x: 350
+ y: 400 #overrides the y inherited from icon
+icon_right:
+ extends: icon
+ x: 550
+
+# Squib also supports its own merging-and-modify feature
+# Called "extends"
+# Any layout can extend another layout, so long as it's not a circle
+# Order doesn't matter since it's done after YAML procesing
+# And, if the entry overrides
+bonus: #becomes our bonus rectangle
+ x: 250
+ y: 600
+ width: 300
+ height: 200
+ radius: 32
+bonus_inner:
+ extends: bonus
+ x: += 10 # i.e. 260
+ y: += 10 # i.e. 610
+ width: -= 20 # i.e. 180
+ height: -= 20 # i.e. 180
+ radius: -= 8
+bonus_text:
+ extends: bonus_inner
+ x: +=10
+ y: +=10
+ width: -= 20
+ height: -= 20