ffi-efl 0.0.2 → 0.0.3
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 +13 -1
- data/README.rdoc +24 -14
- data/lib/efl/ecore.rb +7 -7
- data/lib/efl/ecore_evas.rb +78 -0
- data/lib/efl/ecore_getopt.rb +28 -29
- data/lib/efl/ecore_input.rb +14 -0
- data/lib/efl/edje.rb +47 -1
- data/lib/efl/eet.rb +18 -25
- data/lib/efl/eina.rb +14 -0
- data/lib/efl/eina_hash.rb +84 -0
- data/lib/efl/eina_list.rb +77 -0
- data/lib/efl/elementary.rb +22 -9
- data/lib/efl/evas.rb +67 -25
- data/lib/efl/{ecore/ecore-ffi.rb → ffi/ecore.rb} +8 -5
- data/lib/efl/{ecore/ecore_evas-ffi.rb → ffi/ecore_evas.rb} +10 -7
- data/lib/efl/{ecore/ecore_getopt-ffi.rb → ffi/ecore_getopt.rb} +8 -5
- data/lib/efl/{ecore/ecore_input-ffi.rb → ffi/ecore_input.rb} +9 -6
- data/lib/efl/{edje/edje-ffi.rb → ffi/edje.rb} +10 -7
- data/lib/efl/{eet/eet-ffi.rb → ffi/eet.rb} +8 -5
- data/lib/efl/ffi/eina.rb +48 -0
- data/lib/efl/ffi/eina_hash.rb +111 -0
- data/lib/efl/ffi/eina_list.rb +108 -0
- data/lib/efl/{eina/eina_types-ffi.rb → ffi/eina_types.rb} +8 -5
- data/lib/efl/{elementary/elementary-ffi.rb → ffi/elementary.rb} +16 -9
- data/lib/efl/{evas/evas-ffi.rb → ffi/evas.rb} +153 -150
- data/lib/efl/ffi.rb +81 -38
- data/lib/efl.rb +9 -4
- data/spec/ecore_evas_spec.rb +24 -0
- data/spec/ecore_getopt_spec.rb +1 -2
- data/spec/ecore_input_spec.rb +24 -0
- data/spec/ecore_spec.rb +2 -3
- data/spec/edje_spec.rb +1 -1
- data/spec/eet_spec.rb +68 -69
- data/spec/eina_hash_spec.rb +180 -0
- data/spec/eina_list_spec.rb +101 -0
- data/spec/eina_spec.rb +20 -0
- data/spec/evas_spec.rb +288 -40
- data/tasks/ffi.rake +1 -1
- data/test/test_edje.rb +141 -0
- data/test/test_elm_win.rb +25 -28
- data/test/test_elm_win_class.rb +7 -7
- data/test/test_evas.rb +106 -0
- metadata +30 -17
@@ -0,0 +1,108 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/ffi'
|
5
|
+
#
|
6
|
+
module Efl
|
7
|
+
#
|
8
|
+
module EinaList
|
9
|
+
#
|
10
|
+
extend Efl::FFIHelper
|
11
|
+
#
|
12
|
+
def self.method_missing m, *args, &block
|
13
|
+
sym = 'eina_list_'+m.to_s
|
14
|
+
raise NameError.new "#{self.name}.#{sym} (#{m})" if not self.respond_to? sym
|
15
|
+
self.module_eval "def self.#{m} *args, █ r=self.#{sym}(*args); yield r if block_given?; r; end"
|
16
|
+
self.send sym, *args, &block
|
17
|
+
end
|
18
|
+
#
|
19
|
+
ffi_lib 'eina'
|
20
|
+
#
|
21
|
+
# ENUMS
|
22
|
+
#
|
23
|
+
# TYPEDEFS
|
24
|
+
# typedef struct _Eina_List Eina_List;
|
25
|
+
typedef :pointer, :eina_list
|
26
|
+
typedef :pointer, :eina_list_p
|
27
|
+
typedef :pointer, :eina_list_pp
|
28
|
+
# typedef struct _Eina_List_Accounting Eina_List_Accounting;
|
29
|
+
typedef :pointer, :eina_list_accounting
|
30
|
+
#
|
31
|
+
# CALLBACKS
|
32
|
+
#
|
33
|
+
# FUNCTIONS
|
34
|
+
fcts = [
|
35
|
+
# EAPI Eina_List *eina_list_append(Eina_List *list, const void *data);
|
36
|
+
[ :eina_list_append, [ :eina_list_p, :void_p ], :eina_list_p ],
|
37
|
+
# EAPI Eina_List *eina_list_prepend(Eina_List *list, const void *data);
|
38
|
+
[ :eina_list_prepend, [ :eina_list_p, :void_p ], :eina_list_p ],
|
39
|
+
# EAPI Eina_List *eina_list_append_relative(Eina_List *list, const void *data, const void *relative);
|
40
|
+
[ :eina_list_append_relative, [ :eina_list_p, :void_p, :void_p ], :eina_list_p ],
|
41
|
+
# EAPI Eina_List *eina_list_append_relative_list(Eina_List *list, const void *data, Eina_List *relative);
|
42
|
+
[ :eina_list_append_relative_list, [ :eina_list_p, :void_p, :eina_list_p ], :eina_list_p ],
|
43
|
+
# EAPI Eina_List *eina_list_prepend_relative(Eina_List *list, const void *data, const void *relative);
|
44
|
+
[ :eina_list_prepend_relative, [ :eina_list_p, :void_p, :void_p ], :eina_list_p ],
|
45
|
+
# EAPI Eina_List *eina_list_prepend_relative_list(Eina_List *list, const void *data, Eina_List *relative);
|
46
|
+
[ :eina_list_prepend_relative_list, [ :eina_list_p, :void_p, :eina_list_p ], :eina_list_p ],
|
47
|
+
# EAPI Eina_List *eina_list_sorted_insert(Eina_List *list, Eina_Compare_Cb func, const void *data);
|
48
|
+
[ :eina_list_sorted_insert, [ :eina_list_p, :eina_compare_cb, :void_p ], :eina_list_p ],
|
49
|
+
# EAPI Eina_List *eina_list_remove(Eina_List *list, const void *data);
|
50
|
+
[ :eina_list_remove, [ :eina_list_p, :void_p ], :eina_list_p ],
|
51
|
+
# EAPI Eina_List *eina_list_remove_list(Eina_List *list, Eina_List *remove_list);
|
52
|
+
[ :eina_list_remove_list, [ :eina_list_p, :eina_list_p ], :eina_list_p ],
|
53
|
+
# EAPI Eina_List *eina_list_promote_list(Eina_List *list, Eina_List *move_list);
|
54
|
+
[ :eina_list_promote_list, [ :eina_list_p, :eina_list_p ], :eina_list_p ],
|
55
|
+
# EAPI Eina_List *eina_list_demote_list(Eina_List *list, Eina_List *move_list);
|
56
|
+
[ :eina_list_demote_list, [ :eina_list_p, :eina_list_p ], :eina_list_p ],
|
57
|
+
# EAPI void *eina_list_data_find(const Eina_List *list, const void *data);
|
58
|
+
[ :eina_list_data_find, [ :eina_list_p, :void_p ], :void_p ],
|
59
|
+
# EAPI Eina_List *eina_list_data_find_list(const Eina_List *list, const void *data);
|
60
|
+
[ :eina_list_data_find_list, [ :eina_list_p, :void_p ], :eina_list_p ],
|
61
|
+
# EAPI Eina_Bool eina_list_move(Eina_List **to, Eina_List **from, void *data);
|
62
|
+
[ :eina_list_move, [ :eina_list_pp, :eina_list_pp, :void_p ], :eina_bool ],
|
63
|
+
# EAPI Eina_Bool eina_list_move_list(Eina_List **to, Eina_List **from, Eina_List *data);
|
64
|
+
[ :eina_list_move_list, [ :eina_list_pp, :eina_list_pp, :eina_list_p ], :eina_bool ],
|
65
|
+
# EAPI Eina_List *eina_list_free(Eina_List *list);
|
66
|
+
[ :eina_list_free, [ :eina_list_p ], :eina_list_p ],
|
67
|
+
# EAPI void *eina_list_nth(const Eina_List *list, unsigned int n);
|
68
|
+
[ :eina_list_nth, [ :eina_list_p, :uint ], :void_p ],
|
69
|
+
# EAPI Eina_List *eina_list_nth_list(const Eina_List *list, unsigned int n);
|
70
|
+
[ :eina_list_nth_list, [ :eina_list_p, :uint ], :eina_list_p ],
|
71
|
+
# EAPI Eina_List *eina_list_reverse(Eina_List *list);
|
72
|
+
[ :eina_list_reverse, [ :eina_list_p ], :eina_list_p ],
|
73
|
+
# EAPI Eina_List *eina_list_reverse_clone(const Eina_List *list);
|
74
|
+
[ :eina_list_reverse_clone, [ :eina_list_p ], :eina_list_p ],
|
75
|
+
# EAPI Eina_List *eina_list_clone(const Eina_List *list);
|
76
|
+
[ :eina_list_clone, [ :eina_list_p ], :eina_list_p ],
|
77
|
+
# EAPI Eina_List *eina_list_sort(Eina_List *list, unsigned int size, Eina_Compare_Cb func);
|
78
|
+
[ :eina_list_sort, [ :eina_list_p, :uint, :eina_compare_cb ], :eina_list_p ],
|
79
|
+
# EAPI Eina_List *eina_list_merge(Eina_List *left, Eina_List *right);
|
80
|
+
[ :eina_list_merge, [ :eina_list_p, :eina_list_p ], :eina_list_p ],
|
81
|
+
# EAPI Eina_List *eina_list_sorted_merge(Eina_List *left, Eina_List *right, Eina_Compare_Cb func);
|
82
|
+
[ :eina_list_sorted_merge, [ :eina_list_p, :eina_list_p, :eina_compare_cb ], :eina_list_p ],
|
83
|
+
# EAPI Eina_List *eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right);
|
84
|
+
[ :eina_list_split_list, [ :eina_list_p, :eina_list_p, :eina_list_pp ], :eina_list_p ],
|
85
|
+
# EAPI Eina_List *eina_list_search_sorted_near_list(const Eina_List *list, Eina_Compare_Cb func, const void *data, int *result_cmp);
|
86
|
+
[ :eina_list_search_sorted_near_list, [ :eina_list_p, :eina_compare_cb, :void_p, :int_p ], :eina_list_p ],
|
87
|
+
# EAPI Eina_List *eina_list_search_sorted_list(const Eina_List *list, Eina_Compare_Cb func, const void *data);
|
88
|
+
[ :eina_list_search_sorted_list, [ :eina_list_p, :eina_compare_cb, :void_p ], :eina_list_p ],
|
89
|
+
# EAPI void *eina_list_search_sorted(const Eina_List *list, Eina_Compare_Cb func, const void *data);
|
90
|
+
[ :eina_list_search_sorted, [ :eina_list_p, :eina_compare_cb, :void_p ], :void_p ],
|
91
|
+
# EAPI Eina_List *eina_list_search_unsorted_list(const Eina_List *list, Eina_Compare_Cb func, const void *data);
|
92
|
+
[ :eina_list_search_unsorted_list, [ :eina_list_p, :eina_compare_cb, :void_p ], :eina_list_p ],
|
93
|
+
# EAPI void *eina_list_search_unsorted(const Eina_List *list, Eina_Compare_Cb func, const void *data);
|
94
|
+
[ :eina_list_search_unsorted, [ :eina_list_p, :eina_compare_cb, :void_p ], :void_p ],
|
95
|
+
# EAPI Eina_Iterator *eina_list_iterator_new(const Eina_List *list);
|
96
|
+
[ :eina_list_iterator_new, [ :eina_list_p ], :eina_iterator_p ],
|
97
|
+
# EAPI Eina_Iterator *eina_list_iterator_reversed_new(const Eina_List *list);
|
98
|
+
[ :eina_list_iterator_reversed_new, [ :eina_list_p ], :eina_iterator_p ],
|
99
|
+
# EAPI Eina_Accessor *eina_list_accessor_new(const Eina_List *list);
|
100
|
+
[ :eina_list_accessor_new, [ :eina_list_p ], :eina_accessor_p ],
|
101
|
+
]
|
102
|
+
#
|
103
|
+
attach_fcts fcts
|
104
|
+
#
|
105
|
+
end
|
106
|
+
end
|
107
|
+
#
|
108
|
+
# EOF
|
@@ -6,13 +6,15 @@ require 'efl/ffi'
|
|
6
6
|
module Efl
|
7
7
|
#
|
8
8
|
module Eina
|
9
|
+
#
|
10
|
+
extend Efl::FFIHelper
|
11
|
+
#
|
9
12
|
def self.method_missing m, *args, &block
|
10
|
-
|
13
|
+
sym = 'eina_'+m.to_s
|
14
|
+
raise NameError.new "#{self.name}.#{sym} (#{m})" if not self.respond_to? sym
|
15
|
+
self.module_eval "def self.#{m} *args, █ r=self.#{sym}(*args); yield r if block_given?; r; end"
|
16
|
+
self.send sym, *args, &block
|
11
17
|
end
|
12
|
-
end
|
13
|
-
#
|
14
|
-
module API
|
15
|
-
#
|
16
18
|
#
|
17
19
|
ffi_lib 'eina'
|
18
20
|
#
|
@@ -38,6 +40,7 @@ module Efl
|
|
38
40
|
]
|
39
41
|
#
|
40
42
|
attach_fcts fcts
|
43
|
+
#
|
41
44
|
end
|
42
45
|
end
|
43
46
|
#
|
@@ -6,13 +6,15 @@ require 'efl/ffi'
|
|
6
6
|
module Efl
|
7
7
|
#
|
8
8
|
module Elm
|
9
|
+
#
|
10
|
+
extend Efl::FFIHelper
|
11
|
+
#
|
9
12
|
def self.method_missing m, *args, &block
|
10
|
-
|
13
|
+
sym = 'elm_'+m.to_s
|
14
|
+
raise NameError.new "#{self.name}.#{sym} (#{m})" if not self.respond_to? sym
|
15
|
+
self.module_eval "def self.#{m} *args, █ r=self.#{sym}(*args); yield r if block_given?; r; end"
|
16
|
+
self.send sym, *args, &block
|
11
17
|
end
|
12
|
-
end
|
13
|
-
#
|
14
|
-
module API
|
15
|
-
#
|
16
18
|
#
|
17
19
|
ffi_lib 'libelementary-ver-pre-svn-09.so.0'
|
18
20
|
#
|
@@ -1160,8 +1162,8 @@ module Efl
|
|
1160
1162
|
[ :elm_table_add, [ :evas_object_p ], :evas_object_p ],
|
1161
1163
|
# EAPI void elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
|
1162
1164
|
[ :elm_table_homogenous_set, [ :evas_object_p, :eina_bool ], :void ],
|
1163
|
-
# EAPI Eina_Bool
|
1164
|
-
[ :
|
1165
|
+
# EAPI Eina_Bool elm_table_homogenous_get(const Evas_Object *obj);
|
1166
|
+
[ :elm_table_homogenous_get, [ :evas_object_p ], :eina_bool ],
|
1165
1167
|
# EAPI void elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
|
1166
1168
|
[ :elm_table_padding_set, [ :evas_object_p, :int, :int ], :void ],
|
1167
1169
|
# EAPI void elm_table_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical);
|
@@ -1494,9 +1496,9 @@ module Efl
|
|
1494
1496
|
# FIXME
|
1495
1497
|
# EAPI void elm_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data);
|
1496
1498
|
# FIXME
|
1497
|
-
# EAPI char *elm_entry_markup_to_utf8(const char *s)
|
1499
|
+
# EAPI char *elm_entry_markup_to_utf8(const char *s);
|
1498
1500
|
[ :elm_entry_markup_to_utf8, [ :string ], :string ],
|
1499
|
-
# EAPI char *elm_entry_utf8_to_markup(const char *s)
|
1501
|
+
# EAPI char *elm_entry_utf8_to_markup(const char *s);
|
1500
1502
|
[ :elm_entry_utf8_to_markup, [ :string ], :string ],
|
1501
1503
|
# EAPI void elm_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format);
|
1502
1504
|
[ :elm_entry_file_set, [ :evas_object_p, :string, :elm_text_format ], :void ],
|
@@ -2628,6 +2630,10 @@ module Efl
|
|
2628
2630
|
[ :elm_map_rotate_set, [ :evas_object_p, :double, :int, :int ], :void ],
|
2629
2631
|
# EAPI void elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_Coord *cy);
|
2630
2632
|
[ :elm_map_rotate_get, [ :evas_object_p, :double_p, :int_p, :int_p ], :void ],
|
2633
|
+
# EAPI void elm_map_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled);
|
2634
|
+
[ :elm_map_wheel_disabled_set, [ :evas_object_p, :eina_bool ], :void ],
|
2635
|
+
# EAPI Eina_Bool elm_map_wheel_disabled_get(const Evas_Object *obj);
|
2636
|
+
[ :elm_map_wheel_disabled_get, [ :evas_object_p ], :eina_bool ],
|
2631
2637
|
# EAPI Evas_Object *elm_panel_add(Evas_Object *parent);
|
2632
2638
|
[ :elm_panel_add, [ :evas_object_p ], :evas_object_p ],
|
2633
2639
|
# EAPI void elm_panel_orient_set(Evas_Object *obj, Elm_Panel_Orient orient);
|
@@ -3207,6 +3213,7 @@ module Efl
|
|
3207
3213
|
]
|
3208
3214
|
#
|
3209
3215
|
attach_fcts fcts
|
3216
|
+
#
|
3210
3217
|
end
|
3211
3218
|
end
|
3212
3219
|
#
|