summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2011-08-19 15:21:56 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2011-08-19 15:21:56 +0200
commit2d6acef504bc71cc0af588dbc3ed5bf56b349378 (patch)
tree5f80e60c92a0fb3d487d5d1601061bbfcca21736
parent0112867934acf482154e8ac315e68ed3afbde5b7 (diff)
downloadffi-efl-2d6acef504bc71cc0af588dbc3ed5bf56b349378.zip
ffi-efl-2d6acef504bc71cc0af588dbc3ed5bf56b349378.tar.gz
test_elementary : implement plain, image and options bg tests
-rw-r--r--test/test_elementary.rb38
-rw-r--r--test/tests/test_bg.rb151
2 files changed, 182 insertions, 7 deletions
diff --git a/test/test_elementary.rb b/test/test_elementary.rb
index 5356294..ffe542c 100644
--- a/test/test_elementary.rb
+++ b/test/test_elementary.rb
@@ -2,8 +2,13 @@
# -*- coding: UTF-8 -*-
#
require 'efl/elementary'
+require 'efl/edje'
require 'efl'
#
+Dir.glob( File.join File.dirname(__FILE__), 'tests', '*.rb').each do |f|
+ load f
+end
+#
include Efl;
#
TESTS = [
@@ -189,7 +194,6 @@ class TestWin < Elm::ElmWin
li.size_hint_weight_expand
li.size_hint_align_set_fill
@bx0.pack_end li
- li.show
end
@idx = Elm::ElmIndex.new self do |idx|
idx.smart_callback_add 'delay,changed', method(:index_changed)
@@ -198,8 +202,16 @@ class TestWin < Elm::ElmWin
idx.show
end
ch = nil
- TESTS.each do |l,m|
- it = @li.item_append l, nil, nil, method(:fake)
+ TESTS.sort.each do |l,m|
+ icon = nil
+ if Tests.respond_to? m
+ # TODO dosen't work ?????
+ icon = Elm::ElmIcon.new self
+ icon.file = "#{Efl::PACKAGE_DATA_DIR}/elementary/images/icon_00.png", nil
+ icon.scale = true, true
+ end
+ it = @li.item_append l, nil, icon, method(:try_test), FFI::MemoryPointer.from_string(m.to_s)
+ it.del_cb_set method(:free_list_item)
if l[0]!=ch
ch = l[0]
@idx.item_append ch.to_s, it
@@ -207,10 +219,16 @@ class TestWin < Elm::ElmWin
end
@idx.item_go 0
@li.go
+ @li.show
end
#
- def fake data, evas_obj, event_info
- puts 'FAKE'
+ def try_test data, evas_obj, event_info
+ fct = data.read_string
+ begin
+ Tests.send fct
+ rescue NoMethodError
+ puts "#{fct} not implemeneted yet"
+ end
end
#
def tg_changed data, evas_obj, event_info
@@ -221,6 +239,11 @@ class TestWin < Elm::ElmWin
Native.elm_list_item_show event_info
end
#
+ def free_list_item data, evas_obj, event_info
+ # free FFI::MemoryPointer.from_string m.to_s
+ data.free
+ end
+ #
def on_delete data, evas_object, event_info
Elm.exit
end
@@ -234,9 +257,10 @@ end
#
Elm.init
#
+#Native.elm_app_compile_bin_dir_set PACKAGE_BIN_DIR
+#Native.elm_app_compile_lib_dir_set PACKAGE_LIB_DIR
+#Native.elm_app_compile_data_dir_set PACKAGE_DATA_DIR
Native.elm_app_info_set elm_main, 'elementary', 'images/logo.png'
-Native.elm_app_compile_bin_dir_set PACKAGE_BIN_DIR
-Native.elm_app_compile_data_dir_set PACKAGE_DATA_DIR
#
Elm.run
Elm.shutdown
diff --git a/test/tests/test_bg.rb b/test/tests/test_bg.rb
new file mode 100644
index 0000000..7f613eb
--- /dev/null
+++ b/test/tests/test_bg.rb
@@ -0,0 +1,151 @@
+#! /usr/bin/env ruby
+# -*- coding: UTF-8 -*-
+#
+module Tests
+ #
+ class TestBg < Efl::Elm::ElmWin
+ def initialize name, title, fct
+ super nil, name
+ self.title = title
+ self.autodel = true
+ self.send fct
+ @bg.size_hint_min = 160, 160
+ @bg.size_hint_max = 640, 640
+ self.resize 320, 230
+ self.show
+ end
+ def plain_bg
+ @bg = Elm::ElmBg.new self do |bg|
+ bg.size_hint_weight_expand
+ self.resize_object_add bg
+ bg.show
+ end
+ end
+ def image_bg
+ @bg = Elm::ElmBg.new self do |bg|
+ bg.file = "#{Efl::PACKAGE_DATA_DIR}/elementary/images/plant_01.jpg", nil
+ bg.size_hint_weight_expand
+ self.resize_object_add bg
+ bg.show
+ end
+ end
+ def options_bg
+ plain_bg
+ @bx = Elm::ElmBox.new self do |bx|
+ bx.size_hint_weight_expand
+ self.resize_object_add bx
+ bx.show
+ end
+ @o_bg = Elm::ElmBg.new self do |bg|
+ bg.file = "#{Efl::PACKAGE_DATA_DIR}/elementary/images/plant_01.jpg", nil
+ bg.size_hint_weight_expand
+ bg.size_hint_align_fill
+ @bx.pack_end bg
+ bg.show
+ end
+ @hbx = Elm::ElmBox.new self do |bx|
+ bx.horizontal = true
+ bx.size_hint_weight_expand_fill
+ bx.size_hint_align_fill
+ end
+ @rdg = Elm::ElmRadio.new self do |r|
+ r.state_value = :elm_bg_option_center
+ r.text = "Center"
+ r.size_hint_weight_expand_fill
+ r.smart_callback_add "changed", method(:cb_radio_changed)
+ @hbx.pack_end r
+ r.show
+ end
+ Elm::ElmRadio.new self do |r|
+ r.state_value = :elm_bg_option_scale
+ r.group_add @rdg
+ r.text = "Scale"
+ r.size_hint_weight_expand_fill
+ r.smart_callback_add "changed", method(:cb_radio_changed)
+ @hbx.pack_end r
+ r.show
+ end
+ Elm::ElmRadio.new self do |r|
+ r.state_value = :elm_bg_option_stretch
+ r.group_add @rdg
+ r.text = "Stretch"
+ r.size_hint_weight_expand_fill
+ r.smart_callback_add "changed", method(:cb_radio_changed)
+ @hbx.pack_end r
+ r.show
+ end
+ Elm::ElmRadio.new self do |r|
+ r.state_value = :elm_bg_option_tile
+ r.group_add @rdg
+ r.text = "Tile"
+ r.size_hint_weight_expand_fill
+ r.smart_callback_add "changed", method(:cb_radio_changed)
+ @hbx.pack_end r
+ r.show
+ end
+ @rdg.value_set :elm_bg_option_scale
+ Elm::ElmCheck.new self do |ck|
+ ck.text = "Show Overlay"
+ ck.size_hint_weight_expand_fill
+ ck.smart_callback_add "changed", method(:cb_overlay_changed)
+ @hbx.pack_end ck
+ ck.show
+ end
+ Elm::ElmSpinner.new self do |sp|
+ sp.style = "vertical"
+ sp.min_max = 1, 4
+ sp.label_format = "%.0f"
+ sp.editable = false
+ sp.special_value_add 1, "White"
+ sp.special_value_add 2, "Red"
+ sp.special_value_add 3, "Blue"
+ sp.special_value_add 4, "Green"
+ sp.size_hint_weight_expand
+ sp.size_hint_align_fill
+ sp.smart_callback_add "changed", method(:cb_color_changed)
+ @hbx.pack_end sp
+ sp.show
+ end
+ @bx.pack_end @hbx
+ @hbx.show
+ end
+ def cb_radio_changed data, evas_obj, event_info
+ @o_bg.option = Elm::ElmRadio.new(evas_obj).value
+ end
+ def cb_overlay_changed data, evas_obj, event_info
+ if Elm::ElmCheck.new(evas_obj).state
+ over = @o_bg.parent_widget.evas.edje_object_add
+ over.file = File.join(Efl::PACKAGE_DATA_DIR,'elementary/objects/test.edj'), "bg_overlay"
+ @o_bg.overlay = over
+ else
+ @o_bg.overlay = FFI::Pointer::NULL
+ end
+ end
+ def cb_color_changed data, evas_obj, event_info
+ case Elm::ElmSpinner.new(evas_obj).value
+ when 1.0
+ @o_bg.color = 255, 255, 255
+ when 2.0
+ @o_bg.color = 255, 0, 0
+ when 3.0
+ @o_bg.color = 0, 0, 255
+ when 4.0
+ @o_bg.color = 0, 255, 0
+ end
+ end
+ end
+ #
+ def self.test_bg_plain
+ TestBg.new 'bg-plain', 'Bg Plain', :plain_bg
+ end
+ #
+ def self.test_bg_image
+ TestBg.new 'bg-image', 'Bg Image', :image_bg
+ end
+ def self.test_bg_options
+ TestBg.new 'bg-options', 'Bg Options', :options_bg
+ end
+#
+end
+#
+# EOF