Sha256: f92990d0eaf77b2b83ad829b5566d6fcb287873b00b3fdb6628dcad46b0e4a26

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

module RAutomation
  module Implementations
    module AutoIt
      class Button
        include WaitHelper
        include Locators

        # Special-cased locators
        LOCATORS = {:class_name => :classnn}

        # Possible locators are :text, :id, :class, :class_name and :instance.
        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.0.1 lib/rautomation/implementations/autoit/button.rb