Sha256: fe3b56c914d5da312e58b7700c8f369a5dbfafaf380f5b4f4a8c944d3b6f2ec0

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

module RAutomation
  module Adapter
    module Autoit
      class Button
        include WaitHelper
        include Locators

        # Special-cased locators
        LOCATORS = {
                [:class, Regexp] => :regexpclass,
                :index => :instance,
                :value => :text
        }

        # Possible locators are :value, :id, :class and :index.
        def initialize(window, locators)
          @window = window
          extract(locators)
        end

        def click #:nodoc:
          clicked = false
          wait_until do
            @window.activate
            @window.active? &&
                    Window.autoit.ControlFocus(@window.locator_hwnd, "", @locators) == 1 &&
                    Window.autoit.ControlClick(@window.locator_hwnd, "", @locators) == 1 &&
                    clicked = true # is clicked at least once

            clicked && !exists?
          end
        end

        def value #:nodoc:
          Window.autoit.ControlGetText(@window.locator_hwnd, "", @locators)
        end

        def exists? #:nodoc:
          not Window.autoit.ControlGetHandle(@window.locator_hwnd, "", @locators).empty?
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rautomation-0.1.0 lib/rautomation/adapter/autoit/button.rb