diff options
Diffstat (limited to 'dragon/geometry.rb')
| -rw-r--r-- | dragon/geometry.rb | 16 |
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 |
