summaryrefslogtreecommitdiffhomepage
path: root/dragon/geometry.rb
diff options
context:
space:
mode:
Diffstat (limited to 'dragon/geometry.rb')
-rw-r--r--dragon/geometry.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/dragon/geometry.rb b/dragon/geometry.rb
index 1be0379..59f1865 100644
--- a/dragon/geometry.rb
+++ b/dragon/geometry.rb
@@ -76,6 +76,20 @@ module GTK
Geometry.point_inside_circle? self, circle_center_point, radius
end
+ def center_inside_rect other_rect
+ offset_x = (other_rect.w - w).half
+ offset_y = (other_rect.h - h).half
+ new_rect = self.shift_rect(0, 0)
+ new_rect.x = other_rect.x + offset_x
+ new_rect.y = other_rect.y + offset_y
+ new_rect
+ rescue Exception => e
+ raise e, <<-S
+* ERROR:
+center_inside_rect for self #{self} and other_rect #{other_rect}. Failed with exception #{e}.
+S
+ end
+
# Returns a primitive that is anchored/repositioned based off its retangle.
# @gtk
def anchor_rect anchor_x, anchor_y
@@ -83,7 +97,7 @@ module GTK
current_h = self.h
delta_x = -1 * (anchor_x * current_w)
delta_y = -1 * (anchor_y * current_h)
- self.rect_shift(delta_x, delta_y)
+ self.shift_rect(delta_x, delta_y)
end
def angle_given_point other_point