Create  Edit  FrontPage  Index  Search  Changes  History  RSS  Back  Login

Gdk::Region Diff - Ruby-GNOME2 Project Website

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

= class Gdk::Region

Gdk::Region is an opaque data type holding a set of arbitrary pixels, and is usually used for clipping graphical operations (see ((<Gdk::GC#set_clip_region>))).

== Object Hierarchy

* Object
  * GLib::Boxed
    * Gdk::Region

== Class Methods

--- Gdk::Region.new

    Creates a new empty Gdk::Region.
    * Returns : a new empty Gdk::Region.

--- Gdk::Region.new(rectangle)

    Creates a new region containing the area rectangle.
    * rectangle: a Gdk::Rectangle  
    * Returns: a new Gdk::Region

--- Gdk::Region.new(points, fill_rule)

    Creates a new Gdk::Region using the polygon defined by a number of points.
    * points: [[x1, y1], [x2, y2], ... ]: an array of points.
    * fill_rule: specifies which pixels are included in the region when the polygon overlaps itself. (((<GdkFillRule|Gdk::Region#GdkFillRule>)))
    * Returns: a new Gdk::Region based on the given polygon.

== Instance Methods

--- clipbox

    Returns the smallest rectangle which includes the entire Gdk::Region.
    * Returns: the smallest rectangle(Gdk::Rectangle) which includes all of region.

--- rectangles

    Obtains the area covered by the region as a list of rectangles.
    * Returns: an array of rectangles(Gdk::Rectangle)

--- empty?

    Returns true if the Gdk::Region is empty.
    * Returns: true if region is empty.

--- ==(other)

    Returns true if the two regions are the same value.
    * other: a Gdk::Region.  
    * Returns: true if self and other are equal.

--- point_in?(x, y)

    Returns true if a point is in a region.
    * x: the x coordinate of a point.  
    * y: the y coordinate of a point.  
    * Returns: true if the point is in region.

--- rect_in(rectangle)

    Tests whether a rectangle is within a region.
    * rect: a Gdk::Rectangle.  
    * Returns: Gdk::Region::OVERLAP_RECTANGLE_IN, Gdk::Region::OVERLAP_RECTANGLE_OUT, or Gdk::Region::OVERLAP_RECTANGLE_PART, depending on whether the rectangle is inside, outside, or partly inside the Gdk::Region, respectively.

--- offset(dx, dy)

    Moves a region the specified distance.
    * dx: the distance to move the region horizontally.  
    * dy: the distance to move the region vertically.  
    * Returns: self

--- shrink(dx, dy)

    Resizes a region by the specified amount. Positive values shrink the region. Negative values expand it.
    * dx: the number of pixels to shrink the region horizontally.  
    * dy: the number of pixels to shrink the region vertically.  
    * Returns: self

--- union(other)

    Sets the area of this region to the union of the areas of self and other. The resulting area is the set of pixels contained in either region or rect.
    * other: a Gdk::Region or a Gdk::Rectangle
    * Returns: self

--- intersect(other)

    Sets the area of this region to the intersection of the areas of self and other. The resulting area is the set of pixels contained in both self and other.
    * other: a Gdk::Region
    * Returns: self

--- subtract(other)

    Subtracts the area of other from the area of this region. The resulting area is the set of pixels contained in self but not in other.
    * other: a Gdk::Region
    * Returns: self

--- xor(other)

    Sets the area of this region to the exclusive-OR of the areas of self and other. The resulting area is the set of pixels contained in one or the other of the two sources but not in both.
    * other: a Gdk::Region
    * Returns: self

--- spans_intersect_each(spans, sorted){|span| ...}

    Calls a block on each span in the intersection of region and spans.
    * spans: an array of spans [[x1, y1, width1], [x2, y2, width2], ... ].
    * sorted: true if spans is sorted wrt. the y coordinate
    * {|x, y, width| ...}: a block to call on each span in the intersection
    * Returns: self

== Constants

=== GdkFillRule

The method for determining which pixels are included in a region, when creating a Gdk::Region from a polygon. The fill rule is only relevant for polygons which overlap themselves.

--- EVEN_ODD_RULE

    areas which are overlapped an odd number of times are included in the region, while areas overlapped an even number of times are not.

--- WINDING_RULE

    overlapping areas are always included.

=== GdkOverlapType

Specifies the possible values returned by Gdk::Region#rect_in.

--- OVERLAP_RECTANGLE_IN

    if the rectangle is inside the GdkRegion.

--- OVERLAP_RECTANGLE_OUT

    if the rectangle is outside the GdkRegion.

--- OVERLAP_RECTANGLE_PART

    the rectangle is partly inside the GdkRegion.

== See Also

Gdk::Rectangle, Gdk::Span

== ChangeLog

-((<Masao>))