Gtk2::Gdk::Region(3p)

NAME
Gtk2::Gdk::Region - wrapper for GdkRegion

HIERARCHY
  Glib::Boxed
  +----Gtk2::Gdk::Region

METHODS

  region = Gtk2::Gdk::Region->new

  rectangle = $region->get_clipbox

  boolean = $region->empty

  boolean = $region1->equal ($region2)

•   $region2 (Gtk2::Gdk::Region)

  $source1->intersect ($source2)

•   $source2 (Gtk2::Gdk::Region)

  $region->offset ($dx, $dy)

•   $dx (integer)

•   $dy (integer)

  boolean = $region->point_in ($x, $y)

•   $x (integer)

•   $y (integer)

  region = Gtk2::Gdk::Region->polygon ($points_ref, $fill_rule)

•   $points_ref (scalar)

•   $fill_rule (Gtk2::Gdk::FillRule)

  boolean = $region->rect_equal ($rectangle)

•   $rectangle (Gtk2::Gdk::Rectangle)

Since: gtk+ 2.18

  overlaptype = $region->rect_in ($rect)

•   $rect (Gtk2::Gdk::Rectangle)

  region = Gtk2::Gdk::Region->rectangle ($rectangle)

•   $rectangle (Gtk2::Gdk::Rectangle)

  list = $region->get_rectangles
Returns a list of rectangles (Gtk2::Gdk::Rectangle's), the area covered by the region.

  $region->shrink ($dx, $dy)

•   $dx (integer)

•   $dy (integer)

  $region->spans_intersect_foreach ($spans_ref, $sorted, $func, $data=undef)

•   $spans_ref (scalar) arrayref of triples [$x1,$y1,$width1, $x2,$y2,$width2, ...]

•   $sorted (boolean)

•   $func (scalar)

•   $data (scalar)

Call $function for horizontal lines which intersect $region.

$spans_ref is an arrayref of x,y,width horizontal lines. If $sorted is true then they're assumed to be sorted by increasing y coordinate (allowing a single pass across the region rectangles). $function is called

    &$function ($x, $y, $width, $data)

for each portion of a span which intersects $region. $function must not change $region.

    $region->spans_intersect_foreach ([ 0,0,50, 20,20,100, 0,10,50 ],
                                      0, # spans not sorted by y
                                      \&my_callback,
                                      'hello');  # userdata
    sub my_callback {
      my ($x, $y, $width, $userdata) = @_;
      print "$userdata: $x, $y, $width\n";
    }

  $source1->subtract ($source2)

•   $source2 (Gtk2::Gdk::Region)

  $source1->union ($source2)

•   $source2 (Gtk2::Gdk::Region)

  $region->union_with_rect ($rect)

•   $rect (Gtk2::Gdk::Rectangle)

  $source1->xor ($source2)

•   $source2 (Gtk2::Gdk::Region)

ENUMS AND FLAGS

  enum Gtk2::Gdk::FillRule

•   'even-odd-rule' / 'GDK_EVEN_ODD_RULE'

•   'winding-rule' / 'GDK_WINDING_RULE'

  enum Gtk2::Gdk::OverlapType

•   'in' / 'GDK_OVERLAP_RECTANGLE_IN'

•   'out' / 'GDK_OVERLAP_RECTANGLE_OUT'

•   'part' / 'GDK_OVERLAP_RECTANGLE_PART'

SEE ALSO
Gtk2, Glib::Boxed

COPYRIGHT
Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL. See Gtk2 for a full notice.