atspi 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.yardopts +2 -0
  4. data/Gemfile +3 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +69 -0
  7. data/Rakefile +2 -0
  8. data/atspi.gemspec +23 -0
  9. data/bin/console +7 -0
  10. data/lib/atspi/accessible/action.rb +45 -0
  11. data/lib/atspi/accessible/children/selected.rb +32 -0
  12. data/lib/atspi/accessible/children.rb +72 -0
  13. data/lib/atspi/accessible/descendants/attribute_filter.rb +32 -0
  14. data/lib/atspi/accessible/descendants/interface_filter.rb +24 -0
  15. data/lib/atspi/accessible/descendants/name_filter.rb +18 -0
  16. data/lib/atspi/accessible/descendants/options.rb +49 -0
  17. data/lib/atspi/accessible/descendants/role_filter.rb +23 -0
  18. data/lib/atspi/accessible/descendants/state_filter.rb +23 -0
  19. data/lib/atspi/accessible/descendants.rb +278 -0
  20. data/lib/atspi/accessible/document.rb +26 -0
  21. data/lib/atspi/accessible/extents.rb +129 -0
  22. data/lib/atspi/accessible/hyperlink/anchor.rb +30 -0
  23. data/lib/atspi/accessible/hyperlink.rb +31 -0
  24. data/lib/atspi/accessible/image.rb +35 -0
  25. data/lib/atspi/accessible/selectable.rb +47 -0
  26. data/lib/atspi/accessible/table/cell/columns.rb +44 -0
  27. data/lib/atspi/accessible/table/cell/rows.rb +44 -0
  28. data/lib/atspi/accessible/table/cell.rb +18 -0
  29. data/lib/atspi/accessible/table/cells.rb +37 -0
  30. data/lib/atspi/accessible/table/column.rb +59 -0
  31. data/lib/atspi/accessible/table/columns/selected.rb +42 -0
  32. data/lib/atspi/accessible/table/columns.rb +34 -0
  33. data/lib/atspi/accessible/table/row.rb +59 -0
  34. data/lib/atspi/accessible/table/rows/selected.rb +42 -0
  35. data/lib/atspi/accessible/table/rows.rb +31 -0
  36. data/lib/atspi/accessible/table.rb +50 -0
  37. data/lib/atspi/accessible/text/caret.rb +31 -0
  38. data/lib/atspi/accessible/text/character.rb +45 -0
  39. data/lib/atspi/accessible/text/editable.rb +90 -0
  40. data/lib/atspi/accessible/text/hyperlink.rb +19 -0
  41. data/lib/atspi/accessible/text/hypertext.rb +29 -0
  42. data/lib/atspi/accessible/text/offset.rb +59 -0
  43. data/lib/atspi/accessible/text/range.rb +66 -0
  44. data/lib/atspi/accessible/text/selection.rb +48 -0
  45. data/lib/atspi/accessible/text.rb +120 -0
  46. data/lib/atspi/accessible/value.rb +47 -0
  47. data/lib/atspi/accessible.rb +267 -0
  48. data/lib/atspi/application.rb +46 -0
  49. data/lib/atspi/collection.rb +60 -0
  50. data/lib/atspi/desktop.rb +52 -0
  51. data/lib/atspi/extents.rb +28 -0
  52. data/lib/atspi/libatspi.rb +7 -0
  53. data/lib/atspi/requires.rb +76 -0
  54. data/lib/atspi/selectable_collection/selected.rb +23 -0
  55. data/lib/atspi/selectable_collection.rb +32 -0
  56. data/lib/atspi/state_set.rb +141 -0
  57. data/lib/atspi/version.rb +4 -0
  58. data/lib/atspi/window.rb +33 -0
  59. data/lib/atspi.rb +58 -0
  60. metadata +132 -0
@@ -0,0 +1,52 @@
1
+ module ATSPI
2
+ # Desktops are Accessibles having a few exceptions.
3
+ class Desktop < Accessible
4
+ # @!group Identification
5
+ # It has no parent.
6
+ # @return [nil]
7
+ def parent
8
+ nil
9
+ end
10
+
11
+ # It has no path.
12
+ # @return [[]]
13
+ def path
14
+ []
15
+ end
16
+
17
+ # Its desktop is itself.
18
+ # @return [self]
19
+ def desktop
20
+ self
21
+ end
22
+
23
+ # It belongs to no application.
24
+ # @return nil
25
+ def application
26
+ nil
27
+ end
28
+
29
+ # It has no window.
30
+ # @return nil
31
+ def window
32
+ nil
33
+ end
34
+ # @!endgroup
35
+
36
+ # @!group Tree & Traversal
37
+ # Its applications are its children.
38
+ # @param (see Accessible#children)
39
+ # @return (see Accessible#children)
40
+ def applications
41
+ children
42
+ end
43
+ # @!endgroup
44
+
45
+ # @!group Representations
46
+ # @return [String] itself as an inspectable string
47
+ def inspect
48
+ "#<#{self.class.name}:0x#{'%x14' % __id__} @index=#{index} @name=#{name.inspect}>"
49
+ end
50
+ # @!endgroup
51
+ end
52
+ end
@@ -0,0 +1,28 @@
1
+ module ATSPI
2
+ # Wraps libatspi's AtspiRect[https://developer.gnome.org/libatspi/stable/libatspi-atspi-component.html#AtspiRect-struct]
3
+ class Extents
4
+ extend Forwardable
5
+
6
+ # @api private
7
+ def initialize(native)
8
+ @native = native
9
+ end
10
+
11
+ # @return [Integer] its x position
12
+ delegate :x => :@native
13
+
14
+ # @return [Integer] its y position
15
+ delegate :y => :@native
16
+
17
+ # @return [Integer] its width
18
+ delegate :width => :@native
19
+
20
+ # @return [Integer] its height
21
+ delegate :height => :@native
22
+
23
+ # @return [String] itself as an inspectable string
24
+ def inspect
25
+ "#<#{self.class.name}:0x#{'%x14' % __id__} @x=#{x} @y=#{y} @width=#{width} @height=#{height}>"
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,7 @@
1
+ require 'gir_ffi'
2
+
3
+ GirFFI.setup :Atspi
4
+
5
+ # Atspi is aliased as Libatspi to better differentiate it from our ATSPI
6
+ # namespace.
7
+ Libatspi = Atspi
@@ -0,0 +1,76 @@
1
+ # FFI
2
+ require 'atspi/libatspi'
3
+
4
+ require 'forwardable'
5
+
6
+ # General
7
+ require 'atspi/state_set'
8
+ require 'atspi/extents'
9
+
10
+ # Collection modules
11
+ require 'atspi/collection'
12
+ require 'atspi/selectable_collection'
13
+ require 'atspi/selectable_collection/selected'
14
+
15
+ # Accessible
16
+ require 'atspi/accessible/selectable'
17
+ require 'atspi/accessible/extents'
18
+ require 'atspi/accessible'
19
+
20
+ # Action
21
+ require 'atspi/accessible/action'
22
+
23
+ # Children
24
+ require 'atspi/accessible/children'
25
+ require 'atspi/accessible/children/selected'
26
+
27
+ # Descendants
28
+ require 'atspi/accessible/descendants'
29
+ require 'atspi/accessible/descendants/state_filter'
30
+ require 'atspi/accessible/descendants/attribute_filter'
31
+ require 'atspi/accessible/descendants/role_filter'
32
+ require 'atspi/accessible/descendants/interface_filter'
33
+ require 'atspi/accessible/descendants/name_filter'
34
+ require 'atspi/accessible/descendants/options'
35
+
36
+ # Document
37
+ require 'atspi/accessible/document'
38
+
39
+ # Hyperlink
40
+ require 'atspi/accessible/hyperlink'
41
+ require 'atspi/accessible/hyperlink/anchor'
42
+
43
+ # Text
44
+ require 'atspi/accessible/text/editable'
45
+ require 'atspi/accessible/text/hypertext'
46
+ require 'atspi/accessible/text'
47
+ require 'atspi/accessible/text/character'
48
+ require 'atspi/accessible/text/offset'
49
+ require 'atspi/accessible/text/caret'
50
+ require 'atspi/accessible/text/range'
51
+ require 'atspi/accessible/text/selection'
52
+ require 'atspi/accessible/text/hyperlink'
53
+
54
+ # Table
55
+ require 'atspi/accessible/table'
56
+ require 'atspi/accessible/table/columns'
57
+ require 'atspi/accessible/table/columns/selected'
58
+ require 'atspi/accessible/table/column'
59
+ require 'atspi/accessible/table/rows'
60
+ require 'atspi/accessible/table/rows/selected'
61
+ require 'atspi/accessible/table/row'
62
+ require 'atspi/accessible/table/cells'
63
+ require 'atspi/accessible/table/cell'
64
+ require 'atspi/accessible/table/cell/rows'
65
+ require 'atspi/accessible/table/cell/columns'
66
+
67
+ # Image
68
+ require 'atspi/accessible/image'
69
+
70
+ # Value
71
+ require 'atspi/accessible/value'
72
+
73
+ # Specific accessibles
74
+ require 'atspi/desktop'
75
+ require 'atspi/application'
76
+ require 'atspi/window'
@@ -0,0 +1,23 @@
1
+ module ATSPI
2
+ # Included in classes representing the selected subset of a selectable collection
3
+ module SelectableCollection::Selected
4
+ include Collection
5
+
6
+ # @api private
7
+ INDEX_METHOD = :index_in_parent
8
+
9
+ def indices(limit: count)
10
+ [*first(limit)].map(&self.class::INDEX_METHOD)
11
+ end
12
+ private :indices
13
+
14
+ # @!group Representation
15
+ # @return [String] instance as inspectable string
16
+ def inspect
17
+ indices = self.indices(limit: 5).inspect
18
+ indices[-1] = ", …]" if count > 5
19
+ "#<#{self.class.name}:0x#{'%x14' % __id__} @count=#{count} @indices=#{indices}>"
20
+ end
21
+ # @!endgroup
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ module ATSPI
2
+ # Included in classes representing a collection having selectable items
3
+ module SelectableCollection
4
+ include Collection
5
+
6
+ # @!group Selection
7
+ # @return [Selected] its selected subset
8
+ def selected
9
+ self.class::Selected.new(@native)
10
+ end
11
+
12
+ # Selects all items
13
+ # @return [true,false] indicating success
14
+ def select_all
15
+ map(&:select).all?
16
+ end
17
+
18
+ # Deselects all items
19
+ # @return [true,false] indicating success
20
+ def deselect_all
21
+ selected.map(&:deselect).all?
22
+ end
23
+ # @!endgroup
24
+
25
+ # @!group Representation
26
+ # @return [String] instance as inspectable string
27
+ def inspect
28
+ "#<#{self.class.name}:0x#{'%x14' % __id__} @count=#{count} @selected=#{selected.inspect}>"
29
+ end
30
+ # @!endgroup
31
+ end
32
+ end
@@ -0,0 +1,141 @@
1
+ Libatspi.load_class :StateSet
2
+
3
+ module ATSPI
4
+ # ATSPI::StateSet wraps libatspi's AtspiStateSet[https://developer.gnome.org/libatspi/stable/AtspiStateSet.html]
5
+ class StateSet
6
+ extend Forwardable
7
+
8
+ # @api private
9
+ def self.new_from_native(native)
10
+ new(*native.states)
11
+ end
12
+
13
+ # @!group Lifecycle
14
+ # @param states [Symbols] zero, one or more symbols derived from
15
+ # libatspi's {AtspiStateType enum}[https://developer.gnome.org/libatspi/stable/libatspi-atspi-constants.html#AtspiStateType]
16
+ # by removing the prefix +ATSPI_STATE_+ and making it lowercase.
17
+ #
18
+ # @return [StateSet]
19
+ #
20
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-new atspi_state_set_new
21
+ def initialize(*states)
22
+ @native = Libatspi::StateSet.new(states)
23
+ end
24
+ # @!endgroup
25
+
26
+ attr_reader :native
27
+ private :native
28
+
29
+ # @!group Modification
30
+ # Adds states to the set
31
+ #
32
+ # @param states [Symbols] zero, one or more symbols derived from
33
+ # libatspi's {AtspiStateType enum}[https://developer.gnome.org/libatspi/stable/libatspi-atspi-constants.html#AtspiStateType]
34
+ # by removing the prefix +ATSPI_STATE_+ and making it lowercase.
35
+ #
36
+ # @return [self]
37
+ #
38
+ # @example
39
+ # s = ATSPI::StateSet.new # => #<ATSPI::StateSet:0x15ae28014 @states=[]>
40
+ # s.add(:active, :enabled) # => #<ATSPI::StateSet:0x15ae28014 @states=[:active, :enabled]>
41
+ #
42
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-add atspi_state_set_add
43
+ def add(*states)
44
+ states.each{ |state| @native.add(state) }
45
+ self
46
+ end
47
+
48
+ # Removes states from the set
49
+ #
50
+ # @param states [Symbols] zero, one or more symbols derived from
51
+ # libatspi's {AtspiStateType enum}[https://developer.gnome.org/libatspi/stable/libatspi-atspi-constants.html#AtspiStateType]
52
+ # by removing the prefix +ATSPI_STATE_+ and making it lowercase.
53
+ #
54
+ # @return [self]
55
+ #
56
+ # @example
57
+ # s = ATSPI::StateSet.new(:active, :enabled) # => #<ATSPI::StateSet:0x15ae28014 @states=[:active, :enabled]>
58
+ # s.remove(:active) # => #<ATSPI::StateSet:0x15ae28014 @states=[:enabled]>
59
+ #
60
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-remove atspi_state_set_remove
61
+ def remove(*states)
62
+ states.each{ |state| @native.remove(state) }
63
+ self
64
+ end
65
+ # @!endgroup
66
+
67
+ # @!group Queries
68
+ # Checks if it contains the given state
69
+ #
70
+ # @param state [Symbol] the state as symbol derived from libatspi's
71
+ # {AtspiStateType enum}[https://developer.gnome.org/libatspi/stable/libatspi-atspi-constants.html#AtspiStateType]
72
+ # by removing the prefix +ATSPI_STATE_+ and making it lowercase.
73
+ #
74
+ # @return [true,false]
75
+ #
76
+ # @example
77
+ # ATSPI::StateSet.new(:active, :editable).contains?(:active) # => true
78
+ #
79
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-contains atspi_state_set_contains
80
+ def contains?(state)
81
+ @native.contains(state)
82
+ end
83
+
84
+ # Checks if it is empty
85
+ #
86
+ # @return [true,false]
87
+ #
88
+ # @example
89
+ # ATSPI::StateSet.new(:active, :editable).empty? # => false
90
+ #
91
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-is-empty atspi_state_set_is_empty
92
+ def empty?
93
+ @native.is_empty
94
+ end
95
+
96
+ # Returns the difference between it and another set
97
+ #
98
+ # @return [StateSet] the difference to the given set
99
+ #
100
+ # @example
101
+ # s1 = ATSPI::StateSet.new(:active, :editable) # => #<ATSPI::StateSet:0x15ae28014 @states=[:active, :editable]>
102
+ # s2 = ATSPI::StateSet.new(:active, :enabled) # => #<ATSPI::StateSet:0x119ea8c14 @states=[:active, :enabled]>
103
+ # s1.difference_to(s2) # => #<ATSPI::StateSet:0x110b2b414 @states=[:editable, :enabled]>
104
+ #
105
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-compare atspi_state_set_compare
106
+ def difference_to(state_set)
107
+ StateSet.new_from_native @native.compare(state_set.__send__(:native))
108
+ end
109
+ alias_method :^, :difference_to
110
+
111
+ # Checks if it equals another set
112
+ #
113
+ # @return [true, false]
114
+ #
115
+ # @example
116
+ # s1 = ATSPI::StateSet.new(:active, :editable) # => #<ATSPI::StateSet:0x15ae28014 @states=[:active, :editable]>
117
+ # s2 = ATSPI::StateSet.new(:active, :enabled) # => #<ATSPI::StateSet:0x119ea8c14 @states=[:active, :enabled]>
118
+ # s1.equals?(s2) # => false
119
+ #
120
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-equals atspi_state_set_equals
121
+ def equals?(state_set)
122
+ @native.equals state_set.__send__(:native)
123
+ end
124
+ alias_method :==, :equals?
125
+ # @!endgroup
126
+
127
+ # @!group Representations
128
+ # @return [Array<Symbol>] the states it contains
129
+ #
130
+ # @see https://developer.gnome.org/libatspi/stable/AtspiStateSet.html#atspi-state-set-get-states atspi_state_set_get_states
131
+ def to_a
132
+ @native.states.to_a
133
+ end
134
+
135
+ # @return [String] itself as an inspectable string
136
+ def inspect
137
+ "#<#{self.class.name}:0x#{'%x14' % __id__} @states=#{to_a.inspect}>"
138
+ end
139
+ # @!endgroup
140
+ end
141
+ end
@@ -0,0 +1,4 @@
1
+ module ATSPI
2
+ # this library's version
3
+ VERSION = "0.8.0"
4
+ end
@@ -0,0 +1,33 @@
1
+ module ATSPI
2
+ # Windows are Accessibles having a few exceptions.
3
+ class Window < Accessible
4
+ # @!group Identification
5
+ # It has no path.
6
+ # @return [[]]
7
+ def path
8
+ []
9
+ end
10
+
11
+ # Its parent is its application
12
+ # @return [Application]
13
+ def parent
14
+ application
15
+ end
16
+
17
+ # Its window is itself
18
+ # @return [self]
19
+ def window
20
+ self
21
+ end
22
+ # @!endgroup
23
+
24
+ # @!group Representations
25
+ # @return [String] itself as an inspectable string
26
+ def inspect
27
+ "#<#{self.class.name}:0x#{'%x14' % __id__} @desktop=#{desktop.index} " <<
28
+ "@application=#{application.name} @name=#{name.inspect} " <<
29
+ "@extents=#{extents(relative_to: :screen).inspect}>"
30
+ end
31
+ # @!endgroup
32
+ end
33
+ end
data/lib/atspi.rb ADDED
@@ -0,0 +1,58 @@
1
+ require 'atspi/requires'
2
+
3
+ # ATSPI is the entry point to access accessible objects.
4
+ module ATSPI
5
+ class << self
6
+ extend Forwardable
7
+
8
+ # Returns all desktops known to AT-SPI.
9
+ #
10
+ # @return [Array<Desktop>]
11
+ #
12
+ # @example
13
+ # ATSPI.desktops # => [#<ATSPI::Desktop:0xd4e81014 @index=0 @name="main">]
14
+ #
15
+ # @see https://developer.gnome.org/libatspi/stable/libatspi-atspi-registry.html#atspi-get-desktop atspi_get_desktop
16
+ # @see https://developer.gnome.org/libatspi/stable/libatspi-atspi-registry.html#atspi-get-desktop-count atspi_get_desktop_count
17
+ def desktops
18
+ @desktops ||= Libatspi.get_desktop_count.times.map do |idx|
19
+ Desktop.new(Libatspi.get_desktop(idx))
20
+ end
21
+ end
22
+
23
+ # Returns all applications for the given desktop.
24
+ #
25
+ # @param desktop [Desktop]
26
+ #
27
+ # @return [Array<Application>]
28
+ #
29
+ # @example
30
+ # ATSPI.applications # => [#<ATSPI::Application:0x71d18014 @desktop=0 @name="gnome-terminal-server">, …]
31
+ def applications(desktop = desktops.first)
32
+ desktop.applications
33
+ end
34
+
35
+ #@!method generate_keyboard_event(keyval, keystring, synth_type)
36
+ # Generates a custom keyboard event.
37
+ #
38
+ # Delegates directly to libatspi's generate_keyboard_event[https://developer.gnome.org/libatspi/stable/libatspi-atspi-registry.html#atspi-generate-keyboard-event]
39
+ #
40
+ # @param keyval [Integer]
41
+ # @param keystring [String]
42
+ # @param synth_type [Symbol] one of :sym, :string, :press, :release or :pressrelease
43
+ #
44
+ # @return [true, false]
45
+ #
46
+ #@!method generate_mouse_event(x, y, name)
47
+ # Generates a custom mouse event.
48
+ #
49
+ # Delegates directly to libatspi's generate_mouse_event[https://developer.gnome.org/libatspi/stable/libatspi-atspi-registry.html#atspi-generate-mouse-event]
50
+ #
51
+ # @param x [Integer]
52
+ # @param y [Integer]
53
+ # @param name [String]
54
+ #
55
+ # @return [true, false]
56
+ delegate %i(generate_keyboard_event generate_mouse_event) => :Libatspi
57
+ end
58
+ end
metadata ADDED
@@ -0,0 +1,132 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: atspi
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.0
5
+ platform: ruby
6
+ authors:
7
+ - Christopher Aue
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gir_ffi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.10.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.10.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ description: It is a high level wrapper around libatspi.
42
+ email:
43
+ - mail@christopheraue.net
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - ".yardopts"
50
+ - Gemfile
51
+ - LICENSE.txt
52
+ - README.md
53
+ - Rakefile
54
+ - atspi.gemspec
55
+ - bin/console
56
+ - lib/atspi.rb
57
+ - lib/atspi/accessible.rb
58
+ - lib/atspi/accessible/action.rb
59
+ - lib/atspi/accessible/children.rb
60
+ - lib/atspi/accessible/children/selected.rb
61
+ - lib/atspi/accessible/descendants.rb
62
+ - lib/atspi/accessible/descendants/attribute_filter.rb
63
+ - lib/atspi/accessible/descendants/interface_filter.rb
64
+ - lib/atspi/accessible/descendants/name_filter.rb
65
+ - lib/atspi/accessible/descendants/options.rb
66
+ - lib/atspi/accessible/descendants/role_filter.rb
67
+ - lib/atspi/accessible/descendants/state_filter.rb
68
+ - lib/atspi/accessible/document.rb
69
+ - lib/atspi/accessible/extents.rb
70
+ - lib/atspi/accessible/hyperlink.rb
71
+ - lib/atspi/accessible/hyperlink/anchor.rb
72
+ - lib/atspi/accessible/image.rb
73
+ - lib/atspi/accessible/selectable.rb
74
+ - lib/atspi/accessible/table.rb
75
+ - lib/atspi/accessible/table/cell.rb
76
+ - lib/atspi/accessible/table/cell/columns.rb
77
+ - lib/atspi/accessible/table/cell/rows.rb
78
+ - lib/atspi/accessible/table/cells.rb
79
+ - lib/atspi/accessible/table/column.rb
80
+ - lib/atspi/accessible/table/columns.rb
81
+ - lib/atspi/accessible/table/columns/selected.rb
82
+ - lib/atspi/accessible/table/row.rb
83
+ - lib/atspi/accessible/table/rows.rb
84
+ - lib/atspi/accessible/table/rows/selected.rb
85
+ - lib/atspi/accessible/text.rb
86
+ - lib/atspi/accessible/text/caret.rb
87
+ - lib/atspi/accessible/text/character.rb
88
+ - lib/atspi/accessible/text/editable.rb
89
+ - lib/atspi/accessible/text/hyperlink.rb
90
+ - lib/atspi/accessible/text/hypertext.rb
91
+ - lib/atspi/accessible/text/offset.rb
92
+ - lib/atspi/accessible/text/range.rb
93
+ - lib/atspi/accessible/text/selection.rb
94
+ - lib/atspi/accessible/value.rb
95
+ - lib/atspi/application.rb
96
+ - lib/atspi/collection.rb
97
+ - lib/atspi/desktop.rb
98
+ - lib/atspi/extents.rb
99
+ - lib/atspi/libatspi.rb
100
+ - lib/atspi/requires.rb
101
+ - lib/atspi/selectable_collection.rb
102
+ - lib/atspi/selectable_collection/selected.rb
103
+ - lib/atspi/state_set.rb
104
+ - lib/atspi/version.rb
105
+ - lib/atspi/window.rb
106
+ homepage: https://github.com/christopheraue/ruby-atspi
107
+ licenses:
108
+ - MIT
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubyforge_project:
126
+ rubygems_version: 2.4.5.1
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: The atspi gem lets you comfortably call the Assistive Technology Service
130
+ Provider Interface on Linux.
131
+ test_files: []
132
+ has_rdoc: