diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2011-04-21 11:58:01 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2011-04-21 11:58:01 +0200 |
commit | a16b6aa23e7b03512b08df23f7512ee16b56fc17 (patch) | |
tree | 7ca4defe1eb2a10138437b0ffbefc6a887c1a591 /lib | |
parent | eca9cca97c1389804e9ad325d4cf878d0dbc9259 (diff) | |
download | ffi-efl-a16b6aa23e7b03512b08df23f7512ee16b56fc17.zip ffi-efl-a16b6aa23e7b03512b08df23f7512ee16b56fc17.tar.gz |
update ElmWin and test
Diffstat (limited to 'lib')
-rw-r--r-- | lib/efl/elementary.rb | 15 |
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 # |