1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#! /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
# standards calls
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
# use xxx_set helpers
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.texts_set "Snooze", nil, "Stop"
as.indicator_set 'c'
as.magnet_set 'c'
as.enabled_set 'lr'
as.smart_callback_add "selected", method(:cb_pos_selected)
as.show
end
@bx.pack_end as
# use xxx = helpers
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.texts = nil, "Accept", "Reject"
as.indicator = 'l'
as.magnet = 'cr'
as.enabled = 'cr'
as.smart_callback_add "selected", method(:cb_pos_selected)
as.show
end
@bx.pack_end as
# use setup
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.setup [nil, "Accept", "Reject"], 'l', 'l', 'a'
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.setup ["Left", "Center", "right"], 'l', 'a'
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.setup ["Enable", "Magnet", "Disable"], 'c', 'c'
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
|