Class: RAutomation::Adapter::MsUia::ListBox
Instance Method Summary
collapse
Methods inherited from Control
#assert_enabled, #bounding_rectangle, #click, #control_class, #control_name, #disabled?, #enabled?, #get_current_control_type, #has_focus?, #hwnd, #initialize, #matches_type?, #new_pid, #set_focus, #uia_element, #visible?
Instance Method Details
#count
9
10
11
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 9
def count
UiaDll::find_children(uia_element, nil)
end
|
#exist? ⇒ Boolean
Also known as:
exists?
#get_top_index
75
76
77
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 75
def get_top_index
Functions.send_message(hwnd, Constants::LB_GETTOPINDEX, 0 ,nil)
end
|
#items
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 13
def items
list_items = []
children = FFI::MemoryPointer.new :pointer, self.count
length = UiaDll::find_children(uia_element, children)
children.read_array_of_pointer(length).each do |child|
if (UiaDll::current_control_type(child) == Constants::UIA_LIST_ITEM_CONTROL_TYPE) or (UiaDll::current_control_type(child) == Constants::UIA_DATA_ITEM_CONTROL_TYPE)
child_name = FFI::MemoryPointer.new :char, UiaDll::get_name(child, nil) + 1
UiaDll::get_name(child, child_name)
list_items.push(@window.list_item(:value => child_name.read_string))
end
end
list_items
end
|
#list_boundary
67
68
69
70
71
72
73
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 67
def list_boundary
boundary = FFI::MemoryPointer.new :long, 4
Functions.send_message(hwnd, Constants::LB_GETITEMRECT, 0 ,boundary)
boundary.read_array_of_long(4)
end
|
#list_item_height
79
80
81
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 79
def list_item_height
Functions.send_message(hwnd, Constants::LB_GETITEMHEIGHT, 0 ,nil)
end
|
83
84
85
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 83
def scroll_to_item(row)
Functions.send_message(hwnd, Constants::LB_SETTOPINDEX, row ,nil)
end
|
#select(index)
57
58
59
60
61
62
63
64
65
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 57
def select(index)
children = FFI::MemoryPointer.new :pointer, self.count
length = UiaDll::find_children(uia_element, children)
target_element = children.read_array_of_pointer(length)[index]
UiaDll::select(target_element)
end
|
#selected?(index) ⇒ Boolean
49
50
51
52
53
54
55
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 49
def selected?(index)
if items[index]
return items[index].selected?
end
false
end
|
#strings
29
30
31
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 29
def strings
items.collect { |item| item.value}
end
|
#value
33
34
35
36
37
38
39
40
41
|
# File 'lib/rautomation/adapter/ms_uia/list_box.rb', line 33
def value
count.times do |index|
if selected?(index)
return strings[index]
end
end
""
end
|