atome 0.5.7.4.6 → 0.5.7.4.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/atome/extensions/atome.rb +35 -4
- data/lib/atome/genesis/particles/communication.rb +4 -4
- data/lib/atome/genesis/sparkle.rb +9 -3
- data/lib/atome/kernel/universe.rb +3 -1
- data/lib/atome/utilities/essentials.rb +3 -1
- data/lib/atome/utilities/utilities.rb +170 -71
- data/lib/atome/version.rb +1 -1
- data/lib/molecules/intuition/tools.rb +11 -32
- data/lib/molecules/intuition/utilities.rb +7 -7
- data/lib/renderers/html/html.rb +7 -0
- data/lib/renderers/html/identity.rb +12 -5
- data/vendor/assets/application/examples/above_below_before_after.rb +10 -7
- data/vendor/assets/application/examples/applications.rb +11 -4
- data/vendor/assets/application/examples/blocks.rb +45 -0
- data/vendor/assets/application/examples/flash.rb +5 -0
- data/vendor/assets/application/examples/grip.rb +10 -0
- data/vendor/assets/application/examples/input.rb +7 -2
- data/vendor/assets/application/examples/int8.rb +30 -11
- data/vendor/assets/application/examples/retreive.rb +24 -0
- data/vendor/assets/application/examples/schedule.rb +23 -0
- data/vendor/assets/application/examples/tools.rb +20 -20
- data/vendor/assets/src/medias/images/icons/add.svg +8 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adbf3e2dbe9b01956856270d1789ebae1205be44b00b4038cf1c709c0f7d7f2e
|
4
|
+
data.tar.gz: a01c1c6b62cd322949d94b44b6b1952f2c331ad1dd9ed55cdf9d46b3a1053627
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8613255d625a6d457a0e280253cbcf1317cb6210bded5482eb4eee67c6c7f9e5d513fd93938da916bfeeeb45ad5ab646d234d7596f20a736c071e4bd940df1df
|
7
|
+
data.tar.gz: 39f6697c368a0558648eb649268f151626d0aa06ef9ccdd21a67dffb40a97409daca0bef111648f11d08ae85d5757121c014cc953f44f7067db65f85fb21997a
|
@@ -69,6 +69,16 @@ end
|
|
69
69
|
class Object
|
70
70
|
include ObjectExtension
|
71
71
|
|
72
|
+
def refresh
|
73
|
+
grab(:view).retrieve do |child|
|
74
|
+
child.refresh
|
75
|
+
end
|
76
|
+
# atomes_to_treat=grab(:view).fasten.dup
|
77
|
+
# atomes_to_treat.each do |atome_found|
|
78
|
+
# grab(atome_found).refresh
|
79
|
+
# end
|
80
|
+
end
|
81
|
+
|
72
82
|
def truncate_string(string, max_length)
|
73
83
|
string.length > max_length ? string.slice(0, max_length) + '.' : string
|
74
84
|
end
|
@@ -570,8 +580,14 @@ JS
|
|
570
580
|
end
|
571
581
|
end
|
572
582
|
|
573
|
-
def above(item, margin = 6)
|
583
|
+
def above(item, margin = 6, ref=grab(:view))
|
584
|
+
# FIXME above is broken when using % in margin
|
585
|
+
unless margin.is_a?(Numeric)
|
586
|
+
item_height= ref.to_px(:height)
|
587
|
+
margin= (margin.to_f*item_height)/100
|
588
|
+
end
|
574
589
|
pos = item.to_px(:bottom) + item.height + margin
|
590
|
+
item.top(:auto)
|
575
591
|
if item.display == :none
|
576
592
|
33
|
577
593
|
else
|
@@ -579,7 +595,11 @@ JS
|
|
579
595
|
end
|
580
596
|
end
|
581
597
|
|
582
|
-
def below(item, margin = 6)
|
598
|
+
def below(item, margin = 6, ref=grab(:view))
|
599
|
+
unless margin.is_a?(Numeric)
|
600
|
+
item_height= ref.to_px(:height)
|
601
|
+
margin= (margin.to_f*item_height)/100
|
602
|
+
end
|
583
603
|
pos = item.to_px(:top) + item.to_px(:height) + margin
|
584
604
|
if item.display == :none
|
585
605
|
0
|
@@ -589,7 +609,11 @@ JS
|
|
589
609
|
|
590
610
|
end
|
591
611
|
|
592
|
-
def after(item, margin = 6)
|
612
|
+
def after(item, margin = 6, ref=grab(:view))
|
613
|
+
unless margin.is_a?(Numeric)
|
614
|
+
item_width= ref.to_px(:width)
|
615
|
+
margin= (margin.to_f*item_width)/100
|
616
|
+
end
|
593
617
|
left_f = if item.left.instance_of?(Integer)
|
594
618
|
item.left
|
595
619
|
else
|
@@ -609,7 +633,11 @@ JS
|
|
609
633
|
end
|
610
634
|
end
|
611
635
|
|
612
|
-
def before(item, margin = 6)
|
636
|
+
def before(item, margin = 6, ref=grab(:view))
|
637
|
+
unless margin.is_a?(Numeric)
|
638
|
+
item_width= ref.to_px(:width)
|
639
|
+
margin= (margin.to_f*item_width)/100
|
640
|
+
end
|
613
641
|
pos = item.to_px(:right) + item.width + margin
|
614
642
|
if item.display == :none
|
615
643
|
0
|
@@ -786,4 +814,7 @@ class CssProxy
|
|
786
814
|
end
|
787
815
|
|
788
816
|
|
817
|
+
|
818
|
+
|
819
|
+
|
789
820
|
end
|
@@ -24,10 +24,10 @@ end
|
|
24
24
|
|
25
25
|
new({ particle: :int8, category: :communication, type: :int })
|
26
26
|
|
27
|
-
new({ particle: :language, category: :communication, type: :string }) do |params|
|
28
|
-
|
29
|
-
|
30
|
-
end
|
27
|
+
# new({ particle: :language, category: :communication, type: :string }) do |params|
|
28
|
+
# @data = int8[params]
|
29
|
+
# params
|
30
|
+
# end
|
31
31
|
# method below are used for communication with native core
|
32
32
|
def receptor(msg)
|
33
33
|
parsed = JSON.parse(msg)
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
Universe.language=:english
|
4
|
+
|
3
5
|
# now let's get the default render engine
|
4
6
|
|
5
7
|
# Lets create the U.I.
|
@@ -64,7 +66,7 @@ Atome.new(
|
|
64
66
|
Atome.new(
|
65
67
|
{ renderers: default_render, aid: :view,type: :shape, attach: :user_view, apply: [:view_color],
|
66
68
|
tag: { system: true }, left: 0, right: 0, top: 0, bottom: 0, width: :auto, height: :auto, overflow: :auto,
|
67
|
-
language: :english
|
69
|
+
# language: :english
|
68
70
|
}
|
69
71
|
|
70
72
|
)
|
@@ -126,8 +128,12 @@ puts b.left
|
|
126
128
|
b.left(155)
|
127
129
|
puts b.left
|
128
130
|
STR
|
129
|
-
example = text({ int8: { english: english, french: french },
|
130
|
-
|
131
|
+
example = text({ int8: { english: english, french: french },
|
132
|
+
# language: :english,
|
133
|
+
width: 666 })
|
134
|
+
code_text = text({ int8: { english: code },
|
135
|
+
# language: :english,
|
136
|
+
width: 666, top: 33 })
|
131
137
|
example.touch(true) do
|
132
138
|
example.delete(true)
|
133
139
|
help(:left)
|
@@ -28,6 +28,7 @@ class Universe
|
|
28
28
|
@allow_tool_operations = false
|
29
29
|
@active_tools = []
|
30
30
|
@atome_preset = []
|
31
|
+
@translation={}
|
31
32
|
@default_selection_style = { border: { thickness: 1, red: 1, green: 0, blue: 0, alpha: 1, pattern: :dotted } }
|
32
33
|
@applicable_atomes = %i[color shadow border paint animation]
|
33
34
|
# @historicize=false
|
@@ -35,7 +36,8 @@ class Universe
|
|
35
36
|
attr_reader :atomes, :atomes_ids, :renderer_list, :molecule_list, :atome_list, :particle_list, :classes, :counter,
|
36
37
|
:atomes_specificities
|
37
38
|
attr_accessor :connected, :allow_sync, :allow_localstorage, :database_ready, :edit_mode, :tools, :tools_root,
|
38
|
-
:allow_tool_operations, :active_tools, :atome_preset, :applicable_atomes, :default_selection_style
|
39
|
+
:allow_tool_operations, :active_tools, :atome_preset, :applicable_atomes, :default_selection_style,
|
40
|
+
:translation, :language
|
39
41
|
|
40
42
|
def messages
|
41
43
|
@messages
|
@@ -38,7 +38,9 @@ module Essentials
|
|
38
38
|
left: 0, top: 0 },
|
39
39
|
text: { type: :text, component: { size: 12 },left: 0, top: 0,
|
40
40
|
apply: [:text_color],
|
41
|
-
width: :auto, height: :auto,
|
41
|
+
width: :auto, height: :auto,
|
42
|
+
# language: :english
|
43
|
+
},
|
42
44
|
drm: { type: :drm, attach: :black_matter },
|
43
45
|
shadow: { type: :shadow, red: 0, green: 0, blue: 0, alpha: 1, blur: 3, left: 3, top: 3 },
|
44
46
|
border: { type: :border, red: 0, green: 0, blue: 0, alpha: 0, pattern: :solid, thickness: 6 },
|
@@ -9,10 +9,6 @@ class Atome
|
|
9
9
|
class << self
|
10
10
|
attr_accessor :initialized
|
11
11
|
|
12
|
-
# def descendant_of?(ancestor)
|
13
|
-
# is_descendant(ancestor, id)
|
14
|
-
# end
|
15
|
-
|
16
12
|
def sanitize_data_for_json(data)
|
17
13
|
data.gsub('"', '\\"')
|
18
14
|
end
|
@@ -89,7 +85,9 @@ class Atome
|
|
89
85
|
end
|
90
86
|
args = args[0]
|
91
87
|
end
|
92
|
-
|
88
|
+
if bloc.is_a?(Proc)
|
89
|
+
instance_exec({ original: value_before, altered: args, particle: monitored_particle }, &bloc)
|
90
|
+
end
|
93
91
|
original_method.call(*args)
|
94
92
|
end
|
95
93
|
end
|
@@ -112,51 +110,125 @@ class Atome
|
|
112
110
|
|
113
111
|
@initialized = {}
|
114
112
|
|
113
|
+
def grip(role_wanted)
|
114
|
+
gripped_atome = []
|
115
|
+
|
116
|
+
fasten.each do |child_id|
|
117
|
+
child_found = grab(child_id)
|
118
|
+
gripped_atome << child_id if child_found.role && child_found.role.include?(role_wanted)
|
119
|
+
end
|
120
|
+
gripped_atome
|
121
|
+
end
|
122
|
+
|
115
123
|
def recursive(_val)
|
116
124
|
# dummy method
|
117
125
|
end
|
118
126
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
# sub_created = box({ id: sub_id, height: '100%'})
|
128
|
-
# sub_created.set(sub_content)
|
129
|
-
# sub_width = sub_created.to_px(:width)
|
130
|
-
# left_offset += sub_width + spacing_found
|
131
|
-
# sub_created.width(sub_width)
|
132
|
-
# sub_created.left(left_offset - sub_width - spacing_found)
|
133
|
-
# sub_created.width(sub_created.to_percent(:width))
|
134
|
-
# sub_created.left(sub_created.to_percent(:left))
|
135
|
-
# end
|
136
|
-
# end
|
127
|
+
def retrieve(params = {}, &block)
|
128
|
+
closest_first = true, include_self = false
|
129
|
+
if params[:ascending] == false
|
130
|
+
closest_first = :inverted
|
131
|
+
end
|
132
|
+
if params[:self] == true
|
133
|
+
include_self = true
|
134
|
+
end
|
137
135
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
136
|
+
# this method allow to retrieve all children of an atome recursively, beginning from the closet child or inverted
|
137
|
+
|
138
|
+
all_children = []
|
139
|
+
fetch_children_recursively = lambda do |parent, depth|
|
140
|
+
children_ids = parent.fasten
|
141
|
+
if children_ids.any?
|
142
|
+
children_ids.each do |child_id|
|
143
|
+
child = grab(child_id)
|
144
|
+
fetch_children_recursively.call(child, depth + 1)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
if include_self
|
148
|
+
all_children << { depth: depth, child: parent }
|
149
|
+
else
|
150
|
+
all_children << { depth: depth, child: parent } unless parent == self
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
154
|
+
|
155
|
+
fetch_children_recursively.call(self, 0)
|
156
|
+
|
157
|
+
sorted_children = if closest_first != :inverted
|
158
|
+
all_children.sort_by { |entry| entry[:depth] }
|
159
|
+
else
|
160
|
+
all_children.sort_by { |entry| -entry[:depth] }
|
161
|
+
end
|
162
|
+
|
163
|
+
sorted_children.each do |entry|
|
164
|
+
block.call(entry[:child])
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
def found_spacing_in_percent(parent_width, child_width, nb_of_children)
|
169
|
+
total_child_width = child_width * nb_of_children
|
170
|
+
remaining_width = parent_width - total_child_width
|
171
|
+
spacing = remaining_width.to_f / (nb_of_children + 1)
|
172
|
+
spacing_percentage = (spacing / parent_width) * 100
|
173
|
+
spacing_percentage.round(2)
|
174
|
+
end
|
175
|
+
|
176
|
+
def block(params)
|
177
|
+
direction = params.delete(:direction) || :vertical
|
178
|
+
spacing = params.delete(:spacing) || 3
|
179
|
+
width_found = params.delete(:width) || '100%'
|
180
|
+
height_found = params.delete(:height) || '100%'
|
181
|
+
bloc_params = params.delete(:data) || {}
|
182
|
+
|
183
|
+
last_id_found = grip(:block).last
|
184
|
+
|
185
|
+
if last_id_found
|
186
|
+
last_found = grab(last_id_found)
|
187
|
+
case direction
|
188
|
+
when :vertical
|
189
|
+
box({ top: below(last_found, spacing), role: :block, width: width_found }.merge(params).merge(bloc_params))
|
190
|
+
when :horizontal
|
191
|
+
width_found = to_px(:width)
|
192
|
+
block_left = after(last_found, spacing)
|
193
|
+
left_in_percent = (block_left / width_found) * 100
|
194
|
+
box({ left: "#{left_in_percent}%", role: :block, height: height_found }.merge(params).merge(bloc_params))
|
195
|
+
else
|
196
|
+
#
|
197
|
+
end
|
198
|
+
else
|
199
|
+
case direction
|
200
|
+
when :vertical
|
201
|
+
box({ top: spacing, role: :block, width: width_found }.merge(params).merge(bloc_params))
|
202
|
+
when :horizontal
|
203
|
+
box({ left: spacing, role: :block, height: height_found }.merge(params).merge(bloc_params))
|
204
|
+
else
|
205
|
+
#
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
end
|
210
|
+
|
211
|
+
def blocks(params)
|
212
|
+
# alert 'blocks case'
|
213
|
+
|
214
|
+
blocks = params.delete(:blocks)
|
215
|
+
distribute = params.delete(:distribute)
|
216
|
+
if distribute && params[:direction] == :horizontal
|
217
|
+
width_found = to_px(:width)
|
218
|
+
params[:spacing] = "#{found_spacing_in_percent(width_found, params[:width], blocks.length)}%"
|
219
|
+
elsif distribute
|
220
|
+
height_found = to_px(:height)
|
221
|
+
params[:spacing] = found_spacing_in_percent(height_found, params[:height], blocks.length)
|
222
|
+
end
|
223
|
+
blocks.each do |bloc_id, block_to_create|
|
224
|
+
sanitized_bloc_data = params.merge(block_to_create)
|
225
|
+
block({ data: sanitized_bloc_data }.merge({ id: bloc_id }).merge(params))
|
226
|
+
end
|
227
|
+
end
|
156
228
|
|
157
229
|
def sub_block(sub_params, spacing_found = 3)
|
158
230
|
num_blocks = sub_params.size
|
159
|
-
parent_width = to_px(:width)
|
231
|
+
parent_width = to_px(:width)
|
160
232
|
total_ratios = sub_params.values.sum { |sub_content| sub_content[:width] }
|
161
233
|
total_spacing = (num_blocks + 1) * spacing_found
|
162
234
|
available_width = parent_width - total_spacing
|
@@ -164,18 +236,16 @@ class Atome
|
|
164
236
|
sub_params.each do |sub_id, sub_content|
|
165
237
|
ratio = sub_content[:width]
|
166
238
|
block_width = (available_width * ratio) / total_ratios
|
167
|
-
sub_created = box({ id: sub_id, height: '100%', left: left_offset })
|
239
|
+
sub_created = box({ id: sub_id, height: '100%', left: left_offset, role: :sub })
|
168
240
|
sub_content["width"] = block_width
|
169
241
|
sub_created.set(sub_content)
|
170
242
|
sub_created.width(block_width)
|
171
243
|
left_offset += block_width + spacing_found
|
172
|
-
|
173
|
-
|
244
|
+
sub_created.width(sub_created.to_percent(:width))
|
245
|
+
sub_created.left(sub_created.to_percent(:left))
|
174
246
|
end
|
175
247
|
end
|
176
248
|
|
177
|
-
|
178
|
-
|
179
249
|
def help(particle, &doc)
|
180
250
|
if doc
|
181
251
|
Universe.set_help(particle, &doc)
|
@@ -375,7 +445,7 @@ class Atome
|
|
375
445
|
# This method is used to automatically create a callback method suffixed by '_callback'. For example: shell => shell_callback.
|
376
446
|
# it can be override if you create a method like:
|
377
447
|
# new({callback: :shell}) do |params, bloc|
|
378
|
-
# #
|
448
|
+
# # write what you want …
|
379
449
|
# end
|
380
450
|
def particle_callback(element)
|
381
451
|
Atome.define_method("#{element}_callback") do |return_params|
|
@@ -442,31 +512,62 @@ class Atome
|
|
442
512
|
hash
|
443
513
|
end
|
444
514
|
|
445
|
-
def refresh
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
515
|
+
# def refresh
|
516
|
+
#
|
517
|
+
# # we get the current color because they will be removed
|
518
|
+
# particles_found = particles_to_hash.dup
|
519
|
+
# # id_found=id
|
520
|
+
# data_found=particles_found.delete(:data)
|
521
|
+
# attach_found=particles_found.delete(:attach)
|
522
|
+
# apply_found=particles_found.delete(:apply)
|
523
|
+
# particles_found.each do |particle_found, value_found|
|
524
|
+
# send(particle_found, value_found)
|
525
|
+
# end
|
526
|
+
# # Universe.applicable_atomes.each do |atome_type|
|
527
|
+
# #
|
528
|
+
# # send(atome_type).each do |col|
|
529
|
+
# # apply(col)
|
530
|
+
# # end
|
531
|
+
# # end
|
532
|
+
# # alert id_found
|
533
|
+
# # grab(attach_found).fasten(id_found)
|
534
|
+
# data(data_found)
|
535
|
+
#
|
536
|
+
# apply_found.delete(:text_color) #TODO : patch here : the array is not correctly ordered so default color are apply over the next
|
537
|
+
# apply_found.delete(:box_color) ##TODO : patch here : the array is not correctly ordered so default color are apply over the next
|
538
|
+
# apply(apply_found)
|
539
|
+
# # attach(attach_found)
|
540
|
+
# end
|
541
|
+
|
542
|
+
def refresh_atome
|
543
|
+
id_found = id.dup
|
544
|
+
id(:temporary)
|
545
|
+
fasten_atomes = []
|
546
|
+
fasten_found = fasten.dup
|
547
|
+
fasten_found.each do |child_id_found|
|
548
|
+
child_found = grab(child_id_found)
|
549
|
+
if child_found
|
550
|
+
new_child = child_found.duplicate({})
|
551
|
+
fasten_atomes << new_child.id
|
455
552
|
end
|
456
553
|
end
|
457
|
-
end
|
458
554
|
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
555
|
+
infos_found = infos.dup
|
556
|
+
data_found = infos_found.delete(:data)
|
557
|
+
keys_to_delete = %i[history callback duplicate copy paste touch_code html fasten aid]
|
558
|
+
keys_to_delete.each { |key| infos_found.delete(key) }
|
559
|
+
new_atome_id = id_found
|
560
|
+
infos_found[:id] = new_atome_id
|
561
|
+
new_atome = Atome.new(infos_found)
|
562
|
+
@duplicate ||= {}
|
563
|
+
@duplicate[new_atome_id] = new_atome
|
564
|
+
new_atome.data(data_found) # needed because if atome type is a text we need add type at the end
|
565
|
+
new_atome
|
463
566
|
end
|
464
567
|
|
465
|
-
def
|
466
|
-
|
467
|
-
|
468
|
-
instance_exec(val, index, &proc) if proc.is_a?(Proc)
|
469
|
-
index += 1
|
568
|
+
def refresh(&bloc)
|
569
|
+
retrieve({ self: true }) do |child|
|
570
|
+
child.refresh_atome
|
470
571
|
end
|
471
572
|
end
|
472
573
|
|
@@ -515,9 +616,7 @@ class Atome
|
|
515
616
|
category(:atome)
|
516
617
|
attach(grand_parent)
|
517
618
|
# we delete the parent (the layout) if it no more children fasten
|
518
|
-
if parent_found.fasten.length == 0
|
519
|
-
parent_found.delete(true)
|
520
|
-
end
|
619
|
+
parent_found.delete(true) if parent_found.fasten.length == 0
|
521
620
|
end
|
522
621
|
|
523
622
|
def server(server_params = nil)
|
data/lib/atome/version.rb
CHANGED
@@ -91,7 +91,7 @@ class Atome
|
|
91
91
|
@click_analysis_active = false
|
92
92
|
|
93
93
|
click_timeout = nil
|
94
|
-
double_click_delay =
|
94
|
+
double_click_delay = 222
|
95
95
|
|
96
96
|
JS.global[:document].addEventListener('click') do |native_event|
|
97
97
|
if @click_analysis
|
@@ -115,7 +115,7 @@ class Atome
|
|
115
115
|
|
116
116
|
else
|
117
117
|
click_timeout = wait(double_click_delay / 1000.0) do
|
118
|
-
click_timeout = nil
|
118
|
+
click_timeout = nil # important do not remove !
|
119
119
|
Atome.instance_exec(native_event, &@click_analysis) if @click_analysis.is_a?(Proc)
|
120
120
|
end
|
121
121
|
end
|
@@ -201,7 +201,6 @@ class Atome
|
|
201
201
|
# in this case (on target touch )we are targeting a system object non alterable so we create an a new atome
|
202
202
|
# Ex: if we are on a system color we create a new color that can be altered
|
203
203
|
tools_scheme[:particles]&.each do |particle_f, value_f|
|
204
|
-
# if target.type
|
205
204
|
type_to_create = target.type
|
206
205
|
if type_to_create
|
207
206
|
target = atome_touched.send(type_to_create, { particle_f => value_f })
|
@@ -209,20 +208,15 @@ class Atome
|
|
209
208
|
target.send(particle_f, value_f)
|
210
209
|
end
|
211
210
|
end
|
212
|
-
# end
|
213
|
-
|
214
211
|
end
|
215
212
|
else
|
216
213
|
|
217
214
|
# below code trigger when activating the current tool :
|
218
215
|
tools_scheme[:particles]&.each do |particle_f, value_f|
|
219
|
-
|
220
216
|
is_descendant_of_intuition = target.descendant_of?(:intuition).to_s
|
221
217
|
atome_descendant_of_intuition = atome_touched.descendant_of?(:intuition).to_s
|
222
218
|
# the condition below is use to exclude the treatment any object in the intuition layer
|
223
|
-
# puts "1 target is : #{target.id}, atome_touched is : #{atome_touched}"
|
224
219
|
unless is_descendant_of_intuition == 'true' || atome_descendant_of_intuition == 'true'
|
225
|
-
# puts "2 target is : #{target.id}, atome_touched is : #{atome_touched}"
|
226
220
|
target.send(particle_f, value_f)
|
227
221
|
end
|
228
222
|
end
|
@@ -415,15 +409,14 @@ class Atome
|
|
415
409
|
tool.instance_variable_set('@prevent_action', true)
|
416
410
|
if tool.instance_variable_get('@tool_open') == true
|
417
411
|
tool.instance_variable_set('@tool_open', false)
|
418
|
-
tool_scheme[:particles]
|
419
|
-
|
420
|
-
|
412
|
+
tool_scheme[:particles]&.each_key do |particle|
|
413
|
+
grab("tool_particle_#{particle}").delete({ force: true })
|
414
|
+
end
|
421
415
|
tool.width(size)
|
422
416
|
else
|
423
417
|
tool.instance_variable_set('@tool_open', true)
|
424
418
|
|
425
419
|
tool_scheme[:particles]&.each_with_index do |(particle_name, _value_), ind|
|
426
|
-
|
427
420
|
particle = tool.box({ id: "tool_particle_#{particle_name}", tag: { system: true }, depth: 1, smooth: smooth,
|
428
421
|
apply: %i[inactive_tool_col tool_box_border tool_shade],
|
429
422
|
width: size, height: size, left: ind * (size + margin) + size })
|
@@ -454,7 +447,6 @@ class Atome
|
|
454
447
|
particle_label.top(:auto)
|
455
448
|
particle_label.bottom(0)
|
456
449
|
particle.touch(true) do
|
457
|
-
# puts "1 ======> opening !!!#{particle_name}"
|
458
450
|
tool.instance_variable_set('@prevent_action', true)
|
459
451
|
slider_id = "particle_slider_#{particle_name}"
|
460
452
|
if particle.instance_variable_get('@active')
|
@@ -482,22 +474,22 @@ class Atome
|
|
482
474
|
# Slider actions below:
|
483
475
|
if grab(slider_id).instance_variable_get('@initialised')
|
484
476
|
Atome.selection.each do |atome_id_to_treat|
|
477
|
+
|
478
|
+
|
485
479
|
tool_scheme[:particles][particle_name] = value.to_f / 100
|
486
480
|
atome_found = grab(atome_id_to_treat)
|
487
481
|
target = grab(atome_found.color.last)
|
488
|
-
if tool.active
|
489
|
-
|
490
|
-
end
|
491
|
-
label_value.data(value.to_f / 100)
|
482
|
+
target.send(particle_name, value.to_f / 100) if tool.active
|
483
|
+
|
492
484
|
end
|
493
485
|
|
486
|
+
label_value.data(value.to_f / 100)
|
487
|
+
tool_scheme[:particles][particle_name]=value.to_f / 100
|
494
488
|
end
|
495
489
|
end
|
496
490
|
|
497
491
|
Atome.selection.each do |atome_id_to_treat|
|
498
492
|
atome_found = grab(atome_id_to_treat)
|
499
|
-
# puts 'here slider treat either the target atome types or current atome'
|
500
|
-
# puts "need to created a list instead of choosing the last atome found of it's kind"
|
501
493
|
target = if tool_scheme[:target]
|
502
494
|
grab(atome_found.send(tool_scheme[:target]).last)
|
503
495
|
else
|
@@ -521,22 +513,9 @@ class Atome
|
|
521
513
|
tool.touch(:double) do
|
522
514
|
tool_to_deactivate = Universe.active_tools.dup
|
523
515
|
tool_to_deactivate.each do |atome_id_found|
|
524
|
-
|
525
516
|
atome_found = grab(atome_id_found)
|
526
|
-
puts "deactivate #{atome_id_found}"
|
527
517
|
atome_found.deactivate_tool
|
528
|
-
# if atome_found.activated
|
529
|
-
# # atome_found.deactivate_tool
|
530
|
-
# end
|
531
|
-
# puts "#{atome_found}, #{atome_found.class}"
|
532
518
|
end
|
533
|
-
# Universe.tools.each do |tool_id_found, _tool_content|
|
534
|
-
# # tool_found=grab(tool_id_found)
|
535
|
-
# puts tool_id_found
|
536
|
-
# # if tool_found.activated
|
537
|
-
# # tool.deactivate_tool
|
538
|
-
# # end
|
539
|
-
# end
|
540
519
|
tool.activate_tool
|
541
520
|
end
|
542
521
|
tool.touch(true) do
|
@@ -184,7 +184,7 @@ new(molecule: :input) do |params, bloc|
|
|
184
184
|
position: :absolute
|
185
185
|
}.merge(text_params)
|
186
186
|
)
|
187
|
-
|
187
|
+
input_back.touch(:down) do
|
188
188
|
input_back.tick(:input)
|
189
189
|
text_input.edit(true)
|
190
190
|
end
|
@@ -532,11 +532,11 @@ new(molecule: :application) do |params, &bloc|
|
|
532
532
|
end
|
533
533
|
main_app.define_singleton_method(:extract) do |bloc_to_extract|
|
534
534
|
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
535
|
+
bloc_to_extract.each do |page_id, block_id|
|
536
|
+
grab(block_id).delete({ recursive: true })
|
537
|
+
@blocks[page_id].delete(block_id)
|
538
|
+
grab(page_id).reorder_blocs
|
539
|
+
end
|
540
540
|
|
541
541
|
end
|
542
542
|
|
@@ -664,7 +664,7 @@ new(molecule: :show) do |page_id, &bloc|
|
|
664
664
|
grab("#{id_f}_header").left(basic_size) if header
|
665
665
|
end
|
666
666
|
end
|
667
|
-
|
667
|
+
new_page
|
668
668
|
end
|
669
669
|
|
670
670
|
|
data/lib/renderers/html/html.rb
CHANGED
@@ -732,7 +732,14 @@ class HTML
|
|
732
732
|
end
|
733
733
|
end
|
734
734
|
|
735
|
+
def drag_code(params=nil)
|
736
|
+
#FIXME : this method is an ugly patch when refreshing an atome twice, else it crash
|
737
|
+
# and lose it's drag
|
738
|
+
drag_move(params)
|
739
|
+
end
|
740
|
+
|
735
741
|
def event(action, variance, option = nil)
|
742
|
+
# puts " remove 'if option', if unable ti unbind# : #{action} _ #{variance}"
|
736
743
|
send("#{action}_#{variance}", option)
|
737
744
|
end
|
738
745
|
|
@@ -46,11 +46,18 @@ end
|
|
46
46
|
|
47
47
|
new({ method: :data, type: :string, specific: :text, renderer: :html }) do |params|
|
48
48
|
|
49
|
-
js[:innerHTML] = if int8[language]
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
# js[:innerHTML] = if int8[language]
|
50
|
+
# int8[language].to_s
|
51
|
+
# else
|
52
|
+
# params.to_s
|
53
|
+
# end
|
54
|
+
|
55
|
+
# alert "#{Universe.translation} /// #{params} /// #{Universe.language}"
|
56
|
+
if Universe.translation[params]
|
57
|
+
params= Universe.translation[params][Universe.language]
|
58
|
+
end
|
59
|
+
js[:innerHTML] = params.to_s
|
60
|
+
|
54
61
|
end
|
55
62
|
|
56
63
|
new({ method: :data, type: :string, specific: :vector, renderer: :html }) do |value|
|
@@ -7,16 +7,19 @@ b3=box({top: below(b2, margin)})
|
|
7
7
|
b4=box({top: below(b3, margin)})
|
8
8
|
box({top: below(b4, margin)})
|
9
9
|
i=0
|
10
|
-
while i< 10 do
|
11
|
-
b2=box({top: below(b, margin)})
|
12
|
-
i+=1
|
13
|
-
end
|
14
10
|
|
15
|
-
|
16
|
-
|
11
|
+
|
12
|
+
b = circle(left: 333, top: 333)
|
13
|
+
margin = "2%"
|
14
|
+
# margin = 120
|
17
15
|
i = 0
|
18
16
|
|
19
17
|
while i < 10 do
|
20
|
-
|
18
|
+
#below first params is the object after which we place the objet, the second the margin
|
19
|
+
# here in percent and the third is the reference object used for the percent
|
20
|
+
# b = circle({top: below(b, margin, grab(:view)), left: b.left})
|
21
|
+
# b = circle({top: :auto,bottom: above(b, margin, grab(:view)), left: b.left})
|
22
|
+
b = circle({top: b.top,left: after(b, margin, grab(:view))})
|
23
|
+
# b = circle({left: :auto,right: before(b, margin, grab(:view))})
|
21
24
|
i += 1
|
22
25
|
end
|
@@ -41,7 +41,6 @@ page0 = { id: :page0,
|
|
41
41
|
|
42
42
|
a.page(page0)
|
43
43
|
a.page(page1)
|
44
|
-
a.page(page2)
|
45
44
|
a.page({ id: :page3,
|
46
45
|
color: :red,
|
47
46
|
})
|
@@ -51,12 +50,13 @@ a.page({ id: :page3,
|
|
51
50
|
menu_f=a.menu
|
52
51
|
menus_found= menu_f.fasten # replace fasten for entries
|
53
52
|
puts a.pages
|
54
|
-
puts "
|
55
|
-
puts "
|
53
|
+
puts "pages => #{a.pages}"
|
54
|
+
puts "menus_found => #{menus_found}"
|
56
55
|
|
57
56
|
bloc_to_add= {height: 156, color: :green}
|
58
57
|
bloc_to_add2= {height: 99, color: :blue}
|
59
58
|
bloc_to_add3= {height: 333, color: :orange, subs:{contact: {width: 1, color: :black}, project: {width: 1}, calendar: {width: 0.5, color: :green}}}
|
59
|
+
|
60
60
|
a.insert({page3: {block1: bloc_to_add , block2: bloc_to_add2, block3: bloc_to_add3}})
|
61
61
|
|
62
62
|
|
@@ -65,10 +65,17 @@ wait 1 do
|
|
65
65
|
a.extract({page3: :block1})
|
66
66
|
end
|
67
67
|
|
68
|
-
a.show(:page3)
|
68
|
+
page_3=a.show(:page3)
|
69
|
+
|
70
|
+
wait 1 do
|
71
|
+
page_3.color(:cyan)
|
72
|
+
end
|
73
|
+
|
74
|
+
|
69
75
|
# how access blocks
|
70
76
|
# wait 3 do
|
71
77
|
# grab(:block2).color(:black)
|
72
78
|
# end
|
73
79
|
|
74
80
|
|
81
|
+
puts(grab(:project).inspect)
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
a = application({
|
6
|
+
id: :arp,
|
7
|
+
margin: 3,
|
8
|
+
})
|
9
|
+
|
10
|
+
page1_code = lambda do
|
11
|
+
b = box({ id: :ty, left: 90, top: 90, color: :black })
|
12
|
+
b.touch(true) do
|
13
|
+
b.color(:red)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
page1 = {
|
18
|
+
run: page1_code,
|
19
|
+
menu: false,
|
20
|
+
id: :page1,
|
21
|
+
color: { red: 0.5, green: 0.5, blue: 0.5 },
|
22
|
+
name: :accueil,
|
23
|
+
# footer: { color: :green, height: 22 },
|
24
|
+
header: { color: { red: 0.3, green: 0.3, blue: 0.3 }, height: 90, shadow: { blur: 12, left: 0, top: 0 } },
|
25
|
+
|
26
|
+
}
|
27
|
+
|
28
|
+
a.page(page1)
|
29
|
+
c = a.show(:page1)
|
30
|
+
c.color(:orange)
|
31
|
+
header = grab(:arp_content_header)
|
32
|
+
header.color(:orange)
|
33
|
+
# header.height(66)
|
34
|
+
# header.subs({ "contact" => { "width" => "33%" }, "project" => { "width" => "33%" }, "calendar" => { "width" => "33%" } })
|
35
|
+
|
36
|
+
bloc_to_add = { height: 33, color: :cyan }
|
37
|
+
bloc_to_add2 = { height: 99, color: :blue }
|
38
|
+
bloc_to_add3 = { height: 133, color: :red }
|
39
|
+
bloc_to_add4 = { height: 33, color: :gray }
|
40
|
+
###########@
|
41
|
+
grab(:page1).blocks({ direction: :vertical, color: :blue, height: 55, spacing: 6,
|
42
|
+
blocks: { block1: bloc_to_add, block2: bloc_to_add2, block3: bloc_to_add3 } })
|
43
|
+
|
44
|
+
grab(:block1).blocks({ direction: :horizontal, color: :orange, spacing: 66, width: 120, top: 0,
|
45
|
+
blocks: { block12: bloc_to_add4, block22: bloc_to_add2, block32: bloc_to_add3 }, distribute: true })
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
b=box
|
4
|
+
b.circle({role: :header, left: 55, id: :first_one})
|
5
|
+
b.text({role: [:action], data: "hello", top: 90})
|
6
|
+
b.box({role: :header, left: 155, id: :second_one})
|
7
|
+
|
8
|
+
|
9
|
+
puts"header grip : #{ b.grip(:header)}"
|
10
|
+
puts "last header grip #{b.grip(:header).last}"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
t = text({ left: 33, top: 33, data: 'data collected', id: :infos })
|
3
|
-
b=box({drag: true, id: :
|
3
|
+
b=box({drag: true, id: :the_b})
|
4
|
+
# Important to trigger on 'return' add the parameter : {trigger: :return}
|
4
5
|
inp=b.input({ width: 166,
|
5
6
|
trigger: :up,
|
6
7
|
back: :orange,
|
@@ -11,7 +12,6 @@ inp=b.input({ width: 166,
|
|
11
12
|
red: 0, green: 0, blue: 0, alpha: 0.9
|
12
13
|
},
|
13
14
|
component: {size: 8},
|
14
|
-
# attach: :intuition,
|
15
15
|
text: { color: :black , top: 5, left: 6},
|
16
16
|
smooth: 3,
|
17
17
|
left: 66,
|
@@ -33,4 +33,9 @@ inp.top(12)
|
|
33
33
|
end
|
34
34
|
|
35
35
|
|
36
|
+
c=circle({top: 99})
|
37
|
+
c.touch(true) do
|
38
|
+
alert b.fasten
|
39
|
+
end
|
40
|
+
|
36
41
|
|
@@ -1,17 +1,36 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
t = text({ int8: { english: :hello, french: :salut, deutch: :halo } })
|
4
|
-
|
5
|
-
wait 1 do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
# t = text({ int8: { english: :hello, french: :salut, deutch: :halo } })
|
4
|
+
|
5
|
+
# wait 1 do
|
6
|
+
# t.language(:french)
|
7
|
+
# wait 1 do
|
8
|
+
# t.language(:english)
|
9
|
+
# # data is updated to the latest choice
|
10
|
+
# puts t.data
|
11
|
+
# wait 1 do
|
12
|
+
# t.data(:hi)
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
# end
|
16
|
+
|
17
|
+
Universe.translation[:hello] = { english: :hello, french: :salut, deutch: :halo }
|
13
18
|
|
14
|
-
|
19
|
+
b = box({ left: 155,
|
20
|
+
drag: true,
|
21
|
+
id: :boxy })
|
15
22
|
|
16
23
|
|
24
|
+
b.text({ data: :hello, id: :t1, position: :absolute, color: :black })
|
25
|
+
t2 = b.text({ data: :hello, id: :t2, left: 9, top: 33, position: :absolute })
|
17
26
|
|
27
|
+
|
28
|
+
|
29
|
+
Universe.language = :french
|
30
|
+
wait 2 do
|
31
|
+
t2.refresh
|
32
|
+
Universe.language = :deutch
|
33
|
+
wait 2 do
|
34
|
+
grab(:boxy).refresh
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
b = box({ left: 155, drag: true, id: :boxy })
|
4
|
+
|
5
|
+
t=b.text({ data: :hello, id: :t1, position: :absolute, color: :black })
|
6
|
+
t2 = b.text({ data: :hello, id: :t2, left: 9, top: 33, position: :absolute })
|
7
|
+
|
8
|
+
|
9
|
+
wait 1 do
|
10
|
+
grab(:view).retrieve do |child|
|
11
|
+
child.left(33)
|
12
|
+
end
|
13
|
+
wait 1 do
|
14
|
+
grab(:boxy).retrieve do |child|
|
15
|
+
child.color(:green)
|
16
|
+
end
|
17
|
+
wait 1 do
|
18
|
+
grab(:view).retrieve({ ascending: false, self: false }) do |child|
|
19
|
+
child.delete(true)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
def format_time
|
6
|
+
time = Time.now
|
7
|
+
{
|
8
|
+
year: time.year,
|
9
|
+
month: time.month,
|
10
|
+
day: time.day,
|
11
|
+
hour: time.hour,
|
12
|
+
minute: time.min,
|
13
|
+
second: time.sec
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
# Exemple d'utilisation
|
18
|
+
|
19
|
+
t=text({data: "message here", id: :messenger})
|
20
|
+
|
21
|
+
schedule_task('every_minute_task', format_time[:year], format_time[:month], format_time[:day], format_time[:hour], format_time[:minute], format_time[:second]+5, recurrence: :minutely) do
|
22
|
+
t.data("every minute i change from :#{format_time}, now : #{format_time[:minute]} , #{format_time[:second]}")
|
23
|
+
end
|
@@ -35,18 +35,18 @@ end
|
|
35
35
|
new({ tool: :combined }) do |params|
|
36
36
|
|
37
37
|
active_code = lambda {
|
38
|
-
puts :alteration_tool_code_activated
|
38
|
+
# puts :alteration_tool_code_activated
|
39
39
|
}
|
40
40
|
|
41
41
|
inactive_code = lambda { |param|
|
42
|
-
puts :alteration_tool_code_inactivated1
|
42
|
+
# puts :alteration_tool_code_inactivated1
|
43
43
|
}
|
44
44
|
pre_code = lambda { |params|
|
45
|
-
puts "pre_creation_code,atome_touched: #{:params}"
|
45
|
+
# puts "pre_creation_code,atome_touched: #{:params}"
|
46
46
|
|
47
47
|
}
|
48
48
|
post_code = lambda { |params|
|
49
|
-
puts "post_creation_code,atome_touched: #{:params}"
|
49
|
+
# puts "post_creation_code,atome_touched: #{:params}"
|
50
50
|
|
51
51
|
}
|
52
52
|
|
@@ -73,18 +73,18 @@ end
|
|
73
73
|
new({ tool: :rotate }) do |params|
|
74
74
|
|
75
75
|
active_code = lambda {
|
76
|
-
puts :alteration_tool_code_activated
|
76
|
+
# puts :alteration_tool_code_activated
|
77
77
|
}
|
78
78
|
|
79
79
|
inactive_code = lambda { |param|
|
80
|
-
puts :alteration_tool_code_inactivated2
|
80
|
+
# puts :alteration_tool_code_inactivated2
|
81
81
|
}
|
82
82
|
pre_code = lambda { |params|
|
83
|
-
puts "pre_creation_code,atome_touched: #{:params}"
|
83
|
+
# puts "pre_creation_code,atome_touched: #{:params}"
|
84
84
|
|
85
85
|
}
|
86
86
|
post_code = lambda { |params|
|
87
|
-
puts "post_creation_code,atome_touched: #{:params}"
|
87
|
+
# puts "post_creation_code,atome_touched: #{:params}"
|
88
88
|
|
89
89
|
}
|
90
90
|
|
@@ -111,20 +111,20 @@ end
|
|
111
111
|
new({ tool: :box }) do |params|
|
112
112
|
|
113
113
|
active_code = lambda {
|
114
|
-
puts :creation_tool_code_activated
|
114
|
+
# puts :creation_tool_code_activated
|
115
115
|
}
|
116
116
|
|
117
117
|
inactive_code = lambda { |atomes_treated|
|
118
|
-
puts :creation_tool_code_inactivated
|
118
|
+
# puts :creation_tool_code_inactivated
|
119
119
|
|
120
120
|
}
|
121
121
|
pre_creation_code = lambda { |params|
|
122
|
-
puts "pre_creation_code : atome_touched : #{:params} "
|
122
|
+
# puts "pre_creation_code : atome_touched : #{:params} "
|
123
123
|
|
124
124
|
}
|
125
125
|
|
126
126
|
post_creation_code = lambda { |params|
|
127
|
-
puts "post_creation_code,atome_touched: #{:params}"
|
127
|
+
# puts "post_creation_code,atome_touched: #{:params}"
|
128
128
|
}
|
129
129
|
|
130
130
|
{ creation: { box: { color: :blue, width: 66, height: 66 } },
|
@@ -214,7 +214,7 @@ new({ tool: :drag }) do
|
|
214
214
|
}
|
215
215
|
move_code = lambda {
|
216
216
|
drag(true) do
|
217
|
-
puts left
|
217
|
+
puts "left is : #{left}"
|
218
218
|
end
|
219
219
|
}
|
220
220
|
|
@@ -250,7 +250,7 @@ end
|
|
250
250
|
|
251
251
|
new({ tool: :color }) do
|
252
252
|
active_code = lambda {
|
253
|
-
puts 'color activated1'
|
253
|
+
# puts 'color activated1'
|
254
254
|
}
|
255
255
|
color_code = lambda {
|
256
256
|
# color(:green)
|
@@ -272,7 +272,7 @@ end
|
|
272
272
|
|
273
273
|
new({ tool: :crash_test }) do
|
274
274
|
active_code = lambda {
|
275
|
-
|
275
|
+
alert grab(Universe.current_user).selection.collect
|
276
276
|
}
|
277
277
|
color_code = lambda {
|
278
278
|
# color(:green)
|
@@ -283,14 +283,14 @@ new({ tool: :crash_test }) do
|
|
283
283
|
end
|
284
284
|
}
|
285
285
|
|
286
|
-
{
|
287
|
-
alteration: {
|
286
|
+
{activation: active_code,
|
287
|
+
# alteration: { alert: :good}
|
288
288
|
}
|
289
289
|
end
|
290
290
|
|
291
291
|
# Universe.tools_root= {tools: [:blur, :box, :test, :toolbox1],toolbox: { orientation: :ew, left:90 , bottom: 9, spacing: 9} }
|
292
292
|
Universe.tools_root = {id: :root_tools, tools: [:select,:crash_test, :box, :drag, :touch,:color, :move, :toolbox1, :rotate], toolbox: { orientation: :ew, left: 9, bottom: 9, spacing: 9 } }
|
293
|
-
puts "above we added an id because each tool may be in many toolbox and have an uniq ID"
|
293
|
+
# puts "above we added an id because each tool may be in many toolbox and have an uniq ID"
|
294
294
|
Atome.init_intuition
|
295
295
|
|
296
296
|
b = box({ id: :the_test_box, selected: false, color: :blue })
|
@@ -310,8 +310,8 @@ b.touch(true) do
|
|
310
310
|
end
|
311
311
|
|
312
312
|
end
|
313
|
-
text({left: 333, data: :hello})
|
314
|
-
circle({left: 333,top: 333})
|
313
|
+
text({left: 333, data: :hello, id: :t1})
|
314
|
+
circle({left: 333,top: 333, id: :c2})
|
315
315
|
|
316
316
|
# wait 2 do
|
317
317
|
# b= grab('color_tool_icon')
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="53" height="53" xml:space="preserve" id="canvas1">
|
4
|
+
<!-- Generated by PaintCode - http://www.paintcodeapp.com -->
|
5
|
+
<path id="canvas1-canvasNewCanvascanvas1bezier" stroke="rgb(200, 200, 200)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" fill="none" d="M 13,26 L 40,26" />
|
6
|
+
<path id="canvas1-canvasNewCanvascanvas1bezier3" stroke="rgb(200, 200, 200)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" fill="none" d="M 26,40 L 26,13" />
|
7
|
+
<circle id="canvas1-oval" stroke="rgb(206, 206, 206)" stroke-width="6" stroke-miterlimit="10" fill="none" cx="26.5" cy="26.5" r="23.5" />
|
8
|
+
</svg>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atome
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.7.4.
|
4
|
+
version: 0.5.7.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean-Eric Godard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06
|
11
|
+
date: 2024-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
@@ -546,6 +546,7 @@ files:
|
|
546
546
|
- vendor/assets/application/examples/b64_to_image.rb
|
547
547
|
- vendor/assets/application/examples/basic_understanding.rb
|
548
548
|
- vendor/assets/application/examples/behavior.rb
|
549
|
+
- vendor/assets/application/examples/blocks.rb
|
549
550
|
- vendor/assets/application/examples/blur.rb
|
550
551
|
- vendor/assets/application/examples/border.rb
|
551
552
|
- vendor/assets/application/examples/browse.rb
|
@@ -583,11 +584,13 @@ files:
|
|
583
584
|
- vendor/assets/application/examples/fill.rb
|
584
585
|
- vendor/assets/application/examples/find.rb
|
585
586
|
- vendor/assets/application/examples/fit.rb
|
587
|
+
- vendor/assets/application/examples/flash.rb
|
586
588
|
- vendor/assets/application/examples/fonts.rb
|
587
589
|
- vendor/assets/application/examples/generator_and_build.rb
|
588
590
|
- vendor/assets/application/examples/getter.rb
|
589
591
|
- vendor/assets/application/examples/grab.rb
|
590
592
|
- vendor/assets/application/examples/gradient.rb
|
593
|
+
- vendor/assets/application/examples/grip.rb
|
591
594
|
- vendor/assets/application/examples/group.rb
|
592
595
|
- vendor/assets/application/examples/help.rb
|
593
596
|
- vendor/assets/application/examples/hierarchy.rb
|
@@ -629,8 +632,10 @@ files:
|
|
629
632
|
- vendor/assets/application/examples/remove.rb
|
630
633
|
- vendor/assets/application/examples/repeat.rb
|
631
634
|
- vendor/assets/application/examples/resize.rb
|
635
|
+
- vendor/assets/application/examples/retreive.rb
|
632
636
|
- vendor/assets/application/examples/rotate.rb
|
633
637
|
- vendor/assets/application/examples/run.rb
|
638
|
+
- vendor/assets/application/examples/schedule.rb
|
634
639
|
- vendor/assets/application/examples/scheduler.rb
|
635
640
|
- vendor/assets/application/examples/security.rb
|
636
641
|
- vendor/assets/application/examples/select_text.rb
|
@@ -779,6 +784,7 @@ files:
|
|
779
784
|
- vendor/assets/src/medias/images/green_planet.png
|
780
785
|
- vendor/assets/src/medias/images/icons/Lowpass.svg
|
781
786
|
- vendor/assets/src/medias/images/icons/activate.svg
|
787
|
+
- vendor/assets/src/medias/images/icons/add.svg
|
782
788
|
- vendor/assets/src/medias/images/icons/audio.svg
|
783
789
|
- vendor/assets/src/medias/images/icons/band_pass.svg
|
784
790
|
- vendor/assets/src/medias/images/icons/clear.svg
|