Sha256: ab8920fef8e68686e7ea2864728b5815b568f7d896e595e77c40fbd7f56cb6d3

Contents?: true

Size: 891 Bytes

Versions: 19

Compression:

Stored size: 891 Bytes

Contents

module RAutomation
  module Adapter
    module MsUia
      class Menu
        attr_reader :menu_items
        attr_reader :window

        def initialize(window, locator)
          @menu_items = [] << locator[:text]
          @window = window
        end

        def menu(locator)
          @menu_items << locator[:text]
          self
        end

        def exists?
          UiaDll::menu_item_exists window.hwnd, *menu_items_arg
        end

        def open
          error_info = FFI::MemoryPointer.new :char, 1024
          UiaDll::select_menu_item window.hwnd, error_info, 1024, *menu_items_arg
          error = error_info.get_string 0
          raise error unless error.empty?
        end

        private
        def menu_items_arg
          menu_items.map {|s| [:string, s]}.flatten << :pointer << nil
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
rautomation-2.0.1-x86-mingw32 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-2.0.1-x64-mingw32 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-1.1.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-1.0.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.17.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.16.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.15.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.14.1 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.14.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.13.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.12.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.11.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.10.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.9.4 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.9.3 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.9.2 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.9.1 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.9.0 lib/rautomation/adapter/ms_uia/menu.rb
rautomation-0.8.0 lib/rautomation/adapter/ms_uia/menu.rb