summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 47efa9eac49b7817704c8eacdfee96b34d56f619 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# ffi-efl
    by Jérémy Zurcher
    http://asynk.ch

## DESCRIPTION:

A ruby ffi binding to [efl](http://www.enlightenment.org/p.php?p=docs&l=en) libraries (Enlightenment Foundation Libraries).

## FEATURES/PROBLEMS:

* support ruby 1.9.x NOT 1.8.x
* support efl 1.7.x, NOT dev branch 1.8.x
* binding is almost complete but lacks high level ruby code and tests

## 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:

* the [test/](https://github.com/jeremyz/ffi-efl/tree/master/test) and [spec/](https://github.com/jeremyz/ffi-efl/tree/master/spec) subdirs

## REQUIREMENTS:

* You need a sane enlightenment foundation libraries installation,
  for this you might like to use [build_efl_stable.sh](https://github.com/jeremyz/bin/blob/master/build_efl_stable.sh).
  or the heavy metal [easy_e17.sh](http://omicron.homeip.net/projects/#easy_e17.sh),
  or my git aware fork [easy_e17.sh](https://github.com/jeremyz/bin/blob/master/easy_e17.sh).

## 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:

* https://github.com/jeremyz/ffi-efl
* http://cgit.asynk.ch/ffi-efl/

Gem:

* https://rubygems.org/gems/ffi-efl

## CREDITS:

Special thanks to:

* Lionel Orry
* The enlightenment team

## LICENSE:

[MIT](http://www.opensource.org/licenses/MIT) see [MIT_LICENSE](https://github.com/jeremyz/ffi-efl/blob/master/MIT-LICENSE)