atome 0.5.6.4.8 → 0.5.6.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc73dbaea0b164408d4656f53afb29c6f207d7a3a9238d7e0f017fee5d99c76a
4
- data.tar.gz: 97860122c2abfec80d74880bd80e24d3c4fb2bab39661aaf3d97e7d6bc1528b3
3
+ metadata.gz: 851b897d4aa5b30db58c4ac2b6b9cf7398e1dc478e6e66f2a0d9e5ab181ae999
4
+ data.tar.gz: e0c43d5d928acf4ece30d315227c759f070c5206ed4488b82e29f1565dcf906b
5
5
  SHA512:
6
- metadata.gz: bd5524c4909dd4c276c9af722af86b5eaa1505f82ff6503737a5cd6e50e62009bb8be7e7cd82db7e482e7f18e7beb7e1339c2728fbb211f96060b60143f3e136
7
- data.tar.gz: b485ea4522218c293c36f92e79caeb22fb9233e6146cbeb7271d9b328e2be809a86268871338bc49b4ba105352878f3d4ea99361cb7d41b122b46e37e2bb4fac
6
+ metadata.gz: a0b3f00737041ea0256b1955313f4c3ba462707558bb9459cd7cc39ccc7869692122c1edef2585eb69626c7a622329305fb01cbbe80fe7a11a2c489fce6a6a62
7
+ data.tar.gz: f7edd0ce4311f84b60ab3ef1e336a7a60ae3a215f09f93de1e1c41937b392e6a54206f0a6f71bca8c3bdcd79db2ce0b89eb2ed891af00e67d19bfbcef3eef368
data/lib/atome/atome.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  class Atome
5
5
  include Essentials
6
6
 
7
- def aid(_v=nil)
7
+ def aid(_v = nil)
8
8
  @aid
9
9
  end
10
10
 
@@ -22,36 +22,36 @@ class Atome
22
22
  # alert "atome found : #{ grab(new_atome[:id])}"
23
23
  # grab(new_atome[:id])
24
24
  # else
25
- # the keys :renderers, :type and :id should be placed in the first position in the hash
26
- @history = {}
27
- # @language = :english
28
- # @callback = {}
29
- @tag = {}
30
- @selected = false
31
- #@metrics = {}
25
+ # the keys :renderers, :type and :id should be placed in the first position in the hash
26
+ @history = {}
27
+ # @language = :english
28
+ # @callback = {}
29
+ @tag = {}
30
+ @selected = false
31
+ #@metrics = {}
32
32
  @unit = {}
33
- @apply = []
34
- @collect = {}
35
- @collect = {}
36
- @int8= {}
37
- @css = {}
38
- @aid = identity_generator
39
- Universe.add_to_atomes( @aid, self)
40
- @id = new_atome[:id] || @aid
41
- Universe.id_to_aid(@id,@aid)
42
- @type = new_atome[:type] || :element
43
- @attached = []
44
- @category = []
45
- # @display = { mode: :default }
46
- # @backup={} # mainly used to restore particle when using grid /table /list display mode
47
- @html = HTML.new(@id, self)
48
- @headless = Headless.new(@id, self)
49
- # now we store the proc in a an atome's property called :bloc
50
- new_atome[:code] = atomes_proc if atomes_proc
51
- # we reorder the hash
52
- reordered_atome =reorder_particles(new_atome)
53
- # FIXME : try to remove the condition below (it crash in the method : def generator ... in genesis.rb)
54
- collapse(reordered_atome)
33
+ @apply = []
34
+ @collect = {}
35
+ @int8 = {}
36
+ @css = {}
37
+ @aid = identity_generator
38
+ Universe.add_to_atomes(@aid, self)
39
+ @id = new_atome[:id] || @aid
40
+ Universe.id_to_aid(@id, @aid)
41
+ @type = new_atome[:type] || :element
42
+ @attached = []
43
+ @affect = []
44
+ @category = []
45
+ # @display = { mode: :default }
46
+ # @backup={} # mainly used to restore particle when using grid /table /list display mode
47
+ @html = HTML.new(@id, self)
48
+ @headless = Headless.new(@id, self)
49
+ # now we store the proc in a an atome's property called :bloc
50
+ new_atome[:code] = atomes_proc if atomes_proc
51
+ # we reorder the hash
52
+ reordered_atome = reorder_particles(new_atome)
53
+ # FIXME : try to remove the condition below (it crash in the method : def generator ... in genesis.rb)
54
+ collapse(reordered_atome)
55
55
  # end
56
56
 
57
57
  end
@@ -35,7 +35,8 @@ new({ sanitizer: :color }) do |params|
35
35
  params
36
36
  end
37
37
  # new({ post: :color }) do
38
- # Atome.global_monitoring(self, [:red, :blue, :blue, :alpha, :left, :right, :diffusion], [:variable1, :variable2])
38
+ #
39
+ # # Atome.global_monitoring(self, [:red, :blue, :blue, :alpha, :left, :right, :diffusion], [:variable1, :variable2])
39
40
  # end
40
41
  new({ atome: :image })
41
42
  new({ sanitizer: :image }) do |params|
@@ -54,7 +55,6 @@ new({ post: :image }) do
54
55
  instance_variable_set("@width", compute({ particle: :width })[:value])
55
56
  instance_variable_set("@height", compute({ particle: :height })[:value])
56
57
  end
57
-
58
58
  new({ atome: :video })
59
59
  new({ sanitizer: :video }) do |params|
60
60
  unless params.instance_of? Hash
@@ -69,23 +69,17 @@ new({ sanitizer: :video }) do |params|
69
69
  end
70
70
  new({ atome: :www })
71
71
  new({ atome: :shadow }) do |params|
72
- # if params
73
- # if params.delete(:affect)
74
- # attach_value = params.delete(:affect)
75
- # else
76
- # attach_value=id
77
- # end
78
- #
79
- # params[:affect] = attach_value
80
- # alert "=> params : #{params}"
81
- #
82
- # end
83
-
84
72
  if params
85
73
  attach_value = params.delete(:affect)
86
74
  params[:affect] = attach_value
87
75
  end
88
- # alert "=> params : #{params}"
76
+ params
77
+ end
78
+ new({ atome: :border }) do |params|
79
+ if params
80
+ attach_value = params.delete(:affect)
81
+ params[:affect] = attach_value
82
+ end
89
83
  params
90
84
  end
91
85
  new({ atome: :raw })
@@ -130,7 +124,6 @@ end
130
124
  new({ atome: :machine })
131
125
  new({ atome: :paint })
132
126
  new({ atome: :vector })
133
-
134
127
  new({ atome: :matrix })
135
128
  new({ atome: :atomized, type: :hash })
136
129
 
@@ -150,7 +150,7 @@ class Genesis
150
150
  # end
151
151
  # TODO : add category for atome( material/physical vs modifier : color, shadow, .. vs shape, image ..)
152
152
  # then add condition same things fo code in presets/atome atome_common
153
- if %i[color shadow paint].include?(element)
153
+ if %i[color shadow paint border].include?(element)
154
154
  # we do the same for apply to be able to retrieve 'color' and other atome that apply instead of being attached
155
155
  @apply.each do |attached_atome|
156
156
  collected_atomes << attached_atome if grab(attached_atome).type.to_sym == element.to_sym
@@ -2,9 +2,13 @@
2
2
 
3
3
  new({ particle: :smooth, category: :effect, type: :int })
4
4
 
5
-
6
5
  new({ particle: :blur, category: :effect, type: :int }) do |params|
7
- # alert params
8
- { value: params, affect: :self } unless params.instance_of?(Hash)
9
- # params
10
- end
6
+ if affect.nil?
7
+ affect_to = affect
8
+ else
9
+ affect_to = [:self]
10
+ end
11
+ val= { value: params, affect: affect_to } unless params.instance_of?(Hash)
12
+ val
13
+ end
14
+
@@ -2,9 +2,9 @@
2
2
  def detach_child(child)
3
3
  return unless child.attach
4
4
 
5
- parent = grab(child.attach)
6
- parent.attached.delete(@id)
7
-
5
+ parent = grab(child.attach)
6
+ parent.attached.delete(@id)
7
+
8
8
  end
9
9
 
10
10
  # def detach_from_parent(parent_found, child_found)
@@ -50,14 +50,14 @@ new({ sanitizer: :attached }) do |children_ids|
50
50
  end
51
51
 
52
52
  new({ particle: :apply, category: :hierarchy, type: :string, render: false, store: false }) do |parents_ids, &user_proc|
53
- # TODO: optimize the 2 lines below:
54
- # html.reset_background
53
+
55
54
  @apply ||= []
56
55
  parents_ids = [parents_ids] unless parents_ids.instance_of?(Array)
57
56
  parents_ids.each do |parent_id|
58
57
  @apply.delete(parent_id)
59
58
  @apply << parent_id
60
59
  end
60
+ puts affect
61
61
  parents_ids = @apply
62
62
  children_ids = [id]
63
63
  parents_ids.each do |parent_id|
@@ -66,16 +66,13 @@ new({ particle: :apply, category: :hierarchy, type: :string, render: false, stor
66
66
  parent_found.instance_variable_set('@affect', []) unless parent_affect.instance_of? Array
67
67
  affect_element = parent_found.instance_variable_get('@affect')
68
68
  children_ids.each do |child_id|
69
- # affect_element << child_id unless affect_element.include?(child_id)
70
69
  affect_element.delete(child_id)
71
- # affect_element.push(child_id)
72
70
  affect_element << child_id
73
71
  child_found = grab(child_id)
74
72
  child_found&.render(:apply, parent_found, &user_proc)
75
73
  end
76
74
  end
77
75
  @apply = parents_ids
78
-
79
76
  parents_ids
80
77
  end
81
78
 
@@ -83,9 +80,9 @@ new({ particle: :affect, category: :hierarchy, type: :string, render: false }) d
83
80
  children_ids = [children_ids] unless children_ids.instance_of? Array
84
81
  children_ids.each do |child_id|
85
82
  child_found = grab(child_id)
86
- #FIXME : found why it crash when removing the condition below
83
+ # FIXME : found why it crash when removing the condition below
87
84
  unless child_found.id == :black_matter
88
- child_found.remove({all: :paint})
85
+ child_found.remove({ all: :paint })
89
86
  end
90
87
  child_found.apply([id], &user_proc)
91
88
  end
@@ -58,6 +58,10 @@ new({ post: :remove }) do |params|
58
58
  shadow.each do |atome_id_found|
59
59
  @apply.delete(atome_id_found)
60
60
  end
61
+ when :border
62
+ border.each do |atome_id_found|
63
+ @apply.delete(atome_id_found)
64
+ end
61
65
  else
62
66
  params.each do |particle, value|
63
67
  case particle
@@ -92,4 +96,7 @@ new({ sanitizer: :definition }) do |params|
92
96
  end
93
97
 
94
98
  new({ particle: :gradient, category: :material, type: :int })
95
- new({ particle: :border, category: :material, type: :int })
99
+
100
+ new({ particle: :thickness, category: :material, type: :int })
101
+ new({ particle: :pattern, category: :material, type: :string })
102
+ # new({ particle: :border, category: :material, type: :int })
@@ -7,24 +7,64 @@ def extract_rgb_alpha(color_string)
7
7
  blue = match_data[3].to_i
8
8
  alpha = match_data[4] ? match_data[4].to_f : nil
9
9
  { red: red, green: green, blue: blue, alpha: alpha }
10
+
10
11
  end
11
12
 
12
13
  new({ particle: :red, category: :property, type: :string }) do
14
+ # alert :ok
13
15
  # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
14
16
  self
15
17
  end
18
+ # FIXME we have to apply both at post and after to make it work
19
+ # used to refresh all affected atomes
20
+ new({after: :red}) do |params|
21
+ a=affect.dup # FIXME we have to dup else some items in the array array other duplicated
22
+ a.each do |atome_to_refresh|
23
+ grab(atome_to_refresh).apply(id)
24
+ end
25
+ params
26
+ end
27
+
28
+
16
29
  new({ particle: :green, category: :property, type: :string }) do
17
30
  # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
18
31
  self
19
32
  end
33
+
34
+ # used to refresh all affected atomes
35
+ new({after: :green}) do |params|
36
+ a=affect.dup # FIXME we have to dup else some items in the array array other duplicated
37
+ a.each do |atome_to_refresh|
38
+ grab(atome_to_refresh).apply(id)
39
+ end
40
+ params
41
+ end
42
+
20
43
  new({ particle: :blue, category: :property, type: :string }) do
21
44
  # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
22
45
  self
23
46
  end
47
+
48
+ # used to refresh all affected atomes
49
+ new({after: :blue}) do |params|
50
+ a=affect.dup # FIXME we have to dup else some items in the array array other duplicated
51
+ a.each do |atome_to_refresh|
52
+ grab(atome_to_refresh).apply(id)
53
+ end
54
+ params
55
+ end
24
56
  new({ particle: :alpha, category: :property, type: :string }) do
25
57
  # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
26
58
  self
27
59
  end
60
+ # used to refresh all affected atomes
61
+ new({after: :alpha}) do |params|
62
+ a=affect.dup # FIXME we have to dup else some items in the array array other duplicated
63
+ a.each do |atome_to_refresh|
64
+ grab(atome_to_refresh).apply(id)
65
+ end
66
+ params
67
+ end
28
68
  new({ particle: :diffusion, category: :property, type: :string }) do
29
69
  # we return self to allow syntax of the type : a.color(:black).red(1).green(0.3)
30
70
  self
@@ -90,3 +90,9 @@ new({ particle: :center, category: :spatial, type: :hash }) do |params|
90
90
  params = { x: 0, y: 0, dynamic: true } if params == true
91
91
  params
92
92
  end
93
+ new ({ particle: :increment, category: :spatial, type: :hash }) do |params|
94
+ params.each do |particle, value|
95
+ prev_value=send(particle)
96
+ send(particle, value+prev_value)
97
+ end
98
+ end
@@ -37,7 +37,8 @@ module Essentials
37
37
  apply: [:text_color],
38
38
  width: :auto, height: :auto, language: :english },
39
39
  drm: { type: :drm, attach: :black_matter },
40
- shadow: { type: :shadow, red: 0, green: 0, blue: 0, alpha: 0 },
40
+ shadow: { type: :shadow, red: 0, green: 0, blue: 0, alpha: 1, blur: 3, left: 3, top: 3 },
41
+ border: { type: :border, red: 0, green: 0, blue: 0, alpha: 0, pattern: :solid, thickness: 6 },
41
42
  color: { type: :color, red: 0, green: 0, blue: 0, alpha: 1}
42
43
  }
43
44
 
@@ -7,6 +7,21 @@ class Atome
7
7
  class << self
8
8
 
9
9
 
10
+ def sync(params, &bloc)
11
+ alert :server_sync
12
+ # params = { data: params } unless params.instance_of? Hash
13
+ # # params[:user] = 'dfghg4df5gdfgh654'
14
+ # # params[:pass] = 'gfhkzrhgzr4h98948'
15
+ # # instance_variable_set('@message_code', {}) unless instance_variable_get('@message_code')
16
+ # # store_proc= instance_variable_get('@message_code')
17
+ # message_id= "msg_#{Universe.messages.length}"
18
+ # params[:message_id]=message_id
19
+ # # store_proc[mmessage_id]=bloc
20
+ # Universe.store_messages({msg_nb:message_id, proc: bloc })
21
+ # html.send_message(params)
22
+
23
+ end
24
+
10
25
  def file_handler(parent, content, bloc)
11
26
  grab(parent).instance_exec(content, &bloc)
12
27
  end
@@ -303,11 +318,16 @@ class Atome
303
318
  end
304
319
 
305
320
  def refresh
321
+ # we get the current color because they will be removed
322
+ # prev_color=color
323
+ # alert color.class
306
324
  particles_found = to_hash
307
325
  particles_found.each do |particle_found, value_found|
308
326
  send(particle_found, value_found)
309
327
  end
310
-
328
+ color.each do |col|
329
+ apply(col)
330
+ end
311
331
  end
312
332
 
313
333
  def each(&proc)
@@ -26,7 +26,7 @@ class Atome
26
26
  # condition to handle color/shadow/paint atomes that shouldn't be attach to view
27
27
  # TODO : add category for atome( material/physical vs modifier : color, shadow, .. vs shape, image ..)
28
28
  # then add condition same things fo code in genesis new_atome
29
- if %i[color shadow paint].include?(atome_preset)
29
+ if %i[color shadow paint border].include?(atome_preset)
30
30
  unless params[:affect]
31
31
  params[:affect] = if @id == :view
32
32
  [:black_matter]
data/lib/atome/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  # return atome version
4
4
  class Atome
5
- VERSION = '0.5.6.4.8'
5
+ VERSION = '0.5.6.5.1'
6
6
  end
@@ -27,3 +27,25 @@ new({ renderer: :html, method: :blur, type: :integer }) do |params, _user_proc|
27
27
  html.filter(:blur, "#{params[:value]}px")
28
28
  end
29
29
  end
30
+
31
+
32
+ new({ renderer: :html, method: :blur, type: :integer, specific: :shadow }) do |params, _user_proc|
33
+ if params[:affect] == :back
34
+ html.backdropFilter(:blur, "#{params[:value]}px")
35
+ else
36
+ html.filter(:blur, "#{params[:value]}px")
37
+ end
38
+ # now we refresh if needed for dynamic refresh od affected atomes
39
+ affect(affect)
40
+ end
41
+
42
+ # new({ particle: :blur, category: :effect, type: :int , specific: :shadow}) do |params|
43
+ # alert :cool
44
+ # if affect.nil?
45
+ # affect_to = affect
46
+ # else
47
+ # affect_to = [:self]
48
+ # end
49
+ # val= { value: params, affect: affect_to } unless params.instance_of?(Hash)
50
+ # val
51
+ # end
@@ -38,7 +38,6 @@ new({ renderer: :html, method: :apply, type: :string }) do |parent_found, _user_
38
38
  alpha = parent_found.alpha
39
39
  html.style(:backgroundColor, "rgba(#{red}, #{green}, #{blue}, #{alpha})")
40
40
  when :paint
41
-
42
41
  # if when found colors when use it for the gradient , else whe use the colors within the current atome
43
42
  # gradient_found = params[:colors] || @apply
44
43
  # we get all the paint atomes applied to the current atome
@@ -75,6 +74,17 @@ new({ renderer: :html, method: :apply, type: :string }) do |parent_found, _user_
75
74
  # full_gradient_to_apply=gradients_to_apply.join(',')
76
75
  full_gradient_to_apply = gradients_to_apply.last
77
76
  html.style(:background, full_gradient_to_apply)
77
+ when :border
78
+ border.each do |border_id_found|
79
+ border_found = grab(border_id_found)
80
+ red = border_found.red * 255
81
+ green = border_found.green * 255
82
+ blue = border_found.blue * 255
83
+ alpha = border_found.alpha
84
+ thickness = border_found.thickness
85
+ pattern = border_found.pattern
86
+ html.style(:border, "#{pattern} #{thickness}px rgba(#{red},#{green},#{blue},#{alpha})")
87
+ end
78
88
  else
79
89
  #
80
90
  end
@@ -52,16 +52,32 @@ new({ method: :remove, renderer: :html, type: :string }) do |object_id_to_remove
52
52
  end
53
53
  end
54
54
 
55
+ # new({ method: :border, type: :hash, renderer: :html }) do |value, _user_proc|
56
+ # thickness = value[:thickness] || 5
57
+ # type = value[:pattern] || :solid
58
+ #
59
+ # if value[:color].instance_of? Atome
60
+ # color_found = value[:color]
61
+ # else
62
+ # color_found = grab('black_matter').color(value[:color])
63
+ # end
64
+ #
65
+ # red = color_found.red * 255
66
+ # green = color_found.green * 255
67
+ # blue = color_found.blue * 255
68
+ # alpha = color_found.alpha
69
+ #
70
+ # html.style(:border, "#{type} #{thickness}px rgba(#{red},#{green},#{blue},#{alpha})")
71
+ # end
72
+ new({ method: :thickness, type: :integer, renderer: :html}) do |params|
73
+ # now we refresh if needed for dynamic refresh od affected atomes
74
+ # html.style(:border, "#{type} #{thickness}px rgba(#{red},#{green},#{blue},#{alpha})")
75
+ affect(affect)
76
+ end
55
77
 
56
- new({ method: :border, type: :hash, renderer: :html }) do |value, _user_proc|
57
- thickness = value[:thickness] || 5
58
- type = value[:pattern] || :solid
59
- color = if value[:color]
60
- color_found = value[:color]
61
- "#{color_found.red * 255},#{color_found.green * 255},#{color_found.blue * 255},#{color_found.alpha} "
62
- else
63
- "0,0,0,1"
64
- end
65
-
66
- html.style(:border, "#{type} #{thickness}px rgba(#{color})")
78
+ # end
79
+ new({ method: :pattern, type: :integer, renderer: :html}) do |params|
80
+ # now we refresh if needed for dynamic refresh od affected atomes
81
+ # html.style(:border, "#{type} #{thickness}px rgba(#{red},#{green},#{blue},#{alpha})")
82
+ affect(affect)
67
83
  end
@@ -22,33 +22,6 @@ new({ renderer: :html, method: :edit }) do |params|
22
22
  html.update_data(params)
23
23
  end
24
24
 
25
- new({ method: :border, type: :hash, renderer: :html }) do |value, _user_proc|
26
- thickness = value[:thickness] || 5
27
- type = value[:pattern] || :solid
28
- # color = if value[:color]
29
- # color_found = value[:color]
30
- # "#{color_found.red * 255},#{color_found.green * 255},#{color_found.blue * 255},#{color_found.alpha} "
31
- # else
32
- # "0,0,0,1"
33
- # end
34
- if value[:color].instance_of? Atome
35
- color_found= value[:color]
36
- else
37
- color_found=grab('black_matter').color(value[:color])
38
- end
39
-
40
- # alert "atome found 2 : #{color_found}"
41
- red = color_found.red* 255
42
- green = color_found.green* 255
43
- blue = color_found.blue* 255
44
- alpha = color_found.alpha
45
- # alert "rgba(#{red},#{green},#{blue},#{alpha})"
46
- # color_found= "#{1 * 255},#{color_found.green * 255},#{0 * 255},#{0.3} "
47
-
48
- html.style(:border, "#{type} #{thickness}px rgba(#{red},#{green},#{blue},#{alpha})")
49
- # html.style(:border, "#{type} #{thickness}px rgba(#{color_found})")
50
- # html.style(:border, "solid 12px rgba(255, 255, 120, 0,3)")
51
- end
52
25
 
53
26
  new({ method: :clean, renderer: :html, type: :hash }) do |params|
54
27
  html.table_clean(params)
@@ -9,6 +9,7 @@ new({ method: :top, type: :integer, renderer: :html }) do |params|
9
9
  unit = @unit[:top] || :px if params.is_a? Numeric
10
10
  js[:style][:top] = "#{params}#{unit}"
11
11
  end
12
+
12
13
  new({ method: :bottom, type: :integer, renderer: :html }) do |params|
13
14
  unit = @unit[:bottom] || :px if params.is_a? Numeric
14
15
  js[:style][:bottom] = "#{params}#{unit}"
@@ -20,7 +21,10 @@ new({ method: :right, type: :integer, renderer: :html }) do |params|
20
21
  js[:style][:right] = "#{params}#{unit}"
21
22
  end
22
23
 
23
- new({ method: :top, type: :integer, renderer: :html, specific: :shadow })
24
+ new({ method: :top, type: :integer, renderer: :html, specific: :shadow }) do
25
+ # now we refresh if needed for dynamic refresh od affected atomes
26
+ affect(affect)
27
+ end
24
28
 
25
29
  # new({ method: :top, type: :integer, renderer: :html, specific: :text }) do |params|
26
30
  # unit = @unit[:left] || :px
@@ -33,7 +37,10 @@ new({ method: :top, type: :integer, renderer: :html, specific: :shadow })
33
37
 
34
38
  new({ method: :left, type: :integer, specific: :color, renderer: :html })
35
39
 
36
- new({ method: :left, type: :integer, renderer: :html, specific: :shadow })
40
+ new({ method: :left, type: :integer, renderer: :html, specific: :shadow }) do
41
+ # now we refresh if needed for dynamic refresh od affected atomes
42
+ affect(affect)
43
+ end
37
44
 
38
45
  new({ method: :top, type: :integer, specific: :color, renderer: :html })
39
46
 
@@ -1,28 +1,48 @@
1
1
  # frozen_string_literal: true
2
2
 
3
-
4
- col=color({red: 1, green: 0.2, id: :the_col})
5
- c=circle
6
- b=box({left: 333})
7
- c2=circle({top: 190, width: 99, height: 99})
3
+ # col=color({red: 1, green: 0.2, id: :the_col})
4
+ c = circle({ id: :the_circle })
5
+ b = box({ left: 333, id: :the_box })
6
+ c2 = circle({ top: 190, width: 99, height: 99, id: :dont_break })
8
7
  # let's add the border
9
- c2.border({ thickness: 5, color: :blue, pattern: :dotted })
10
- c.border({ thickness: 5, color: col, pattern: :dotted })
11
- b.border({ thickness: 5, color: col, pattern: :dotted })
12
-
13
8
  wait 1 do
14
- c2.border({ thickness: 5, color: :green, pattern: :dotted })
15
- c.border({ thickness: 5, color: :green, pattern: :dotted })
16
- b.border({ thickness: 5, color: :green, pattern: :dotted })
9
+ c2.shadow({
10
+ # id: :s1,
11
+ # affect: [:the_circle],
12
+ left: 9,
13
+ top: 3,
14
+ blur: 9,
15
+ invert: false,
16
+ red: 0, green: 0, blue: 0, alpha: 1
17
+ })
18
+ c2.border({ thickness: 5, red: 1, green: 0, blue: 0, alpha: 1, pattern: :dotted, id: :borderline })
17
19
  end
20
+ c.border({ thickness: 5, red: 1, green: 1, blue: 0, alpha: 1, pattern: :dotted })
21
+ b.border({ thickness: 5, red: 0, green: 1, blue: 0, alpha: 1, pattern: :dotted })
18
22
 
23
+ wait 2 do
24
+ c2.border({ thickness: 5, red: 1, green: 1, blue: 0, alpha: 1, pattern: :solid })
25
+ c.border({ thickness: 5, red: 1, green: 1, blue: 0, alpha: 1, pattern: :dotted })
26
+ b.border({ thickness: 3, red: 1, green: 1, blue: 0, alpha: 1, pattern: :dotted })
27
+ end
28
+ #
19
29
  b.touch(true) do
20
30
 
21
- b.border({ thickness: 5, color: { red: 1, green: 0 }, pattern: :dotted })
22
- puts " no new atome added!, number of atomes: #{Universe.atomes.length}"
31
+ b.border({ thickness: 5, red: 1, green: 1, blue: 1, alpha: 1, pattern: :dotted, id: :the_door })
32
+ puts " no new atome added!, number of atomes: #{Universe.atomes.length}"
33
+ b.apply([:the_door])
34
+ c.apply([:the_door])
35
+ c2.apply([:the_door])
36
+ wait 3 do
37
+ # if the_door (border) is change all affect atomes are refreshed
38
+ grab(:the_door).red(0)
39
+ grab(:the_door).thickness(20)
40
+ grab(:the_door).pattern(:solid)
41
+ end
23
42
  end
43
+
24
44
  # wait 6 do
25
- # iamge(:red_planet)
45
+ # image(:red_planet)
26
46
  # end
27
47
 
28
48
  # # frozen_string_literal: true
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ cc=color({red: 1, blue: 0.1,id: :the_col})
4
+ b=box({ left: 12, id: :the_first_box, apply: cc.id })
5
+ c=circle({ left: 99, top: 99 })
6
+
7
+ wait 1 do
8
+ c.increment({left: 33, top: 99})
9
+ b.increment({left: 33, top: 99})
10
+ wait 1 do
11
+ c.increment({width: 33, top: -22})
12
+ b.increment({width: 33, top: -9})
13
+ cc.increment({red: -0.5})
14
+ wait 1 do
15
+ cc.increment({blue: 1})
16
+ end
17
+ # Atome.sync(:ok)
18
+ end
19
+ end
20
+
21
+ # wait 3 do
22
+ # color(:red)
23
+ # end
@@ -22,12 +22,12 @@ def matrix(id, horizontal_nb, vertical_nb, spacing, size)
22
22
  end
23
23
  box_width = available_width / horizontal_nb
24
24
  box_height = available_height / vertical_nb
25
-
25
+ background=box({id: :background, width: 666, height: 666, color:{alpha: 0}})
26
26
  vertical_nb.times do |y|
27
27
  horizontal_nb.times do |x|
28
28
  id_generated = "#{id}_#{x}_#{y}"
29
29
  matrix_cells << id_generated
30
- new_box = box({ id: id_generated })
30
+ new_box = background.box({ id: id_generated })
31
31
  new_box.width(box_width)
32
32
  new_box.height(box_height)
33
33
  new_box.left((box_width + spacing) * x + spacing)
@@ -142,4 +142,12 @@ test_cell.touch(true) do
142
142
  # test_cell.color(:blue)
143
143
  # end
144
144
 
145
- end
145
+ end
146
+ wait 1 do
147
+ @current_matrix.width(33)
148
+ end
149
+ @current_matrix.drag(true)
150
+ wait 2 do
151
+ grab(:background).left(666)
152
+ grab(:background).drag(true)
153
+ end
@@ -34,7 +34,7 @@ wait 2 do
34
34
  end
35
35
 
36
36
 
37
- the_text = text({ data: 'text with shadow!', center: true, top: 222, width: 777, component: { size: 66 } })
37
+ the_text = text({ data: 'text with shadow!', center: true, top: 222, width: 777, component: { size: 66 }, id: :my_text })
38
38
 
39
39
 
40
40
  the_text.shadow({
@@ -48,3 +48,13 @@ the_text.left(255)
48
48
  the_text.top(66)
49
49
  the_text.color(:red)
50
50
 
51
+ wait 1 do
52
+ text_shadow= grab(:my_shadow)
53
+ text_shadow.alpha(0.5)
54
+ text_shadow.left(120)
55
+ text_shadow.blur({ value: 1 })
56
+
57
+ # grab(:my_text).refresh(true)
58
+
59
+ end
60
+
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.6.4.8
4
+ version: 0.5.6.5.1
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-03-01 00:00:00.000000000 Z
11
+ date: 2024-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: artoo
@@ -568,6 +568,7 @@ files:
568
568
  - vendor/assets/application/examples/hypertext.rb
569
569
  - vendor/assets/application/examples/image.rb
570
570
  - vendor/assets/application/examples/import.rb
571
+ - vendor/assets/application/examples/increment.rb
571
572
  - vendor/assets/application/examples/infos.rb
572
573
  - vendor/assets/application/examples/int8.rb
573
574
  - vendor/assets/application/examples/keyboard.rb