atome 0.5.6.2.4 → 0.5.6.2.7

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: 5a31a51c4b23141c27202a017b8eda058b7fc25fb7d9bc0b2efd13ddb7eaf252
4
- data.tar.gz: 30b7d9e1d5fcfbd1bdfa358df8a1c122be32c7fb10825f7bfc470ab8742077cf
3
+ metadata.gz: 9034e0154aea8e0b9824eaf694efc80cee092201b66eaf4b053792c9bc0ee2a8
4
+ data.tar.gz: a8353fdc49263c322bd90e0d709b2ee18dd6052726bec4979c90d5e40578d2b4
5
5
  SHA512:
6
- metadata.gz: 7b85398a923c15fa0ee33f1e96eb56df3938d38c3c938631e9d97f34ff3c0c8628d185573817da9d25474ab3edddb51c76879a91865414d1b1eec31b506f60f9
7
- data.tar.gz: d84a2f1c53c250e01c70b80b50fef4bcb0ab73687e924715b2d42b27bde2aa18c7d92f8434b5d5d7810fdacf9d5538d04c14f6d15137ab8aee64a29c8f43acd3
6
+ metadata.gz: 61338bfdb8ee585fa20a979e3587e3d8ee33e488ef307ead2049fbe1c3aaac4013ac6d40b0f039f7926dab5650c021369b8d61097938e9beefc355995d33c0d2
7
+ data.tar.gz: cf616fa2d32ffb36f8f67e1b31442488262df2577a7fc57b5ce0ab0107cebdb91deb86aca049e3ce876716779d937675ebdd7ee95d8e9dc21c8a11b01a6a0809
data/atome.gemspec CHANGED
@@ -78,6 +78,10 @@ Gem::Specification.new do |spec|
78
78
  # the gem below are need to make the atome server works on Windows
79
79
  spec.add_runtime_dependency 'tzinfo-data', '~> 1.2023.4'
80
80
  spec.add_runtime_dependency 'win32-security', '~> 0.5.0'
81
+ spec.add_runtime_dependency 'wdm', '>= 0.1.0' if Gem.win_platform?
82
+
83
+ # patch because guard have bad dependency
84
+ # spec.add_runtime_dependency 'pry', '>= 0.14.2'
81
85
 
82
86
  # Uncomment to register a new dependency of your gem
83
87
  # spec.add_dependency "example-gem", "~> 1.0"
data/lib/atome/atome.rb CHANGED
@@ -4,6 +4,9 @@
4
4
  class Atome
5
5
  include Essentials
6
6
 
7
+ def aid(_v=nil)
8
+ @aid
9
+ end
7
10
  def initialize(new_atome = {}, &atomes_proc)
8
11
  # TODO: atome format should always be as followed : {value: 0.44, unit: :px, opt1: 554}
9
12
  # when using optimised version of atome you must type eg : a.set({left: {value: 33, unit: '%', reference: :center}})
@@ -20,7 +23,10 @@ class Atome
20
23
  @collect = {}
21
24
  @int8= {}
22
25
  @css = {}
23
- @id = new_atome[:id] || identity_generator(:element)
26
+ @aid = identity_generator(:a)
27
+ Universe.add_to_atomes( @aid, self)
28
+ @id = new_atome[:id] || @aid
29
+ Universe.id_to_aid(@id,@aid)
24
30
  @type = new_atome[:type] || :element
25
31
  @attached = []
26
32
  @category = []
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
+ module ObjectExtension
2
3
 
3
- # atome extensions
4
- class Object
5
4
  def new(params, &bloc)
6
5
  # Genesis = Genesis.Genesis
7
6
  if params.key?(:atome)
@@ -42,15 +41,69 @@ class Object
42
41
  end
43
42
  render_method = "#{renderer_found}_#{params[:specific]}#{params[:method]}"
44
43
  Genesis.build_render(render_method, &bloc)
45
- # elsif params.key?(:callback)
46
- # particle_targetted = params[:callback]
47
- # Atome.define_method("#{particle_targetted}_callback", option) do
48
- # alert option
49
- # bloc.call(option)
50
- # end
44
+ # elsif params.key?(:callback)
45
+ # particle_targetted = params[:callback]
46
+ # Atome.define_method("#{particle_targetted}_callback", option) do
47
+ # alert option
48
+ # bloc.call(option)
49
+ # end
51
50
  end
51
+ super if defined?(super)
52
52
  end
53
53
 
54
+ end
55
+ # atome extensions
56
+ class Object
57
+ include ObjectExtension
58
+ # def new(params, &bloc)
59
+ # # Genesis = Genesis.Genesis
60
+ # if params.key?(:atome)
61
+ # if Universe.atome_list.include?(params[:atome])
62
+ # puts "atome #{params[:atome]} already exist you can't create it"
63
+ # else
64
+ # Universe.add_atomes_specificities params[:atome]
65
+ # Genesis.build_atome(params[:atome], &bloc)
66
+ # end
67
+ # elsif params.key?(:particle)
68
+ # if Universe.particle_list[params[:particle]]
69
+ # puts "particle #{params[:particle]} already exist you can't create it"
70
+ # else
71
+ # Atome.instance_variable_set("@main_#{params[:particle]}", bloc)
72
+ # # render indicate if the particle needs to be rendered
73
+ # # store tell the system if it need to store the particle value
74
+ # # type help the system what type of type the particle will receive and store
75
+ # Genesis.build_particle(params[:particle], { render: params[:render], return: params[:return],
76
+ # store: params[:store], type: params[:type],
77
+ # category: params[:category] }, &bloc)
78
+ # end
79
+ #
80
+ # elsif params.key?(:sanitizer)
81
+ # Genesis.build_sanitizer(params[:sanitizer], &bloc)
82
+ # elsif params.key?(:pre)
83
+ # Atome.instance_variable_set("@pre_#{params[:pre]}", bloc)
84
+ # elsif params.key?(:post)
85
+ # Atome.instance_variable_set("@post_#{params[:post]}", bloc)
86
+ # elsif params.key?(:after)
87
+ # Atome.instance_variable_set("@after_#{params[:after]}", bloc)
88
+ # elsif params.key?(:read)
89
+ # Atome.instance_variable_set("@read_#{params[:read]}", bloc)
90
+ # elsif params[:renderer]
91
+ # renderer_found = params[:renderer]
92
+ # if params[:specific]
93
+ # Universe.set_atomes_specificities(params)
94
+ # params[:specific] = "#{params[:specific]}_"
95
+ # end
96
+ # render_method = "#{renderer_found}_#{params[:specific]}#{params[:method]}"
97
+ # Genesis.build_render(render_method, &bloc)
98
+ # # elsif params.key?(:callback)
99
+ # # particle_targetted = params[:callback]
100
+ # # Atome.define_method("#{particle_targetted}_callback", option) do
101
+ # # alert option
102
+ # # bloc.call(option)
103
+ # # end
104
+ # end
105
+ # end
106
+
54
107
  def reorder_particles(hash_to_reorder)
55
108
  # we reorder the hash
56
109
  ordered_keys = %i[renderers id alien type attach int8 unit]
@@ -67,15 +120,32 @@ class Object
67
120
  end
68
121
 
69
122
  def identity_generator(type_needed = :element)
70
- "#{type_needed}_#{Universe.counter}"
123
+ "#{type_needed}_#{Universe.counter}".to_sym
124
+ end
125
+
126
+ def hook(a_id)
127
+ a_id=a_id.to_sym
128
+ Universe.atomes[a_id]
71
129
  end
72
130
 
73
131
  def grab(id_to_get)
132
+ id_to_get=id_to_get.to_sym
74
133
  return if id_to_get == false
75
-
76
- id_to_get = '' if id_to_get.instance_of? Array
77
- id_to_get = id_to_get.to_sym
78
- Universe.atomes[id_to_get]
134
+ aid_to_get= Universe.atomes_ids[id_to_get]
135
+ # puts id_to_get.class
136
+ # alert Universe.atomes
137
+ aid_to_get = '' if aid_to_get.instance_of? Array
138
+ # id_to_get = id_to_get.to_sym
139
+
140
+ # if id_to_get.nil? do
141
+ # if aid_to_get.nil?
142
+ # alert id_to_get
143
+ # else
144
+
145
+ # end
146
+ # end
147
+ # alert Universe.atomes[id_to_get]
148
+ Universe.atomes[aid_to_get]
79
149
  end
80
150
 
81
151
  def box(params = {}, &proc)
@@ -322,3 +322,14 @@ new({ particle: :overflow, category: :event, type: :boolean }) do |params, bloc|
322
322
  params
323
323
 
324
324
  end
325
+
326
+
327
+
328
+ new({particle: :animate , category: :event, type: :hash}) do |params|
329
+ if params.instance_of? Hash
330
+ params={ from: 0, to: 300, duration: 1000 }.merge(params)
331
+ else
332
+ params={ from: 0, to: 300, duration: 1000 }
333
+ end
334
+ html.play_animation(params)
335
+ end
@@ -7,11 +7,12 @@ def detach_child(child)
7
7
 
8
8
  end
9
9
 
10
- def detach_from_parent(parent_found, child_found)
11
- child_found.attach(false)
12
- end
10
+ # def detach_from_parent(parent_found, child_found)
11
+ # child_found.attach(parent_found.id)
12
+ # end
13
13
 
14
14
  def attachment_common(child_id, parents_id, direction, &user_proc)
15
+
15
16
  parent_found = grab(parents_id)
16
17
  if direction == :attach
17
18
  if parent_found
@@ -21,11 +22,11 @@ def attachment_common(child_id, parents_id, direction, &user_proc)
21
22
  render(:attach, parents_id, &user_proc)
22
23
  else
23
24
  # we remove the current id from parent
24
- grab(attach).attached.delete(@id)
25
+ # grab(attach).attached.delete(@id)
25
26
  end
26
27
  else
27
28
  child_found = grab(child_id)
28
- detach_from_parent(parent_found, child_found)
29
+ child_found.attach(parents_id)
29
30
  child_found.render(:attach, parents_id, &user_proc)
30
31
  end
31
32
  end
@@ -5,11 +5,20 @@ new({ particle: :type, category: :identity, type: :string })
5
5
  new({ particle: :id, category: :identity, type: :int })
6
6
  new({ sanitizer: :id }) do |params|
7
7
  # first we sanitize the the id below
8
+
8
9
  params = params.to_sym
9
- if @id.to_sym != params
10
- Universe.update_atome_id(params, self, @id)
10
+ # we check id is already assign
11
+ if Universe.atomes[params]
12
+ # we reassign the old id
13
+ puts "the id : #{params} is already used"
14
+ params = @id
11
15
  else
12
- Universe.add_to_atomes(params, self)
16
+ if @id.to_sym != params
17
+ Universe.update_atome_id(params, self, @id)
18
+ else
19
+ Universe.add_to_atomes(params, self)
20
+ end
21
+
13
22
  end
14
23
  params
15
24
  end
@@ -31,12 +40,12 @@ new({ particle: :active, category: :identity, type: :boolean })
31
40
  # end
32
41
  # end
33
42
  new({ particle: :markup, category: :identity, type: :string })
34
- new({particle: :bundle, category: :identity, type: :string})
43
+ new({ particle: :bundle, category: :identity, type: :string })
35
44
  new({ particle: :data, category: :identity, type: :string })
36
45
 
37
- new({particle: :category, category: :identity, type: :string, store: false}) do |category_names|
38
- category_names=[category_names] unless category_names.instance_of? Array
39
- category_names.each do |category_name|
46
+ new({ particle: :category, category: :identity, type: :string, store: false }) do |category_names|
47
+ category_names = [category_names] unless category_names.instance_of? Array
48
+ category_names.each do |category_name|
40
49
  @category << category_name
41
50
  end
42
51
  end
@@ -61,6 +70,6 @@ new(particle: :selected, category: :identity, type: :boolean) do |params|
61
70
  end
62
71
 
63
72
  new({ particle: :format, category: :identity, type: :string })
64
- new({ particle: :alien, category: :identity, type: :string }) #special particel that old alien object
73
+ new({ particle: :alien, category: :identity, type: :string }) # special particel that old alien object
65
74
 
66
75
  new({ particle: :email, category: :identity, type: :string })
@@ -154,22 +154,27 @@ def init_database # this method is call from JS (atome/communication)
154
154
 
155
155
  particles = Universe.particle_list
156
156
  categories = Universe.categories
157
+ # here we populate the DB
157
158
  categories.each do |category|
158
159
  A.message({ action: :crate_db_table, data: { table: category } }) do |db_state|
159
- puts db_state
160
+ # puts db_state
160
161
  end
161
162
  end
162
163
  particles_length=particles.length
163
164
  particles.each_with_index do |(particle, infos), index|
164
165
  type = infos[:type]
165
166
  table = infos[:category]
166
- @i=1
167
- A.message({ action: :create_db_column, data: { table: table, column: particle, type: type } }) do |db_state|
168
- @i+=1
169
- if @i==particles_length
170
- user_login
167
+ if type && table
168
+ @i=1
169
+ A.message({ action: :create_db_column, data: { table: table, column: particle, type: type } }) do |db_state|
170
+ @i+=1
171
+ if @i==particles_length
172
+ user_login
173
+ end
174
+ # puts db_state
171
175
  end
172
- puts db_state
176
+ else
177
+ puts "*** Warning feed type and category to #{particle}"
173
178
  end
174
179
 
175
180
  end
@@ -4,6 +4,7 @@
4
4
  class Universe
5
5
  @counter = 0
6
6
  @atomes = {}
7
+ @atomes_ids = {}
7
8
  @atome_list = []
8
9
  @particle_list = {}
9
10
  @renderer_list = %i[html browser headless server log]
@@ -19,12 +20,20 @@ class Universe
19
20
  @example = {}
20
21
 
21
22
  class << self
22
- attr_reader :atomes, :renderer_list, :atome_list, :particle_list, :classes, :counter, :atomes_specificities
23
+ attr_reader :atomes,:atomes_ids, :renderer_list, :atome_list, :particle_list, :classes, :counter, :atomes_specificities
23
24
 
24
25
  def messages
25
26
  @messages
26
27
  end
27
28
 
29
+ def eVe(val = nil)
30
+ if val
31
+ @eve = val
32
+ else
33
+ @eve
34
+ end
35
+ end
36
+
28
37
  def store_messages(new_msg)
29
38
  @messages[new_msg[:msg_nb]] = new_msg[:proc]
30
39
  end
@@ -85,11 +94,15 @@ class Universe
85
94
  instance_variable_get('@atome_list').push(atome)
86
95
  end
87
96
 
88
- def add_to_atomes(id, atome)
89
- @atomes[id] = atome
97
+ def add_to_atomes(aid, atome)
98
+ @atomes[aid] = atome
90
99
  @counter = @counter + 1
91
100
  end
92
101
 
102
+ def id_to_aid(id, aid)
103
+ @atomes_ids[id] = aid
104
+ end
105
+
93
106
  def update_atome_id(id, atome, prev_id)
94
107
  @atomes[id] = atome
95
108
  @atomes.delete(prev_id)
@@ -14,6 +14,7 @@ class Atome
14
14
  preset_params = Essentials.default_params[atome_preset] || {}
15
15
 
16
16
  basic_params[:type] = preset_params[:type] || :element
17
+ # basic_params[:aid] = identity_generator(:a)
17
18
  basic_params[:id] = params[:id] || identity_generator(atome_preset)
18
19
  basic_params[:renderers] = @renderers || preset_params[:renderers]
19
20
  essential_params = basic_params.merge(preset_params)
@@ -40,8 +41,8 @@ class Atome
40
41
  end
41
42
 
42
43
  def preset_common(params, &bloc)
43
- # if an atome with current id exist we update the ID in the params
44
- params[:id] = "#{params[:id]}_#{Universe.atomes.length}" if grab(params[:id])
44
+ ## if an atome with current id exist we update the ID in the params
45
+ # params[:id] = "#{params[:id]}_#{Universe.atomes.length}" if grab(params[:id])
45
46
  Atome.new(params, &bloc)
46
47
  end
47
48
 
data/lib/atome/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  # return atome version
4
4
  class Atome
5
- VERSION = '0.5.6.2.4'
5
+ VERSION = '0.5.6.2.7'
6
6
  end
7
7
 
data/lib/atome.rb CHANGED
@@ -33,5 +33,5 @@ require 'renderers/html/index'
33
33
  require 'renderers/headless/index'
34
34
  require 'renderers/server/index'
35
35
  require 'atome/helpers/sanitizer'
36
- require 'eVe/eVe'
37
36
  require 'atome/genesis/sparkle'
37
+ require 'eVe/eVe'
@@ -32,5 +32,6 @@ require_relative './renderers/html/index_relative'
32
32
  require_relative './renderers/headless/index_relative'
33
33
  require_relative './renderers/server/index_relative'
34
34
  require_relative './atome/helpers/sanitizer'
35
- require_relative './eVe/eVe_relative'
36
35
  require_relative './atome/genesis/sparkle'
36
+ require_relative './eVe/eVe_relative'
37
+
data/lib/eVe/eVe.rb CHANGED
@@ -1 +1,4 @@
1
- puts "eVe ready!!"
1
+ # frozen_string_literal: true
2
+ require 'eVe/lib/version'
3
+ require 'eVe/lib/init'
4
+
@@ -1 +1,4 @@
1
- puts "eve initialised"
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './lib/version'
4
+ require_relative './lib/init'
@@ -0,0 +1,34 @@
1
+
2
+ new(application: {name: :compose })
3
+
4
+
5
+ grab(:toto).color(:cyan)
6
+
7
+ def layout
8
+ compose_back=box
9
+
10
+ compose_back.color({ alpha: 0 })
11
+ media_reader=compose_back.box({left: 99, width: 250, height: 250, top: 99})
12
+ viewer_1=compose_back.box({left: 360, width: 250, height: 250, top: 99})
13
+ viewer_2=compose_back.box({left: 690, width: 250, height: 250, top: 99})
14
+ timeline=compose_back.box({left: 99, width: 250, height: 250, top: 399})
15
+ login=compose_back.text(:log)
16
+ login.touch(true) do
17
+ compose_back.delete(true)
18
+ # grab(:view).clear(true)
19
+ form
20
+ end
21
+
22
+ end
23
+
24
+ def form
25
+ form1=box
26
+ form1.text(:login)
27
+
28
+ form1.touch(true) do
29
+ form1.delete(true)
30
+ layout
31
+ end
32
+
33
+ end
34
+ form
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ Universe.eVe(true)
4
+ puts "eVe version : #{EVe::VERSION}"
5
+
6
+ module EVe
7
+ def new(params, &bloc)
8
+ if params[:page]
9
+ site_found = grab(params[:page][:application])
10
+ site_found.clear(true)
11
+ page_id = params[:page][:name]
12
+ site_found.box({ id: page_id })
13
+ elsif params[:application]
14
+
15
+ footer_header_size=33
16
+ footer_header_color=color({red: 0, green: 0, blue: 0, id: :footer_header_color})
17
+
18
+ if params[:header]
19
+ top = footer_header_size
20
+ header=box({ left: 0, right: 0, width: :auto, top: 0, height: top, id: :header })
21
+ # header.attach(:footer_header_color)
22
+ else
23
+ top = 0
24
+ end
25
+ if params[:footer]
26
+ bottom = footer_header_size
27
+ box({ left: 0, right: 0, width: :auto, top: :auto, bottom: 0, height: bottom, id: :footer })
28
+ else
29
+ bottom = 0
30
+ end
31
+ box({ left: 0, right: 0, width: :auto, top: top, bottom: bottom, height: :auto, id: params[:application] })
32
+ elsif params[:module]
33
+
34
+ end
35
+ super if defined?(super)
36
+ end
37
+ end
38
+
39
+ class Object
40
+ include EVe
41
+ end
42
+
43
+ # tests
44
+ new({application: :compose, header: true, footer: true })
45
+
46
+ # new(page: {name: :home, application: :compose, attach: :root })
47
+
48
+ # new(module: {name: :home, application: :compose, attach: :root })
49
+
50
+
51
+
52
+
53
+
54
+
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ # def atome_common(atome_preset, params)
4
+ # basic_params = { renderers: [] }
5
+ # # TODO : remove Essentials.default_params[atome_preset] || {} as it is
6
+ # # applied twice because preset is now a particle
7
+ # preset_params = Essentials.default_params[atome_preset] || {}
8
+ #
9
+ # basic_params[:type] = preset_params[:type] || :element
10
+ # basic_params[:id] = params[:id] || identity_generator(atome_preset)
11
+ # basic_params[:renderers] = @renderers || preset_params[:renderers]
12
+ # essential_params = basic_params.merge(preset_params)
13
+ # reordered_params = essential_params.reject { |key, _| params.has_key?(key) }
14
+ # params = reordered_params.merge(params)
15
+ #
16
+ # # condition to handle color/shadow/paint atomes that shouldn't be attach to view
17
+ # # TODO : add category for atome( material/physical vs modifier : color, shadow, .. vs shape, image ..)
18
+ # # then add condition same things fo code in genesis new_atome
19
+ # if %i[color shadow paint].include?(atome_preset)
20
+ # unless params[:affect]
21
+ # params[:affect] = if @id == :view
22
+ # [:black_matter]
23
+ # else
24
+ # [@id]
25
+ # end
26
+ # end
27
+ # else
28
+ # params[:attach] = params[:attach] || @id || :view
29
+ # end
30
+ # params
31
+ # end
32
+ #
33
+ # def preset_common(params, &bloc)
34
+ # # if an atome with current id exist we update the ID in the params
35
+ # params[:id] = "#{params[:id]}_#{Universe.atomes.length}" if grab(params[:id])
36
+ # Atome.new(params, &bloc)
37
+ # end
38
+ # class EVe < Atome
39
+ class EVe < Atome
40
+ def initialize
41
+ @atomes = {}
42
+ end
43
+
44
+ def atome(atome_to_find)
45
+ @atomes[atome_to_find]
46
+ end
47
+
48
+ def input_box(params = {}, &bloc)
49
+ height_wanted = 15
50
+ width_wanted = 222
51
+ input_back = Atome.new(
52
+ { renderers: [:html], id: :input_back, type: :shape, attach: :view, apply: [:shape_color],
53
+ left: 120, top: 120,data: '', width: width_wanted, height: height_wanted + height_wanted * 20 / 100, smooth: 6 })
54
+
55
+ @atomes[:input_back] = input_back
56
+
57
+ Atome.new(
58
+ { renderers: [:html], id: :input_text_color, type: :color, tag: ({ system: true, persistent: true }),
59
+ red: 0.1, green: 0.1, blue: 0.1, alpha: 1 }
60
+ )
61
+
62
+ text_input = Atome.new(
63
+ { renderers: [:html], id: :input_text, type: :text, apply: [:input_text_color], component: { size: height_wanted },
64
+ data: :input, left: height_wanted * 20 / 100, top: 0, edit: true, attach: :input_back, height: height_wanted, position: :absolute })
65
+
66
+ text_input.touch(true) do
67
+ text_input.component({ selected: { color: 'rgba(0,0,0,0.3)', text: :orange } })
68
+ end
69
+
70
+ text_input.keyboard(:down) do |native_event|
71
+ event = Native(native_event)
72
+ if event[:keyCode].to_s == '13'
73
+ # we prevent the input
74
+ event.preventDefault()
75
+ end
76
+
77
+ end
78
+
79
+ text_input.keyboard(:up) do |native_event|
80
+ input_back.data=text_input.data
81
+ end
82
+ @atomes[:input_text] = text_input
83
+
84
+ input_back
85
+ end
86
+
87
+ end
88
+
89
+ def input(params = {}, &proc)
90
+ text_color = :white
91
+ text_size = 12
92
+ back_color = :gray
93
+ width = 2000
94
+ in_b = EVe.new()
95
+ in_b.input_box
96
+ end
97
+
98
+ i= input
99
+
100
+ b=box({top: 0, left: 0, width: 33, height: 33})
101
+ b.touch(true) do
102
+ puts "i.data : #{i.data}"
103
+ end
104
+ i.left(66)
105
+ i.color(:white)
106
+ i.text.left(55)
107
+
108
+
109
+
110
+
111
+
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ button = box({smooth: 6,left: 55,top: 160, color:{red: 0.3, green: 0.3, blue: 0.3},id: :my_box})
4
+ button.shadow({
5
+ id: :s1,
6
+ left: 3, top: 3, blur: 9,
7
+ invert: true,
8
+ red: 0, green: 0, blue: 0, alpha: 0.7
9
+ })
10
+ button.touch(true) do
11
+ button.controller(:hello)
12
+ end
13
+ slider=box({ width: 333, height: 25, top: 45, left: 55, smooth: 9, color:{red: 0.3, green: 0.3, blue: 0.3}})
14
+ slider.shadow({
15
+ id: :s2,
16
+ left: 3, top: 3, blur: 9,
17
+ invert: true,
18
+ red: 0, green: 0, blue: 0, alpha: 0.7
19
+ })
20
+ cursor= slider.circle({width: 30, height: 30, left: 2, top: 1, color:{red: 0.3, green: 0.3, blue: 0.3}})
21
+
22
+ cursor.left(0)
23
+ cursor.top(0)
24
+ cursor.shadow({
25
+ id: :s4,
26
+ left: 1, top: 1, blur: 3,
27
+ option: :natural,
28
+ red: 0, green: 0, blue: 0, alpha: 0.6
29
+ })
30
+ label=text({data: 0, top: 69, left: 69, component: { size: 12 }, color: :gray})
31
+ cursor.drag({ restrict: {max:{ left: 309, top: 0}} }) do |event|
32
+ puts cursor.left
33
+ value = cursor.left/309*100
34
+ label.data(value)
35
+ cursor.controller({ action: :setModuleParameterValue, params: { moduleId: 6456549897,parameterId: 9846546, value: value} })
36
+
37
+ end
38
+ support=box({top: 300, left: 55, width: 300, height: 40, smooth: 9, color:{red: 0.3, green: 0.3, blue: 0.3}, id: :support })
39
+ support.shadow({
40
+ id: :s3,
41
+ left: 3, top: 3, blur: 9,
42
+ invert: true,
43
+ red: 0, green: 0, blue: 0, alpha: 0.7
44
+ })
45
+ support.import(true) do |content|
46
+ puts "add code here, content: #{content}"
47
+ end
48
+
49
+ in_box=input_box