summaryrefslogtreecommitdiffstats
path: root/test/test_list.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_list.rb')
-rw-r--r--test/test_list.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/test_list.rb b/test/test_list.rb
new file mode 100644
index 0000000..583a5bd
--- /dev/null
+++ b/test/test_list.rb
@@ -0,0 +1,60 @@
+#! /usr/bin/env ruby
+# -*- coding: UTF-8 -*-
+#
+require 'efl/elm/elm_win'
+require 'efl/elm/elm_bg'
+require 'efl/elm/elm_list'
+#
+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
+ _self = self
+ @bg = Elm::ElmBg.new(self) do
+ size_hint_weight_expand
+ evas_object_color_set 150,180,100,180
+
+ show
+ end
+ resize_object_add @bg
+ @list = Elm::ElmList.new(self) do
+ Dir.entries(ENV["HOME"]).each do |entry|
+ next if entry[0] == '.'
+ item_append entry, nil, nil, _self.method(:on_select),
+ FFI::MemoryPointer.from_string(entry)
+ end
+ size_hint_weight_expand
+ show
+ end
+ resize_object_add @list
+ end
+ #
+ def on_select data, evas_object, event_info
+ p [:selected, data.read_string]
+ end
+ #
+ def on_delete data, evas_object, event_info
+ puts "EXIT #{data.read_string}"
+ Elm.exit
+ end
+end
+#
+Elm.init
+#
+win = MyWin.new "MyList", "List Example" do
+ alpha_set true
+ resize 300, 200
+ center_set 600, 300
+ show
+end
+#
+Elm.run
+Elm.shutdown