ffi-efl 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
#
|