summaryrefslogtreecommitdiffstats
path: root/lib/efl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/efl')
-rw-r--r--lib/efl/elementary.rb15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/efl/elementary.rb b/lib/efl/elementary.rb
index 4d82d54..ba263a8 100644
--- a/lib/efl/elementary.rb
+++ b/lib/efl/elementary.rb
@@ -20,20 +20,25 @@ module Efl
end
#
class ElmWin < Efl::Evas::EvasObject
- attr_reader :ptr
+ attr_reader :evas_object
def initialize parent, title, type=:elm_win_basic
- @ptr = Efl::API.elm_win_add parent, title, type
+ @evas_object = Evas::EvasObject.new Efl::API.elm_win_add parent, title, type
yield self if block_given?
end
def add e
- Efl::API.send "elm_#{e}_add", @ptr
+ eo = Evas::EvasObject.new Efl::API.send "elm_#{e}_add", @evas_object.ptr
+ yield eo if block_given?
+ eo
+ end
+ def smart_callback_add event_str, cb, data=FFI::MemoryPointer::NULL
+ Efl::API.evas_object_smart_callback_add @evas_object.ptr, event_str, cb, data
end
def method_missing m, *args, &block
[ 'elm_win_', 'elm_' ].each do |s|
sym = s+m.to_s
- puts sym
- return Efl::API.send( sym, @ptr, *args, &block ) if Efl::API.respond_to? sym
+ return Efl::API.send( sym, @evas_object.ptr, *args, &block ) if Efl::API.respond_to? sym
end
+ Efl::API.send m
end
end
#