Class: RAutomation::Adapter::Win32::SelectList

Inherits:
Control
  • Object
show all
Includes:
WaitHelper
Defined in:
lib/rautomation/adapter/win_32/select_list.rb

Defined Under Namespace

Classes: SelectListOption

Constant Summary collapse

DEFAULT_LOCATORS =

Default locators used for searching buttons.

{:class => /combobox/i}

Instance Method Summary collapse

Methods inherited from Control

#class_name, #click, #disabled?, #enabled?, #exist?, #focus, #focused?, #hwnd, #initialize

Constructor Details

This class inherits a constructor from RAutomation::Adapter::Win32::Control

Instance Method Details

#dropbox_boundary



76
77
78
79
80
81
82
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 76

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

#get_top_index



84
85
86
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 84

def get_top_index
  Functions.send_message(hwnd, Constants::CB_GETTOPINDEX, 0 ,nil)
end

#list_item_height



72
73
74
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 72

def list_item_height
  Functions.send_message(hwnd, Constants::CB_GETITEMHEIGHT, 0 ,nil)
end

#option(options)



55
56
57
58
59
60
61
62
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 55

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 = {})



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 34

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

#select(index)



64
65
66
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 64

def select(index)
  Functions.send_message(hwnd, Constants::CB_SETCURSEL, index, nil) != Constants::CB_ERR
end

#set(text)



68
69
70
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 68

def set(text)
  option(:text => text).set
end

#value



50
51
52
53
# File 'lib/rautomation/adapter/win_32/select_list.rb', line 50

def value
  selected_option = options.find { |option| option.selected? }
  selected_option ? selected_option.text : ""
end