## cr-cascade cr-cascade |

## Functions

CRCascade * | cr_cascade_new ()
CRStyleSheet * | cr_cascade_get_sheet ()
enum CRStatus | cr_cascade_set_sheet ()
void | cr_cascade_ref ()
void | cr_cascade_unref ()
void | cr_cascade_destroy ()

## Types and Values

struct | CRCascade
| CRCascadePriv

## Description

## Functions

### cr_cascade_new ()

    CRCascade *
    cr_cascade_new (CRStyleSheet *a_author_sheet,
                    CRStyleSheet *a_user_sheet,
                    CRStyleSheet *a_ua_sheet);

Constructor of the CRCascade class. Note that all three parameters of this method are ref counted and their refcount is increased. Their refcount will be decreased at the destruction of the instance of CRCascade. So the caller should not call their destructor. The caller should call their ref/unref method instead if it wants

Returns the newly built instance of CRCascade or NULL if an error arose during constrution.

#### Parameters

a_author_sheet | the author origin style sheet. May be NULL. |
a_user_sheet | the user origin style sheet. May be NULL. |
a_ua_sheet | the user agent origin style sheet. May be NULL. |

### cr_cascade_get_sheet ()

    CRStyleSheet *
    cr_cascade_get_sheet (CRCascade *a_this,
                          enum CRStyleOrigin a_origin);

Gets a sheet, part of the cascade. Note that the returned stylesheet is refcounted so if the caller wants to manage it's lifecycle, it must use `cr_stylesheet_ref()`/`cr_stylesheet_unref()` instead of the `cr_stylesheet_destroy()` method. Returns the style sheet, or NULL if it does not exist.

#### Parameters

a_this | the current instance of CRCascade. |
a_origin | the origin of the style sheet as defined in the css2 spec in chapter 6.4. Gets a given origin sheet. |

### cr_cascade_set_sheet ()

    enum CRStatus
    cr_cascade_set_sheet (CRCascade *a_this,
                          CRStyleSheet *a_sheet,
                          enum CRStyleOrigin a_origin);

Sets a stylesheet in the cascade

Returns CR_OK upon successfull completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRCascade. |
a_sheet | the stylesheet to set. |
a_origin | the origin of the stylesheet. |

### cr_cascade_ref ()

    void
    cr_cascade_ref (CRCascade *a_this);

Increases the reference counter of the current instance of CRCascade.

#### Parameters

a_this | the current instance of CRCascade |

### cr_cascade_unref ()

    void
    cr_cascade_unref (CRCascade *a_this);

Decrements the reference counter associated to this instance of CRCascade. If the reference counter reaches zero, the instance is destroyed using `cr_cascade_destroy()`

#### Parameters

a_this | the current instance of CRCascade. |

### cr_cascade_destroy ()

    void
    cr_cascade_destroy (CRCascade *a_this);

Destructor of CRCascade.

#### Parameters

a_this | the current instance of CRCascade |

## Types and Values

### struct CRCascade

    struct CRCascade {
    	CRCascadePriv *priv ;
    };

### CRCascadePriv

    typedef struct _CRCascadePriv CRCascadePriv;