atome 0.5.7.3.0 → 0.5.7.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/atome/atome.rb +1 -0
- data/lib/atome/genesis/particles/event.rb +21 -17
- data/lib/atome/genesis/particles/material.rb +4 -0
- data/lib/atome/genesis/particles/utility.rb +26 -4
- data/lib/atome/version.rb +1 -1
- data/lib/molecules/intuition/tools.rb +179 -26
- data/lib/molecules/intuition/utilities.rb +15 -10
- data/lib/renderers/html/html.rb +222 -60
- data/vendor/assets/application/examples/code.rb +2 -5
- data/vendor/assets/application/examples/delete.rb +7 -2
- data/vendor/assets/application/examples/drag.rb +1 -3
- data/vendor/assets/application/examples/overflow.rb +1 -0
- data/vendor/assets/application/examples/remove.rb +62 -52
- data/vendor/assets/application/examples/run.rb +17 -0
- data/vendor/assets/application/examples/target.rb +25 -0
- data/vendor/assets/application/examples/test.rb +87 -24
- data/vendor/assets/application/examples/touch.rb +17 -6
- data/vendor/assets/src/css/style.css +7 -0
- data/vendor/assets/src/js/third_parties/interact.min.js +3 -2
- data/vendor/assets/src/medias/images/logos/arp.svg +7 -0
- metadata +5 -2
data/lib/renderers/html/html.rb
CHANGED
@@ -650,7 +650,13 @@ class HTML
|
|
650
650
|
mql = JS.global[:window].matchMedia(media_query)
|
651
651
|
|
652
652
|
event_handler = ->(event) do
|
653
|
-
bloc.call({ matches: event[:matches] }) if bloc.is_a? Proc
|
653
|
+
# bloc.call({ matches: event[:matches] }) if bloc.is_a? Proc
|
654
|
+
proc_content = bloc.call({ matches: event[:matches] }) if event_validation(bloc)
|
655
|
+
if proc_content.instance_of? Hash
|
656
|
+
proc_content.each do |k, v|
|
657
|
+
@original_atome.send(k, v)
|
658
|
+
end
|
659
|
+
end
|
654
660
|
end
|
655
661
|
|
656
662
|
# add a listener to matchMedia object
|
@@ -660,12 +666,33 @@ class HTML
|
|
660
666
|
event_handler = ->(event) do
|
661
667
|
width = JS.global[:window][:innerWidth]
|
662
668
|
height = JS.global[:window][:innerHeight]
|
663
|
-
bloc.call({ width: width, height: height }) if bloc.is_a? Proc
|
669
|
+
# bloc.call({ width: width, height: height }) if bloc.is_a? Proc
|
670
|
+
proc_content = bloc.call({ width: width, height: height }) if event_validation(bloc)
|
671
|
+
if proc_content.instance_of? Hash
|
672
|
+
proc_content.each do |k, v|
|
673
|
+
@original_atome.send(k, v)
|
674
|
+
end
|
675
|
+
end
|
664
676
|
end
|
677
|
+
|
678
|
+
# proc_content = @drag_move.call(event) if event_validation(@drag_move)
|
679
|
+
# if proc_content.instance_of? Hash
|
680
|
+
# proc_content.each do |k, v|
|
681
|
+
# @original_atome.send(k, v)
|
682
|
+
# end
|
683
|
+
# end
|
684
|
+
# puts event_handler.class
|
665
685
|
JS.global[:window].addEventListener('resize', event_handler)
|
686
|
+
# JS.global[:window].addEventListener('resize', event_handler)
|
666
687
|
else
|
667
688
|
event_handler = ->(event) do
|
668
|
-
bloc.call(event) if bloc.is_a? Proc
|
689
|
+
# bloc.call(event) if bloc.is_a? Proc
|
690
|
+
proc_content = bloc.call(event) if event_validation(bloc)
|
691
|
+
if proc_content.instance_of? Hash
|
692
|
+
proc_content.each do |k, v|
|
693
|
+
@original_atome.send(k, v)
|
694
|
+
end
|
695
|
+
end
|
669
696
|
end
|
670
697
|
@element.addEventListener(property, event_handler)
|
671
698
|
end
|
@@ -680,7 +707,13 @@ class HTML
|
|
680
707
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
681
708
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
682
709
|
# group etc..
|
683
|
-
@keyboard_press.call(event) if @keyboard_press.is_a?(Proc)
|
710
|
+
# @keyboard_press.call(event) if @keyboard_press.is_a?(Proc)
|
711
|
+
proc_content = @keyboard_press.call(event) if event_validation(@keyboard_press)
|
712
|
+
if proc_content.instance_of? Hash
|
713
|
+
proc_content.each do |k, v|
|
714
|
+
@original_atome.send(k, v)
|
715
|
+
end
|
716
|
+
end
|
684
717
|
end
|
685
718
|
@element.addEventListener('keypress', keypress_handler)
|
686
719
|
end
|
@@ -692,7 +725,13 @@ class HTML
|
|
692
725
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
693
726
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
694
727
|
# group etc..
|
695
|
-
@keyboard_down.call(event) if @keyboard_down.is_a?(Proc)
|
728
|
+
# @keyboard_down.call(event) if @keyboard_down.is_a?(Proc)
|
729
|
+
proc_content = @keyboard_down.call(event) if event_validation(@keyboard_down)
|
730
|
+
if proc_content.instance_of? Hash
|
731
|
+
proc_content.each do |k, v|
|
732
|
+
@original_atome.send(k, v)
|
733
|
+
end
|
734
|
+
end
|
696
735
|
end
|
697
736
|
@element.addEventListener('keydown', keypress_handler)
|
698
737
|
end
|
@@ -704,7 +743,13 @@ class HTML
|
|
704
743
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
705
744
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
706
745
|
# group etc..
|
707
|
-
@keyboard_up.call(event) if @keyboard_up.is_a?(Proc)
|
746
|
+
# @keyboard_up.call(event) if @keyboard_up.is_a?(Proc)
|
747
|
+
proc_content = @keyboard_up.call(event) if event_validation(@keyboard_up)
|
748
|
+
if proc_content.instance_of? Hash
|
749
|
+
proc_content.each do |k, v|
|
750
|
+
@original_atome.send(k, v)
|
751
|
+
end
|
752
|
+
end
|
708
753
|
end
|
709
754
|
@element.addEventListener('keyup', keypress_handler)
|
710
755
|
end
|
@@ -772,7 +817,13 @@ class HTML
|
|
772
817
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
773
818
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
774
819
|
# group etc..
|
775
|
-
@drag_start.call(event) if event_validation(@drag_start)
|
820
|
+
# @drag_start.call(event) if event_validation(@drag_start)
|
821
|
+
proc_content = @drag_start.call(event) if event_validation(@drag_start)
|
822
|
+
if proc_content.instance_of? Hash
|
823
|
+
proc_content.each do |k, v|
|
824
|
+
@original_atome.send(k, v)
|
825
|
+
end
|
826
|
+
end
|
776
827
|
end
|
777
828
|
end
|
778
829
|
|
@@ -784,7 +835,13 @@ class HTML
|
|
784
835
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
785
836
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
786
837
|
# group etc..
|
787
|
-
@drag_end.call(event) if event_validation(@drag_end)
|
838
|
+
# @drag_end.call(event) if event_validation(@drag_end)
|
839
|
+
proc_content = @drag_end.call(event) if event_validation(@drag_end)
|
840
|
+
if proc_content.instance_of? Hash
|
841
|
+
proc_content.each do |k, v|
|
842
|
+
@original_atome.send(k, v)
|
843
|
+
end
|
844
|
+
end
|
788
845
|
end
|
789
846
|
end
|
790
847
|
|
@@ -807,7 +864,13 @@ class HTML
|
|
807
864
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
808
865
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
809
866
|
# group etc..
|
810
|
-
@drag_move.call(event) if event_validation(@drag_move)
|
867
|
+
# @drag_move.call(event) if event_validation(@drag_move)
|
868
|
+
proc_content = @drag_move.call(event) if event_validation(@drag_move)
|
869
|
+
if proc_content.instance_of? Hash
|
870
|
+
proc_content.each do |k, v|
|
871
|
+
@original_atome.send(k, v)
|
872
|
+
end
|
873
|
+
end
|
811
874
|
Universe.allow_tool_operations = false
|
812
875
|
dx = event[:dx]
|
813
876
|
dy = event[:dy]
|
@@ -871,7 +934,13 @@ class HTML
|
|
871
934
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
872
935
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
873
936
|
# group etc..
|
874
|
-
@drag_move.call(event) if event_validation(@drag_move)
|
937
|
+
# @drag_move.call(event) if event_validation(@drag_move)
|
938
|
+
proc_content = @drag_move.call(event) if event_validation(@drag_move)
|
939
|
+
if proc_content.instance_of? Hash
|
940
|
+
proc_content.each do |k, v|
|
941
|
+
@original_atome.send(k, v)
|
942
|
+
end
|
943
|
+
end
|
875
944
|
dx = event[:dx]
|
876
945
|
dy = event[:dy]
|
877
946
|
x = (@original_atome.left || 0) + dx.to_f
|
@@ -898,7 +967,13 @@ class HTML
|
|
898
967
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
899
968
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
900
969
|
# group etc..
|
901
|
-
@drag_lock.call(event) if event_validation(@drag_lock)
|
970
|
+
# @drag_lock.call(event) if event_validation(@drag_lock)
|
971
|
+
proc_content = @drag_lock.call(event) if event_validation(@drag_lock)
|
972
|
+
if proc_content.instance_of? Hash
|
973
|
+
proc_content.each do |k, v|
|
974
|
+
@original_atome.send(k, v)
|
975
|
+
end
|
976
|
+
end
|
902
977
|
end
|
903
978
|
end
|
904
979
|
|
@@ -909,7 +984,13 @@ class HTML
|
|
909
984
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
910
985
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
911
986
|
# group etc..
|
912
|
-
bloc.call({ source: draggable_element, destination: dropzone_element }) if event_validation(bloc)
|
987
|
+
# bloc.call({ source: draggable_element, destination: dropzone_element }) if event_validation(bloc)
|
988
|
+
proc_content = bloc.call({ source: draggable_element, destination: dropzone_element }) if event_validation(bloc)
|
989
|
+
if proc_content.instance_of? Hash
|
990
|
+
proc_content.each do |k, v|
|
991
|
+
@original_atome.send(k, v)
|
992
|
+
end
|
993
|
+
end
|
913
994
|
end
|
914
995
|
|
915
996
|
def drop_activate(_option)
|
@@ -920,7 +1001,16 @@ class HTML
|
|
920
1001
|
accept: nil, # Accept any element
|
921
1002
|
overlap: 0.75,
|
922
1003
|
ondropactivate: lambda do |native_event|
|
1004
|
+
event = Native(native_event)
|
1005
|
+
|
923
1006
|
drop_action(native_event, @drop_activate) if event_validation(@drop_activate)
|
1007
|
+
# @drag_lock.call(event) if event_validation(@drag_lock)
|
1008
|
+
# proc_content = @drop_activate.call(event) if event_validation(@drop_activate)
|
1009
|
+
# if proc_content.instance_of? Hash
|
1010
|
+
# proc_content.each do |k, v|
|
1011
|
+
# @original_atome.send(k, v)
|
1012
|
+
# end
|
1013
|
+
# end
|
924
1014
|
end
|
925
1015
|
})
|
926
1016
|
end
|
@@ -1030,7 +1120,14 @@ class HTML
|
|
1030
1120
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1031
1121
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1032
1122
|
# group etc..
|
1033
|
-
@resize.call(event) if event_validation(@resize)
|
1123
|
+
# @resize.call(event) if event_validation(@resize)
|
1124
|
+
proc_content = @resize.call(event) if event_validation(@resize)
|
1125
|
+
if proc_content.instance_of? Hash
|
1126
|
+
proc_content.each do |k, v|
|
1127
|
+
@original_atome.send(k, v)
|
1128
|
+
end
|
1129
|
+
end
|
1130
|
+
|
1034
1131
|
x = (@element[:offsetLeft].to_i || 0)
|
1035
1132
|
y = (@element[:offsetTop].to_i || 0)
|
1036
1133
|
width = event[:rect][:width]
|
@@ -1054,13 +1151,21 @@ class HTML
|
|
1054
1151
|
def overflow(params, bloc)
|
1055
1152
|
style(:overflow, params)
|
1056
1153
|
@overflow = @original_atome.instance_variable_get('@overflow_code')[:overflow]
|
1057
|
-
@element.addEventListener('scroll', lambda do |
|
1154
|
+
@element.addEventListener('scroll', lambda do |native_event|
|
1155
|
+
# event = Native(native_event)
|
1058
1156
|
scroll_top = @element[:scrollTop].to_i
|
1059
1157
|
scroll_left = @element[:scrollLeft].to_i
|
1060
1158
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1061
1159
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1062
1160
|
# group etc..
|
1063
1161
|
@overflow.call({ left: scroll_left, top: scroll_top }) if event_validation(@overflow)
|
1162
|
+
|
1163
|
+
proc_content = @overflow.call({ left: scroll_left, top: scroll_top }) if event_validation(@overflow)
|
1164
|
+
if proc_content.instance_of? Hash
|
1165
|
+
proc_content.each do |k, v|
|
1166
|
+
@original_atome.send(k, v)
|
1167
|
+
end
|
1168
|
+
end
|
1064
1169
|
end)
|
1065
1170
|
end
|
1066
1171
|
|
@@ -1073,7 +1178,14 @@ class HTML
|
|
1073
1178
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1074
1179
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1075
1180
|
# group etc..
|
1076
|
-
@over_over.call(event) if event_validation(@over_over)
|
1181
|
+
# @over_over.call(event) if event_validation(@over_over)
|
1182
|
+
|
1183
|
+
proc_content = @over_over.call(event) if event_validation(@over_over)
|
1184
|
+
if proc_content.instance_of? Hash
|
1185
|
+
proc_content.each do |k, v|
|
1186
|
+
@original_atome.send(k, v)
|
1187
|
+
end
|
1188
|
+
end
|
1077
1189
|
end
|
1078
1190
|
end
|
1079
1191
|
|
@@ -1085,7 +1197,13 @@ class HTML
|
|
1085
1197
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1086
1198
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1087
1199
|
# group etc..
|
1088
|
-
@over_enter.call(event) if event_validation(@over_enter)
|
1200
|
+
# @over_enter.call(event) if event_validation(@over_enter)
|
1201
|
+
proc_content = @over_enter.call(event) if event_validation(@over_enter)
|
1202
|
+
if proc_content.instance_of? Hash
|
1203
|
+
proc_content.each do |k, v|
|
1204
|
+
@original_atome.send(k, v)
|
1205
|
+
end
|
1206
|
+
end
|
1089
1207
|
end
|
1090
1208
|
@element.addEventListener('mouseenter', @over_enter_callback)
|
1091
1209
|
|
@@ -1101,7 +1219,13 @@ class HTML
|
|
1101
1219
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1102
1220
|
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1103
1221
|
# group etc..
|
1104
|
-
@over_leave.call(event) if event_validation(@over_leave)
|
1222
|
+
# @over_leave.call(event) if event_validation(@over_leave)
|
1223
|
+
proc_content = @over_leave.call(event) if event_validation(@over_leave)
|
1224
|
+
if proc_content.instance_of? Hash
|
1225
|
+
proc_content.each do |k, v|
|
1226
|
+
@original_atome.send(k, v)
|
1227
|
+
end
|
1228
|
+
end
|
1105
1229
|
end
|
1106
1230
|
@element.addEventListener('mouseleave', @over_leave_callback)
|
1107
1231
|
|
@@ -1139,70 +1263,95 @@ class HTML
|
|
1139
1263
|
|
1140
1264
|
def touch_down(_option)
|
1141
1265
|
@element[:style][:cursor] = 'pointer'
|
1142
|
-
|
1143
1266
|
@touch_down = @original_atome.instance_variable_get('@touch_code')[:down]
|
1144
1267
|
interact = JS.eval("return interact('##{@id}')")
|
1145
|
-
unless @touch_removed[:down]
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1268
|
+
# unless @touch_removed[:down]
|
1269
|
+
interact.on('down') do |native_event|
|
1270
|
+
event = Native(native_event)
|
1271
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1272
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1273
|
+
# group etc..
|
1274
|
+
# @touch_down.call(event) if @touch_down.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
|
1275
|
+
# @touch_down.call(event) if event_validation(@touch_down)
|
1276
|
+
proc_content = @touch_down.call(event) if event_validation(@touch_down)
|
1277
|
+
if proc_content.instance_of? Hash
|
1278
|
+
proc_content.each do |k, v|
|
1279
|
+
@original_atome.send(k, v)
|
1280
|
+
end
|
1154
1281
|
end
|
1282
|
+
# end
|
1283
|
+
# end
|
1155
1284
|
end
|
1156
1285
|
end
|
1157
1286
|
|
1158
1287
|
def touch_tap(_option)
|
1159
1288
|
@element[:style][:cursor] = 'pointer'
|
1160
1289
|
interact = JS.eval("return interact('##{@id}')")
|
1161
|
-
touch_tap = @original_atome.instance_variable_get('@touch_code')[:tap]
|
1290
|
+
@touch_tap = @original_atome.instance_variable_get('@touch_code')[:tap]
|
1162
1291
|
# unless @touch_removed[:tap]
|
1163
1292
|
interact.on('tap') do |native_event|
|
1293
|
+
|
1164
1294
|
event = Native(native_event)
|
1165
1295
|
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1166
|
-
# and it's lead to a problem of context and force the use of grab(:view) when
|
1296
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1167
1297
|
# group etc..
|
1168
|
-
# @
|
1169
|
-
|
1298
|
+
# @touch_up.call(event) if @touch_up.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
|
1299
|
+
# event = Native(native_event)
|
1300
|
+
# ########## old code :
|
1301
|
+
# @touch_tap.call(event) if event_validation(@touch_tap)
|
1302
|
+
# ########## new code:
|
1303
|
+
proc_content = @touch_tap.call(event) if event_validation(@touch_tap)
|
1304
|
+
if proc_content.instance_of? Hash
|
1305
|
+
proc_content.each do |k, v|
|
1306
|
+
@original_atome.send(k, v)
|
1307
|
+
end
|
1308
|
+
end
|
1170
1309
|
end
|
1171
1310
|
# end
|
1172
|
-
|
1173
1311
|
end
|
1174
1312
|
|
1175
1313
|
def touch_up(_option)
|
1176
1314
|
@element[:style][:cursor] = 'pointer'
|
1177
1315
|
interact = JS.eval("return interact('##{@id}')")
|
1178
1316
|
@touch_up = @original_atome.instance_variable_get('@touch_code')[:up]
|
1179
|
-
unless @touch_removed[:up]
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1317
|
+
# unless @touch_removed[:up]
|
1318
|
+
interact.on('up') do |native_event|
|
1319
|
+
event = Native(native_event)
|
1320
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1321
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1322
|
+
# group etc..
|
1323
|
+
# @touch_up.call(event) if @touch_up.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
|
1324
|
+
# @touch_up.call(event) if event_validation(@touch_up)
|
1325
|
+
proc_content = @touch_up.call(event) if event_validation(@touch_up)
|
1326
|
+
if proc_content.instance_of? Hash
|
1327
|
+
proc_content.each do |k, v|
|
1328
|
+
@original_atome.send(k, v)
|
1329
|
+
end
|
1187
1330
|
end
|
1188
|
-
|
1189
1331
|
end
|
1332
|
+
|
1333
|
+
# end
|
1190
1334
|
end
|
1191
1335
|
|
1192
1336
|
def touch_double(_option)
|
1193
1337
|
@element[:style][:cursor] = 'pointer'
|
1194
1338
|
interact = JS.eval("return interact('##{@id}')")
|
1195
1339
|
@touch_double = @original_atome.instance_variable_get('@touch_code')[:double]
|
1196
|
-
unless @touch_removed[:double]
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1340
|
+
# unless @touch_removed[:double]
|
1341
|
+
interact.on('doubletap') do |native_event|
|
1342
|
+
event = Native(native_event)
|
1343
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1344
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1345
|
+
# group etc..
|
1346
|
+
# @touch_double.call(event) if @touch_double.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
|
1347
|
+
# @touch_double.call(event) if event_validation(@touch_double)
|
1348
|
+
proc_content = @touch_double.call(event) if event_validation(@touch_double)
|
1349
|
+
if proc_content.instance_of? Hash
|
1350
|
+
proc_content.each do |k, v|
|
1351
|
+
@original_atome.send(k, v)
|
1352
|
+
end
|
1205
1353
|
end
|
1354
|
+
# end
|
1206
1355
|
end
|
1207
1356
|
|
1208
1357
|
end
|
@@ -1211,18 +1360,24 @@ class HTML
|
|
1211
1360
|
@element[:style][:cursor] = 'pointer'
|
1212
1361
|
@touch_long = @original_atome.instance_variable_get('@touch_code')[:long]
|
1213
1362
|
interact = JS.eval("return interact('##{@id}')")
|
1214
|
-
unless @touch_removed[:long]
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1218
|
-
|
1219
|
-
|
1220
|
-
|
1221
|
-
|
1222
|
-
|
1223
|
-
|
1363
|
+
# unless @touch_removed[:long]
|
1364
|
+
interact.on('hold') do |native_event|
|
1365
|
+
event = Native(native_event)
|
1366
|
+
# we use .call instead of instance_eval because instance_eval bring the current object as context
|
1367
|
+
# and it's lead to a problem of context and force the use of grab(:view) when suing atome method such as shape ,
|
1368
|
+
# group etc..
|
1369
|
+
# @touch_long.call(event) if event_validation(@touch_long)
|
1370
|
+
proc_content = @touch_long.call(event) if event_validation(@touch_long)
|
1371
|
+
if proc_content.instance_of? Hash
|
1372
|
+
proc_content.each do |k, v|
|
1373
|
+
@original_atome.send(k, v)
|
1374
|
+
end
|
1224
1375
|
end
|
1376
|
+
# @touch_long.call(event) if @touch_long.is_a?(Proc) && (!Universe.edit_mode || @original_atome.tag[:system])
|
1377
|
+
# @touch_double.call(event) if event_validation(@touch_double)
|
1378
|
+
|
1225
1379
|
end
|
1380
|
+
# end
|
1226
1381
|
end
|
1227
1382
|
|
1228
1383
|
def touch_remove(option)
|
@@ -1240,6 +1395,13 @@ class HTML
|
|
1240
1395
|
when :tap
|
1241
1396
|
@touch_removed[:tap] = true
|
1242
1397
|
@touch_tap = ''
|
1398
|
+
@touch_removed[:touch] = true
|
1399
|
+
@touch_touch = ''
|
1400
|
+
when :touch
|
1401
|
+
@touch_removed[:tap] = true
|
1402
|
+
@touch_tap = ''
|
1403
|
+
@touch_removed[:touch] = true
|
1404
|
+
@touch_touch = ''
|
1243
1405
|
when :up
|
1244
1406
|
@touch_removed[:up] = true
|
1245
1407
|
@touch_up = ''
|
@@ -1,11 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
code_found = @code_code[:code]
|
4
|
-
instance_exec(params, &code_found) if code_found.is_a?(Proc)
|
5
|
-
end
|
2
|
+
|
6
3
|
a = box
|
7
4
|
a.code(:hello) do
|
8
|
-
circle({ left: 333 })
|
5
|
+
circle({ left: 333, color: :orange })
|
9
6
|
end
|
10
7
|
wait 1 do
|
11
8
|
a.run(:hello)
|
@@ -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(
|
27
|
-
|
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
|
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.
|
38
|
-
|
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
|
-
|
46
|
-
b.remove({all: :color})
|
47
|
-
puts "after => #{b.apply}"
|
10
|
+
# alert b.color
|
48
11
|
wait 1 do
|
49
|
-
|
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
|
+
#
|