Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

cr-sel-eng.c File Reference

The definition of the CRSelEng class. More...

#include <string.h>
#include "cr-sel-eng.h"

Go to the source code of this file.

Data Structures

struct  CRPseudoClassSelHandlerEntry
struct  _CRSelEngPriv

Defines

#define PRIVATE(a_this)   (a_this)->priv

Functions

CRSelEngcr_sel_eng_new (void)
 Creates a new instance of CRSelEng.
enum CRStatus cr_sel_eng_register_pseudo_class_sel_handler (CRSelEng *a_this, guchar *a_name, enum CRPseudoType a_type, CRPseudoClassSelectorHandler a_handler)
 Adds a new handler entry in the handlers entry table.
enum CRStatus cr_sel_eng_unregister_pseudo_class_sel_handler (CRSelEng *a_this, guchar *a_name, enum CRPseudoType a_type)
enum CRStatus cr_sel_eng_unregister_all_pseudo_class_sel_handlers (CRSelEng *a_this)
 Unregisters all the pseudo class sel handlers and frees all the associated allocated datastructures.
enum CRStatus cr_sel_eng_get_pseudo_class_selector_handler (CRSelEng *a_this, guchar *a_name, enum CRPseudoType a_type, CRPseudoClassSelectorHandler *a_handler)
enum CRStatus cr_sel_eng_matches_node (CRSelEng *a_this, CRSimpleSel *a_sel, xmlNode *a_node, gboolean *a_result)
 Evaluates a chained list of simple selectors (known as a css2 selector).
enum CRStatus cr_sel_eng_get_matched_rulesets (CRSelEng *a_this, CRStyleSheet *a_sheet, xmlNode *a_node, CRStatement ***a_rulesets, gulong *a_len)
 Returns an array of pointers to selectors that matches the xml node given in parameter.
enum CRStatus cr_sel_eng_get_matched_properties_from_cascade (CRSelEng *a_this, CRCascade *a_cascade, xmlNode *a_node, CRPropList **a_props)
enum CRStatus cr_sel_eng_get_matched_style (CRSelEng *a_this, CRCascade *a_cascade, xmlNode *a_node, CRStyle *a_parent_style, CRStyle **a_style, gboolean a_set_props_to_initial_values)
void cr_sel_eng_destroy (CRSelEng *a_this)
 The destructor of CRSelEng.


Detailed Description

The definition of the CRSelEng class.

The CRSelEng is actually the "Selection Engine" class. This is highly experimental for at the moment and its api is very likely to change in a near future.

Definition in file cr-sel-eng.c.


Define Documentation

#define PRIVATE a_this   )     (a_this)->priv
 

Definition at line 35 of file cr-sel-eng.c.


Function Documentation

void cr_sel_eng_destroy CRSelEng a_this  ) 
 

The destructor of CRSelEng.

Parameters:
a_this the current instance of the selection engine.

Definition at line 1538 of file cr-sel-eng.c.

References cr_sel_eng_unregister_all_pseudo_class_sel_handlers(), and PRIVATE.

enum CRStatus cr_sel_eng_get_matched_properties_from_cascade CRSelEng a_this,
CRCascade a_cascade,
xmlNode *  a_node,
CRPropList **  a_props
 

Definition at line 1392 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, cr_cascade_get_sheet(), cr_utils_trace_info, CRCascade, CRStatement, CRStatus, CRStyleOrigin, CRStyleSheet, _CRStatement::parent_sheet, and RULESET_STMT.

Referenced by cr_sel_eng_get_matched_style().

enum CRStatus cr_sel_eng_get_matched_rulesets CRSelEng a_this,
CRStyleSheet a_sheet,
xmlNode *  a_node,
CRStatement ***  a_rulesets,
gulong *  a_len
 

Returns an array of pointers to selectors that matches the xml node given in parameter.

Parameters:
a_this the current instance of the selection engine.
a_sheet the stylesheet that holds the selectors.
a_node the xml node to consider during the walk thru the stylesheet.
a_rulesets out parameter. A pointer to an array of rulesets statement pointers. *a_rulesets is allocated by this function and must be freed by the caller. However, the caller must not alter the rulesets statements pointer because they point to statements that are still in the css stylesheet.
a_len the length of *a_ruleset.
Returns:
CR_OK upon sucessfull completion, an error code otherwise.

Definition at line 1326 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, cr_utils_trace_info, CRStatement, CRStatus, and CRStyleSheet.

enum CRStatus cr_sel_eng_get_matched_style CRSelEng a_this,
CRCascade a_cascade,
xmlNode *  a_node,
CRStyle a_parent_style,
CRStyle **  a_style,
gboolean  a_set_props_to_initial_values
 

Definition at line 1493 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, CR_ERROR, CR_OK, cr_prop_list_destroy(), cr_sel_eng_get_matched_properties_from_cascade(), cr_style_new(), cr_style_set_props_to_default_values(), cr_style_set_props_to_initial_values(), CRCascade, CRPropList, and CRStatus.

enum CRStatus cr_sel_eng_get_pseudo_class_selector_handler CRSelEng a_this,
guchar *  a_name,
enum CRPseudoType  a_type,
CRPseudoClassSelectorHandler a_handler
 

Definition at line 1249 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, CRPseudoClassSelHandlerEntry::handler, CRPseudoClassSelHandlerEntry::name, and PRIVATE.

enum CRStatus cr_sel_eng_matches_node CRSelEng a_this,
CRSimpleSel a_sel,
xmlNode *  a_node,
gboolean *  a_result
 

Evaluates a chained list of simple selectors (known as a css2 selector).

Says wheter if this selector matches the xml node given in parameter or not.

Parameters:
a_this the selection engine.
a_sel the simple selector against which the xml node is going to be matched.
a_node the node against which the selector is going to be matched.
a_result out parameter. The result of the match. Is set to TRUE if the selector matches the node, FALSE otherwise. This value is considered if and only if this functions returns CR_OK.
Returns:
the CR_OK if the selection ran correctly, an error code otherwise.

Definition at line 1292 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, CRSimpleSel, and PRIVATE.

CRSelEng* cr_sel_eng_new void   ) 
 

Creates a new instance of CRSelEng.

Returns:
the newly built instance of CRSelEng of NULL if an error occurs.

Definition at line 1110 of file cr-sel-eng.c.

References cr_sel_eng_register_pseudo_class_sel_handler(), cr_utils_trace_info, CRSelEng, CRSelEngPriv, and PRIVATE.

enum CRStatus cr_sel_eng_register_pseudo_class_sel_handler CRSelEng a_this,
guchar *  a_name,
enum CRPseudoType  a_type,
CRPseudoClassSelectorHandler  a_handler
 

Adds a new handler entry in the handlers entry table.

Parameters:
a_this the current instance of CRSelEng
a_pseudo_class_sel_name the name of the pseudo class selector.
a_pseudo_class_type the type of the pseudo class selector.
a_handler the actual handler or callback to be called during the selector evaluation process.
Returns:
CR_OK, upon successful completion, an error code otherwise.

Definition at line 1150 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, CRPseudoClassSelHandlerEntry::handler, CRPseudoClassSelHandlerEntry::name, and PRIVATE.

Referenced by cr_sel_eng_new().

enum CRStatus cr_sel_eng_unregister_all_pseudo_class_sel_handlers CRSelEng a_this  ) 
 

Unregisters all the pseudo class sel handlers and frees all the associated allocated datastructures.

Parameters:
a_this the current instance of CRSelEng .
Returns:
CR_OK upon succesful completion, an error code otherwise.

Definition at line 1222 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, CRPseudoClassSelHandlerEntry::name, and PRIVATE.

Referenced by cr_sel_eng_destroy().

enum CRStatus cr_sel_eng_unregister_pseudo_class_sel_handler CRSelEng a_this,
guchar *  a_name,
enum CRPseudoType  a_type
 

Definition at line 1181 of file cr-sel-eng.c.

References CR_BAD_PARAM_ERROR, CRPseudoClassSelHandlerEntry::name, and PRIVATE.


Generated on Fri Oct 29 08:29:13 2004 for Libcroco by  doxygen 1.3.9.1