// -*- c++ -*- /* $Id: rectangle.ccg,v 1.1 2003/01/21 13:38:38 murrayc Exp $ */ /* * * Copyright 1998-2002 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ namespace Gdk { Rectangle::Rectangle(int x, int y, int width, int height) { gobject_.x = x; gobject_.y = y; gobject_.width = width; gobject_.height = height; } // gdk_rectangle_union() and gdk_rectangle_intersect() work fine even if // the destination points to one of the input rectangles. The join() and // intersect() implementations rely on this ability. Rectangle& Rectangle::join(const Rectangle& src2) { gdk_rectangle_union( &gobject_, const_cast(&src2.gobject_), &gobject_); return *this; } Rectangle& Rectangle::intersect(const Rectangle& src2) { gdk_rectangle_intersect( &gobject_, const_cast(&src2.gobject_), &gobject_); return *this; } Rectangle& Rectangle::intersect(const Rectangle& src2, bool& rectangles_intersect) { rectangles_intersect = gdk_rectangle_intersect( &gobject_, const_cast(&src2.gobject_), &gobject_); return *this; } bool Rectangle::has_zero_area() const { return (gobject_.width == 0 || gobject_.height == 0); } } // namespace Gdk