summaryrefslogtreecommitdiffstats
path: root/lib/efl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/efl')
-rw-r--r--lib/efl/elementary.rb33
-rw-r--r--lib/efl/elementary/elementary-ffi.rb4
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
#