summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/efl/elementary.rb33
-rw-r--r--lib/efl/ffi/elementary.rb4
-rw-r--r--test/test_elm_win.rb47
-rw-r--r--test/test_elm_win_class.rb8
4 files changed, 52 insertions, 40 deletions
diff --git a/lib/efl/elementary.rb b/lib/efl/elementary.rb
index 6008618..96a3d2d 100644
--- a/lib/efl/elementary.rb
+++ b/lib/efl/elementary.rb
@@ -2,38 +2,51 @@
# -*- coding: UTF-8 -*-
#
require 'efl/evas'
+#
+module Efl
+ module Elm
+ extend Efl::FFIHelper
+ steal_ffitype Efl::Evas, :evas_smart_cb
+ steal_ffitype Efl::Evas, :evas_load_error
+ steal_ffitype Efl::Evas, :evas_callback_type
+ steal_ffitype Efl::Evas, :evas_object_box_data_p
+ end
+end
+#
require 'efl/ffi/elementary'
#
+Efl::Evas::REvasObject.search_paths << [Efl::Elm,'elm_'].freeze
+#
module Efl
module Elm
#
class << self
def init *args
a = args.select { |e| e.is_a? String }
- return Efl::FFI.elm_init 0, ::FFI::MemoryPointer::NULL if a.length==0
- ptr = ::FFI::MemoryPointer.new :pointer, a.length
+ return Efl::Elm.elm_init 0, FFI::MemoryPointer::NULL if a.length==0
+ ptr = FFI::MemoryPointer.new :pointer, a.length
a.each_with_index do |s,i|
- ptr[i].write_pointer ::FFI::MemoryPointer.from_string(s)
+ ptr[i].write_pointer FFI::MemoryPointer.from_string(s)
end
- Efl::FFI.elm_init a.length, ptr
+ Efl::Elm.elm_init a.length, ptr
end
end
#
class ElmWin
- include Efl::Helper
- @func_prefixes = [ 'elm_win_', 'elm_' ].freeze
+ include Efl::ClassHelper
+ @search_paths = [ [Efl::Elm,'elm_win_'].freeze, [Efl::Elm,'elm_'].freeze ]
def initialize parent, title, type=:elm_win_basic
- @evas_object = Evas::EvasObject.new Efl::FFI.elm_win_add parent, title, type
- @ptr = @evas_object.ptr
+ @evas_object = Efl::Evas::REvasObject.new Efl::Elm.elm_win_add parent, title, type
+ @ptr = @evas_object.to_ptr
yield self,@evas_object if block_given?
end
def add e
- eo = Evas::EvasObject.new Efl::FFI.send "elm_#{e}_add", @ptr
+ eo = Efl::Evas::REvasObject.new Efl::Elm.send "elm_#{e}_add", @ptr
yield eo if block_given?
eo
end
def smart_callback_add event_str, cb, data=FFI::MemoryPointer::NULL
- Efl::FFI.evas_object_smart_callback_add @ptr, event_str, cb, data
+ Efl::Evas.evas_object_smart_callback_add @ptr, event_str, cb, data
end
end
#
diff --git a/lib/efl/ffi/elementary.rb b/lib/efl/ffi/elementary.rb
index dabc667..c0e1215 100644
--- a/lib/efl/ffi/elementary.rb
+++ b/lib/efl/ffi/elementary.rb
@@ -1162,8 +1162,8 @@ module Efl
[ :elm_table_add, [ :evas_object_p ], :evas_object_p ],
# EAPI void elm_table_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
[ :elm_table_homogenous_set, [ :evas_object_p, :eina_bool ], :void ],
- # EAPI Eina_Bool elm_table_homogeneous_get(const Evas_Object *obj);
- [ :elm_table_homogeneous_get, [ :evas_object_p ], :eina_bool ],
+ # EAPI Eina_Bool elm_table_homogenous_get(const Evas_Object *obj);
+ [ :elm_table_homogenous_get, [ :evas_object_p ], :eina_bool ],
# EAPI void elm_table_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
[ :elm_table_padding_set, [ :evas_object_p, :int, :int ], :void ],
# EAPI void elm_table_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical);
diff --git a/test/test_elm_win.rb b/test/test_elm_win.rb
index 1fe5e9b..24c4d6c 100644
--- a/test/test_elm_win.rb
+++ b/test/test_elm_win.rb
@@ -4,33 +4,32 @@
require 'efl/elementary'
#
Efl::Elm.init
-
+#
win_del = Proc.new { |data,evas_object,event_info|
- Efl::FFI.elm_exit();
+ Efl::Elm.elm_exit();
}
-
-win = Efl::FFI.elm_win_add ::FFI::MemoryPointer::NULL, "App name", :elm_win_basic
-Efl::FFI.elm_win_title_set win, "Window title"
-Efl::FFI.evas_object_smart_callback_add win, "delete,request", win_del, ::FFI::MemoryPointer::NULL
-
-bg = Efl::FFI.elm_bg_add win
-Efl::FFI.evas_object_size_hint_weight_set bg, 1.0, 1.0
-Efl::FFI.elm_win_resize_object_add win, bg
-Efl::FFI.evas_object_show bg
-
-lb = Efl::FFI.elm_label_add win
-Efl::FFI.elm_label_label_set lb, "Hello World!"
-Efl::FFI.evas_object_size_hint_weight_set lb, 1.0, 1.0
-Efl::FFI.elm_win_resize_object_add win, lb
-Efl::FFI.evas_object_show lb
-
-Efl::FFI.evas_object_move win, 300, 300
-Efl::FFI.evas_object_resize win, 200, 100
-
-Efl::FFI.evas_object_show win
-
+#
+win = Efl::Elm.elm_win_add FFI::MemoryPointer::NULL, "App name", :elm_win_basic
+Efl::Elm.elm_win_title_set win, "Window title"
+Efl::Evas.evas_object_smart_callback_add win, "delete,request", win_del, FFI::MemoryPointer::NULL
+#
+bg = Efl::Elm.elm_bg_add win
+Efl::Evas.evas_object_size_hint_weight_set bg, 1.0, 1.0
+Efl::Elm.elm_win_resize_object_add win, bg
+Efl::Evas.evas_object_show bg
+#
+lb = Efl::Elm.elm_label_add win
+Efl::Elm.elm_label_label_set lb, "Hello World!"
+Efl::Evas.evas_object_size_hint_weight_set lb, 1.0, 1.0
+Efl::Elm.elm_win_resize_object_add win, lb
+Efl::Evas.evas_object_show lb
+#
+Efl::Evas.evas_object_move win, 300, 300
+Efl::Evas.evas_object_resize win, 200, 100
+#
+Efl::Evas.evas_object_show win
+#
Efl::Elm.run
Efl::Elm.shutdown
#
# EOF
-
diff --git a/test/test_elm_win_class.rb b/test/test_elm_win_class.rb
index fee0265..5aa3491 100644
--- a/test/test_elm_win_class.rb
+++ b/test/test_elm_win_class.rb
@@ -21,13 +21,13 @@ class MyWin < Elm::ElmWin
bg.color = 200,255,100,200 # same as bg.color_set 200,255,100,200
bg.show
end
- resize_object_add @bg.ptr
+ resize_object_add @bg.to_ptr
@lb = add 'label'do |lb|
- lb.elm_label_label_set "Hello World!" # complete function name
- lb.size_hint_weight_set 1.0, 1.0 # implicit evas_object function name prefix
+ lb.label_label_set "Hello World!" # complete function name
+ lb.size_hint_weight_set 1.0, 1.0 # implicit evas_object function name prefix
end
@lb.show
- resize_object_add @lb.ptr
+ resize_object_add @lb.to_ptr
end
def exit data, evas_object, event_info
puts "EXIT #{data.read_string}"