atome 0.5.7.1.8 → 0.5.7.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -219,7 +219,6 @@ class HTML
219
219
  particles_from_style[key.to_sym] = value if key && value
220
220
  end
221
221
 
222
-
223
222
  particles_found = particles_found.merge(particles_from_style)
224
223
  current_atome = grab(@id)
225
224
  usr_bloc.call(particles_found)
@@ -735,7 +734,7 @@ class HTML
735
734
  end
736
735
 
737
736
  def drag_remove(option)
738
-
737
+ @draggable = nil
739
738
  interact = JS.eval("return interact('##{@id}')")
740
739
 
741
740
  case option
@@ -745,8 +744,9 @@ class HTML
745
744
  @drag_end = ''
746
745
  when :move
747
746
  interact.draggable(false)
748
- interact.unset
747
+ # interact.unset
749
748
  @drag_move = nil
749
+
750
750
  when :locked
751
751
  @drag_locked = ''
752
752
  when :restrict
@@ -759,7 +759,7 @@ class HTML
759
759
  @drag_restrict = ''
760
760
  @drag_move = nil
761
761
  interact.draggable(false)
762
- interact.unset
762
+ # interact.unset
763
763
  end
764
764
 
765
765
  end
@@ -772,7 +772,7 @@ class HTML
772
772
  # we use .call instead of instance_eval because instance_eval bring the current object as context
773
773
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
774
774
  # group etc..
775
- @drag_start.call(event) if @drag_start.is_a?(Proc)
775
+ @drag_start.call(event) if event_validation(@drag_start)
776
776
  end
777
777
  end
778
778
 
@@ -784,38 +784,43 @@ class HTML
784
784
  # we use .call instead of instance_eval because instance_eval bring the current object as context
785
785
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
786
786
  # group etc..
787
- @drag_end.call(event) if @drag_end.is_a?(Proc)
787
+ @drag_end.call(event) if event_validation(@drag_end)
788
788
  end
789
789
  end
790
790
 
791
791
  def drag_move(_option)
792
-
792
+ # the condition below prevent drag accumulation
793
793
  interact = JS.eval("return interact('##{@id}')")
794
- # interact.draggable(false)
795
794
 
796
- interact.draggable({
797
- drag: true,
798
- inertia: { resistance: 12,
799
- minSpeed: 200,
800
- endSpeed: 100 },
801
- })
795
+ unless @draggable
796
+ interact.draggable({
797
+ drag: true,
798
+ inertia: { resistance: 12,
799
+ minSpeed: 200,
800
+ endSpeed: 100 },
801
+ })
802
+ @drag_move = @original_atome.instance_variable_get('@drag_code')[:move]
803
+ unless @first_drag
804
+ interact.on('dragmove') do |native_event|
805
+ # the use of Native is only for Opal (look at lib/platform_specific/atome_wasm_extensions.rb for more infos)
806
+ event = Native(native_event)
807
+ # we use .call instead of instance_eval because instance_eval bring the current object as context
808
+ # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
809
+ # group etc..
810
+ @drag_move.call(event) if event_validation(@drag_move)
811
+ Universe.allow_tool_operations = false
812
+ dx = event[:dx]
813
+ dy = event[:dy]
814
+ x = (@original_atome.left || 0) + dx.to_f
815
+ y = (@original_atome.top || 0) + dy.to_f
816
+ @original_atome.left(x)
817
+ @original_atome.top(y)
818
+ end
802
819
 
803
- @drag_move = @original_atome.instance_variable_get('@drag_code')[:move]
804
- interact.on('dragmove') do |native_event|
805
- # the use of Native is only for Opal (look at lib/platform_specific/atome_wasm_extensions.rb for more infos)
806
- event = Native(native_event)
807
- # we use .call instead of instance_eval because instance_eval bring the current object as context
808
- # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
809
- # group etc..
810
- @drag_move.call(event) if @drag_move.is_a?(Proc)
811
- Universe.allow_tool_operations = false
812
- dx = event[:dx]
813
- dy = event[:dy]
814
- x = (@original_atome.left || 0) + dx.to_f
815
- y = (@original_atome.top || 0) + dy.to_f
816
- @original_atome.left(x)
817
- @original_atome.top(y)
820
+ end
818
821
  end
822
+ @first_drag = true
823
+ @draggable = true
819
824
  end
820
825
 
821
826
  def drag_restrict(option)
@@ -866,7 +871,7 @@ class HTML
866
871
  # we use .call instead of instance_eval because instance_eval bring the current object as context
867
872
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
868
873
  # group etc..
869
- @drag_move.call(event) if @drag_move.is_a?(Proc)
874
+ @drag_move.call(event) if event_validation(@drag_move)
870
875
  dx = event[:dx]
871
876
  dy = event[:dy]
872
877
  x = (@original_atome.left || 0) + dx.to_f
@@ -893,7 +898,7 @@ class HTML
893
898
  # we use .call instead of instance_eval because instance_eval bring the current object as context
894
899
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
895
900
  # group etc..
896
- @drag_lock.call(event) if @drag_lock.is_a?(Proc)
901
+ @drag_lock.call(event) if event_validation(@drag_lock)
897
902
  end
898
903
  end
899
904
 
@@ -904,7 +909,7 @@ class HTML
904
909
  # we use .call instead of instance_eval because instance_eval bring the current object as context
905
910
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
906
911
  # group etc..
907
- bloc.call({ source: draggable_element, destination: dropzone_element }) if bloc.is_a?(Proc)
912
+ bloc.call({ source: draggable_element, destination: dropzone_element }) if event_validation(bloc)
908
913
  end
909
914
 
910
915
  def drop_activate(_option)
@@ -915,7 +920,7 @@ class HTML
915
920
  accept: nil, # Accept any element
916
921
  overlap: 0.75,
917
922
  ondropactivate: lambda do |native_event|
918
- drop_action(native_event, @drop_activate)
923
+ drop_action(native_event, @drop_activate) if event_validation(@drop_activate)
919
924
  end
920
925
  })
921
926
  end
@@ -928,7 +933,7 @@ class HTML
928
933
  # overlap: 0.75,
929
934
  # FIXME : remove because os an opal bug since 1.8 reactivate when opal will be debbuged
930
935
  ondropdeactivate: lambda do |native_event|
931
- drop_action(native_event, @drop_deactivate)
936
+ drop_action(native_event, @drop_deactivate) if event_validation(@drop_deactivate)
932
937
  end
933
938
  })
934
939
  end
@@ -941,7 +946,7 @@ class HTML
941
946
  overlap: 0.75,
942
947
  # FIXME : remove because os an opal bug since 1.8 reactivate when opal will be debbuged
943
948
  ondrop: lambda do |native_event|
944
- drop_action(native_event, @drop_dropped)
949
+ drop_action(native_event, @drop_dropped) if event_validation(@drop_dropped)
945
950
  end
946
951
  })
947
952
  end
@@ -956,7 +961,7 @@ class HTML
956
961
  overlap: 0.001,
957
962
  # FIXME : remove because os an opal bug since 1.8 reactivate when opal will be debbuged
958
963
  ondragenter: lambda do |native_event|
959
- drop_action(native_event, @drop_enter)
964
+ drop_action(native_event, @drop_enter) if event_validation(@drop_enter)
960
965
  end
961
966
  })
962
967
  end
@@ -970,7 +975,7 @@ class HTML
970
975
  # overlap: 0.75,
971
976
  # FIXME : remove because os an opal bug since 1.8 reactivate when opal will be debbuged
972
977
  ondragleave: lambda do |native_event|
973
- drop_action(native_event, @drop_leave)
978
+ drop_action(native_event, @drop_leave) if event_validation(@drop_enter)
974
979
  end
975
980
  })
976
981
 
@@ -990,8 +995,8 @@ class HTML
990
995
  @drop_leave = ''
991
996
  else
992
997
  # to remove all interact event ( touch, drag, scale, ... uncomment below)
993
- interact = JS.eval("return interact('##{@id}')")
994
- interact.unset
998
+ # interact = JS.eval("return interact('##{@id}')")
999
+ # interact.unset
995
1000
  @drop_activate = ''
996
1001
  @drop_deactivate = ''
997
1002
  @drop_dropped = ''
@@ -1025,7 +1030,7 @@ class HTML
1025
1030
  # we use .call instead of instance_eval because instance_eval bring the current object as context
1026
1031
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1027
1032
  # group etc..
1028
- @resize.call(event) if @resize.is_a?(Proc)
1033
+ @resize.call(event) if event_validation(@resize)
1029
1034
  x = (@element[:offsetLeft].to_i || 0)
1030
1035
  y = (@element[:offsetTop].to_i || 0)
1031
1036
  width = event[:rect][:width]
@@ -1055,7 +1060,7 @@ class HTML
1055
1060
  # we use .call instead of instance_eval because instance_eval bring the current object as context
1056
1061
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1057
1062
  # group etc..
1058
- @overflow.call({ left: scroll_left, top: scroll_top }) if @overflow.is_a?(Proc)
1063
+ @overflow.call({ left: scroll_left, top: scroll_top }) if event_validation(@overflow)
1059
1064
  end)
1060
1065
  end
1061
1066
 
@@ -1064,12 +1069,11 @@ class HTML
1064
1069
  @over_over = @original_atome.over_code[:over]
1065
1070
  interact.on('mouseover') do |native_event|
1066
1071
  JS.global[:myRubyMouseOverCallback] = Proc.new { @original_atome.over_code[:over].call }
1067
- JS.eval("document.querySelector('##{@id}').addEventListener('mouseleave', myRubyMouseOverCallback);")
1068
1072
  event = Native(native_event)
1069
1073
  # we use .call instead of instance_eval because instance_eval bring the current object as context
1070
1074
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1071
1075
  # group etc..
1072
- @over_over.call(event) if @over_over.is_a?(Proc)
1076
+ @over_over.call(event) if event_validation(@over_over)
1073
1077
  end
1074
1078
  end
1075
1079
 
@@ -1081,21 +1085,23 @@ class HTML
1081
1085
  # we use .call instead of instance_eval because instance_eval bring the current object as context
1082
1086
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1083
1087
  # group etc..
1084
- @over_enter.call(event) if @over_enter.is_a?(Proc)
1088
+ @over_enter.call(event) if event_validation(@over_enter)
1085
1089
  end
1086
1090
  @element.addEventListener('mouseenter', @over_enter_callback)
1087
1091
 
1088
1092
  end
1089
1093
 
1090
1094
  def over_leave(_option)
1095
+
1091
1096
  @over_leave = @original_atome.instance_variable_get('@over_code')[:leave]
1092
1097
  return unless @over_leave
1093
1098
 
1094
1099
  @over_leave_callback = lambda do |event|
1100
+
1095
1101
  # we use .call instead of instance_eval because instance_eval bring the current object as context
1096
1102
  # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1097
1103
  # group etc..
1098
- @over_leave.call(event) if @over_leave.is_a?(Proc)
1104
+ @over_leave.call(event) if event_validation(@over_leave)
1099
1105
  end
1100
1106
  @element.addEventListener('mouseleave', @over_leave_callback)
1101
1107
 
@@ -1133,71 +1139,78 @@ class HTML
1133
1139
 
1134
1140
  def touch_down(_option)
1135
1141
  @element[:style][:cursor] = 'pointer'
1136
-
1137
1142
  @touch_down = @original_atome.instance_variable_get('@touch_code')[:down]
1138
1143
  interact = JS.eval("return interact('##{@id}')")
1139
- unless @touch_removed[:down]
1140
- interact.on('down') do |native_event|
1141
- event = Native(native_event)
1142
- # we use .call instead of instance_eval because instance_eval bring the current object as context
1143
- # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1144
- # group etc..
1145
- # unless Universe.edit_mode == true
1146
- # @touch_down.call(event) if @touch_down.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1147
- @touch_down.call(event) if event_validation(@touch_down)
1148
- # end
1149
- end
1144
+ # unless @touch_removed[:down]
1145
+ interact.on('down') do |native_event|
1146
+ event = Native(native_event)
1147
+ # we use .call instead of instance_eval because instance_eval bring the current object as context
1148
+ # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1149
+ # group etc..
1150
+ # @touch_down.call(event) if @touch_down.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1151
+ @touch_down.call(event) if event_validation(@touch_down)
1152
+ # end
1153
+ # end
1150
1154
  end
1151
1155
  end
1152
1156
 
1153
1157
  def touch_tap(_option)
1154
1158
  @element[:style][:cursor] = 'pointer'
1155
1159
  interact = JS.eval("return interact('##{@id}')")
1156
- touch_tap = @original_atome.instance_variable_get('@touch_code')[:tap]
1160
+ @touch_tap = @original_atome.instance_variable_get('@touch_code')[:tap]
1157
1161
  # unless @touch_removed[:tap]
1158
1162
  interact.on('tap') do |native_event|
1163
+
1159
1164
  event = Native(native_event)
1160
1165
  # we use .call instead of instance_eval because instance_eval bring the current object as context
1161
- # and it's lead to a problem of context and force the use of grab(:view) when using atome method such as shape ,
1166
+ # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1162
1167
  # group etc..
1163
- # @touch_tap.call(event) if @touch_tap.is_a?(Proc) && !Universe.edit_mode || !@original_atome.tag[:system]
1164
- touch_tap.call(event) if event_validation(touch_tap)
1168
+ # @touch_up.call(event) if @touch_up.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1169
+ # event = Native(native_event)
1170
+ # ########## old code :
1171
+ @touch_tap.call(event) if event_validation(@touch_tap)
1172
+ # ########## new code:
1173
+ # proc_content = @touch_tap.call(event) if event_validation(@touch_tap)
1174
+ # if proc_content.instance_of? Hash
1175
+ # proc_content.each do |k, v|
1176
+ # @original_atome.send(k, v)
1177
+ # end
1178
+ # end
1165
1179
  end
1166
1180
  # end
1167
-
1168
1181
  end
1169
1182
 
1170
1183
  def touch_up(_option)
1171
1184
  @element[:style][:cursor] = 'pointer'
1172
1185
  interact = JS.eval("return interact('##{@id}')")
1173
1186
  @touch_up = @original_atome.instance_variable_get('@touch_code')[:up]
1174
- unless @touch_removed[:up]
1175
- interact.on('up') do |native_event|
1176
- event = Native(native_event)
1177
- # we use .call instead of instance_eval because instance_eval bring the current object as context
1178
- # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1179
- # group etc..
1180
- # @touch_up.call(event) if @touch_up.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1181
- @touch_up.call(event) if event_validation(@touch_up)
1182
- end
1183
-
1187
+ # unless @touch_removed[:up]
1188
+ interact.on('up') do |native_event|
1189
+ event = Native(native_event)
1190
+ # we use .call instead of instance_eval because instance_eval bring the current object as context
1191
+ # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1192
+ # group etc..
1193
+ # @touch_up.call(event) if @touch_up.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1194
+ @touch_up.call(event) if event_validation(@touch_up)
1184
1195
  end
1196
+
1197
+ # end
1185
1198
  end
1186
1199
 
1187
1200
  def touch_double(_option)
1188
1201
  @element[:style][:cursor] = 'pointer'
1189
1202
  interact = JS.eval("return interact('##{@id}')")
1190
1203
  @touch_double = @original_atome.instance_variable_get('@touch_code')[:double]
1191
- unless @touch_removed[:double]
1192
- interact.on('doubletap') do |native_event|
1193
- event = Native(native_event)
1194
- # we use .call instead of instance_eval because instance_eval bring the current object as context
1195
- # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1196
- # group etc..
1197
- # @touch_double.call(event) if @touch_double.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1198
- @touch_double.call(event) if event_validation(@touch_double)
1204
+ # unless @touch_removed[:double]
1205
+ interact.on('doubletap') do |native_event|
1206
+ event = Native(native_event)
1207
+ # we use .call instead of instance_eval because instance_eval bring the current object as context
1208
+ # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1209
+ # group etc..
1210
+ # @touch_double.call(event) if @touch_double.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1211
+ @touch_double.call(event) if event_validation(@touch_double)
1199
1212
 
1200
- end
1213
+ # end
1201
1214
  end
1202
1215
 
1203
1216
  end
@@ -1206,18 +1219,18 @@ class HTML
1206
1219
  @element[:style][:cursor] = 'pointer'
1207
1220
  @touch_long = @original_atome.instance_variable_get('@touch_code')[:long]
1208
1221
  interact = JS.eval("return interact('##{@id}')")
1209
- unless @touch_removed[:long]
1210
- interact.on('hold') do |native_event|
1211
- event = Native(native_event)
1212
- # we use .call instead of instance_eval because instance_eval bring the current object as context
1213
- # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1214
- # group etc..
1215
- @touch_long.call(event) if event_validation(@touch_long)
1216
- # @touch_long.call(event) if @touch_long.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1217
- # @touch_double.call(event) if event_validation(@touch_double)
1222
+ # unless @touch_removed[:long]
1223
+ interact.on('hold') do |native_event|
1224
+ event = Native(native_event)
1225
+ # we use .call instead of instance_eval because instance_eval bring the current object as context
1226
+ # and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
1227
+ # group etc..
1228
+ @touch_long.call(event) if event_validation(@touch_long)
1229
+ # @touch_long.call(event) if @touch_long.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
1230
+ # @touch_double.call(event) if event_validation(@touch_double)
1218
1231
 
1219
- end
1220
1232
  end
1233
+ # end
1221
1234
  end
1222
1235
 
1223
1236
  def touch_remove(option)
@@ -1235,27 +1248,20 @@ class HTML
1235
1248
  when :tap
1236
1249
  @touch_removed[:tap] = true
1237
1250
  @touch_tap = ''
1251
+ @touch_removed[:touch] = true
1252
+ @touch_touch = ''
1253
+ when :touch
1254
+ @touch_removed[:tap] = true
1255
+ @touch_tap = ''
1256
+ @touch_removed[:touch] = true
1257
+ @touch_touch = ''
1238
1258
  when :up
1239
1259
  @touch_removed[:up] = true
1240
1260
  @touch_up = ''
1241
1261
  else
1242
- interact = JS.eval("return interact('##{@id}')")
1243
- interact.unset
1244
- # @original_atome.instance_variable_set('@touch_code')
1245
- @original_atome.instance_variable_set('@touch_code', nil)
1246
- # @touch_removed[:double] = true
1247
- # @touch_removed[:down] = true
1248
- # @touch_removed[:long] = true
1249
- # @touch_removed[:tap] = true
1250
- # @touch_removed[:up] = true
1251
- # @touch_double = ''
1252
- # @touch_down = ''
1253
- # @touch_long = ''
1254
- # @touch_tap = ''
1255
- # @touch_up = ''
1256
- # to remove all interact event ( touch, drag, scale, ... uncomment below)
1257
1262
  # interact = JS.eval("return interact('##{@id}')")
1258
1263
  # interact.unset
1264
+ @original_atome.instance_variable_set('@touch_code', nil)
1259
1265
  end
1260
1266
 
1261
1267
  end
@@ -1303,14 +1309,13 @@ class HTML
1303
1309
  end
1304
1310
  end
1305
1311
 
1306
-
1307
1312
  # animation below
1308
1313
  def animate(animation_properties)
1309
- prop= animation_properties[:particle]
1310
- command = <<~JS
1314
+ prop = animation_properties[:particle]
1315
+ command = <<~JS
1311
1316
  var target_div = document.getElementById('#{@id}');
1312
1317
  window.currentAnimation = popmotion.animate({
1313
- from: #{animation_properties[ :from]},
1318
+ from: #{animation_properties[:from]},
1314
1319
  to: #{animation_properties[:to]},
1315
1320
  duration: #{animation_properties[:duration]},
1316
1321
  onUpdate: function(v) {
@@ -1326,8 +1331,6 @@ class HTML
1326
1331
  JS.eval(command)
1327
1332
  end
1328
1333
 
1329
-
1330
-
1331
1334
  def stop_animation
1332
1335
  JS.eval('if (window.currentAnimation) window.currentAnimation.stop();')
1333
1336
  end
@@ -4,6 +4,7 @@ b = box()
4
4
  b.text('click me')
5
5
  orange=''
6
6
  b.touch(true) do
7
+
7
8
  c = grab(:view).circle({id: :circling, left: 222, color: :orange, blur: 1.9 })
8
9
  orange=c.box({id: :boxing,color: {id: :orange_col, red: 1, blue: 0.2 }, width: 33, height: 33, left: 123})
9
10
  orange.shadow({
@@ -23,10 +24,14 @@ b.touch(true) do
23
24
  end
24
25
  end
25
26
 
26
- c.touch(true) do
27
- c.delete({ recursive: true })
27
+ c.touch(:down) do
28
+ puts '1?'
29
+ grab(:circling).delete({ recursive: true }) if grab(:circling)
28
30
  end
29
31
  # alert orange.apply
32
+ wait 4 do
33
+ grab(:circling).delete({ recursive: true })if grab(:circling)
34
+ end
30
35
  end
31
36
 
32
37
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  a=box({width: 666, height: 777, color: :orange})
3
4
  b = box({ left: 666, color: :blue, smooth: 6, id: :the_box2, depth: 1 , top: 66})
4
5
  cc=circle({color: :red, left: 0, top: 0})
@@ -16,8 +17,6 @@ b.drag(:stop) do
16
17
  clone.delete(true)
17
18
  end
18
19
 
19
-
20
-
21
20
  b.drag(:locked) do |event|
22
21
  dx = event[:dx]
23
22
  dy = event[:dy]
@@ -29,7 +28,6 @@ b.drag(:locked) do |event|
29
28
  puts "y: #{y}"
30
29
  end
31
30
  cc.drag({ restrict: {max:{ left: 240, top: 190}} }) do |event|
32
-
33
31
  end
34
32
 
35
33
 
@@ -1,60 +1,70 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- b = box({ top: 166 , id: :the_box, left: 333})
4
- b.color({id: :new_col, red: 1})
5
- b.color({id: :other_col, green: 1})
6
- # b.paint({gradient: [:other_col, :new_col]})
7
- color({id: :last_col, green: 0.3, blue: 0.5})
8
- color({id: :last_col2, red: 1, blue: 0.5})
3
+ b = box({ top: 166, id: :the_box, left: 333 })
4
+ b.color({ id: :new_col, red: 1 })
9
5
 
10
- b.shadow({
11
- id: :s1,
12
- # affect: [:the_circle],
13
- left: 9, top: 3, blur: 9,
14
- invert: false,
15
- red: 0, green: 0, blue: 0, alpha: 1
16
- })
17
-
18
-
19
- wait 1 do
20
- b.remove(:other_col)
21
- wait 1 do
22
- b.remove(:new_col)
23
- wait 1 do
24
- b.remove(:box_color)
25
-
26
- wait 1 do
27
- b.apply(:last_col)
28
- wait 1 do
29
- b.apply(:last_col2)
30
- b.remove(:s1)
31
- end
32
- end
33
- end
34
- end
35
- end
36
6
  b.touch(true) do
37
- b.shadow({
38
- id: :s1,
39
- # affect: [:the_circle],
40
- left: 9, top: 3, blur: 9,
41
- invert: false,
42
- red: 0, green: 0, blue: 0, alpha: 1
43
- })
7
+ # alert b.color
8
+ b.remove(:box_color)
44
9
 
45
- puts "before => #{b.apply}"
46
- b.remove({all: :color})
47
- puts "after => #{b.apply}"
10
+ # alert b.color
48
11
  wait 1 do
49
- b.paint({id: :the_gradient_1,gradient: [:box_color, :circle_color]})
50
- b.paint({id: :the_gradient,gradient: [:other_col, :new_col]})
51
- wait 1 do
52
- b.remove(:the_gradient)
53
- wait 1 do
54
- b.remove(all: :shadow)
55
- b.color(:cyan)
56
- end
57
- end
12
+ grab('box_color').red(1)
58
13
  end
59
14
  end
60
-
15
+ # b.color({id: :other_col, green: 1})
16
+ # # b.paint({gradient: [:other_col, :new_col]})
17
+ # color({id: :last_col, green: 0.3, blue: 0.5})
18
+ # color({id: :last_col2, red: 1, blue: 0.5})
19
+ #
20
+ # b.shadow({
21
+ # id: :s1,
22
+ # # affect: [:the_circle],
23
+ # left: 9, top: 3, blur: 9,
24
+ # invert: false,
25
+ # red: 0, green: 0, blue: 0, alpha: 1
26
+ # })
27
+ #
28
+ #
29
+ # wait 1 do
30
+ # b.remove(:other_col)
31
+ # wait 1 do
32
+ # b.remove(:new_col)
33
+ # wait 1 do
34
+ # b.remove(:box_color)
35
+ #
36
+ # wait 1 do
37
+ # b.apply(:last_col)
38
+ # wait 1 do
39
+ # b.apply(:last_col2)
40
+ # b.remove(:s1)
41
+ # end
42
+ # end
43
+ # end
44
+ # end
45
+ # end
46
+ # b.touch(true) do
47
+ # b.shadow({
48
+ # id: :s1,
49
+ # # affect: [:the_circle],
50
+ # left: 9, top: 3, blur: 9,
51
+ # invert: false,
52
+ # red: 0, green: 0, blue: 0, alpha: 1
53
+ # })
54
+ #
55
+ # puts "before => #{b.apply}"
56
+ # b.remove({all: :color})
57
+ # puts "after => #{b.apply}"
58
+ # wait 1 do
59
+ # b.paint({id: :the_gradient_1,gradient: [:box_color, :circle_color]})
60
+ # b.paint({id: :the_gradient,gradient: [:other_col, :new_col]})
61
+ # wait 1 do
62
+ # b.remove(:the_gradient)
63
+ # wait 1 do
64
+ # b.remove(all: :shadow)
65
+ # b.color(:cyan)
66
+ # end
67
+ # end
68
+ # end
69
+ # end
70
+ #