## Documentation

Table of Contents
Class Inheritance Tree
Widget Screenshots
Package groups

## Index

Package: Region

- Goto spec source

# Description

    package Cairo.Region is

Regions -- Representing a pixel-aligned area

Bindings to the Cairo 2D graphics library.

Regions are a simple graphical data type representing an area of integer- aligned rectangles. Thay are often used on raster surfaces to track areas of interest, such as change or clip areas.

Binding from C File version 1.10

# Types

### Cairo_Region

- Goto declaration in source

    type Cairo_Region is private;

A Cairo_Region represents a set of integer-aligned rectangles. It allows set-theoretical operations like Union and Intersect to be performed on them. Memory management of Cairo_Region is done with Reference and Destroy. Since: 1.10

### Cairo_Rectangle_Int

- Goto declaration in source

    type Cairo_Rectangle_Int is record
          X, Y, Width, Height : aliased Gint;
       end record;

### Cairo_Region_Overlap

- Goto declaration in source

    type Cairo_Region_Overlap is
         (Cairo_Region_Overlap_In,    --  Completely inside region
          Cairo_Region_Overlap_Out,   --  Completely outside region
          Cairo_Region_Overlap_Part   --  Partly inside region
         );

# Constants & Global variables

### Null_Region

- Goto declaration in source

(Cairo_Region)

    Null_Region : constant Cairo_Region;

# Subprograms & Entries

### Create

- Goto spec in source
- Goto body in source

    function Create return Cairo_Region;

Allocates a new empty region object. Returns: A newly allocated Cairo_Region. Free with Destroy. This function always returns a valid Cairo_Region; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with Status.

### Create_Rectangle

- Goto spec in source
- Goto body in source

    function Create_Rectangle (Rectangle: access Cairo_Rectangle_Int) return Cairo_Region;

Allocates a new region object containing Rectangle. Returns: A newly allocated Cairo_Region. Free with Destroy. This function always returns a valid Cairo_Region; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with Status.

### Copy

- Goto spec in source
- Goto body in source

    function Copy (Original: Cairo_Region) return Cairo_Region;

Allocates a new Cairo_Region object copying the area from Original. Returns: A newly allocated Cairo_Region. Free with Destroy. This function always returns a valid Cairo_Region; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with Status.

### Reference

- Goto spec in source
- Goto body in source

    function Reference (Region: Cairo_Region) return Cairo_Region;

Increases the reference count on Region by one. This prefents Region from being destroyed until a matching call to Destroy is made.

### Destroy

- Goto spec in source
- Goto body in source

    procedure Destroy (Region: Cairo_Region);

Destroys a Cairo_Region object created with Create, Copy or Create_Rectangle.

### =

- Goto spec in source

    function "=" (A, B: Cairo_Region) return Boolean;

Compares whether A is equivalent to B. Null_Region as an argument is equal to itself, but not to any non-Null_Region region.

### Status

- Goto spec in source
- Goto body in source

    function Status (Region: Cairo_Region) return Cairo_Status;

Checks whether an error has occured for this region object. Returns: Cairo_Status_Success or Cairo_Status_No_Memory

### Get_Extents

- Goto spec in source
- Goto body in source

    procedure Get_Extents (Region: Cairo_Region;Extents: out Cairo_Rectangle_Int);

Gets the bounding rectangle of Region as a Cairo_Rectangle_Int

### Num_Rectangles

- Goto spec in source
- Goto body in source

    function Num_Rectangles (Region: Cairo_Region) return Gint;

Returns the number of rectangle contained in Region

### Get_Rectangle

- Goto spec in source
- Goto body in source

    procedure Get_Rectangle (Region: Cairo_Region;Nth: Gint;Rectangle: out Cairo_Rectangle_Int);

Stores the Nth rectangle from the region in Rectangle.

### Is_Empty

- Goto spec in source

    function Is_Empty (Region: Cairo_Region) return Boolean;

Checks whether Region is empty.

### Contains_Rectangle

- Goto spec in source
- Goto body in source

    function Contains_Rectangle (Region: Cairo_Region;Rectangle: access Cairo_Rectangle_Int) return Cairo_Region_Overlap;

Checks whether Rectangle is inside, outside or partially contained in Region

### Contains_Point

- Goto spec in source

    function Contains_Point (Region: Cairo_Region;X: Gint;Y: Gint) return Boolean;

Checks whether (X,Y) is contained in Region.

### Translate

- Goto spec in source
- Goto body in source

    procedure Translate (Region: Cairo_Region;dX: Gint;dY: Gint);

Translates Region by (dX,dY).

### Subtract

- Goto spec in source
- Goto body in source

    function Subtract (Dst: Cairo_Region;Other: Cairo_Region) return Cairo_Status;

Subtracts Other from Dst and places the result in Dst. Returns: Cairo_Status_Success or Cairo_Status_No_Memory.

### Subtract_Rectangle

- Goto spec in source
- Goto body in source

    function Subtract_Rectangle (Dst: Cairo_Region;Rectangle: access Cairo_Rectangle_Int) return Cairo_Status;

Subtracts Rectangle from Dst and places the result in Dst. Returns: Cairo_Status_Success or Cairo_Status_No_Memory.

### Intersect

- Goto spec in source
- Goto body in source

    function Intersect (Dst: Cairo_Region;Other: Cairo_Region) return Cairo_Status;

Computes the intersection of Dst with Other and places the result in Dst Returns: Cairo_Status_Success or Cairo_Status_No_Memory.

### Intersect_Rectangle

- Goto spec in source
- Goto body in source

    function Intersect_Rectangle (Dst: Cairo_Region;Rectangle: access Cairo_Rectangle_Int) return Cairo_Status;

Computes the intersection of Dst with Rectangle and places the result in Dst. Returns: Cairo_Status_Success or Cairo_Status_No_Memory.

### Union

- Goto spec in source
- Goto body in source

    function Union (Dst: Cairo_Region;Other: Cairo_Region) return Cairo_Status;

Computes the union of Dst with Other and places the result in Dst. Returns: Cairo_Status_Success or Cairo_Status_No_Memory.

### Union_Rectangle

- Goto spec in source
- Goto body in source

    function Union_Rectangle (Dst: Cairo_Region;Rectangle: access Cairo_Rectangle_Int) return Cairo_Status;

Computes the union of Dst with Rectangle and places the result in Dst. Returns: Cairo_Status_Success or Cairo_Status_No_Memory.

### Do_Xor

- Goto spec in source
- Goto body in source

    function Do_Xor (Dst: Cairo_Region;Other: Cairo_Region) return Cairo_Status;

Computes the exclusive difference of Dst with Other and places the result in Dst. Returns: Cairo_Status_Success or Cairo_Status_No_Memory.

### Xor_Rectangle

- Goto spec in source
- Goto body in source

    function Xor_Rectangle (Dst: Cairo_Region;Rectangle: access Cairo_Rectangle_Int) return Cairo_Status;

Computes the exclusive difference of Dst with Rectangle and places the result in Dst. Returns: Cairo_Status_Success or Cairo_Status_No_Memory.