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.
Files changed (43) hide show
  1. data/Changelog +13 -1
  2. data/README.rdoc +24 -14
  3. data/lib/efl/ecore.rb +7 -7
  4. data/lib/efl/ecore_evas.rb +78 -0
  5. data/lib/efl/ecore_getopt.rb +28 -29
  6. data/lib/efl/ecore_input.rb +14 -0
  7. data/lib/efl/edje.rb +47 -1
  8. data/lib/efl/eet.rb +18 -25
  9. data/lib/efl/eina.rb +14 -0
  10. data/lib/efl/eina_hash.rb +84 -0
  11. data/lib/efl/eina_list.rb +77 -0
  12. data/lib/efl/elementary.rb +22 -9
  13. data/lib/efl/evas.rb +67 -25
  14. data/lib/efl/{ecore/ecore-ffi.rb → ffi/ecore.rb} +8 -5
  15. data/lib/efl/{ecore/ecore_evas-ffi.rb → ffi/ecore_evas.rb} +10 -7
  16. data/lib/efl/{ecore/ecore_getopt-ffi.rb → ffi/ecore_getopt.rb} +8 -5
  17. data/lib/efl/{ecore/ecore_input-ffi.rb → ffi/ecore_input.rb} +9 -6
  18. data/lib/efl/{edje/edje-ffi.rb → ffi/edje.rb} +10 -7
  19. data/lib/efl/{eet/eet-ffi.rb → ffi/eet.rb} +8 -5
  20. data/lib/efl/ffi/eina.rb +48 -0
  21. data/lib/efl/ffi/eina_hash.rb +111 -0
  22. data/lib/efl/ffi/eina_list.rb +108 -0
  23. data/lib/efl/{eina/eina_types-ffi.rb → ffi/eina_types.rb} +8 -5
  24. data/lib/efl/{elementary/elementary-ffi.rb → ffi/elementary.rb} +16 -9
  25. data/lib/efl/{evas/evas-ffi.rb → ffi/evas.rb} +153 -150
  26. data/lib/efl/ffi.rb +81 -38
  27. data/lib/efl.rb +9 -4
  28. data/spec/ecore_evas_spec.rb +24 -0
  29. data/spec/ecore_getopt_spec.rb +1 -2
  30. data/spec/ecore_input_spec.rb +24 -0
  31. data/spec/ecore_spec.rb +2 -3
  32. data/spec/edje_spec.rb +1 -1
  33. data/spec/eet_spec.rb +68 -69
  34. data/spec/eina_hash_spec.rb +180 -0
  35. data/spec/eina_list_spec.rb +101 -0
  36. data/spec/eina_spec.rb +20 -0
  37. data/spec/evas_spec.rb +288 -40
  38. data/tasks/ffi.rake +1 -1
  39. data/test/test_edje.rb +141 -0
  40. data/test/test_elm_win.rb +25 -28
  41. data/test/test_elm_win_class.rb +7 -7
  42. data/test/test_evas.rb +106 -0
  43. 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
- return Efl::API.send 'eina_'+m.to_s, *args, &block
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
- return Efl::API.send 'elm_'+m.to_s, *args, &block
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 elm_table_homogeneous_get(const Evas_Object *obj);
1164
- [ :elm_table_homogeneous_get, [ :evas_object_p ], :eina_bool ],
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) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
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) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
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
  #