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.