ffi-efl 0.0.5 → 0.0.6
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.
- data/Changelog +10 -0
- data/Rakefile +1 -1
- data/lib/efl/ecore.rb +4 -0
- data/lib/efl/ecore_getopt.rb +8 -4
- data/lib/efl/edje.rb +4 -0
- data/lib/efl/eet.rb +4 -0
- data/lib/efl/eina.rb +4 -0
- data/lib/efl/eina_list.rb +2 -1
- data/lib/efl/eina_log.rb +68 -0
- data/lib/efl/elementary.rb +146 -14
- data/lib/efl/evas.rb +20 -7
- data/lib/efl/ffi.rb +18 -2
- data/lib/efl/native/ecore.rb +14 -8
- data/lib/efl/native/ecore_evas.rb +13 -12
- data/lib/efl/native/ecore_getopt.rb +7 -5
- data/lib/efl/native/ecore_input.rb +12 -10
- data/lib/efl/native/edje.rb +28 -29
- data/lib/efl/native/eet.rb +12 -13
- data/lib/efl/native/eina.rb +5 -2
- data/lib/efl/native/eina_hash.rb +2 -0
- data/lib/efl/native/eina_list.rb +2 -0
- data/lib/efl/native/eina_log.rb +102 -0
- data/lib/efl/native/eina_types.rb +2 -2
- data/lib/efl/native/elementary.rb +55 -58
- data/lib/efl/native/evas.rb +34 -39
- data/lib/efl.rb +3 -2
- data/spec/ecore_evas_spec.rb +64 -111
- data/spec/ecore_getopt_spec.rb +31 -13
- data/spec/ecore_spec.rb +3 -3
- data/spec/edje_spec.rb +21 -47
- data/spec/eet_spec.rb +3 -3
- data/spec/eina_hash_spec.rb +1 -1
- data/spec/eina_list_spec.rb +1 -1
- data/spec/eina_log_spec.rb +83 -0
- data/spec/eina_spec.rb +13 -7
- data/spec/elm_spec.rb +409 -0
- data/spec/evas_spec.rb +61 -93
- data/spec/helper.rb +72 -0
- data/test/test_edje.rb +4 -3
- data/test/{test_elm_win_class.rb → test_elm_win.rb} +13 -12
- metadata +10 -5
data/spec/elm_spec.rb
ADDED
@@ -0,0 +1,409 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/elementary'
|
5
|
+
require './spec/helper'
|
6
|
+
#
|
7
|
+
describe "Efl::Elm #{Efl::Elm.version.full}" do
|
8
|
+
#
|
9
|
+
before(:all) {
|
10
|
+
Elm = Efl::Elm
|
11
|
+
Elm.init.should == 1
|
12
|
+
}
|
13
|
+
after(:all) {
|
14
|
+
Elm.shutdown.should == 0
|
15
|
+
}
|
16
|
+
#
|
17
|
+
describe Efl::Elm::ElmWin do
|
18
|
+
before(:each) {
|
19
|
+
realize_win
|
20
|
+
}
|
21
|
+
after(:each) {
|
22
|
+
@bg.free
|
23
|
+
@win.free
|
24
|
+
}
|
25
|
+
#
|
26
|
+
it "resize_object add/del" do
|
27
|
+
r = @win.evas.object_rectangle_add
|
28
|
+
@win.resize_object_add r
|
29
|
+
@win.resize_object_del r
|
30
|
+
end
|
31
|
+
#
|
32
|
+
it "title set/get" do
|
33
|
+
@win.title_set "title1"
|
34
|
+
@win.title_get.should == "title1"
|
35
|
+
@win.title= "title2"
|
36
|
+
@win.title.should == "title2"
|
37
|
+
end
|
38
|
+
#
|
39
|
+
it "autodel set/get" do
|
40
|
+
bool_check @win, 'autodel'
|
41
|
+
end
|
42
|
+
#
|
43
|
+
it "activate, lower, raise" do
|
44
|
+
@win.activate
|
45
|
+
@win.lower
|
46
|
+
@win.raise
|
47
|
+
end
|
48
|
+
#
|
49
|
+
it "borderless set/get" do
|
50
|
+
bool_check @win, 'borderless'
|
51
|
+
@win.borderless.should be_false
|
52
|
+
end
|
53
|
+
#
|
54
|
+
it "shaped set/get" do
|
55
|
+
bool_check @win, 'shaped'
|
56
|
+
end
|
57
|
+
#
|
58
|
+
it "alpha set/get" do
|
59
|
+
bool_check @win, 'alpha'
|
60
|
+
end
|
61
|
+
#
|
62
|
+
it "transparent set/get" do
|
63
|
+
bool_check @win, 'transparent'
|
64
|
+
end
|
65
|
+
#
|
66
|
+
it "override set/get" do
|
67
|
+
bool_check @win, 'override'
|
68
|
+
end
|
69
|
+
#
|
70
|
+
it "fullscreen set/get" do
|
71
|
+
bool_check @win, 'fullscreen', 4
|
72
|
+
end
|
73
|
+
# FIXME depends on issue: ecore-2
|
74
|
+
it "maximized set/get" do
|
75
|
+
bool_check @win, 'maximized', 3
|
76
|
+
end
|
77
|
+
#
|
78
|
+
it "iconified set/get" do
|
79
|
+
bool_check @win, 'iconified'
|
80
|
+
end
|
81
|
+
#
|
82
|
+
it "layet set/get" do
|
83
|
+
@win.layer_set 2
|
84
|
+
@win.layer_get.should == 2
|
85
|
+
@win.layer = 3
|
86
|
+
@win.layer.should == 3
|
87
|
+
end
|
88
|
+
#
|
89
|
+
it "rotation set/get" do
|
90
|
+
@win.rotation_set 90
|
91
|
+
@win.rotation_get.should == 90
|
92
|
+
@win.rotation = 180
|
93
|
+
@win.rotation.should == 180
|
94
|
+
@win.rotation_with_resize_set 90
|
95
|
+
@win.rotation_get.should == 90
|
96
|
+
@win.rotation_with_resize= 180
|
97
|
+
@win.rotation.should == 180
|
98
|
+
end
|
99
|
+
#
|
100
|
+
it "sticky set/get" do
|
101
|
+
bool_check @win, 'sticky', 3
|
102
|
+
end
|
103
|
+
#
|
104
|
+
it "conformant set/get" do
|
105
|
+
bool_check @win, 'conformant'
|
106
|
+
end
|
107
|
+
#
|
108
|
+
it "quickpanel set/get" do
|
109
|
+
bool_check @win, 'quickpanel'
|
110
|
+
end
|
111
|
+
#
|
112
|
+
it "quickpanel_priority_major set/get" do
|
113
|
+
@win.quickpanel_priority_major_set 6
|
114
|
+
@win.quickpanel_priority_major_get.should == 6
|
115
|
+
@win.quickpanel_priority_major= 1
|
116
|
+
@win.quickpanel_priority_major.should == 1
|
117
|
+
end
|
118
|
+
#
|
119
|
+
it "quickpanel_priority_minor set/get" do
|
120
|
+
@win.quickpanel_priority_minor_set 6
|
121
|
+
@win.quickpanel_priority_minor_get.should == 6
|
122
|
+
@win.quickpanel_priority_minor= 1
|
123
|
+
@win.quickpanel_priority_minor.should == 1
|
124
|
+
end
|
125
|
+
#
|
126
|
+
it "quickpanel_zone set/get" do
|
127
|
+
@win.quickpanel_zone_set 6
|
128
|
+
@win.quickpanel_zone_get.should == 6
|
129
|
+
@win.quickpanel_zone= 1
|
130
|
+
@win.quickpanel_zone.should == 1
|
131
|
+
end
|
132
|
+
#
|
133
|
+
it "focus_highlight_enabled" do
|
134
|
+
bool_check @win, 'focus_highlight_enabled'
|
135
|
+
end
|
136
|
+
#
|
137
|
+
it "focus_highlight_style set/get" do
|
138
|
+
char_check @win, 'focus_highlight_style'
|
139
|
+
end
|
140
|
+
#
|
141
|
+
it "keyboard_mode set/get" do
|
142
|
+
@win.keyboard_mode_set :elm_win_keyboard_off
|
143
|
+
@win.keyboard_mode_get.should == :elm_win_keyboard_off
|
144
|
+
@win.keyboard_mode= :elm_win_keyboard_on
|
145
|
+
@win.keyboard_mode.should == :elm_win_keyboard_on
|
146
|
+
@win.keyboard_mode?.should == :elm_win_keyboard_on
|
147
|
+
end
|
148
|
+
#
|
149
|
+
it "keyboard_winset/get" do
|
150
|
+
bool_check @win, 'keyboard_win'
|
151
|
+
end
|
152
|
+
#
|
153
|
+
it "screen_position_get" do
|
154
|
+
@win.screen_position_get.should == [0,0]
|
155
|
+
@win.screen_position.should == [0,0]
|
156
|
+
end
|
157
|
+
#
|
158
|
+
it "prop_focus_skip_set" do
|
159
|
+
@win.prop_focus_skip_set true
|
160
|
+
@win.prop_focus_skip= false
|
161
|
+
end
|
162
|
+
#
|
163
|
+
it "inlined_image_object_get" do
|
164
|
+
o1 = @win.inlined_image_object_get
|
165
|
+
o2 = @win.inlined_image_object
|
166
|
+
o1.should === o2
|
167
|
+
end
|
168
|
+
# TODO EAPI void elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params);;
|
169
|
+
# TODO EAPI Ecore_X_Window elm_win_xwindow_get(const Evas_Object *obj);
|
170
|
+
#
|
171
|
+
describe Efl::Elm::ElmInWin do
|
172
|
+
it "activate, content set/get/unset" do
|
173
|
+
@iwin = @win.inwin_add
|
174
|
+
o1 = @win.evas.object_rectangle_add
|
175
|
+
o2 = @win.evas.object_rectangle_add
|
176
|
+
@iwin.activate
|
177
|
+
@iwin.content_set o1
|
178
|
+
@iwin.content.should == o1.to_ptr
|
179
|
+
@iwin.content?.should == o1.to_ptr
|
180
|
+
@iwin.content_get.should === o1.to_ptr
|
181
|
+
@iwin.content= o2
|
182
|
+
@iwin.content.should === o2.to_ptr
|
183
|
+
@iwin.content?.should === o2.to_ptr
|
184
|
+
@iwin.content_get.should === o2.to_ptr
|
185
|
+
@iwin.content_unset
|
186
|
+
@iwin.content.should == FFI::Pointer::NULL
|
187
|
+
@iwin.content?.should == FFI::Pointer::NULL
|
188
|
+
@iwin.content_get.should == FFI::Pointer::NULL
|
189
|
+
o1.free
|
190
|
+
o2.free
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
#
|
195
|
+
describe Efl::Elm::ElmBg do
|
196
|
+
before(:all) {
|
197
|
+
realize_win
|
198
|
+
}
|
199
|
+
after(:all) {
|
200
|
+
@bg.free
|
201
|
+
@win.free
|
202
|
+
}
|
203
|
+
#
|
204
|
+
it "file set/get" do
|
205
|
+
@bg.file_set "file", "group1"
|
206
|
+
@bg.file_get.should == ["file","group1"]
|
207
|
+
@bg.file= "file", "group1"
|
208
|
+
@bg.file.should == ["file","group1"]
|
209
|
+
end
|
210
|
+
#
|
211
|
+
it "option set/get" do
|
212
|
+
@bg.option_set :elm_bg_option_scale
|
213
|
+
@bg.option_get.should == :elm_bg_option_scale
|
214
|
+
@bg.option=:elm_bg_option_center
|
215
|
+
@bg.option.should == :elm_bg_option_center
|
216
|
+
end
|
217
|
+
#
|
218
|
+
it "color set/get" do
|
219
|
+
@bg.color_set 12,24,36
|
220
|
+
@bg.color_get.should == [12,24,36]
|
221
|
+
@bg.color= 2,4,8
|
222
|
+
@bg.color.should == [2,4,8]
|
223
|
+
@bg.class.superclass.instance_method(:color).bind(@bg).call.should == [200,255,100,150]
|
224
|
+
end
|
225
|
+
#
|
226
|
+
it "overlay get/set unset" do
|
227
|
+
r = @win.evas.object_rectangle_add
|
228
|
+
@bg.overlay_get.should==FFI::Pointer::NULL
|
229
|
+
@bg.overlay_set r
|
230
|
+
@bg.overlay_get.should == r.to_ptr
|
231
|
+
@bg.overlay_unset.should == r.to_ptr
|
232
|
+
@bg.overlay_get.should == FFI::Pointer::NULL
|
233
|
+
r.free
|
234
|
+
end
|
235
|
+
end
|
236
|
+
#
|
237
|
+
describe Efl::Elm::ElmLayout do
|
238
|
+
before(:all) {
|
239
|
+
realize_win
|
240
|
+
}
|
241
|
+
after(:all) {
|
242
|
+
@bg.free
|
243
|
+
@win.free
|
244
|
+
}
|
245
|
+
# EAPI Evas_Object *elm_layout_add(Evas_Object *parent);
|
246
|
+
# EAPI Eina_Bool elm_layout_file_set(Evas_Object *obj, const char *file, const char *group);
|
247
|
+
# EAPI Eina_Bool elm_layout_theme_set(Evas_Object *obj, const char *clas, const char *group, const char *style);
|
248
|
+
# EAPI void elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content);
|
249
|
+
# EAPI Evas_Object *elm_layout_content_get(const Evas_Object *obj, const char *swallow);
|
250
|
+
# EAPI Evas_Object *elm_layout_content_unset(Evas_Object *obj, const char *swallow);
|
251
|
+
# EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text);
|
252
|
+
# EAPI const char *elm_layout_text_get(const Evas_Object *obj, const char *part);
|
253
|
+
# EAPI void elm_layout_box_append(Evas_Object *obj, const char *part, Evas_Object *child);
|
254
|
+
# EAPI void elm_layout_box_prepend(Evas_Object *obj, const char *part, Evas_Object *child);
|
255
|
+
# EAPI void elm_layout_box_insert_before(Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference);
|
256
|
+
# EAPI void elm_layout_box_insert_at(Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos);
|
257
|
+
# EAPI Evas_Object *elm_layout_box_remove(Evas_Object *obj, const char *part, Evas_Object *child);
|
258
|
+
# EAPI void elm_layout_box_remove_all(Evas_Object *obj, const char *part, Eina_Bool clear);
|
259
|
+
# EAPI void elm_layout_table_pack(Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
|
260
|
+
# EAPI Evas_Object *elm_layout_table_unpack(Evas_Object *obj, const char *part, Evas_Object *child_obj);
|
261
|
+
# EAPI void elm_layout_table_clear(Evas_Object *obj, const char *part, Eina_Bool clear);
|
262
|
+
# EAPI Evas_Object *elm_layout_edje_get(const Evas_Object *obj);
|
263
|
+
# EAPI const char *elm_layout_data_get(const Evas_Object *obj, const char *key);
|
264
|
+
# EAPI void elm_layout_sizing_eval(Evas_Object *obj);
|
265
|
+
# EAPI Eina_Bool elm_layout_part_cursor_set(Evas_Object *obj, const char *part_name, const char *cursor);
|
266
|
+
# EAPI const char *elm_layout_part_cursor_get(const Evas_Object *obj, const char *part_name);
|
267
|
+
# EAPI void elm_layout_part_cursor_unset(Evas_Object *obj, const char *part_name);
|
268
|
+
# EAPI Eina_Bool elm_layout_part_cursor_style_set(Evas_Object *obj, const char *part_name, const char *style);
|
269
|
+
# EAPI const char *elm_layout_part_cursor_style_get(const Evas_Object *obj, const char *part_name);
|
270
|
+
# EAPI Eina_Bool elm_layout_part_cursor_engine_only_set(Evas_Object *obj, const char *part_name, Eina_Bool engine_only);
|
271
|
+
# EAPI Eina_Bool elm_layout_part_cursor_engine_only_get(const Evas_Object *obj, const char *part_name);
|
272
|
+
end
|
273
|
+
#
|
274
|
+
describe Efl::Elm::ElmLabel do
|
275
|
+
#
|
276
|
+
before(:all) {
|
277
|
+
realize_win
|
278
|
+
@lb = Elm::ElmLabel.new @win
|
279
|
+
}
|
280
|
+
after(:all) {
|
281
|
+
@lb.free
|
282
|
+
@bg.free
|
283
|
+
@win.free
|
284
|
+
}
|
285
|
+
#
|
286
|
+
it "label set/get" do
|
287
|
+
@lb.label_set "label1"
|
288
|
+
@lb.label_get.should == "label1"
|
289
|
+
@lb.label= "label2"
|
290
|
+
@lb.label.should == "label2"
|
291
|
+
end
|
292
|
+
#
|
293
|
+
it "line_wrap set/get" do
|
294
|
+
@lb.line_wrap_set :elm_wrap_char
|
295
|
+
@lb.line_wrap_get.should == :elm_wrap_char
|
296
|
+
@lb.line_wrap= :elm_wrap_none
|
297
|
+
@lb.line_wrap.should == :elm_wrap_none
|
298
|
+
end
|
299
|
+
#
|
300
|
+
it "wrap_width set/get" do
|
301
|
+
@lb.wrap_width_set 69
|
302
|
+
@lb.wrap_width_get.should == 69
|
303
|
+
@lb.wrap_width= 666
|
304
|
+
@lb.wrap_width.should == 666
|
305
|
+
end
|
306
|
+
#
|
307
|
+
it "wrap_height set/get" do
|
308
|
+
@lb.wrap_height_set 69
|
309
|
+
@lb.wrap_height_get.should == 69
|
310
|
+
@lb.wrap_height= 666
|
311
|
+
@lb.wrap_height.should == 666
|
312
|
+
end
|
313
|
+
#
|
314
|
+
it "ellipsis_set" do
|
315
|
+
@lb.ellipsis_set true
|
316
|
+
@lb.ellipsis= false
|
317
|
+
end
|
318
|
+
#
|
319
|
+
it "slide_set" do
|
320
|
+
bool_check @lb, 'slide'
|
321
|
+
end
|
322
|
+
#
|
323
|
+
it "slide_duration_set" do
|
324
|
+
@lb.slide_duration_set 3.1415926
|
325
|
+
@lb.slide_duration_get.should == 3.1415926
|
326
|
+
@lb.slide_duration= 3.1415926
|
327
|
+
@lb.slide_duration.should == 3.1415926
|
328
|
+
end
|
329
|
+
end
|
330
|
+
#
|
331
|
+
describe Efl::Elm::ElmPager do
|
332
|
+
#
|
333
|
+
before(:all) {
|
334
|
+
realize_win
|
335
|
+
@p = Elm::ElmPager.new @win
|
336
|
+
@os = []
|
337
|
+
0.upto(3) do
|
338
|
+
@os << @win.evas.object_rectangle_add
|
339
|
+
end
|
340
|
+
}
|
341
|
+
after(:all) {
|
342
|
+
@p.free
|
343
|
+
@bg.free
|
344
|
+
@win.free
|
345
|
+
}
|
346
|
+
#
|
347
|
+
it "content push pop promote bottom_get top_get" do
|
348
|
+
@os.each do |o|
|
349
|
+
@p.content_push o
|
350
|
+
end
|
351
|
+
@p.content_top_get.should == @os[-1].to_ptr
|
352
|
+
@p.content_bottom_get.should == @os[0].to_ptr
|
353
|
+
@p.content_pop
|
354
|
+
@p.content_top_get.should == @os[-2].to_ptr
|
355
|
+
@p.content_bottom_get.should == @os[0].to_ptr
|
356
|
+
@p.content_promote @os[0]
|
357
|
+
@p.content_top_get.should == @os[0].to_ptr
|
358
|
+
@p.content_bottom_get.should == @os[1].to_ptr
|
359
|
+
end
|
360
|
+
end
|
361
|
+
#
|
362
|
+
describe Efl::Elm::ElmPanel do
|
363
|
+
#
|
364
|
+
before(:all) {
|
365
|
+
realize_win
|
366
|
+
@p = Elm::ElmPanel.new @win
|
367
|
+
@os = []
|
368
|
+
}
|
369
|
+
after(:all) {
|
370
|
+
@p.free
|
371
|
+
@bg.free
|
372
|
+
@win.free
|
373
|
+
}
|
374
|
+
#
|
375
|
+
it "orient set/get" do
|
376
|
+
@p.orient_set :elm_panel_orient_bottom
|
377
|
+
@p.orient_get.should == :elm_panel_orient_bottom
|
378
|
+
@p.orient= :elm_panel_orient_top
|
379
|
+
@p.orient.should == :elm_panel_orient_top
|
380
|
+
end
|
381
|
+
#
|
382
|
+
it "content set/get/unset" do
|
383
|
+
o = @win.evas.object_rectangle_add
|
384
|
+
@p.content_set o
|
385
|
+
@p.content_get.should == o.to_ptr
|
386
|
+
@p.content_unset.should == o.to_ptr
|
387
|
+
o.free
|
388
|
+
o = @win.evas.object_rectangle_add
|
389
|
+
@p.content= o
|
390
|
+
@p.content.should == o.to_ptr
|
391
|
+
@p.content_unset.should == o.to_ptr
|
392
|
+
o.free
|
393
|
+
end
|
394
|
+
#
|
395
|
+
it "hidden set/get toggle" do
|
396
|
+
@p.hidden_set true
|
397
|
+
@p.hidden_get.should be_true
|
398
|
+
@p.hidden=false
|
399
|
+
@p.hidden.should be_false
|
400
|
+
@p.toggle
|
401
|
+
@p.hidden_get.should be_true
|
402
|
+
@p.hidden.should be_true
|
403
|
+
@p.toggle
|
404
|
+
@p.hidden_get.should be_false
|
405
|
+
@p.hidden.should be_false
|
406
|
+
end
|
407
|
+
end
|
408
|
+
end
|
409
|
+
|