Class: CGRect
- Defined in:
- lib/accessibility/bridge/mri.rb,
lib/accessibility/bridge/mri.rb,
lib/accessibility/bridge/common.rb,
lib/accessibility/extras/common.rb
Overview
Complete definition of a rectangle in a 2D coordinate system
Instance Attribute Summary collapse
-
#origin ⇒ CGPoint, #to_point
The
origin
point. -
#size ⇒ CGSize, #to_size
The
size
of the rectangle.
Instance Method Summary collapse
-
#contains?(inner) ⇒ Boolean
Whether or not the receiver completely encloses the
inner
rect. -
#flip! ⇒ CGRect
Treats the rect as belonging to one co-ordinate system and then converts it to the other system.
-
#initialize(origin = CGPoint.new, size = CGSize.new) ⇒ CGRect
constructor
A new instance of CGRect.
-
#inspect ⇒ String
Return a nice string representation of the rectangle.
-
#to_point ⇒ CGPoint
Returns the center point for the rectangle as a CGPoint.
-
#to_rect ⇒ CGRect
Returns the receiver, since the receiver is already a CGRect.
Constructor Details
Instance Attribute Details
#origin ⇒ CGPoint, #to_point
The origin
point
67 68 69 |
# File 'lib/accessibility/bridge/mri.rb', line 67 def origin @origin end |
#size ⇒ CGSize, #to_size
The size
of the rectangle
67 68 69 |
# File 'lib/accessibility/bridge/mri.rb', line 67 def size @size end |
Instance Method Details
#contains?(inner) ⇒ Boolean
Whether or not the receiver completely encloses the inner
rect
On MacRuby this is equivalent to calling NSContainsRect()
.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/accessibility/bridge/common.rb', line 47 def contains? inner ox = origin.x; oy = origin.y; ow = size.width; oh = size.height inner = inner.to_rect ix = inner.origin.x; iy = inner.origin.y iw = inner.size.width; ih = inner.size.height if iw.zero? || ih.zero? false else (ox <= ix) && (oy <= iy) && ((ox + ow) >= (ix + iw)) && ((oy + oh) >= (iy + ih)) end end |
#flip! ⇒ CGRect
Treats the rect as belonging to one co-ordinate system and then converts it to the other system
This is useful because accessibility API's expect to work with the flipped co-ordinate system (origin in top left), but AppKit prefers to use the cartesian co-ordinate system (origin in bottom left).
12 13 14 15 16 17 18 |
# File 'lib/accessibility/extras/common.rb', line 12 def flip! frame = ::NSScreen.screens.first.frame screen_height = frame.origin.y + frame.size.height self_max_y = self.origin.y + self.size.height origin.y = screen_height - self_max_y self end |
#inspect ⇒ String
Return a nice string representation of the rectangle
Overrides Object#inspect
to more closely mimic MacRuby Boxed#inspect
.
90 91 92 |
# File 'lib/accessibility/bridge/mri.rb', line 90 def inspect "#<CGRect origin=#{self.origin.inspect} size=#{self.size.inspect}>" end |