FoFo

FoFo —

Synopsis




            FoFo;
            FoFoClass;
#define     FO_FO_ERROR
GQuark      fo_fo_error_quark               (void);
enum        FoFoError;
            FoFoAreaNew2Context;
            FoFoAreaIterator;
FoFo*       fo_fo_new                       (void);
void        fo_fo_debug_dump_properties     (FoFo *fo,
                                             gint depth);
void        fo_fo_set_context               (FoFo *fo_fo,
                                             FoContext *new_context);
FoContext*  fo_fo_get_context               (FoFo *fo_fo);
void        fo_fo_update_from_context       (FoFo *fo_fo,
                                             FoContext *context);
FoFo*       fo_fo_get_flow                  (FoFo *fo_fo);
FoFo*       fo_fo_get_tree                  (FoFo *fo_fo);
gboolean    fo_fo_get_generate_reference_area
                                            (FoFo *fo_fo);
gboolean    fo_fo_get_allow_mixed_content   (FoFo *fo_fo);
gboolean    fo_fo_validate_content          (FoFo *fo,
                                             GError **error);
gboolean    fo_fo_resolve_property_attributes
                                            (FoNode *fo_node,
                                             gpointer data);
void        fo_fo_children_properties_resolve
                                            (FoFo *this_fo,
                                             FoArea *this_fo_parent_area,
                                             FoArea **new_area,
                                             GHashTable *prop_eval_hash,
                                             FoDoc *fo_doc,
                                             gboolean continue_after_error,
                                             FoDebugFlag debug_level,
                                             FoWarningFlag warning_mode,
                                             GError **error);
void        fo_fo_validate                  (FoFo *fo,
                                             FoContext *current_context,
                                             FoContext *parent_context,
                                             GError **error);
FoFo*       fo_fo_clone                     (FoFo *original);
void        fo_fo_area_new                  (FoFo *fo,
                                             FoDoc *fo_doc,
                                             FoArea *parent_area,
                                             FoArea **new_area,
                                             guint debug_level);
void        fo_fo_area_new2                 (FoFo *fo,
                                             FoFoAreaNew2Context *context,
                                             GError **error);
void        fo_fo_trim_whitespace_children  (FoFo *fo);
gboolean    fo_fo_validate_content_empty    (FoFo *fo,
                                             GError **error);
gboolean    fo_fo_validate_content_block_plus
                                            (FoFo *fo,
                                             GError **error);
void        fo_fo_validate_pcdata_or_inline (FoNode *fo_node,
                                             gboolean *is_not_pcdata_inline);
void        fo_fo_validate_block_or_whitespace
                                            (FoNode *fo_node,
                                             gboolean *is_not_block_or_whitespace);
void        fo_fo_validate_pcdata_inline_block_neutral
                                            (FoNode *fo_node,
                                             gpointer data);
FoFoAreaIterator* fo_fo_get_area_iterator   (FoFo *fo);
FoArea*     fo_fo_area_iterator_get_area    (const FoFoAreaIterator *iterator);
gboolean    fo_fo_area_iterator_next        (FoFoAreaIterator *iterator);

Object Hierarchy


  GObject
   +----FoObject
         +----FoNode
               +----FoFo
                     +----FoMarkerParent
                     +----FoCharacter
                     +----FoColorProfile
                     +----FoConditionalPageMasterReference
                     +----FoDeclarations
                     +----FoExternalGraphic
                     +----FoFloat
                     +----FoFlow
                     +----FoFootnoteBody
                     +----FoFootnote
                     +----FoInitialPropertySet
                     +----FoInstreamForeignObject
                     +----FoLayoutMasterSet
                     +----FoLeader
                     +----FoMarker
                     +----FoMultiCase
                     +----FoMultiProperties
                     +----FoMultiPropertySet
                     +----FoMultiSwitch
                     +----FoMultiToggle
                     +----FoPageNumberCitation
                     +----FoPageNumber
                     +----FoPageSequence
                     +----FoPageSequenceMaster
                     +----FoRegionAfter
                     +----FoRegionBefore
                     +----FoRegionBody
                     +----FoRegionEnd
                     +----FoRegionStart
                     +----FoRepeatablePageMasterAlternatives
                     +----FoRepeatablePageMasterReference
                     +----FoRetrieveMarker
                     +----FoRoot
                     +----FoSimplePageMaster
                     +----FoSinglePageMasterReference
                     +----FoStaticContent
                     +----FoTableColumn
                     +----FoTableRow
                     +----FoText
                     +----FoTitle
                     +----FoTree

Known Derived Interfaces

FoFo is required by FoInlineFoIface, FoTableBorderFoIface and FoBlockFoIface.

Properties


  "allow-mixed-content"  gboolean              : Read
  "context"              FoContext             : Read
  "flow"                 FoFo                  : Read
  "generate-reference-area" gboolean              : Read
  "tree"                 FoFo                  : Read

Description

Details

FoFo

typedef struct _FoFo FoFo;


FoFoClass

typedef struct _FoFoClass FoFoClass;


FO_FO_ERROR

#define FO_FO_ERROR (fo_fo_error_quark ())


fo_fo_error_quark ()

GQuark      fo_fo_error_quark               (void);

Gets the GQuark identifying FoFo errors.

Returns : GQuark identifying FoFo errors.

enum FoFoError

typedef enum
{
  FO_FO_ERROR_FAILED,            /* Generic error code */
  FO_FO_ERROR_WARNING,	         /* Non-fatal error */
  FO_FO_ERROR_EMPTY,             /* FO should not be empty */
  FO_FO_ERROR_NOT_EMPTY,         /* FO should be empty */
  FO_FO_ERROR_NOT_BLOCK,         /* FO should contain (%block;)+ */
  FO_FO_ERROR_INVALID_CHILD,     /* FO not allowed as child of parent FO */
  FO_FO_ERROR_INVALID_CONTENT,   /* FO content does not match content model */
  FO_FO_ERROR_ENUMERATION_TOKEN, /* Unrecognised enumeration token */
  FO_FO_ERROR_DATATYPE,          /* Invalid datatype value for property */
  FO_FO_ERROR_DATATYPE_REPLACE,  /* Invalid datatype value for property replaced */
  FO_FO_ERROR_DATATYPE_NULL,     /* Invalid datatype value for property: NULL */
  FO_FO_ERROR_UNSUPPORTED_PROPERTY,	/* Unsupported property */
  FO_FO_ERROR_NO_IMAGE,		 /* No image */
  FO_FO_ERROR_LAST
} FoFoError;


FoFoAreaNew2Context

typedef struct {
  FoDoc        *fo_doc;
  FoArea       *parent_area;
  FoArea      **new_area;
  gboolean      continue_after_error;
  FoDebugFlag   debug_level;
  FoWarningFlag warning_mode;
} FoFoAreaNew2Context;


FoFoAreaIterator

typedef struct _FoFoAreaIterator FoFoAreaIterator;


fo_fo_new ()

FoFo*       fo_fo_new                       (void);

Creates a new FoFo initialized to default value.

Returns : the new FoFo

fo_fo_debug_dump_properties ()

void        fo_fo_debug_dump_properties     (FoFo *fo,
                                             gint depth);

Log debug messages for most of the instance variables and some of the class variables of fo.

fo : FoFo whose properties to dump
depth : Indication of relative depth to be applied to the output.

fo_fo_set_context ()

void        fo_fo_set_context               (FoFo *fo_fo,
                                             FoContext *new_context);

Sets the context of fo_fo to new_context

fo_fo : The FoFo object
new_context : The new context

fo_fo_get_context ()

FoContext*  fo_fo_get_context               (FoFo *fo_fo);

Gets the "context" of fo_fo

fo_fo : The FoFo object
Returns : The context

fo_fo_update_from_context ()

void        fo_fo_update_from_context       (FoFo *fo_fo,
                                             FoContext *context);

Calls the FoFo-specific _update_from_context() function to update the FoFo's property values from the larger set of property values maintained in the FoContext.

fo_fo : FoFo to be updated
context : FoContext from which to update the FoFo

fo_fo_get_flow ()

FoFo*       fo_fo_get_flow                  (FoFo *fo_fo);

Gets the flow of fo_fo

fo_fo : The FoFo object
Returns : The flow

fo_fo_get_tree ()

FoFo*       fo_fo_get_tree                  (FoFo *fo_fo);

Gets the tree of fo_fo

fo_fo : The FoFo object
Returns : The tree

fo_fo_get_generate_reference_area ()

gboolean    fo_fo_get_generate_reference_area
                                            (FoFo *fo_fo);

Gets whether or not the FO generates reference areas.

fo_fo : The FoFo object
Returns : The generate-reference-area class property value

fo_fo_get_allow_mixed_content ()

gboolean    fo_fo_get_allow_mixed_content   (FoFo *fo_fo);

Gets whether or not the FO allows mixed content (i.e. text nodes).

fo_fo : The FoFo object
Returns : The allow_mixed_content class property value.

fo_fo_validate_content ()

gboolean    fo_fo_validate_content          (FoFo *fo,
                                             GError **error);

Calls the FoFo-specific _validate_content() function to validate the FoFo's content model and returns the value returned by that function.

fo : FoFo whose content is to be validated
error : GError
Returns : FALSE if no content model error, otherwise TRUE

fo_fo_resolve_property_attributes ()

gboolean    fo_fo_resolve_property_attributes
                                            (FoNode *fo_node,
                                             gpointer data);

Resolves the values of the properties of fo_node.

fo_node : FoNode for which to resolve property attributes.
data : Context in which to resolve the properties.
Returns : TRUE if an error occurred, FALSE otherwise.

fo_fo_children_properties_resolve ()

void        fo_fo_children_properties_resolve
                                            (FoFo *this_fo,
                                             FoArea *this_fo_parent_area,
                                             FoArea **new_area,
                                             GHashTable *prop_eval_hash,
                                             FoDoc *fo_doc,
                                             gboolean continue_after_error,
                                             FoDebugFlag debug_level,
                                             FoWarningFlag warning_mode,
                                             GError **error);

Resolves the properties of the children of this_fo.

this_fo : FoFo for which to resolve properties.
this_fo_parent_area : Parent FoArea to which to add new areas.
new_area : New area, if any.
prop_eval_hash : Map of property names to property eval functions.
fo_doc : Output FoDoc.
continue_after_error : Whether to continue after any formatting errors.
debug_level : Debug level.
warning_mode : Warning mode.
error : Indication of any error that occurred.

fo_fo_validate ()

void        fo_fo_validate                  (FoFo *fo,
                                             FoContext *current_context,
                                             FoContext *parent_context,
                                             GError **error);

Validate and/or munge the properties of fo.

fo : FoFo to validate.
current_context : FoContext of fo.
parent_context : FoContext of parent of fo.
error : GError indicating any error that occurs

fo_fo_clone ()

FoFo*       fo_fo_clone                     (FoFo *original);

Make a clone of original and insert the clone after original in the fo tree. Set instance properties of the clone to match original.

original : Fo object to be cloned
Returns : Clone of original

fo_fo_area_new ()

void        fo_fo_area_new                  (FoFo *fo,
                                             FoDoc *fo_doc,
                                             FoArea *parent_area,
                                             FoArea **new_area,
                                             guint debug_level);

Warning

fo_fo_area_new is deprecated and should not be used in newly-written code. Use fo_fo_area_new2 in new code.

Creates a new FoArea for fo and adds it as the last child of parent_area.

fo : FoFo for which to create a new area.
fo_doc : Output FoDoc
parent_area : FoArea to which to add new area.
new_area : New area.
debug_level : Debug level.

fo_fo_area_new2 ()

void        fo_fo_area_new2                 (FoFo *fo,
                                             FoFoAreaNew2Context *context,
                                             GError **error);

Creates a new FoArea corresponding to fo.

fo : FoFo for which to create area.
context : Context in which to create area.
error : Indication of any error that occurred.

fo_fo_trim_whitespace_children ()

void        fo_fo_trim_whitespace_children  (FoFo *fo);

Remove any "whitespace" children of fo. I.e., unlink and unref any children that are FoText that contain only whitespace or are FoWrapperWhitespace nodes.

Leaves fo with no "whitespace" children.

fo : FoFo to trim

fo_fo_validate_content_empty ()

gboolean    fo_fo_validate_content_empty    (FoFo *fo,
                                             GError **error);

Validates that fo does not contain any child FoFo

fo : FoFo to validate.
error : GError indicating any error.
Returns : FALSE if fo is empty.

fo_fo_validate_content_block_plus ()

gboolean    fo_fo_validate_content_block_plus
                                            (FoFo *fo,
                                             GError **error);

Validates the fo contains one or more FoBlockFo formatting objects.

fo : FoFo to validate.
error : GError indicating any error.
Returns : FALSE if content matches.

fo_fo_validate_pcdata_or_inline ()

void        fo_fo_validate_pcdata_or_inline (FoNode *fo_node,
                                             gboolean *is_not_pcdata_inline);

fo_node :
is_not_pcdata_inline :

fo_fo_validate_block_or_whitespace ()

void        fo_fo_validate_block_or_whitespace
                                            (FoNode *fo_node,
                                             gboolean *is_not_block_or_whitespace);

fo_node :
is_not_block_or_whitespace :

fo_fo_validate_pcdata_inline_block_neutral ()

void        fo_fo_validate_pcdata_inline_block_neutral
                                            (FoNode *fo_node,
                                             gpointer data);

Validates that the content of fo_node is only #PCDATA or FoInline or FoNeutral formatting objects.

fo_node : FoFo to validate
data : Pointer to gboolean storing result

fo_fo_get_area_iterator ()

FoFoAreaIterator* fo_fo_get_area_iterator   (FoFo *fo);

Gets a FoFoAreaIterator for iterating over the areas generated by fo.

fo : FoFo for which to get iterator.
Returns : A FoFoAreaIterator.

fo_fo_area_iterator_get_area ()

FoArea*     fo_fo_area_iterator_get_area    (const FoFoAreaIterator *iterator);

Gets the current FoArea pointed to by iterator.

iterator : FoFoAreaIterator for which to get current area.
Returns : The current FoArea.

fo_fo_area_iterator_next ()

gboolean    fo_fo_area_iterator_next        (FoFoAreaIterator *iterator);

Makes iterator point to the next FoArea in its list.

iterator : FoFoAreaIterator to modify
Returns : TRUE if there is a next FoArea, FALSE if not.

Property Details

The "allow-mixed-content" property

  "allow-mixed-content"  gboolean              : Read

Whether or not the formatting object allows mixed content.

Default value: FALSE


The "context" property

  "context"              FoContext             : Read

Set of current formatting object properties.


The "flow" property

  "flow"                 FoFo                  : Read

Ancestor fo:flow node in the formatting object tree.


The "generate-reference-area" property

  "generate-reference-area" gboolean              : Read

Whether or not the formatting object generates a reference area.

Default value: FALSE


The "tree" property

  "tree"                 FoFo                  : Read

Top of the formatting object tree.