ffi-efl 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Changelog +6 -0
- data/README.md +9 -6
- data/TODO +7 -0
- data/ffi-efl.gemspec +1 -1
- data/lib/efl.rb +1 -31
- data/lib/efl/elm/elm_panes.rb +1 -1
- data/lib/efl/native.rb +30 -0
- data/lib/efl/native/ecore.rb +1 -1
- data/lib/efl/native/ecore_evas.rb +8 -62
- data/lib/efl/native/ecore_getopt.rb +1 -1
- data/lib/efl/native/ecore_input.rb +1 -1
- data/lib/efl/native/edje.rb +1 -1
- data/lib/efl/native/eet.rb +1 -1
- data/lib/efl/native/eeze.rb +1 -1
- data/lib/efl/native/eeze_disk.rb +1 -1
- data/lib/efl/native/eeze_net.rb +1 -1
- data/lib/efl/native/efreet.rb +1 -1
- data/lib/efl/native/efreet_base.rb +1 -1
- data/lib/efl/native/efreet_desktop.rb +1 -1
- data/lib/efl/native/efreet_icon.rb +1 -1
- data/lib/efl/native/efreet_ini.rb +1 -1
- data/lib/efl/native/efreet_menu.rb +1 -1
- data/lib/efl/native/efreet_mime.rb +1 -1
- data/lib/efl/native/efreet_trash.rb +1 -1
- data/lib/efl/native/efreet_uri.rb +1 -1
- data/lib/efl/native/efreet_utils.rb +1 -1
- data/lib/efl/native/eina.rb +1 -1
- data/lib/efl/native/eina_file.rb +1 -1
- data/lib/efl/native/eina_hash.rb +1 -1
- data/lib/efl/native/eina_list.rb +1 -1
- data/lib/efl/native/eina_log.rb +1 -1
- data/lib/efl/native/eina_types.rb +1 -1
- data/lib/efl/native/eina_xattr.rb +1 -1
- data/lib/efl/native/eio.rb +1 -1
- data/lib/efl/native/elementary.rb +1 -1
- data/lib/efl/native/elm/elm_actionslider.rb +1 -1
- data/lib/efl/native/elm/elm_app.rb +1 -1
- data/lib/efl/native/elm/elm_bg.rb +1 -1
- data/lib/efl/native/elm/elm_box.rb +1 -1
- data/lib/efl/native/elm/elm_bubble.rb +1 -1
- data/lib/efl/native/elm/elm_button.rb +1 -1
- data/lib/efl/native/elm/elm_cache.rb +1 -1
- data/lib/efl/native/elm/elm_calendar.rb +1 -1
- data/lib/efl/native/elm/elm_check.rb +1 -1
- data/lib/efl/native/elm/elm_clock.rb +1 -1
- data/lib/efl/native/elm/elm_cnp.rb +1 -1
- data/lib/efl/native/elm/elm_colorselector.rb +1 -1
- data/lib/efl/native/elm/elm_config.rb +1 -1
- data/lib/efl/native/elm/elm_conform.rb +1 -1
- data/lib/efl/native/elm/elm_ctxpopup.rb +1 -1
- data/lib/efl/native/elm/elm_cursor.rb +1 -1
- data/lib/efl/native/elm/elm_datetime.rb +1 -1
- data/lib/efl/native/elm/elm_dayselector.rb +1 -1
- data/lib/efl/native/elm/elm_debug.rb +1 -1
- data/lib/efl/native/elm/elm_diskselector.rb +1 -1
- data/lib/efl/native/elm/elm_entry.rb +1 -1
- data/lib/efl/native/elm/elm_fileselector.rb +1 -1
- data/lib/efl/native/elm/elm_fileselector_button.rb +1 -1
- data/lib/efl/native/elm/elm_fileselector_entry.rb +1 -1
- data/lib/efl/native/elm/elm_finger.rb +1 -1
- data/lib/efl/native/elm/elm_flip.rb +1 -1
- data/lib/efl/native/elm/elm_flipselector.rb +1 -1
- data/lib/efl/native/elm/elm_focus.rb +1 -1
- data/lib/efl/native/elm/elm_frame.rb +1 -1
- data/lib/efl/native/elm/elm_gen.rb +1 -1
- data/lib/efl/native/elm/elm_general.rb +1 -1
- data/lib/efl/native/elm/elm_gengrid.rb +1 -1
- data/lib/efl/native/elm/elm_genlist.rb +1 -1
- data/lib/efl/native/elm/elm_gesture_layer.rb +1 -1
- data/lib/efl/native/elm/elm_glview.rb +1 -1
- data/lib/efl/native/elm/elm_grid.rb +1 -1
- data/lib/efl/native/elm/elm_hover.rb +1 -1
- data/lib/efl/native/elm/elm_hoversel.rb +1 -1
- data/lib/efl/native/elm/elm_icon.rb +1 -1
- data/lib/efl/native/elm/elm_image.rb +1 -1
- data/lib/efl/native/elm/elm_index.rb +1 -1
- data/lib/efl/native/elm/elm_inwin.rb +1 -1
- data/lib/efl/native/elm/elm_label.rb +1 -1
- data/lib/efl/native/elm/elm_layout.rb +1 -1
- data/lib/efl/native/elm/elm_list.rb +1 -1
- data/lib/efl/native/elm/elm_mapbuf.rb +1 -1
- data/lib/efl/native/elm/elm_menu.rb +1 -1
- data/lib/efl/native/elm/elm_mirroring.rb +1 -1
- data/lib/efl/native/elm/elm_multibuttonentry.rb +1 -1
- data/lib/efl/native/elm/elm_naviframe.rb +1 -1
- data/lib/efl/native/elm/elm_need.rb +1 -1
- data/lib/efl/native/elm/elm_notify.rb +1 -1
- data/lib/efl/native/elm/elm_object.rb +1 -1
- data/lib/efl/native/elm/elm_object_item.rb +1 -1
- data/lib/efl/native/elm/elm_panel.rb +1 -1
- data/lib/efl/native/elm/elm_panes.rb +1 -1
- data/lib/efl/native/elm/elm_photo.rb +1 -1
- data/lib/efl/native/elm/elm_photocam.rb +1 -1
- data/lib/efl/native/elm/elm_plug.rb +1 -1
- data/lib/efl/native/elm/elm_popup.rb +1 -1
- data/lib/efl/native/elm/elm_progressbar.rb +1 -1
- data/lib/efl/native/elm/elm_radio.rb +1 -1
- data/lib/efl/native/elm/elm_scale.rb +1 -1
- data/lib/efl/native/elm/elm_scroll.rb +1 -1
- data/lib/efl/native/elm/elm_scroller.rb +1 -1
- data/lib/efl/native/elm/elm_segment_control.rb +1 -1
- data/lib/efl/native/elm/elm_separator.rb +1 -1
- data/lib/efl/native/elm/elm_slider.rb +1 -1
- data/lib/efl/native/elm/elm_slideshow.rb +1 -1
- data/lib/efl/native/elm/elm_spinner.rb +1 -1
- data/lib/efl/native/elm/elm_store.rb +1 -1
- data/lib/efl/native/elm/elm_table.rb +1 -1
- data/lib/efl/native/elm/elm_theme.rb +1 -1
- data/lib/efl/native/elm/elm_thumb.rb +1 -1
- data/lib/efl/native/elm/elm_toolbar.rb +1 -1
- data/lib/efl/native/elm/elm_tooltip.rb +1 -1
- data/lib/efl/native/elm/elm_transit.rb +1 -1
- data/lib/efl/native/elm/elm_video.rb +1 -1
- data/lib/efl/native/elm/elm_web.rb +1 -1
- data/lib/efl/native/elm/elm_win.rb +1 -1
- data/lib/efl/native/embryo.rb +1 -1
- data/lib/efl/native/emotion.rb +1 -1
- data/lib/efl/native/ethumb.rb +1 -1
- data/lib/efl/native/ethumb_client.rb +1 -1
- data/lib/efl/native/ethumb_plugin.rb +1 -1
- data/lib/efl/native/evas.rb +1 -1
- data/test/test_button-native.rb +39 -0
- data/test/test_button.rb +40 -0
- data/test/test_checkbox.rb +58 -0
- data/test/test_ecore_pipe-native.rb +52 -0
- data/test/test_ecore_pipe.rb +57 -0
- data/test/test_elm_win-native2.rb +41 -0
- data/test/test_genlist-native.rb +75 -0
- data/test/test_genlist.rb +68 -0
- data/test/test_layout.rb +65 -0
- data/test/test_list.rb +60 -0
- data/test/test_naviframe.rb +59 -0
- data/test/test_panel.rb +88 -0
- data/test/test_panes.rb +74 -0
- metadata +44 -43
- data/lib/efl/native/ebluez.rb +0 -140
- data/lib/efl/native/econnman.rb +0 -253
- data/lib/efl/native/edbus.rb +0 -162
- data/lib/efl/native/ehal.rb +0 -104
- data/lib/efl/native/enotification_daemon.rb +0 -66
- data/lib/efl/native/enotify.rb +0 -170
- data/lib/efl/native/eofono.rb +0 -112
- data/lib/efl/native/eukit.rb +0 -115
- data/tools/check_loading +0 -36
- data/tools/check_specs +0 -24
- data/tools/extract-api.sh +0 -185
- data/tools/genruby.rb +0 -491
- data/tools/install-efl.sh +0 -16
- data/tools/sed-callbacks +0 -28
- data/tools/sed-enums +0 -51
- data/tools/sed-functions +0 -21
- data/tools/sed-types +0 -30
- data/tools/sed-variables +0 -9
data/lib/efl/native/embryo.rb
CHANGED
data/lib/efl/native/emotion.rb
CHANGED
data/lib/efl/native/ethumb.rb
CHANGED
data/lib/efl/native/evas.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/native/elm/elm_win'
|
5
|
+
require 'efl/native/elm/elm_bg'
|
6
|
+
require 'efl/native/elm/elm_button'
|
7
|
+
require 'efl/native/elm/elm_object'
|
8
|
+
#
|
9
|
+
include Efl::Native
|
10
|
+
#
|
11
|
+
elm_init 0, FFI::MemoryPointer::NULL
|
12
|
+
#
|
13
|
+
def on_click data, object, event
|
14
|
+
elm_exit
|
15
|
+
end
|
16
|
+
#
|
17
|
+
win = elm_win_add(nil, "Greetings", 0)
|
18
|
+
elm_win_title_set(win, "Hello, World!")
|
19
|
+
elm_win_autodel_set(win, true)
|
20
|
+
elm_policy_set(0, 1)
|
21
|
+
evas_object_resize(win, 240, 60)
|
22
|
+
evas_object_show(win)
|
23
|
+
#
|
24
|
+
bg = elm_bg_add(win)
|
25
|
+
evas_object_size_hint_weight_set(bg, 1.0, 1.0)
|
26
|
+
elm_win_resize_object_add(win, bg)
|
27
|
+
evas_object_show(bg)
|
28
|
+
#
|
29
|
+
btn = elm_button_add(win)
|
30
|
+
elm_object_part_text_set(btn, nil, "Good-Bye, World!")
|
31
|
+
evas_object_smart_callback_add(btn, "clicked", method(:on_click), nil)
|
32
|
+
evas_object_resize(btn, 120, 30)
|
33
|
+
evas_object_move(btn, 60, 15)
|
34
|
+
evas_object_show(btn)
|
35
|
+
#
|
36
|
+
elm_run
|
37
|
+
elm_shutdown
|
38
|
+
#
|
39
|
+
# EOF
|
data/test/test_button.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/elm/elm_win'
|
5
|
+
require 'efl/elm/elm_bg'
|
6
|
+
require 'efl/elm/elm_button'
|
7
|
+
#
|
8
|
+
include Efl
|
9
|
+
#
|
10
|
+
class MyWin < Elm::ElmWin
|
11
|
+
#
|
12
|
+
def initialize
|
13
|
+
super(nil, "Greetings") do
|
14
|
+
title_set "Hello, World!"
|
15
|
+
resize 240, 60
|
16
|
+
show
|
17
|
+
end
|
18
|
+
@bg = Elm::ElmBg.new(self) do
|
19
|
+
size_hint_weight_expand
|
20
|
+
show
|
21
|
+
end
|
22
|
+
resize_object_add @bg
|
23
|
+
@btn = Elm::ElmButton.new(self) do
|
24
|
+
part_text_set(nil, "Good-Bye, World!")
|
25
|
+
smart_callback_add("clicked", ->(*_) { Elm.exit }, nil)
|
26
|
+
resize 120, 30
|
27
|
+
move 60, 15
|
28
|
+
show
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
#
|
33
|
+
Elm.init
|
34
|
+
#
|
35
|
+
MyWin.new
|
36
|
+
#
|
37
|
+
Elm.run
|
38
|
+
Elm.shutdown
|
39
|
+
#
|
40
|
+
# EOF
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
|
4
|
+
require 'efl/native/elm/elm_win'
|
5
|
+
require 'efl/native/elm/elm_bg'
|
6
|
+
require 'efl/native/elm/elm_check'
|
7
|
+
require 'efl/native/elm/elm_object'
|
8
|
+
require 'efl/native/elm/elm_focus'
|
9
|
+
|
10
|
+
require 'efl/native/ecore'
|
11
|
+
|
12
|
+
include Efl::Native
|
13
|
+
|
14
|
+
elm_init 0, nil
|
15
|
+
|
16
|
+
def cb_change_text (obj)
|
17
|
+
elm_object_part_text_set(obj, nil, "done")
|
18
|
+
# elm_check_state_set(obj, false)
|
19
|
+
end
|
20
|
+
|
21
|
+
def print_cb (data, obj, event)
|
22
|
+
if elm_check_state_get(obj)
|
23
|
+
puts "marked"
|
24
|
+
elm_object_part_text_set(obj, nil, "I feel touched, and I like it")
|
25
|
+
ecore_timer_add(1.0, method(:cb_change_text), obj)
|
26
|
+
else
|
27
|
+
puts "unmarked"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Main Window
|
32
|
+
win = elm_win_add(nil, "Checkbox Test", 0)
|
33
|
+
elm_win_title_set(win, "Test of Checkbox functions")
|
34
|
+
elm_win_autodel_set(win, true)
|
35
|
+
elm_policy_set( Efl::Native.enum_type(:elm_policy)[:elm_policy_quit],
|
36
|
+
Efl::Native.enum_type(:elm_policy_quit)[:elm_policy_quit_last_window_closed])
|
37
|
+
elm_object_focus_set(win, true)
|
38
|
+
evas_object_resize(win, 200, 100)
|
39
|
+
evas_object_show(win)
|
40
|
+
|
41
|
+
# Background
|
42
|
+
bg = elm_bg_add(win)
|
43
|
+
evas_object_size_hint_weight_set(bg, 1.0, 1.0)
|
44
|
+
elm_win_resize_object_add(win, bg)
|
45
|
+
evas_object_show(bg)
|
46
|
+
|
47
|
+
# Checkbox
|
48
|
+
cb = elm_check_add(win)
|
49
|
+
elm_object_part_text_set(cb, nil, "click me!")
|
50
|
+
elm_object_focus_set(cb, true)
|
51
|
+
evas_object_smart_callback_add(cb, "changed", method(:print_cb), nil)
|
52
|
+
evas_object_move(cb, 10, 10)
|
53
|
+
evas_object_resize(cb, 200, 30)
|
54
|
+
evas_object_show(cb)
|
55
|
+
|
56
|
+
elm_run
|
57
|
+
elm_shutdown
|
58
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/native/ecore'
|
5
|
+
require 'efl/native/elm/elm_win'
|
6
|
+
require 'efl/native/elm/elm_bg'
|
7
|
+
require 'efl/native/elm/elm_label'
|
8
|
+
require 'efl/native/elm/elm_object'
|
9
|
+
#
|
10
|
+
include Efl::Native
|
11
|
+
#
|
12
|
+
elm_init 0, FFI::MemoryPointer::NULL
|
13
|
+
#
|
14
|
+
win_del = Proc.new { |data,evas_object,event_info| elm_exit() }
|
15
|
+
#
|
16
|
+
win = elm_win_add nil, "App name", :elm_win_basic
|
17
|
+
elm_win_title_set win, "Window title"
|
18
|
+
evas_object_smart_callback_add win, "delete,request", win_del, nil
|
19
|
+
#
|
20
|
+
bg = elm_bg_add win
|
21
|
+
evas_object_size_hint_weight_set bg, 1.0, 1.0
|
22
|
+
elm_win_resize_object_add win, bg
|
23
|
+
evas_object_show bg
|
24
|
+
#
|
25
|
+
lb = elm_label_add win
|
26
|
+
elm_object_part_text_set lb, nil, "Hello World"
|
27
|
+
evas_object_size_hint_weight_set lb, 1.0, 1.0
|
28
|
+
elm_win_resize_object_add win, lb
|
29
|
+
evas_object_show lb
|
30
|
+
#
|
31
|
+
evas_object_move win, 300, 300
|
32
|
+
evas_object_resize win, 200, 100
|
33
|
+
#
|
34
|
+
evas_object_show win
|
35
|
+
#
|
36
|
+
pipe_cb = Proc.new { |date,buffer,n|
|
37
|
+
elm_object_part_text_set lb, nil, buffer.read_string[0..n-1]
|
38
|
+
}
|
39
|
+
#
|
40
|
+
pipe = ecore_pipe_add pipe_cb, nil
|
41
|
+
#
|
42
|
+
pid = fork {
|
43
|
+
ecore_pipe_read_close(pipe);
|
44
|
+
[ "hello", "dying", "old", "planet", "earth"].each do |w|
|
45
|
+
sleep 1
|
46
|
+
ecore_pipe_write pipe, w, w.length
|
47
|
+
end
|
48
|
+
}
|
49
|
+
#
|
50
|
+
elm_run
|
51
|
+
ecore_pipe_del pipe
|
52
|
+
elm_shutdown
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/ecore'
|
5
|
+
require 'efl/elm/elm_win'
|
6
|
+
require 'efl/elm/elm_bg'
|
7
|
+
require 'efl/elm/elm_label'
|
8
|
+
#
|
9
|
+
include Efl
|
10
|
+
#
|
11
|
+
class MyWin < Elm::ElmWin
|
12
|
+
#
|
13
|
+
attr_reader :pipe
|
14
|
+
def initialize
|
15
|
+
super(nil, "Pipe test") do
|
16
|
+
title_set "Hello, World!"
|
17
|
+
smart_callback_add("delete,request", ->(*_) { Elm.exit }, nil)
|
18
|
+
resize 200, 100
|
19
|
+
show
|
20
|
+
end
|
21
|
+
@bg = Elm::ElmBg.new(self) do
|
22
|
+
size_hint_weight_expand
|
23
|
+
show
|
24
|
+
end
|
25
|
+
resize_object_add @bg
|
26
|
+
#
|
27
|
+
@label = Elm::ElmLabel.new(self) do
|
28
|
+
text_set "Hello World"
|
29
|
+
size_hint_weight_expand
|
30
|
+
show
|
31
|
+
end
|
32
|
+
resize_object_add @label
|
33
|
+
#
|
34
|
+
@pipe = Ecore.ecore_pipe_add(method(:pipe_cb), nil)
|
35
|
+
end
|
36
|
+
#
|
37
|
+
def pipe_cb date, buffer, n
|
38
|
+
@label.text_set buffer.read_string[0..n-1]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
#
|
42
|
+
Elm.init
|
43
|
+
#
|
44
|
+
@win = MyWin.new
|
45
|
+
#
|
46
|
+
pid = fork do
|
47
|
+
Ecore.ecore_pipe_read_close(@win.pipe)
|
48
|
+
[ "hello", "dying", "old", "planet", "earth"].each do |w|
|
49
|
+
sleep 1
|
50
|
+
Ecore.ecore_pipe_write @win.pipe, w, w.length
|
51
|
+
end
|
52
|
+
end
|
53
|
+
Elm.run
|
54
|
+
Ecore.ecore_pipe_del @win.pipe
|
55
|
+
Elm.shutdown
|
56
|
+
#
|
57
|
+
# EOF
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/native/elm/elm_win'
|
5
|
+
require 'efl/native/elm/elm_bg'
|
6
|
+
require 'efl/native/elm/elm_label'
|
7
|
+
require 'efl/native/elm/elm_object'
|
8
|
+
#
|
9
|
+
include Efl
|
10
|
+
#
|
11
|
+
Elm.init 0, FFI::MemoryPointer::NULL
|
12
|
+
#
|
13
|
+
win_del = Proc.new { |data,evas_object,event_info|
|
14
|
+
Elm.exit();
|
15
|
+
}
|
16
|
+
#
|
17
|
+
win = ElmWin.add nil, "App name", :elm_win_basic
|
18
|
+
ElmWin.title_set win, "Window title"
|
19
|
+
Evas.object_smart_callback_add win, "delete,request", win_del, nil
|
20
|
+
#
|
21
|
+
bg = ElmBg.add win
|
22
|
+
Evas.object_size_hint_weight_set bg, 1.0, 1.0
|
23
|
+
ElmWin.resize_object_add win, bg
|
24
|
+
Evas.object_show bg
|
25
|
+
#
|
26
|
+
lb = ElmLabel.add win
|
27
|
+
ElmObject.part_text_set lb, nil, "Hello World"
|
28
|
+
Evas.object_size_hint_weight_set lb, 1.0, 1.0
|
29
|
+
ElmWin.resize_object_add win, lb
|
30
|
+
Evas.object_show lb
|
31
|
+
#
|
32
|
+
Evas.object_move win, 300, 300
|
33
|
+
Evas.object_resize win, 200, 100
|
34
|
+
#
|
35
|
+
Evas.object_show win
|
36
|
+
#
|
37
|
+
|
38
|
+
Elm.run
|
39
|
+
Elm.shutdown
|
40
|
+
#
|
41
|
+
# EOF
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/native/elm/elm_win'
|
5
|
+
require 'efl/native/elm/elm_bg'
|
6
|
+
require 'efl/native/elm/elm_label'
|
7
|
+
require 'efl/native/elm/elm_genlist'
|
8
|
+
#
|
9
|
+
class ElmGenItemClass < FFI::Struct
|
10
|
+
layout :version, :int,
|
11
|
+
:refcount, :uint,
|
12
|
+
:delete_me, :pointer,
|
13
|
+
:item_style, :pointer,
|
14
|
+
:decorate_item_style, :pointer,
|
15
|
+
:decorate_all_item_style, :pointer,
|
16
|
+
:text_get, :pointer,
|
17
|
+
:content_get, :pointer,
|
18
|
+
:state_get, :pointer,
|
19
|
+
:del, :pointer
|
20
|
+
end
|
21
|
+
#
|
22
|
+
include Efl::Native
|
23
|
+
#
|
24
|
+
elm_init 0, FFI::MemoryPointer::NULL
|
25
|
+
#
|
26
|
+
win = elm_win_add(nil, "genlist", 0)
|
27
|
+
elm_win_title_set(win, "Genlist")
|
28
|
+
elm_policy_set(0, 1)
|
29
|
+
elm_win_autodel_set(win, true)
|
30
|
+
#
|
31
|
+
bg = elm_bg_add(win)
|
32
|
+
elm_bg_color_set(bg, 255, 255, 255)
|
33
|
+
evas_object_size_hint_weight_set(bg, 1.0, 1.0)
|
34
|
+
elm_win_resize_object_add(win, bg)
|
35
|
+
evas_object_show(bg)
|
36
|
+
#
|
37
|
+
if !@itc
|
38
|
+
itc_ptr = elm_genlist_item_class_new
|
39
|
+
@itc = ElmGenItemClass.new(itc_ptr)
|
40
|
+
@itc[:item_style] = FFI::MemoryPointer.from_string("default")
|
41
|
+
@itc[:text_get] = FFI::Function.new(:pointer, [:pointer, :pointer, :string]) {|data, *_|
|
42
|
+
ptr = FFI::MemoryPointer.from_string("Item # #{data.read_string}")
|
43
|
+
ptr.autorelease = false
|
44
|
+
ptr
|
45
|
+
}
|
46
|
+
@itc[:content_get] = FFI::Function.new(:pointer, [:pointer, :pointer, :string]) do
|
47
|
+
|data, obj, part|
|
48
|
+
ic = elm_icon_add(obj)
|
49
|
+
elm_icon_standard_set(ic, "clock") if part == "elm.swallow.icon"
|
50
|
+
evas_object_size_hint_aspect_set(ic, 0, 1, 1)
|
51
|
+
ic
|
52
|
+
end
|
53
|
+
@itc[:state_get] = nil
|
54
|
+
@itc[:del] = nil
|
55
|
+
end
|
56
|
+
#
|
57
|
+
list = elm_genlist_add(win)
|
58
|
+
#
|
59
|
+
30.times do |i|
|
60
|
+
elm_genlist_item_append(list, @itc, i.to_s, nil, :elm_genlist_item_none,
|
61
|
+
FFI::Function.new(:pointer, [:pointer, :pointer, :pointer]) {|data, obj, evt|
|
62
|
+
p [:selected, data.read_string] }, i.to_s)
|
63
|
+
end
|
64
|
+
#
|
65
|
+
evas_object_size_hint_weight_set(list, 1.0, 1.0)
|
66
|
+
elm_win_resize_object_add(win, list)
|
67
|
+
evas_object_show(list)
|
68
|
+
#
|
69
|
+
evas_object_resize(win, 200, 300)
|
70
|
+
evas_object_show(win)
|
71
|
+
#
|
72
|
+
elm_run
|
73
|
+
elm_shutdown
|
74
|
+
#
|
75
|
+
# EOF
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# -*- coding: UTF-8 -*-
|
3
|
+
#
|
4
|
+
require 'efl/elementary_all'
|
5
|
+
#
|
6
|
+
class ElmGenItemClass < FFI::Struct
|
7
|
+
layout :version, :int,
|
8
|
+
:refcount, :uint,
|
9
|
+
:delete_me, :pointer,
|
10
|
+
:item_style, :pointer,
|
11
|
+
:decorate_item_style, :pointer,
|
12
|
+
:decorate_all_item_style, :pointer,
|
13
|
+
:text_get, :pointer,
|
14
|
+
:content_get, :pointer,
|
15
|
+
:state_get, :pointer,
|
16
|
+
:del, :pointer
|
17
|
+
end
|
18
|
+
#
|
19
|
+
include Efl
|
20
|
+
#
|
21
|
+
Elm.init
|
22
|
+
#
|
23
|
+
class Window < Elm::ElmWin
|
24
|
+
#
|
25
|
+
def initialize
|
26
|
+
super nil, "genlist"
|
27
|
+
title_set("Genlist")
|
28
|
+
@bg = Elm::ElmBg.new(self) do
|
29
|
+
color_set 255, 255, 255
|
30
|
+
size_hint_weight_expand
|
31
|
+
show
|
32
|
+
end
|
33
|
+
resize_object_add(@bg)
|
34
|
+
@itc = ElmGenItemClass.new(Native.elm_genlist_item_class_new)
|
35
|
+
@itc[:item_style] = FFI::MemoryPointer.from_string("default")
|
36
|
+
@itc[:text_get] = FFI::Function.new(:pointer, [:pointer, :pointer, :string]) do |data, *_|
|
37
|
+
ptr = FFI::MemoryPointer.from_string("Item # #{data.read_string}")
|
38
|
+
ptr.autorelease = false
|
39
|
+
ptr
|
40
|
+
end
|
41
|
+
@itc[:content_get] = FFI::Function.new(:pointer, [:pointer, :pointer, :string]) do |data, obj, part|
|
42
|
+
Elm::ElmIcon.new(self) do
|
43
|
+
standard_set(part == "elm.swallow.icon" ? "home" : "clock")
|
44
|
+
size_hint_aspect_set 0, 1, 1
|
45
|
+
end.to_ptr
|
46
|
+
end
|
47
|
+
@list = Elm::ElmGenList.new(self) do
|
48
|
+
size_hint_weight_expand
|
49
|
+
show
|
50
|
+
end
|
51
|
+
30.times do |i|
|
52
|
+
@list.item_append(@itc, i.to_s, nil, :elm_genlist_item_none,
|
53
|
+
FFI::Function.new(:pointer, [:pointer, :pointer, :pointer]) {|data, obj, evt|
|
54
|
+
p [:selected, data.read_string] }, i.to_s)
|
55
|
+
end
|
56
|
+
resize_object_add(@list)
|
57
|
+
smart_callback_add "delete,request", ->(*_) { Elm.exit }, nil
|
58
|
+
resize 200, 300
|
59
|
+
show
|
60
|
+
end
|
61
|
+
end
|
62
|
+
#
|
63
|
+
Window.new
|
64
|
+
#
|
65
|
+
Elm.run
|
66
|
+
Elm.shutdown
|
67
|
+
#
|
68
|
+
# EOF
|