ffi-efl 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +12 -0
- data/Rakefile +1 -1
- data/lib/efl/ecore.rb +17 -6
- data/lib/efl/ecore_evas.rb +78 -24
- data/lib/efl/ecore_getopt.rb +27 -23
- data/lib/efl/ecore_input.rb +1 -1
- data/lib/efl/edje.rb +11 -11
- data/lib/efl/eet.rb +20 -14
- data/lib/efl/eina.rb +1 -1
- data/lib/efl/eina_hash.rb +17 -30
- data/lib/efl/eina_list.rb +16 -25
- data/lib/efl/elementary.rb +8 -19
- data/lib/efl/evas.rb +167 -38
- data/lib/efl/ffi.rb +28 -17
- data/lib/efl/{ffi → native}/ecore.rb +9 -5
- data/lib/efl/{ffi → native}/ecore_evas.rb +27 -20
- data/lib/efl/{ffi → native}/ecore_getopt.rb +9 -5
- data/lib/efl/{ffi → native}/ecore_input.rb +9 -5
- data/lib/efl/{ffi → native}/edje.rb +14 -10
- data/lib/efl/{ffi → native}/eet.rb +9 -5
- data/lib/efl/{ffi → native}/eina.rb +9 -5
- data/lib/efl/{ffi → native}/eina_hash.rb +9 -5
- data/lib/efl/{ffi → native}/eina_list.rb +9 -5
- data/lib/efl/{ffi → native}/eina_types.rb +9 -5
- data/lib/efl/{ffi → native}/elementary.rb +70 -66
- data/lib/efl/{ffi → native}/evas.rb +11 -7
- data/lib/efl/native.rb +16 -0
- data/lib/efl.rb +1 -1
- data/spec/ecore_evas_spec.rb +325 -6
- data/spec/ecore_getopt_spec.rb +70 -104
- data/spec/ecore_input_spec.rb +6 -6
- data/spec/ecore_spec.rb +63 -60
- data/spec/edje_spec.rb +6 -6
- data/spec/eet_spec.rb +23 -22
- data/spec/eina_hash_spec.rb +53 -58
- data/spec/eina_list_spec.rb +28 -18
- data/spec/eina_spec.rb +6 -6
- data/spec/evas_spec.rb +371 -119
- data/tasks/constants.rb +4 -0
- data/test/test_edje.rb +1 -1
- data/test/test_elm_win-native.rb +38 -0
- data/test/test_evas.rb +4 -4
- metadata +32 -20
- data/test/test_elm_win.rb +0 -35
data/spec/evas_spec.rb
CHANGED
@@ -1,76 +1,83 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
# -*- coding: UTF-8 -*-
|
3
3
|
#
|
4
|
+
require 'efl/ecore'
|
4
5
|
require 'efl/evas'
|
5
6
|
#
|
6
7
|
describe Efl::Evas do
|
8
|
+
def realize_evas
|
9
|
+
@width = 800
|
10
|
+
@height = 600
|
11
|
+
@pixels = FFI::MemoryPointer.new :int, @width*@height
|
12
|
+
@e = Evas::REvas.new
|
13
|
+
@e.output_method_set Evas::render_method_lookup("buffer")
|
14
|
+
@e.output_viewport_set 0, 0, @width, @height
|
15
|
+
@e.output_size_set @width, @height
|
16
|
+
einfo = Native::EngineInfoBufferStruct.new @e.engine_info
|
17
|
+
einfo[:info][:depth_type] = Efl::Evas::EVAS_ENGINE_BUFFER_DEPTH_ARGB32
|
18
|
+
einfo[:info][:dest_buffer] = @pixels
|
19
|
+
einfo[:info][:dest_buffer_row_bytes] = @width * FFI::type_size(:int);
|
20
|
+
einfo[:info][:use_color_key] = 0;
|
21
|
+
einfo[:info][:alpha_threshold] = 0;
|
22
|
+
einfo[:info][:func][:new_update_region] = nil #FFI::Pointer::NULL;
|
23
|
+
einfo[:info][:func][:free_update_region] = nil #FFI::Pointer::NULL;
|
24
|
+
@e.engine_info_set einfo
|
25
|
+
end
|
7
26
|
#
|
8
|
-
before(:all) {
|
27
|
+
before(:all) {
|
28
|
+
Evas = Efl::Evas
|
29
|
+
Native = Efl::Native
|
30
|
+
}
|
9
31
|
#
|
10
32
|
it "should init" do
|
11
|
-
Evas.init.should
|
12
|
-
Evas.init.should
|
13
|
-
Evas.init.should
|
33
|
+
Evas.init.should == 1
|
34
|
+
Evas.init.should == 2
|
35
|
+
Evas.init.should == 3
|
14
36
|
end
|
15
37
|
#
|
16
38
|
it "should shutdown" do
|
17
|
-
Evas.shutdown.should
|
18
|
-
Evas.shutdown.should
|
19
|
-
Evas.shutdown.should
|
39
|
+
Evas.shutdown.should == 2
|
40
|
+
Evas.shutdown.should == 1
|
41
|
+
Evas.shutdown.should == 0
|
20
42
|
end
|
21
43
|
#
|
22
44
|
it "evas alloc error enum is ok" do
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
45
|
+
Native.enum_value(:evas_alloc_error_none).should == 0
|
46
|
+
Native.enum_value(:evas_alloc_error_fatal).should == 1
|
47
|
+
Native.enum_value(:evas_alloc_error_recovered).should == 2
|
48
|
+
Native.enum_type(:evas_alloc_error)[0].should == :evas_alloc_error_none
|
49
|
+
Native.enum_type(:evas_alloc_error)[1].should == :evas_alloc_error_fatal
|
50
|
+
Native.enum_type(:evas_alloc_error)[2].should == :evas_alloc_error_recovered
|
51
|
+
Native.enum_type(:evas_alloc_error)[:evas_alloc_error_none].should == 0
|
52
|
+
Native.enum_type(:evas_alloc_error)[:evas_alloc_error_fatal].should == 1
|
53
|
+
Native.enum_type(:evas_alloc_error)[:evas_alloc_error_recovered].should == 2
|
32
54
|
end
|
33
55
|
#
|
34
56
|
it "should have no memory allocation error occured" do
|
35
57
|
Evas.init
|
36
|
-
Evas.alloc_error.should
|
58
|
+
Evas.alloc_error.should == :evas_alloc_error_none
|
37
59
|
Evas.shutdown
|
38
60
|
end
|
39
61
|
#
|
40
62
|
it "should process async events" do
|
41
63
|
cb = Proc.new do |target,type,evt|
|
42
|
-
target.read_string.should
|
43
|
-
type.should
|
44
|
-
evt.read_string.should
|
64
|
+
target.read_string.should == "target"
|
65
|
+
type.should == :evas_callback_show
|
66
|
+
evt.read_string.should == "work"
|
45
67
|
end
|
46
68
|
Evas.init
|
47
69
|
target = FFI::MemoryPointer.from_string("target")
|
48
70
|
work = FFI::MemoryPointer.from_string("work")
|
49
71
|
Evas.async_events_put target, :evas_callback_show, work, cb
|
50
|
-
Evas.async_events_process.should
|
51
|
-
Evas.async_events_process.should
|
72
|
+
Evas.async_events_process.should == 1
|
73
|
+
Evas.async_events_process.should == 0
|
52
74
|
Evas.shutdown
|
53
75
|
end
|
54
76
|
#
|
55
77
|
describe Efl::Evas::REvas do
|
56
78
|
before(:all) do
|
57
79
|
Evas.init
|
58
|
-
|
59
|
-
@height = 600
|
60
|
-
@pixels = FFI::MemoryPointer.new :int, @width*@height
|
61
|
-
@e = Evas::REvas.new
|
62
|
-
@e.output_method_set Evas::render_method_lookup("buffer")
|
63
|
-
@e.output_viewport_set 0, 0, @width, @height
|
64
|
-
@e.output_size_set @width, @height
|
65
|
-
einfo = Efl::Evas::EngineInfoBufferStruct.new @e.engine_info_get
|
66
|
-
einfo[:info][:depth_type] = Efl::Evas::EVAS_ENGINE_BUFFER_DEPTH_ARGB32
|
67
|
-
einfo[:info][:dest_buffer] = @pixels
|
68
|
-
einfo[:info][:dest_buffer_row_bytes] = @width * FFI::type_size(:int);
|
69
|
-
einfo[:info][:use_color_key] = 0;
|
70
|
-
einfo[:info][:alpha_threshold] = 0;
|
71
|
-
einfo[:info][:func][:new_update_region] = nil #FFI::Pointer::NULL;
|
72
|
-
einfo[:info][:func][:free_update_region] = nil #FFI::Pointer::NULL;
|
73
|
-
@e.engine_info_set einfo
|
80
|
+
realize_evas
|
74
81
|
end
|
75
82
|
after(:all) do
|
76
83
|
@e.free
|
@@ -79,45 +86,41 @@ describe Efl::Evas do
|
|
79
86
|
end
|
80
87
|
it "should be able to create and destroy evas" do
|
81
88
|
e1 = Evas::REvas.new
|
82
|
-
e1.address.should_not
|
83
|
-
e2 = Evas::REvas.new e1
|
84
|
-
e1.address.should
|
85
|
-
e3 = Evas::REvas.new e1.to_ptr
|
86
|
-
e1.address.should eql e3.address
|
87
|
-
e2.address.should eql e3.address
|
89
|
+
e1.address.should_not == 0
|
90
|
+
e2 = Evas::REvas.new e1.to_ptr
|
91
|
+
e1.address.should == e2.address
|
88
92
|
(e1==e2).should be_false
|
89
|
-
(e2==e3).should be_false
|
90
|
-
(e1==e3).should be_false
|
91
93
|
(e1===e2).should be_true
|
92
|
-
|
93
|
-
(e1===e3).should be_true
|
94
|
+
e1.free
|
94
95
|
e1.free
|
95
96
|
e1.to_ptr.should be_nil
|
96
|
-
|
97
|
-
|
97
|
+
e2.free
|
98
|
+
e2.free
|
99
|
+
e4 = Evas::REvas.new Native.evas_new
|
100
|
+
e4.address.should_not == 0
|
98
101
|
e5 = e4.dup
|
99
|
-
e4.address.should
|
102
|
+
e4.address.should == e5.address
|
100
103
|
e6 = e4.clone
|
101
|
-
e4.address.should
|
104
|
+
e4.address.should == e6.address
|
102
105
|
e4.free
|
103
106
|
e4.to_ptr.should be_nil
|
104
107
|
end
|
105
108
|
#
|
106
109
|
it "focus should work" do
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
110
|
+
Native.evas_focus_in @e.to_ptr
|
111
|
+
Native.evas_focus_state_get(@e.to_ptr).should be_true
|
112
|
+
Native.evas_focus_out @e.to_ptr
|
113
|
+
Native.evas_focus_state_get(@e.to_ptr).should be_false
|
114
|
+
Evas.focus_in @e.to_ptr
|
115
|
+
Evas.focus_state_get(@e.to_ptr).should be_true
|
116
|
+
Evas.focus_out @e.to_ptr
|
117
|
+
Evas.focus_state_get(@e.to_ptr).should be_false
|
115
118
|
@e.focus_in { |r| r.should be_nil }
|
116
|
-
@e.
|
119
|
+
@e.focus_state.should be_true
|
117
120
|
@e.focus_state_get { |r| r.should be_true }
|
118
121
|
@e.focus_out.should be_nil
|
119
122
|
@e.focus_state_get.should be_false
|
120
|
-
@e.
|
123
|
+
@e.focus_state { |r| r.should be_false }
|
121
124
|
end
|
122
125
|
#
|
123
126
|
it "nochange should work" do
|
@@ -128,7 +131,8 @@ describe Efl::Evas do
|
|
128
131
|
it "attach data should work" do
|
129
132
|
data = FFI::MemoryPointer.from_string "my data"
|
130
133
|
@e.data_attach_set data
|
131
|
-
@e.
|
134
|
+
@e.data_attach.read_string.should == "my data"
|
135
|
+
@e.data_attach_get.read_string.should == "my data"
|
132
136
|
end
|
133
137
|
#
|
134
138
|
it "should not crash" do
|
@@ -143,9 +147,10 @@ describe Efl::Evas do
|
|
143
147
|
@e.render_dump
|
144
148
|
end
|
145
149
|
it "output method should work" do
|
146
|
-
@e.
|
150
|
+
@e.output_method.should == Evas::render_method_lookup("buffer")
|
151
|
+
@e.output_method_get.should == Evas::render_method_lookup("buffer")
|
147
152
|
# output_method_set tested in before(:all)
|
148
|
-
l = Efl::Evas
|
153
|
+
l = Efl::Evas.render_method_list
|
149
154
|
Evas::render_method_list_free l
|
150
155
|
end
|
151
156
|
#
|
@@ -156,11 +161,19 @@ describe Efl::Evas do
|
|
156
161
|
#
|
157
162
|
it "output size should work" do
|
158
163
|
@e.output_size_set 69, 666
|
159
|
-
@e.
|
164
|
+
@e.size.should == [69,666]
|
165
|
+
@e.output_size.should == [69,666]
|
166
|
+
@e.output_size_get.should == [69,666]
|
167
|
+
@e.output_size = 666, 69
|
168
|
+
@e.size == [666,69]
|
160
169
|
end
|
161
170
|
it "output viewport should work" do
|
162
171
|
@e.output_viewport_set 0, 0, 666, 69
|
163
|
-
@e.
|
172
|
+
@e.viewport.should == [0,0,666,69]
|
173
|
+
@e.output_viewport.should == [0,0,666,69]
|
174
|
+
@e.output_viewport_get.should == [0,0,666,69]
|
175
|
+
@e.output_viewport = 0, 0, 69, 666
|
176
|
+
@e.viewport.should == [0,0,69,666]
|
164
177
|
end
|
165
178
|
#
|
166
179
|
it "coordinates evas<=>world should work" do
|
@@ -176,37 +189,41 @@ describe Efl::Evas do
|
|
176
189
|
end
|
177
190
|
#
|
178
191
|
it "freeze and thaw should work" do
|
179
|
-
@e.
|
192
|
+
@e.event_freeze?.should == 0
|
180
193
|
@e.event_freeze
|
181
|
-
@e.
|
194
|
+
@e.event_freeze?.should == 1
|
182
195
|
@e.event_thaw
|
183
|
-
@e.event_freeze_get.should
|
196
|
+
@e.event_freeze_get.should == 0
|
184
197
|
end
|
185
198
|
#
|
186
199
|
it "up/down mouse event should work" do
|
187
200
|
@e.event_feed_mouse_down 2, :evas_button_double_click, Time.now.to_i, FFI::Pointer::NULL
|
188
|
-
@e.
|
201
|
+
@e.pointer_button_down_mask.should == 2
|
189
202
|
@e.event_feed_mouse_up 2, :evas_button_double_click, Time.now.to_i, FFI::Pointer::NULL
|
190
|
-
@e.pointer_button_down_mask_get.should
|
203
|
+
@e.pointer_button_down_mask_get.should == 0
|
191
204
|
end
|
192
205
|
#
|
193
206
|
it "move mouse event should work" do
|
194
|
-
@e.
|
195
|
-
@e.
|
207
|
+
@e.pointer_output.should == [0,0]
|
208
|
+
@e.pointer_output_xy_get.should == [0,0]
|
209
|
+
@e.pointer_canvas.should == [0,0]
|
210
|
+
@e.pointer_canvas_xy_get.should == [0,0]
|
196
211
|
@e.event_feed_mouse_move 6, 6, Time.now.to_i, FFI::Pointer::NULL
|
197
|
-
@e.
|
198
|
-
@e.
|
212
|
+
@e.pointer_output.should == [6,6]
|
213
|
+
@e.pointer_output_xy_get.should == [6,6]
|
214
|
+
@e.pointer_canvas.should == [6,6]
|
215
|
+
@e.pointer_canvas_xy_get.should == [6,6]
|
199
216
|
end
|
200
217
|
#
|
201
218
|
it "in/out mouse event should work" do
|
202
219
|
@e.pointer_inside_get.should be_false
|
203
220
|
@e.event_feed_mouse_in Time.now.to_i, FFI::Pointer::NULL
|
204
|
-
@e.
|
221
|
+
@e.pointer_inside.should be_true
|
205
222
|
@e.event_feed_mouse_out Time.now.to_i, FFI::Pointer::NULL
|
206
|
-
@e.
|
223
|
+
@e.pointer_inside.should be_false
|
207
224
|
end
|
208
225
|
#
|
209
|
-
# TODO
|
226
|
+
# TODO evas_event_feed_*
|
210
227
|
# evas_event_feed_multi_down
|
211
228
|
# evas_event_feed_multi_up
|
212
229
|
# evas_event_feed_multi_move
|
@@ -220,8 +237,8 @@ describe Efl::Evas do
|
|
220
237
|
@cb = false
|
221
238
|
kd_cb = Proc.new do |data, e, obj, event_info|
|
222
239
|
data.read_string.should eq "mouse_in"
|
223
|
-
e.address.should
|
224
|
-
obj.address.should
|
240
|
+
e.address.should == @e.address
|
241
|
+
obj.address.should == @bg.address
|
225
242
|
@db=true
|
226
243
|
true
|
227
244
|
end
|
@@ -232,7 +249,7 @@ describe Efl::Evas do
|
|
232
249
|
@bg.show
|
233
250
|
@bg.event_callback_add :evas_callback_mouse_in, kd_cb, kd_d
|
234
251
|
@e.event_feed_mouse_in Time.now.to_i, FFI::Pointer::NULL
|
235
|
-
@bg.event_callback_del(:evas_callback_mouse_in, kd_cb).address.should
|
252
|
+
@bg.event_callback_del(:evas_callback_mouse_in, kd_cb).address.should == kd_d.address
|
236
253
|
@db.should be_true
|
237
254
|
end
|
238
255
|
#
|
@@ -240,16 +257,19 @@ describe Efl::Evas do
|
|
240
257
|
@e.image_cache_flush
|
241
258
|
@e.image_cache_reload
|
242
259
|
@e.image_cache_set 666
|
243
|
-
@e.
|
260
|
+
@e.image_cache.should == 666
|
261
|
+
@e.image_cache_get.should == 666
|
244
262
|
end
|
245
263
|
#
|
246
264
|
it "font functions should work" do
|
247
265
|
@e.font_hinting_set :evas_font_hinting_bytecode
|
248
|
-
@e.
|
266
|
+
@e.font_hinting.should == :evas_font_hinting_bytecode
|
267
|
+
@e.font_hinting_get.should == :evas_font_hinting_bytecode
|
249
268
|
@e.font_hinting_can_hint(:evas_font_hinting_none).should be_true
|
250
269
|
@e.font_cache_flush
|
251
270
|
@e.font_cache_set 666
|
252
|
-
@e.
|
271
|
+
@e.font_cache.should == 666
|
272
|
+
@e.font_cache_get.should == 666
|
253
273
|
l = @e.font_available_list
|
254
274
|
@e.font_available_list_free l
|
255
275
|
@e.font_path_clear
|
@@ -258,33 +278,44 @@ describe Efl::Evas do
|
|
258
278
|
@e.font_path_prepend a[0]
|
259
279
|
require 'efl/eina_list'
|
260
280
|
Efl::EinaList::REinaList.new(@e.font_path_list).each_with_index do |p,i|
|
261
|
-
p.read_string.should
|
281
|
+
p.read_string.should == a[i]
|
262
282
|
end
|
263
283
|
end
|
284
|
+
#
|
285
|
+
it "focus should work" do
|
286
|
+
@e.focus.should == FFI::Pointer::NULL
|
287
|
+
@e.focus_get.should == FFI::Pointer::NULL
|
288
|
+
@o = @e.object_add(:rectangle) { |o|
|
289
|
+
o.color = 200,200,200,200
|
290
|
+
o.move 0, 0
|
291
|
+
o.resize 100, 100
|
292
|
+
o.show
|
293
|
+
}
|
294
|
+
@o.focus = true
|
295
|
+
@e.focus.should == @o.to_ptr
|
296
|
+
@e.focus_get.should == @o.to_ptr
|
297
|
+
end
|
298
|
+
#
|
299
|
+
it "object_name_find should work" do
|
300
|
+
@e.object_name_find("name").should == FFI::Pointer::NULL
|
301
|
+
@o = @e.object_add(:rectangle)
|
302
|
+
@o.name="name"
|
303
|
+
@e.object_name_find("name").should == @o.to_ptr
|
304
|
+
end
|
305
|
+
# TODO evas_object_top_at_xy_get, evas_object_top_at_pointer_get, evas_object_top_in_rectangle_get
|
306
|
+
# TODO evas_objects_at_xy_get, evas_objects_in_rectangle_get, evas_object_bottom_get, evas_object_top_get
|
264
307
|
end
|
265
308
|
describe Efl::Evas::REvasObject do
|
266
309
|
#
|
267
310
|
before(:all) do
|
268
311
|
Evas.init
|
269
|
-
|
270
|
-
@
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
einfo[:info][:dest_buffer] = @pixels
|
277
|
-
einfo[:info][:dest_buffer_row_bytes] = 100 * FFI::type_size(:int);
|
278
|
-
einfo[:info][:use_color_key] = 0;
|
279
|
-
einfo[:info][:alpha_threshold] = 0;
|
280
|
-
einfo[:info][:func][:new_update_region] = nil #FFI::Pointer::NULL;
|
281
|
-
einfo[:info][:func][:free_update_region] = nil #FFI::Pointer::NULL;
|
282
|
-
@e.engine_info_set einfo
|
283
|
-
@o = @e.object_add :rectangle
|
284
|
-
@o.color = 200,200,200,200
|
285
|
-
@o.move 0, 0
|
286
|
-
@o.resize 100, 100
|
287
|
-
@o.show
|
312
|
+
realize_evas
|
313
|
+
@o = @e.object_add(:rectangle) { |o|
|
314
|
+
o.color = 200,200,200,200
|
315
|
+
o.move 0, 0
|
316
|
+
o.resize 100, 100
|
317
|
+
o.show
|
318
|
+
}
|
288
319
|
end
|
289
320
|
after(:all) do
|
290
321
|
@e.free
|
@@ -300,16 +331,16 @@ describe Efl::Evas do
|
|
300
331
|
clipper.resize 50, 50
|
301
332
|
@o.clip = clipper.to_ptr
|
302
333
|
clipper.show
|
303
|
-
@o.
|
334
|
+
@o.clip.address.should == clipper.address
|
304
335
|
require 'efl/eina_list'
|
305
|
-
Efl::EinaList::REinaList.new(clipper.clipees_get).to_ary[0].address.should
|
336
|
+
Efl::EinaList::REinaList.new(clipper.clipees_get).to_ary[0].address.should == @o.address
|
306
337
|
@o.clip_unset
|
307
|
-
@o.clip_get.address.should
|
338
|
+
@o.clip_get.address.should == 0
|
308
339
|
|
309
340
|
end
|
310
341
|
#
|
311
342
|
it "focus functions should work" do
|
312
|
-
@o.
|
343
|
+
@o.focus.should be_false
|
313
344
|
@o.focus_set true
|
314
345
|
@o.focus_get.should be_true
|
315
346
|
@o.focus = false
|
@@ -317,35 +348,256 @@ describe Efl::Evas do
|
|
317
348
|
end
|
318
349
|
#
|
319
350
|
it "layer functions should work" do
|
320
|
-
@o.
|
351
|
+
@o.layer.should == 0
|
321
352
|
@o.layer_set 2
|
322
|
-
@o.layer_get.should
|
353
|
+
@o.layer_get.should == 2
|
323
354
|
@o.layer = 0
|
324
|
-
@o.layer_get.should
|
355
|
+
@o.layer_get.should == 0
|
325
356
|
end
|
326
357
|
#
|
327
358
|
it "name functions should work" do
|
328
359
|
@o.name_set "My name"
|
329
|
-
@o.
|
360
|
+
@o.evas_name.should == "My name"
|
361
|
+
@o.name_get.should == "My name"
|
330
362
|
end
|
331
363
|
#
|
332
364
|
it "geometry functions should work" do
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
# @o.geometry_get.should eql [10,10,50,50]
|
365
|
+
@o.geometry.should == [0,0,100,100]
|
366
|
+
@o.resize 50,50
|
367
|
+
@o.geometry.should == [0,0,50,50]
|
368
|
+
@o.move 10, 10
|
369
|
+
@o.geometry_get.should == [10,10,50,50]
|
339
370
|
end
|
340
371
|
#
|
341
372
|
it "show hide visible should work" do
|
342
373
|
@o.show
|
343
374
|
@o.visible?.should be_true
|
344
375
|
@o.hide
|
376
|
+
@o.visible.should be_false
|
345
377
|
@o.visible_get.should be_false
|
346
378
|
@o.show
|
347
379
|
@o.visible?.should be_true
|
348
380
|
end
|
381
|
+
#
|
382
|
+
it "color get/set should work" do
|
383
|
+
@o.color.should == [200,200,200,200]
|
384
|
+
@o.color_get.should == [200,200,200,200]
|
385
|
+
@o.color_set 0,50,100,200
|
386
|
+
@o.color.should == [0,50,100,200]
|
387
|
+
@o.color = 200,200,200,200
|
388
|
+
@o.color.should == [200,200,200,200]
|
389
|
+
end
|
390
|
+
#
|
391
|
+
it "evas_get should worl" do
|
392
|
+
@o.evas.should === @e
|
393
|
+
@o.evas_get.should === @e
|
394
|
+
end
|
395
|
+
#
|
396
|
+
it "type_get should work" do
|
397
|
+
@o.evas_type.should == 'rectangle'
|
398
|
+
@o.type_get.should == 'rectangle'
|
399
|
+
end
|
400
|
+
# TODO raise, lower
|
401
|
+
it "raise, lower, stck_below, stack_above should work" do
|
402
|
+
os = []
|
403
|
+
0.upto(3) do
|
404
|
+
os << @e.object_add(:rectangle)
|
405
|
+
end
|
406
|
+
os[2].above.should === os[3]
|
407
|
+
os[2].below.should === os[1]
|
408
|
+
os[2].above.should === os[3]
|
409
|
+
os[2].below.should === os[1]
|
410
|
+
os[2].stack_below os[1]
|
411
|
+
os[2].above_get.should === os[1]
|
412
|
+
os[2].below_get.should === os[0]
|
413
|
+
os[2].stack_above os[1]
|
414
|
+
os[2].above.should === os[3]
|
415
|
+
os[2].below.should === os[1]
|
416
|
+
os.each do |o| o.free; end
|
417
|
+
end
|
418
|
+
#
|
419
|
+
it "event_callback should work" do
|
420
|
+
@o.move 0, 0 # FIXME why do I need this ?!?
|
421
|
+
count = 0
|
422
|
+
cb = Proc.new do |data,evas,evas_object,event_info|
|
423
|
+
count +=1
|
424
|
+
end
|
425
|
+
cb_data = FFI::MemoryPointer.from_string "my cb data"
|
426
|
+
@o.event_callback_add :evas_callback_mouse_in, cb, @o
|
427
|
+
Efl::Evas.event_feed_mouse_in @o.evas, Time.now.to_i, cb_data
|
428
|
+
sleep 0.1
|
429
|
+
count.should==1
|
430
|
+
end
|
431
|
+
#
|
432
|
+
it "pass events should work" do
|
433
|
+
@o.pass_events.should be_false
|
434
|
+
@o.pass_events_set true
|
435
|
+
@o.pass_events.should be_true
|
436
|
+
@o.pass_events=false
|
437
|
+
@o.pass_events.should be_false
|
438
|
+
@o.pass_events_set true
|
439
|
+
@o.pass_events.should be_true
|
440
|
+
@o.pass_events=false
|
441
|
+
@o.pass_events_get.should be_false
|
442
|
+
end
|
443
|
+
#
|
444
|
+
it "repeat events should work" do
|
445
|
+
@o.repeat_events.should be_false
|
446
|
+
@o.repeat_events_set true
|
447
|
+
@o.repeat_events.should be_true
|
448
|
+
@o.repeat_events=false
|
449
|
+
@o.repeat_events.should be_false
|
450
|
+
@o.repeat_events_set true
|
451
|
+
@o.repeat_events.should be_true
|
452
|
+
@o.repeat_events=false
|
453
|
+
@o.repeat_events_get.should be_false
|
454
|
+
end
|
455
|
+
#
|
456
|
+
it "propagate event should work" do
|
457
|
+
@o.propagate_events.should be_true
|
458
|
+
@o.propagate_events=false
|
459
|
+
@o.propagate_events.should be_false
|
460
|
+
@o.propagate_events_set true
|
461
|
+
@o.propagate_events.should be_true
|
462
|
+
@o.propagate_events=false
|
463
|
+
@o.propagate_events.should be_false
|
464
|
+
@o.propagate_events_set true
|
465
|
+
@o.propagate_events_get.should be_true
|
466
|
+
end
|
467
|
+
#
|
468
|
+
it "map enable should work" do
|
469
|
+
@o.map_enable.should be_false
|
470
|
+
@o.map_enable_set true
|
471
|
+
@o.map_enable.should be_true
|
472
|
+
@o.map_enable=false
|
473
|
+
@o.map_enable.should be_false
|
474
|
+
@o.map_enable_set true
|
475
|
+
@o.map_enable.should be_true
|
476
|
+
@o.map_enable=false
|
477
|
+
@o.map_enable_get.should be_false
|
478
|
+
end
|
479
|
+
#
|
480
|
+
it "size_hint_ should work" do
|
481
|
+
@o.size_hint_min_set 100, 150
|
482
|
+
@o.size_hint_min.should == [100,150]
|
483
|
+
@o.size_hint_min_get.should == [100,150]
|
484
|
+
@o.size_hint_max_set 300, 350
|
485
|
+
@o.size_hint_max.should == [300,350]
|
486
|
+
@o.size_hint_max_get.should == [300,350]
|
487
|
+
@o.size_hint_request_set 400, 450
|
488
|
+
@o.size_hint_request.should == [400,450]
|
489
|
+
@o.size_hint_request_get.should == [400,450]
|
490
|
+
@o.size_hint_aspect_set :evas_aspect_control_both, 400, 450
|
491
|
+
@o.size_hint_aspect.should == [:evas_aspect_control_both,400,450]
|
492
|
+
@o.size_hint_aspect_get.should == [:evas_aspect_control_both,400,450]
|
493
|
+
@o.size_hint_align_set 0.2, 0.5
|
494
|
+
@o.size_hint_align.should == [0.2,0.5]
|
495
|
+
@o.size_hint_align_get.should == [0.2,0.5]
|
496
|
+
@o.size_hint_weight_set 0.3, 0.6
|
497
|
+
@o.size_hint_weight.should == [0.3,0.6]
|
498
|
+
@o.size_hint_weight_get.should == [0.3,0.6]
|
499
|
+
@o.size_hint_padding_set 10, 20, 30, 40
|
500
|
+
@o.size_hint_padding.should == [10,20,30,40]
|
501
|
+
@o.size_hint_padding_get.should == [10,20,30,40]
|
502
|
+
end
|
503
|
+
#
|
504
|
+
it "data get/set should work" do
|
505
|
+
@o.data_set "key", "val"
|
506
|
+
@o.data("key").should == "val"
|
507
|
+
@o.data_get("key").should == "val"
|
508
|
+
@o.data_del("key")
|
509
|
+
@o.data_get("key").should == nil
|
510
|
+
end
|
511
|
+
#
|
512
|
+
it "pointer mode get/set should work" do
|
513
|
+
@o.pointer_mode = :evas_object_pointer_mode_nograb
|
514
|
+
@o.pointer_mode.should == :evas_object_pointer_mode_nograb
|
515
|
+
@o.pointer_mode_get.should == :evas_object_pointer_mode_nograb
|
516
|
+
@o.pointer_mode = :evas_object_pointer_mode_autograb
|
517
|
+
@o.pointer_mode.should == :evas_object_pointer_mode_autograb
|
518
|
+
@o.pointer_mode_get.should == :evas_object_pointer_mode_autograb
|
519
|
+
end
|
520
|
+
#
|
521
|
+
it "anti_alias get/set should work" do
|
522
|
+
@o.anti_alias_set true
|
523
|
+
@o.anti_alias_get.should be_true
|
524
|
+
@o.anti_alias=false
|
525
|
+
@o.anti_alias.should be_false
|
526
|
+
@o.anti_alias_get.should be_false
|
527
|
+
end
|
528
|
+
#
|
529
|
+
it "sccale set/get should work" do
|
530
|
+
@o.scale_set 1.5
|
531
|
+
@o.scale_get.should == 1.5
|
532
|
+
@o.scale= 1.6
|
533
|
+
@o.scale.should == 1.6
|
534
|
+
end
|
535
|
+
#
|
536
|
+
it "render op get/set" do
|
537
|
+
@o.render_op_set :evas_render_copy
|
538
|
+
@o.render_op_get.should == :evas_render_copy
|
539
|
+
@o.render_op = :evas_render_mask
|
540
|
+
@o.render_op.should == :evas_render_mask
|
541
|
+
end
|
542
|
+
#
|
543
|
+
it "precise_is_inside get/set should work" do
|
544
|
+
@o.precise_is_inside_set true
|
545
|
+
@o.precise_is_inside?.should be_true
|
546
|
+
@o.precise_is_inside_get.should be_true
|
547
|
+
@o.precise_is_inside=false
|
548
|
+
@o.precise_is_inside?.should be_false
|
549
|
+
@o.precise_is_inside.should be_false
|
550
|
+
end
|
551
|
+
#
|
552
|
+
it "static_clip get/set should work" do
|
553
|
+
@o.static_clip_set true
|
554
|
+
@o.static_clip?.should be_true
|
555
|
+
@o.static_clip_get.should be_true
|
556
|
+
@o.static_clip=false
|
557
|
+
@o.static_clip?.should be_false
|
558
|
+
@o.static_clip.should be_false
|
559
|
+
end
|
560
|
+
#
|
561
|
+
end
|
562
|
+
#
|
563
|
+
describe Efl::Evas::REvasLine do
|
564
|
+
#
|
565
|
+
before(:all) do
|
566
|
+
Evas.init
|
567
|
+
realize_evas
|
568
|
+
@l = @e.object_add 'line'
|
569
|
+
end
|
570
|
+
after(:all) do
|
571
|
+
@e.free
|
572
|
+
Evas.shutdown
|
573
|
+
end
|
574
|
+
it "xy get/set should work" do
|
575
|
+
@l.line_xy_set 10, 20, 30, 40
|
576
|
+
@l.line_xy_get.should == [10, 20, 30, 40]
|
577
|
+
end
|
578
|
+
end
|
579
|
+
#
|
580
|
+
describe Efl::Evas::REvasPolygon do
|
581
|
+
#
|
582
|
+
before(:all) do
|
583
|
+
Evas.init
|
584
|
+
realize_evas
|
585
|
+
@p = @e.object_add 'polygon'
|
586
|
+
end
|
587
|
+
after(:all) do
|
588
|
+
@e.free
|
589
|
+
Evas.shutdown
|
590
|
+
end
|
591
|
+
it "xy point_add should work" do
|
592
|
+
@p.point_add 10, 20
|
593
|
+
@p.point_add 30, 40
|
594
|
+
@p.point_add 50, 60
|
595
|
+
@p.point_add 80, 80
|
596
|
+
end
|
597
|
+
#
|
598
|
+
it "point clear shold work" do
|
599
|
+
@p.points_clear
|
600
|
+
end
|
349
601
|
end
|
350
602
|
#
|
351
603
|
end
|