thanatermesis pushed a commit to branch master. http://git.enlightenment.org/bindings/ruby/ffi-efl.git/commit/?id=63951e9d43b56080c118a517f002fc00243ff0ba
commit 63951e9d43b56080c118a517f002fc00243ff0ba Author: Thanatermesis <[email protected]> Date: Fri Nov 28 12:36:06 2014 +0100 Example code for list with buttons This example is very simple and plain but can be used as a demo of how to make a list with buttons --- test/test_list_buttons-native.rb | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/test/test_list_buttons-native.rb b/test/test_list_buttons-native.rb new file mode 100644 index 0000000..3e6607f --- /dev/null +++ b/test/test_list_buttons-native.rb @@ -0,0 +1,71 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +# This is a very simple, plain and no-dynamic code that shows how to make a simple list with buttons on it +# +# +require 'efl/elm/elm_win' +require 'efl/elm/elm_icon' +require 'efl/elm/elm_button' +require 'efl/elm/elm_object' +require 'efl/elm/elm_bg' +require 'efl/elm/elm_list' +# +include Efl::Native + +def bt_clicked data, object, event + puts "button clicked" +end + +def it_clicked data, object, event + puts "item clicked" +end + + +# +elm_init 0, FFI::MemoryPointer::NULL +# +win = elm_win_add(nil, "list button", 0) +elm_win_title_set(win, "ListButton") +elm_policy_set(0, 1) +elm_win_autodel_set(win, true) +# +bg = elm_bg_add(win) +elm_bg_color_set(bg, 255, 255, 255) +evas_object_size_hint_weight_set(bg, 1.0, 1.0) +elm_win_resize_object_add(win, bg) +evas_object_show(bg) + +li = elm_list_add(win) +evas_object_size_hint_weight_set(li, 1.0, 1.0) +elm_win_resize_object_add(win, li) +elm_list_mode_set(li, 1) +evas_object_show(li) + +#ic = elm_icon_add(win) +##snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get()) +#elm_image_resizable_set(ic, EINA_FALSE, EINA_FALSE) +#elm_image_file_set(ic, buf, NULL) +ic2 = elm_button_add(win) +elm_object_part_text_set(ic2, nil, "Click me") +evas_object_smart_callback_add(ic2, "clicked", method(:bt_clicked), nil) +evas_object_propagate_events_set(ic2, false) +elm_list_item_append(li, "Hello", nil, ic2, method(:it_clicked), nil) +evas_object_show(ic2) + +ic3 = elm_button_add(win) +elm_object_part_text_set(ic3, nil, "Click me") +evas_object_smart_callback_add(ic3, "clicked", method(:bt_clicked), nil) +evas_object_propagate_events_set(ic3, false) + +# elm_list_item_append is what adds entries, you can add optionally evas objetcts like buttons or icons in the start and/or the end of each entry +elm_list_item_append(li, "Hello", nil, ic3, method(:it_clicked), nil) +evas_object_show(ic3) + +# +evas_object_resize(win, 200, 300) +evas_object_show(win) +# +elm_run +elm_shutdown +# --
