Class: RAutomation::Adapter::MsUia::SelectList
Defined Under Namespace
Classes: SelectListOption
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, #matches_type?, #new_pid, #set_focus, #uia_element, #visible?
Constructor Details
#initialize(window, locators) ⇒ SelectList
todo - replace with UIA version
35
36
37
38
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 35
def initialize(window, locators)
super
@hwnd = Functions.control_hwnd(@window.hwnd, @locators)
end
|
Instance Method Details
#control_hwnd
77
78
79
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 77
def control_hwnd
@hwnd
end
|
#dropbox_boundary
89
90
91
92
93
94
95
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 89
def dropbox_boundary
boundary = FFI::MemoryPointer.new :long, 4
Functions.send_message(@hwnd, Constants::CB_GETDROPPEDCONTROLRECT, 0 ,boundary)
boundary.read_array_of_long(4)
end
|
#exist? ⇒ Boolean
Also known as:
exists?
#get_top_index
97
98
99
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 97
def get_top_index
Functions.send_message(@hwnd, Constants::CB_GETTOPINDEX, 0 ,nil)
end
|
#list_item_height
85
86
87
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 85
def list_item_height
Functions.send_message(@hwnd, Constants::CB_GETITEMHEIGHT, 0 ,nil)
end
|
#option(options)
todo - replace with UIA version
68
69
70
71
72
73
74
75
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 68
def option(options)
item_count.times do |item_no|
item = Functions.retrieve_combobox_item_text(@hwnd, item_no)
return SelectListOption.new(self, item, item_no) if options[:text] == item
end
nil
end
|
#options(options = {})
todo - replace with UIA version
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 46
def options(options = {})
items = []
item_count.times do |item_no|
item = Functions.retrieve_combobox_item_text(@hwnd, item_no)
if options[:text]
items.push(SelectListOption.new(self, item, item_no)) if options[:text] == item
else
items.push(SelectListOption.new(self, item, item_no))
end
end
items
end
|
101
102
103
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 101
def scroll_to_item(row)
Functions.send_message(@hwnd, Constants::CB_SETTOPINDEX , row ,nil)
end
|
#select(index)
81
82
83
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 81
def select(index)
Functions.send_message(@hwnd, Constants::CB_SETCURSEL, index, nil) != Constants::CB_ERR
end
|
#set(value)
40
41
42
43
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 40
def set(value)
list = UiaDll::element_from_handle(@hwnd)
UiaDll::set_value(list, value)
end
|
#value
62
63
64
65
|
# File 'lib/rautomation/adapter/ms_uia/select_list.rb', line 62
def value
selected_option = options.find { |option| option.selected? }
selected_option ? selected_option.text : ""
end
|