diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/efl/elementary.rb | 33 | ||||
| -rw-r--r-- | lib/efl/elementary/elementary-ffi.rb | 4 | 
2 files changed, 34 insertions, 3 deletions
diff --git a/lib/efl/elementary.rb b/lib/efl/elementary.rb index efe444a..4d82d54 100644 --- a/lib/efl/elementary.rb +++ b/lib/efl/elementary.rb @@ -1,10 +1,41 @@  #! /usr/bin/env ruby  # -*- coding: UTF-8 -*-  # +require 'efl/evas'  require 'efl/elementary/elementary-ffi'  #  module Efl -    module Elementary +    module Elm +        # +        class << self +            def init *args +                a = args.select { |e| e.is_a? String } +                return Efl::API.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) +                end +                Efl::API.elm_init a.length, ptr +            end +        end +        # +        class ElmWin < Efl::Evas::EvasObject +            attr_reader :ptr +            def initialize parent, title, type=:elm_win_basic +                @ptr = Efl::API.elm_win_add parent, title, type +                yield self if block_given? +            end +            def add e +                Efl::API.send "elm_#{e}_add", @ptr +            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 +                end +            end +        end          #      end  end diff --git a/lib/efl/elementary/elementary-ffi.rb b/lib/efl/elementary/elementary-ffi.rb index 5257487..987a155 100644 --- a/lib/efl/elementary/elementary-ffi.rb +++ b/lib/efl/elementary/elementary-ffi.rb @@ -5,9 +5,9 @@ require 'efl/ffi'  #  module Efl      # -    module Elementary +    module Elm          def self.method_missing m, *args, &block -            return Efl::API.send 'elementary_'+m.to_s, *args, &block +            return Efl::API.send 'elm_'+m.to_s, *args, &block          end      end      #  | 
