/ffi-efl

ffi-efl is a FFI binding to Enlightenment Foundation Libraries (eina,eet,evas,ecore,edje,...) part of the Enlightenment project.

Primary LanguageRubyOtherNOASSERTION

ffi-efl

by Jérémy Zurcher
http://asynk.ch

Gem Version

DESCRIPTION:

A ruby ffi binding to EFL libraries (Enlightenment Foundation Libraries).

FEATURES/PROBLEMS:

  • support ruby 2.0.0, 1.9.x NOT 1.8.x
  • support EFL 1.8.x
  • binding is almost complete but lacks high level ruby code and tests
  • eldbus is not present yet
  • only works with legacy API (--with-api=legacy or --with-api=both)

SYNOPSIS:

require 'efl/elm/elm_win'
require 'efl/elm/elm_bg'
require 'efl/elm/elm_label'

include Efl

class MyWin < Elm::ElmWin
    def initialize name, title, &block
        super FFI::MemoryPointer::NULL, name, &block
        title_set title
        feed
        smart_callback_add "delete,request", method(:on_delete), FFI::MemoryPointer.from_string("my data")
    end
    def feed
        @bg = Elm::ElmBg.new(self) do
            size_hint_weight_expand
            evas_object_color_set 150,180,100,180
            show
        end
        resize_object_add @bg
        @lb = Elm::ElmLabel.new(self) do
            text_set "Hello World!"
            size_hint_align_fill
            size_hint_weight_expand
            show
        end
        resize_object_add @lb
    end
    def on_delete data, evas_object, event_info
        puts "EXIT #{data.read_string}"
        Elm.exit
    end
end

Elm.init

win = MyWin.new "App name", "Window Title" do
    alpha_set true
    resize 200, 100
    center_set 600, 300
    show
end

Elm.run
Elm.shutdown

For more examples you may look at:

REQUIREMENTS:

  • You need a sane EFL installation built with legacy API, goto download for more info.

DOWNLOAD/INSTALL:

From rubygems:

[sudo] gem install ffi-efl

or from the git repository on github:

git clone git://github.com/jeremyz/ffi-efl.git cd ffi-efl rake install

RESOURCES:

You can find this project in a few places:

Online repositories:

Gem:

CREDITS:

Special thanks to:

  • Lionel Orry
  • Marius Hanne
  • The EFL team

LICENSE:

MIT see MIT_LICENSE