## fo

fo —

## Synopsis

    typedef     FoUnit;
    #define     FO_OBJECT                       (x)
    #define     FO_CLASS                        (x)
    #define     FO_PARSER_OBJECT                (x)
    #define     FO_PARSER_CLASS                 (x)
    #define     FO_PAGE_SEQUENCE_GENERATOR      (x)
    #define     FO_SIMPLE_PAGE_MASTER           (x)
    #define     FO_SUBSEQUENCE_SPECIFIER        (x)
    #define     FO_PAGE_SEQUENCE_MASTER         (x)
    #define     FO_SOLVER_AREA                  (x)
    #define     FO_SOLVER_AREA_CLASS            (x)
    #define     FO_SOLVER_BLOCK_AREA            (x)
    #define     FO_SOLVER_LINE_AREA             (x)
    #define     FO_SOLVER_INLINE_AREA           (x)
    #define     FO_SOLVER_TEST_RECT             (x)
    #define     FO_SOLVER_RECT                  (x)
    #define     FO_SOLVER_TEXT                  (x)
    #define     FO_SOLVER_PAGE                  (x)
    void        fo_rect_set_xywh                (FoRect *rect,
                                                 FoUnit x,
                                                 FoUnit y,
                                                 FoUnit w,
                                                 FoUnit h);
    void        fo_rect_set_xyxy                (FoRect *rect,
                                                 FoUnit x0,
                                                 FoUnit y0,
                                                 FoUnit x1,
                                                 FoUnit y1);
    void        fo_rect_test_render             (const FoRect *rect,
                                                 FoPrintContext *fpc,
                                                 const gchar *label);
    FoSimplePageMaster* fo_page_sequence_generator_get_master_for_next_page
                                                (FoPageSequenceGenerator *psg,
                                                 int page_number,
                                                 int index_within_page_sequence,
                                                 gboolean is_first_of_sequence,
                                                 gboolean is_last_of_sequence,
                                                 gboolean is_blank);
    FoParserResult* fo_parser_result_new_from_xmldoc
                                                (xmlDocPtr xml_doc);
    void        fo_parser_result_delete         (FoParserResult *result);
    void        fo_parser_result_test_render    (FoParserResult *result,
                                                 FoPrintContext *fpc);
    FoSimplePageMaster* fo_parser_result_lookup_simple_page_master
                                                (FoParserResult *result,
                                                 xmlChar *name);
    FoPageSequenceMaster* fo_parser_result_lookup_page_sequence_master
                                                (FoParserResult *result,
                                                 xmlChar *name);
    void        fo_solver_area_render_recursive (FoSolverArea *area,
                                                 FoPrintContext *fpc);
    FoSolverResult* fo_solver_result_new_from_parser_result
                                                (FoParserResult *parser_result);
    void        fo_solver_result_delete         (FoSolverResult *result);
    void        fo_solver_result_render         (FoSolverResult *result,
                                                 FoPrintContext *fpc);
    FoPrintContext* fo_print_context_new_from_gnome_print
                                                (GnomePrintContext *gpc);
    void        fo_print_context_delete         (FoPrintContext *fpc);
    void        fo_print_context_beginpage      (FoPrintContext *fpc,
                                                 const gchar *name);
    void        fo_print_context_showpage       (FoPrintContext *fpc);
    void        fo_print_context_test_rect      (FoPrintContext *fpc,
                                                 const FoRect *rect,
                                                 const gchar *label);
    void        fo_print_context_push_state     (FoPrintContext *fpc);
    void        fo_print_context_pop_state      (FoPrintContext *fpc);
    void        fo_print_context_translate      (FoPrintContext *fpc,
                                                 FoUnit x,
                                                 FoUnit y);

## Description

## Details

### FoUnit

    typedef gdouble FoUnit;

### FO_OBJECT()

    #define FO_OBJECT(x) ((FoObject*)(x))

`x` : |

### FO_CLASS()

    #define FO_CLASS(x) ((FoClass*)(x))

`x` : |

### FO_PARSER_OBJECT()

    #define FO_PARSER_OBJECT(x) ((FoParserObject*)(x))

`x` : |

### FO_PARSER_CLASS()

    #define FO_PARSER_CLASS(x) ((FoParserClass*)(x))

`x` : |

### FO_PAGE_SEQUENCE_GENERATOR()

    #define FO_PAGE_SEQUENCE_GENERATOR(x) ((FoPageSequenceGenerator*)(x))

`x` : |

### FO_SIMPLE_PAGE_MASTER()

    #define FO_SIMPLE_PAGE_MASTER(x) ((FoSimplePageMaster*)(x))

`x` : |

### FO_SUBSEQUENCE_SPECIFIER()

    #define FO_SUBSEQUENCE_SPECIFIER(x) ((FoSubsequenceSpecifier*)(x))

`x` : |

### FO_PAGE_SEQUENCE_MASTER()

    #define FO_PAGE_SEQUENCE_MASTER(x) ((FoPageSequenceMaster*)(x))

`x` : |

### FO_SOLVER_AREA()

    #define FO_SOLVER_AREA(x) ((FoSolverArea*)(x))

`x` : |

### FO_SOLVER_AREA_CLASS()

    #define FO_SOLVER_AREA_CLASS(x) ((FoSolverAreaClass*)(x))

`x` : |

### FO_SOLVER_BLOCK_AREA()

    #define FO_SOLVER_BLOCK_AREA(x) ((FoSolverBlockArea*)(x))

`x` : |

### FO_SOLVER_LINE_AREA()

    #define FO_SOLVER_LINE_AREA(x) ((FoSolverLineArea*)(x))

`x` : |

### FO_SOLVER_INLINE_AREA()

    #define FO_SOLVER_INLINE_AREA(x) ((FoSolverInlineArea*)(x))

`x` : |

### FO_SOLVER_TEST_RECT()

    #define FO_SOLVER_TEST_RECT(x) ((FoSolverTestRect*)(x))

`x` : |

### FO_SOLVER_RECT()

    #define FO_SOLVER_RECT(x) ((FoSolverRect*)(x))

`x` : |

### FO_SOLVER_TEXT()

    #define FO_SOLVER_TEXT(x) ((FoSolverText*)(x))

`x` : |

### FO_SOLVER_PAGE()

    #define FO_SOLVER_PAGE(x) ((FoSolverPage*)(x))

`x` : |

### fo_rect_set_xywh ()

    void        fo_rect_set_xywh                (FoRect *rect,
                                                 FoUnit x,
                                                 FoUnit y,
                                                 FoUnit w,
                                                 FoUnit h);

TODO: Write me

`rect` : |
`x` : |
`y` : |
`w` : |
`h` : |

### fo_rect_set_xyxy ()

    void        fo_rect_set_xyxy                (FoRect *rect,
                                                 FoUnit x0,
                                                 FoUnit y0,
                                                 FoUnit x1,
                                                 FoUnit y1);

TODO: Write me

`rect` : |
`x0` : |
`y0` : |
`x1` : |
`y1` : |

### fo_rect_test_render ()

    void        fo_rect_test_render             (const FoRect *rect,
                                                 FoPrintContext *fpc,
                                                 const gchar *label);

TODO: Write me

`rect` : |
`fpc` : |
`label` : |

### fo_page_sequence_generator_get_master_for_next_page ()

    FoSimplePageMaster* fo_page_sequence_generator_get_master_for_next_page
                                                (FoPageSequenceGenerator *psg,
                                                 int page_number,
                                                 int index_within_page_sequence,
                                                 gboolean is_first_of_sequence,
                                                 gboolean is_last_of_sequence,
                                                 gboolean is_blank);

`psg` : |
`page_number` : |
`index_within_page_sequence` : |
`is_first_of_sequence` : |
`is_last_of_sequence` : |
`is_blank` : |
Returns : |

### fo_parser_result_new_from_xmldoc ()

    FoParserResult* fo_parser_result_new_from_xmldoc
                                                (xmlDocPtr xml_doc);

`xml_doc` : |
Returns : |

### fo_parser_result_delete ()

    void        fo_parser_result_delete         (FoParserResult *result);

`result` : |

### fo_parser_result_test_render ()

    void        fo_parser_result_test_render    (FoParserResult *result,
                                                 FoPrintContext *fpc);

`result` : |
`fpc` : |

### fo_parser_result_lookup_simple_page_master ()

    FoSimplePageMaster* fo_parser_result_lookup_simple_page_master
                                                (FoParserResult *result,
                                                 xmlChar *name);

`result` : |
`name` : |
Returns : |

### fo_parser_result_lookup_page_sequence_master ()

    FoPageSequenceMaster* fo_parser_result_lookup_page_sequence_master
                                                (FoParserResult *result,
                                                 xmlChar *name);

`result` : |
`name` : |
Returns : |

### fo_solver_area_render_recursive ()

    void        fo_solver_area_render_recursive (FoSolverArea *area,
                                                 FoPrintContext *fpc);

`area` : |
`fpc` : |

### fo_solver_result_new_from_parser_result ()

    FoSolverResult* fo_solver_result_new_from_parser_result
                                                (FoParserResult *parser_result);

`parser_result` : |
Returns : |

### fo_solver_result_delete ()

    void        fo_solver_result_delete         (FoSolverResult *result);

`result` : |

### fo_solver_result_render ()

    void        fo_solver_result_render         (FoSolverResult *result,
                                                 FoPrintContext *fpc);

`result` : |
`fpc` : |

### fo_print_context_new_from_gnome_print ()

    FoPrintContext* fo_print_context_new_from_gnome_print
                                                (GnomePrintContext *gpc);

TODO: Write me

`gpc` : |
Returns : |

### fo_print_context_delete ()

    void        fo_print_context_delete         (FoPrintContext *fpc);

TODO: Write me

`fpc` : |

### fo_print_context_beginpage ()

    void        fo_print_context_beginpage      (FoPrintContext *fpc,
                                                 const gchar *name);

TODO: Write me

`fpc` : |
`name` : |

### fo_print_context_showpage ()

    void        fo_print_context_showpage       (FoPrintContext *fpc);

TODO: Write me

`fpc` : |

### fo_print_context_test_rect ()

    void        fo_print_context_test_rect      (FoPrintContext *fpc,
                                                 const FoRect *rect,
                                                 const gchar *label);

TODO: Write me

`fpc` : |
`rect` : |
`label` : |

### fo_print_context_push_state ()

    void        fo_print_context_push_state     (FoPrintContext *fpc);

TODO: Write me

`fpc` : |

### fo_print_context_pop_state ()

    void        fo_print_context_pop_state      (FoPrintContext *fpc);

TODO: Write me

`fpc` : |

### fo_print_context_translate ()

    void        fo_print_context_translate      (FoPrintContext *fpc,
                                                 FoUnit x,
                                                 FoUnit y);

TODO: Write me

`fpc` : |
`x` : |
`y` : |