cr-declaration

cr-declaration

Functions

Types and Values

Description

Functions

cr_declaration_new ()

CRDeclaration *
cr_declaration_new (CRStatement *a_statement,
                    CRString *a_property,
                    CRTerm *a_value);

Returns the newly built instance of CRDeclaration, or NULL in case of error.

The returned CRDeclaration takes ownership of a_property and a_value . (E.g. cr_declaration_destroy on this CRDeclaration will also free a_property and a_value .)

Parameters

a_statement

the statement this declaration belongs to. can be NULL.

 

a_property

the property string of the declaration

 

a_value

the value expression of the declaration. Constructor of CRDeclaration.

 

cr_declaration_parse_from_buf ()

CRDeclaration *
cr_declaration_parse_from_buf (CRStatement *a_statement,
                               const guchar *a_str,
                               enum CREncoding a_enc);

Parses a text buffer that contains a css declaration. Returns the parsed declaration, or NULL in case of error.

Parameters

a_statement

the parent css2 statement of this this declaration. Must be non NULL and of type RULESET_STMT (must be a ruleset).

 

a_str

the string that contains the statement.

 

a_enc

the encoding of a_str.

 

cr_declaration_parse_list_from_buf ()

CRDeclaration *
cr_declaration_parse_list_from_buf (const guchar *a_str,
                                    enum CREncoding a_enc);

Parses a ';' separated list of properties declaration. Returns the parsed list of declaration, NULL if parsing failed.

Parameters

a_str

the input buffer that contains the list of declaration to parse.

 

a_enc

the encoding of a_str

 

cr_declaration_append ()

CRDeclaration *
cr_declaration_append (CRDeclaration *a_this,
                       CRDeclaration *a_new);

Appends a new declaration to the current declarations list. Returns the declaration list with a_new appended to it, or NULL in case of error.

Parameters

a_this

the current declaration list.

 

a_new

the declaration to append.

 

cr_declaration_append2 ()

CRDeclaration *
cr_declaration_append2 (CRDeclaration *a_this,
                        CRString *a_prop,
                        CRTerm *a_value);

Appends a declaration to the current declaration list. Returns the list with the new property appended to it, or NULL in case of an error.

Parameters

a_this

the current declaration list.

 

a_prop

the property string of the declaration to append.

 

a_value

the value of the declaration to append.

 

cr_declaration_prepend ()

CRDeclaration *
cr_declaration_prepend (CRDeclaration *a_this,
                        CRDeclaration *a_new);

prepends a declaration to the current declaration list.

Returns the list with a_new prepended or NULL in case of error.

Parameters

a_this

the current declaration list.

 

a_new

the declaration to prepend.

 

cr_declaration_unlink ()

CRDeclaration *
cr_declaration_unlink (CRDeclaration *a_decl);

Unlinks the declaration from the declaration list. case of a successfull completion, NULL otherwise.

Returns a pointer to the unlinked declaration in

Parameters

a_decls

the declaration to unlink.

 

cr_declaration_dump ()

void
cr_declaration_dump (CRDeclaration const *a_this,
                     FILE *a_fp,
                     glong a_indent,
                     gboolean a_one_per_line);

Dumps a declaration list to a file.

Parameters

a_this

the current instance of CRDeclaration.

 

a_fp

the destination file.

 

a_indent

the number of indentation white char.

 

a_one_per_line

whether to put one declaration per line of not .

 

cr_declaration_dump_one ()

void
cr_declaration_dump_one (CRDeclaration const *a_this,
                         FILE *a_fp,
                         glong a_indent);

Dumps the first declaration of the declaration list to a file.

Parameters

a_this

the current instance of CRDeclaration.

 

a_fp

the destination file.

 

a_indent

the number of indentation white char.

 

cr_declaration_nr_props ()

gint
cr_declaration_nr_props (CRDeclaration const *a_this);

Parameters

a_this

the current instance of CRDeclaration. Return the number of properties in the declaration

 

cr_declaration_get_from_list ()

CRDeclaration *
cr_declaration_get_from_list (CRDeclaration *a_this,
                              int itemnr);

Use an index to get a CRDeclaration from the declaration list.

Returns CRDeclaration at position itemnr, if itemnr > number of declarations - 1, it will return NULL.

Parameters

a_this

the current instance of CRDeclaration.

 

itemnr

the index into the declaration list.

 

cr_declaration_get_by_prop_name ()

CRDeclaration *
cr_declaration_get_by_prop_name (CRDeclaration *a_this,
                                 const guchar *a_str);

Use property name to get a CRDeclaration from the declaration list. Returns CRDeclaration with property name a_prop, or NULL if not found.

Parameters

a_this

the current instance of CRDeclaration.

 

a_prop

the property name to search for.

 

cr_declaration_to_string ()

gchar *
cr_declaration_to_string (CRDeclaration const *a_this,
                          gulong a_indent);

Serializes the declaration into a string Returns the serialized form the declaration. The caller must free the string using g_free().

Parameters

a_this

the current instance of CRDeclaration.

 

a_indent

the number of indentation white char to put before the actual serialisation.

 

cr_declaration_list_to_string ()

guchar *
cr_declaration_list_to_string (CRDeclaration const *a_this,
                               gulong a_indent);

Serializes the declaration list into a string

Parameters

a_this

the current instance of CRDeclaration.

 

a_indent

the number of indentation white char to put before the actual serialisation.

 

cr_declaration_list_to_string2 ()

guchar *
cr_declaration_list_to_string2 (CRDeclaration const *a_this,
                                gulong a_indent,
                                gboolean a_one_decl_per_line);

Serializes the declaration list into a string Returns the serialized form the declararation.

Parameters

a_this

the current instance of CRDeclaration.

 

a_indent

the number of indentation white char

 

a_one_decl_per_line

whether to output one doc per line or not. to put before the actual serialisation.

 

cr_declaration_ref ()

void
cr_declaration_ref (CRDeclaration *a_this);

Increases the ref count of the current instance of CRDeclaration.

Parameters

a_this

the current instance of CRDeclaration.

 

cr_declaration_unref ()

gboolean
cr_declaration_unref (CRDeclaration *a_this);

Decrements the ref count of the current instance of CRDeclaration. If the ref count reaches zero, the current instance of CRDeclaration if destroyed. Returns TRUE if a_this was destroyed (ref count reached zero), FALSE otherwise.

Parameters

a_this

the current instance of CRDeclaration.

 

cr_declaration_destroy ()

void
cr_declaration_destroy (CRDeclaration *a_this);

Destructor of the declaration list.

Parameters

a_this

the current instance of CRDeclaration.

 

Types and Values

struct CRDeclaration

struct CRDeclaration {
	/**The property.*/
	CRString *property ;

	/**The value of the property.*/
	CRTerm *value ;

	/*the ruleset that contains this declaration*/
	CRStatement *parent_statement ;

	/*the next declaration*/
	CRDeclaration *next ;

	/*the previous one declaration*/
	CRDeclaration *prev ;

	/*does the declaration have the important keyword ?*/
	gboolean important ;

	glong ref_count ;

	CRParsingLocation location ;
	/*reserved for future usage*/

	gpointer rfu0 ;

	gpointer rfu1 ;
	gpointer rfu2 ;
	gpointer rfu3 ;
};

CRStatement

typedef struct {
	/**
	 *The type of the statement.
	 */
	enum CRStatementType type ;

	union
	{
		CRRuleSet *ruleset ;
		CRAtImportRule *import_rule ;
		CRAtMediaRule *media_rule ;
		CRAtPageRule *page_rule ;
		CRAtCharsetRule *charset_rule ;
		CRAtFontFaceRule *font_face_rule ;
	} kind ;

        /*
         *the specificity of the selector
         *that matched this statement.
         *This is only used by the cascading
         *order determination algorithm.
         */
        gulong specificity ;

        /*
         *the style sheet that contains
         *this css statement.
         */
        CRStyleSheet *parent_sheet ;
	CRStatement *next ;
	CRStatement *prev ;

        CRParsingLocation location ;

        /**
         *a custom pointer useable by
         *applications that use libcroco.
         *libcroco itself will never modify
         *this pointer.
         */

        gpointer app_data ;

        /**
         *a custom pointer used
         *by the upper layers of libcroco.
         *application should never use this
         *pointer.
         */
        gpointer croco_data ;
} CRStatement;