#! /usr/bin/env ruby # -*- coding: UTF-8 -*- # module Tests # class TestActionSlider < Efl::Elm::ElmWin def initialize name, title, fct super nil, name self.title = title self.autodel = true self.send fct self.resize 320, 400 self.show end def simple @bg = Elm::ElmBg.new self do |bg| bg.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 self.resize_object_add bg bg.show end @bx = Elm::ElmBox.new self do |bx| bx.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 self.resize_object_add bx bx.show end as_pos = Native.enum_type :elm_actionslider_pos as = Elm::ElmActionSlider.new self do |as| as.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 as.size_hint_align_set Evas::EVAS_HINT_FILL, 0 as.text_part = "left", "Snooze" as.text_part = "center", nil as.text_part = "right", "Stop" as.indicator_pos = :elm_actionslider_right as.magnet_pos = :elm_actionslider_right as.enabled_pos = as_pos[:elm_actionslider_left]|as_pos[:elm_actionslider_right] as.smart_callback_add "selected", method(:cb_pos_selected) as.smart_callback_add "pos_changed", method(:cb_position_change_magnetic) as.show end @bx.pack_end as as = Elm::ElmActionSlider.new self do |as| as.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 as.size_hint_align_set Evas::EVAS_HINT_FILL, 0 as.text_part = "left", "Snooze" as.text_part = "center", nil as.text_part = "right", "Stop" as.indicator_pos = :elm_actionslider_center as.magnet_pos = :elm_actionslider_center as.enabled_pos = as_pos[:elm_actionslider_left]|as_pos[:elm_actionslider_right] as.smart_callback_add "selected", method(:cb_pos_selected) as.show end @bx.pack_end as as = Elm::ElmActionSlider.new self do |as| as.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 as.size_hint_align_set Evas::EVAS_HINT_FILL, 0 as.style = "bar" as.text_part = "left", nil as.text_part = "center", "Accept" as.text_part = "right", "Reject" as.indicator_pos = :elm_actionslider_left as.magnet_pos = as_pos[:elm_actionslider_center]|as_pos[:elm_actionslider_right] as.enabled_pos = as_pos[:elm_actionslider_center]|as_pos[:elm_actionslider_right] as.smart_callback_add "selected", method(:cb_pos_selected) as.show end @bx.pack_end as as = Elm::ElmActionSlider.new self do |as| as.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 as.size_hint_align_set Evas::EVAS_HINT_FILL, 0 as.style = "bar" as.text = "Go" as.text_part = "left", nil as.text_part = "center", "Accept" as.text_part = "right", "Reject" as.indicator_pos = :elm_actionslider_left as.magnet_pos = :elm_actionslider_left as.smart_callback_add "selected", method(:cb_pos_selected) as.smart_callback_add "pos_changed", method(:cb_position_change_magnetic) as.show end @bx.pack_end as as = Elm::ElmActionSlider.new self do |as| as.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 as.size_hint_align_set Evas::EVAS_HINT_FILL, 0 as.text = "Go" as.text_part = "left", "Left" as.text_part = "center", "Center" as.text_part = "right", "Right" as.indicator_pos = :elm_actionslider_left as.magnet_pos = :elm_actionslider_all as.smart_callback_add "selected", method(:cb_pos_selected) as.show end @bx.pack_end as as = Elm::ElmActionSlider.new self do |as| as.size_hint_weight_set Evas::EVAS_HINT_EXPAND, 0 as.size_hint_align_set Evas::EVAS_HINT_FILL, 0 as.text = "Go" as.text_part = "left", "Enable" as.text_part = "center", "Magnet" as.text_part = "right", "Disable" as.indicator_pos = :elm_actionslider_center as.magnet_pos = :elm_actionslider_center as.smart_callback_add "selected", method(:cb_pos_selected) as.smart_callback_add "pos_changed", method(:cb_magnet_enable_disable) as.show end @bx.pack_end as end def cb_pos_selected data, evas_obj, event_info as = Elm::ElmActionSlider.new evas_obj puts "Selection #{event_info.null? ? 'NULL' : event_info.read_string}" puts " label: #{Elm::ElmActionSlider.new(evas_obj).selected_label}" end def cb_position_change_magnetic data, evas_obj, event_info as = Elm::ElmActionSlider.new evas_obj return if event_info.null? case event_info.read_string when "left" as.magnet_pos = :elm_actionslider_left when "right" as.magnet_pos = :elm_actionslider_right end end def cb_magnet_enable_disable data, evas_obj, event_info as = Elm::ElmActionSlider.new evas_obj return if event_info.null? case event_info.read_string when "left" as.magnet_pos = :elm_actionslider_center when "right" as.magnet_pos = :elm_actionslider_none end end end # def self.test_actionslider TestActionSlider.new 'actionslider', 'Actionslider', :simple end # end # # EOF