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.
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
  #