]> saetta.ns0.it Git - reptool/libreptool/commitdiff
Some code adjustments.
authorAndrea Zagli <azagli@libero.it>
Sun, 20 May 2007 09:24:17 +0000 (09:24 +0000)
committerAndrea Zagli <azagli@libero.it>
Sun, 20 May 2007 09:24:17 +0000 (09:24 +0000)
Added functions for RptReport properties.

git-svn-id: svn+ssh://saetta.homelinux.org/svn/libreptool/trunk@18 3191ed1d-3fce-41bb-ab4a-0cebc0943b59

ChangeLog
configure.ac
libreptool.pc.in
src/rptreport.c
src/rptreport.h

index bb6cd24858791d1edea16b4b940fd2feadd6e9d7..f579af56bfe29c601992992d56e8f8540430bcaa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2007-05-20 Andrea Zagli <azagli@inwind.it>
+
+       * src/rptreport.h:
+       * src/rptreport.c: added functions rpt_report_database_get_provider(),
+       rpt_report_database_get_connection_string(),
+       rpt_report_database_get_sql()
+
+
+2007-05-12 Andrea Zagli <azagli@inwind.it>
+
+       * libreptool.pc.in: libgda missing
+       * src/rptreport.h:
+       * src/rptreport.c: added rpt_report_get_page_size(),
+       rpt_report_get_page_margins(), rpt_report_get_section_height(),
+       rpt_report_get_report_header_new_page_after(),
+       rpt_report_get_report_footer_new_page_before(),
+       rpt_report_get_page_header_first_page(),
+       rpt_report_get_page_header_last_page(),
+       rpt_report_get_page_footer_first_page(),
+       rpt_report_get_page_footer_last_page(), rpt_report_section_get_objects(),
+       rpt_report_body_get_new_page_after(), rpt_report_body_set_new_page_after(),
+       rpt_report_section_remove()
+
 2007-05-10 Andrea Zagli <azagli@inwind.it>
 
        * src/rptprint.c: some code adjustments
index 0eaf68a3a55cf5b6967eba31992e6a7067b5367b..71bf109b61a0f86fe0b9efdea25aeab8aeea2ddb 100644 (file)
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT([libreptool], [0.0.4], [azagli@inwind.it])
+AC_INIT([libreptool], [0.0.5], [azagli@inwind.it])
 AC_CONFIG_SRCDIR([src/rptprint.c])
 AC_CONFIG_HEADER([config.h])
 
index 9c36abc1d83dad0d38f3ac0e6b9d0ef5f7ef3817..3ca2c280385907dc3e75aa4c99ae51ac93d23d10 100644 (file)
@@ -4,9 +4,9 @@ libdir=@libdir@
 includedir=@includedir@
 
 Name: @PACKAGE_NAME@
-Description: Library to manage Reptool files
+Description: Library to manage RepTool files
 Version: @PACKAGE_VERSION@
-Requires: glib-2.0 gobject-2.0 libxml-2.0
+Requires: glib-2.0 gobject-2.0 libxml-2.0 libgda
 Libs: -L${libdir} -lreptool
 Cflags: -I${includedir}
 
index 8951a23dbf62b9a72647a38f30257349e4cc499e..868345e1906269b0366feedabe6674c9989266e6 100644 (file)
@@ -117,9 +117,11 @@ static void rpt_report_xml_parse_section (RptReport *rpt_report, xmlNode *xnode,
 
 static RptObject *rpt_report_get_object_from_name_in_list (GList *list, const gchar *name);
 
-static RptReportSection rpt_report_get_section_object (RptReport *rpt_report, RptObject *rpt_object);
+static RptReportSection rpt_report_object_get_section (RptReport *rpt_report, RptObject *rpt_object);
 static gboolean rpt_report_object_is_in_section (RptReport *rpt_report, RptObject *rpt_object, RptReportSection section);
-static xmlNode *rpt_report_get_xml_section (RptReport *rpt_report , RptReportSection section);
+
+static void rpt_report_section_create (RptReport *rpt_report, RptReportSection section);
+static xmlNode *rpt_report_section_get_xml (RptReport *rpt_report, RptReportSection section);
 
 static xmlNode *rpt_report_rptprint_new_page (RptReport *rpt_report,
                                               xmlNode *xroot);
@@ -199,8 +201,8 @@ rpt_report_class_init (RptReportClass *klass)
         * @data_model: a #GdaDataModel; or NULL if there's no database source.
         * @row: the current @data_model's row; -1 if @data_model is NULL.
         *
-        * The signal is emitted each time there's into text's source
-        * attribute a field that doesn't exists.
+        * The signal is emitted each time there's into text's attribute source
+        * a field that doesn't exists.
         */
        klass->field_request_signal_id = g_signal_new ("field-request",
                                                       G_TYPE_FROM_CLASS (object_class),
@@ -413,8 +415,7 @@ RptReport
                                                                        xpresult = xmlXPathEvalExpression ((const xmlChar *)"child::report-header", xpcontext);
                                                                        if (!xmlXPathNodeSetIsEmpty (xpresult->nodesetval) && xpresult->nodesetval->nodeNr == 1)
                                                                                {
-                                                                                       priv->report_header = (ReportHeader *)g_malloc0 (sizeof (ReportHeader));
-                                                                                       priv->report_header->objects = NULL;
+                                                                                       rpt_report_section_create (rpt_report, RPTREPORT_SECTION_REPORT_HEADER);
                                                                                        rpt_report_xml_parse_section (rpt_report, xpresult->nodesetval->nodeTab[0], RPTREPORT_SECTION_REPORT_HEADER);
                                                                                }
 
@@ -423,8 +424,7 @@ RptReport
                                                                        xpresult = xmlXPathEvalExpression ((const xmlChar *)"child::report-footer", xpcontext);
                                                                        if (!xmlXPathNodeSetIsEmpty (xpresult->nodesetval) && xpresult->nodesetval->nodeNr == 1)
                                                                                {
-                                                                                       priv->report_footer = (ReportFooter *)g_malloc0 (sizeof (ReportFooter));
-                                                                                       priv->report_footer->objects = NULL;
+                                                                                       rpt_report_section_create (rpt_report, RPTREPORT_SECTION_REPORT_FOOTER);
                                                                                        rpt_report_xml_parse_section (rpt_report, xpresult->nodesetval->nodeTab[0], RPTREPORT_SECTION_REPORT_FOOTER);
                                                                                }
 
@@ -433,8 +433,7 @@ RptReport
                                                                        xpresult = xmlXPathEvalExpression ((const xmlChar *)"child::page-header", xpcontext);
                                                                        if (!xmlXPathNodeSetIsEmpty (xpresult->nodesetval) && xpresult->nodesetval->nodeNr == 1)
                                                                                {
-                                                                                       priv->page_header = (PageHeader *)g_malloc0 (sizeof (PageHeader));      
-                                                                                       priv->page_header->objects = NULL;
+                                                                                       rpt_report_section_create (rpt_report, RPTREPORT_SECTION_PAGE_HEADER);
                                                                                        rpt_report_xml_parse_section (rpt_report, xpresult->nodesetval->nodeTab[0], RPTREPORT_SECTION_PAGE_HEADER);
                                                                                }
 
@@ -443,8 +442,7 @@ RptReport
                                                                        xpresult = xmlXPathEvalExpression ((const xmlChar *)"child::page-footer", xpcontext);
                                                                        if (!xmlXPathNodeSetIsEmpty (xpresult->nodesetval) && xpresult->nodesetval->nodeNr == 1)
                                                                                {
-                                                                                       priv->page_footer = (PageFooter *)g_malloc0 (sizeof (PageFooter));
-                                                                                       priv->page_footer->objects = NULL;
+                                                                                       rpt_report_section_create (rpt_report, RPTREPORT_SECTION_PAGE_FOOTER);
                                                                                        rpt_report_xml_parse_section (rpt_report, xpresult->nodesetval->nodeTab[0], RPTREPORT_SECTION_PAGE_FOOTER);
                                                                                }
 
@@ -486,6 +484,66 @@ RptReport
        return rpt_report;
 }
 
+/**
+ * rpt_report_database_get_provider:
+ * @rpt_report:
+ *
+ */
+const gchar
+*rpt_report_database_get_provider (RptReport *rpt_report)
+{
+       gchar *ret = NULL;
+
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       if (priv->db != NULL)
+               {
+                       ret = g_strdup (priv->db->provider_id);
+               }
+
+       return (const gchar *)ret;
+}
+
+/**
+ * rpt_report_database_get_connection_string:
+ * @rpt_report:
+ *
+ */
+const gchar
+*rpt_report_database_get_connection_string (RptReport *rpt_report)
+{
+       gchar *ret = NULL;
+
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       if (priv->db != NULL)
+               {
+                       ret = g_strdup (priv->db->connection_string);
+               }
+
+       return (const gchar *)ret;
+}
+
+/**
+ * rpt_report_database_get_sql:
+ * @rpt_report:
+ *
+ */
+const gchar
+*rpt_report_database_get_sql (RptReport *rpt_report)
+{
+       gchar *ret = NULL;
+
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       if (priv->db != NULL)
+               {
+                       ret = g_strdup (priv->db->sql);
+               }
+
+       return (const gchar *)ret;
+}
+
 /**
  * rpt_report_set_database:
  * @rpt_report: an #RptReport object.
@@ -526,8 +584,35 @@ rpt_report_set_page_size (RptReport *rpt_report,
 {
        RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
 
-       priv->page->size->width = size.width;
-       priv->page->size->height = size.height;
+       if (size.width <= 0.0 ||
+           size.height <= 0.0)
+               {
+                       /* TO DO */
+                       g_warning ("Page's width and height must be greater than zero.");
+               }
+       else
+               {
+                       priv->page->size->width = size.width;
+                       priv->page->size->height = size.height;
+               }
+}
+
+/**
+ * rpt_report_get_page_size:
+ * @rpt_report:
+ *
+ */
+RptSize
+*rpt_report_get_page_size (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       RptSize *size = (RptSize *)g_malloc0 (sizeof (RptSize));
+
+       size->width = priv->page->size->width;
+       size->height = priv->page->size->height;
+
+       return size;
 }
 
 /**
@@ -555,6 +640,82 @@ rpt_report_set_page_margins (RptReport *rpt_report,
        priv->page->margin_left = left;
 }
 
+/**
+ * rpt_report_get_page_margins:
+ * @rpt_report:
+ * @top:
+ * @right:
+ * @bottom:
+ * @left:
+ *
+ */
+void
+rpt_report_get_page_margins (RptReport *rpt_report,
+                             gdouble *top,
+                             gdouble *right,
+                             gdouble *bottom,
+                             gdouble *left)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       *top = priv->page->margin_top;
+       *right = priv->page->margin_right;
+       *bottom = priv->page->margin_bottom;
+       *left = priv->page->margin_left;
+}
+
+/**
+ * rpt_report_get_section_height:
+ * @rpt_report:
+ * @section:
+ *
+ */
+gdouble
+rpt_report_get_section_height (RptReport *rpt_report,
+                               RptReportSection section)
+{
+       gdouble ret = -1;
+
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       switch (section)
+               {
+                       case RPTREPORT_SECTION_REPORT_HEADER:
+                               if (priv->report_header != NULL)
+                                       {
+                                               ret = priv->report_header->height;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_REPORT_FOOTER:
+                               if (priv->report_footer != NULL)
+                                       {
+                                               ret = priv->report_footer->height;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_HEADER:
+                               if (priv->page_header != NULL)
+                                       {
+                                               ret = priv->page_header->height;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_FOOTER:
+                               if (priv->page_footer != NULL)
+                                       {
+                                               ret = priv->page_footer->height;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_BODY:
+                               ret = priv->body->height;
+                               break;
+               }
+
+       return ret;
+}
+
 /**
  * rpt_report_set_section_height: 
  * @rpt_report: an #RptReport object.
@@ -570,6 +731,8 @@ rpt_report_set_section_height (RptReport *rpt_report,
 {
        RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
 
+       rpt_report_section_create (rpt_report, section);
+
        switch (section)
                {
                        case RPTREPORT_SECTION_REPORT_HEADER:
@@ -594,6 +757,123 @@ rpt_report_set_section_height (RptReport *rpt_report,
                }
 }
 
+/**
+ * rpt_report_section_get_objects:
+ * @rpt_report:
+ * @section:
+ *
+ */
+GList
+*rpt_report_section_get_objects (RptReport *rpt_report,
+                                 RptReportSection section)
+{
+       GList *objects = NULL;
+
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       switch (section)
+               {
+                       case RPTREPORT_SECTION_REPORT_HEADER:
+                               if (priv->report_header != NULL)
+                                       {
+                                               objects = g_list_copy (priv->report_header->objects);
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_REPORT_FOOTER:
+                               if (priv->report_footer != NULL)
+                                       {
+                                               objects = g_list_copy (priv->report_footer->objects);
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_HEADER:
+                               if (priv->page_header != NULL)
+                                       {
+                                               objects = g_list_copy (priv->page_header->objects);
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_FOOTER:
+                               if (priv->page_footer != NULL)
+                                       {
+                                               objects = g_list_copy (priv->page_footer->objects);
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_BODY:
+                               objects = g_list_copy (priv->body->objects);
+                               break;
+               }
+
+       return objects;
+}
+
+/**
+ * rpt_report_section_remove:
+ * @rpt_report:
+ * @section:
+ *
+ */
+void
+rpt_report_section_remove (RptReport *rpt_report, RptReportSection section)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       switch (section)
+               {
+                       case RPTREPORT_SECTION_REPORT_HEADER:
+                               if (priv->report_header != NULL)
+                                       {
+                                               g_free (priv->report_header);
+                                               priv->report_header = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_REPORT_FOOTER:
+                               if (priv->report_footer != NULL)
+                                       {
+                                               g_free (priv->report_footer);
+                                               priv->report_footer = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_HEADER:
+                               if (priv->page_header != NULL)
+                                       {
+                                               g_free (priv->page_header);
+                                               priv->page_header = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_FOOTER:
+                               if (priv->page_footer != NULL)
+                                       {
+                                               g_free (priv->page_footer);
+                                               priv->page_footer = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_BODY:
+                               /* TO DO */
+                               g_warning ("Body cannot be removed.");
+                               break;
+               }
+}
+
+/**
+ * rpt_report_get_report_header_new_page_after:
+ * @rpt_report:
+ *
+ */
+gboolean
+rpt_report_get_report_header_new_page_after (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       return (priv->report_header == NULL ? FALSE : priv->report_header->new_page_after);
+}
+
 /**
  * rpt_report_set_report_header_new_page_after:
  * @rpt_report: an #RptReport object.
@@ -611,6 +891,19 @@ rpt_report_set_report_header_new_page_after (RptReport *rpt_report, gboolean new
                }
 }
 
+/**
+ * rpt_report_get_report_footer_new_page_before:
+ * @rpt_report:
+ *
+ */
+gboolean
+rpt_report_get_report_footer_new_page_before (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       return (priv->report_footer == NULL ? FALSE : priv->report_footer->new_page_before);
+}
+
 /**
  * rpt_report_set_report_footer_new_page_before:
  * @rpt_report: an #RptReport object.
@@ -628,6 +921,32 @@ rpt_report_set_report_footer_new_page_before (RptReport *rpt_report, gboolean ne
                }
 }
 
+/**
+ * rpt_report_get_page_header_first_page:
+ * @rpt_report: an #RptReport object.
+ *
+ */
+gboolean
+rpt_report_get_page_header_first_page (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       return (priv->page_header == NULL ? FALSE : priv->page_header->first_page);
+}
+
+/**
+ * rpt_report_get_page_header_last_page:
+ * @rpt_report: an #RptReport object.
+ *
+ */
+gboolean
+rpt_report_get_page_header_last_page (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       return (priv->page_header == NULL ? FALSE : priv->page_header->last_page);
+}
+
 /**
  * rpt_report_set_page_header_first_last_page:
  * @rpt_report: an #RptReport object.
@@ -647,6 +966,32 @@ rpt_report_set_page_header_first_last_page (RptReport *rpt_report, gboolean firs
                }
 }
 
+/**
+ * rpt_report_get_page_footer_first_page:
+ * @rpt_report: an #RptReport object.
+ *
+ */
+gboolean
+rpt_report_get_page_footer_first_page (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       return (priv->page_footer ? FALSE : priv->page_footer->first_page);
+}
+
+/**
+ * rpt_report_get_page_footer_last_page:
+ * @rpt_report: an #RptReport object.
+ *
+ */
+gboolean
+rpt_report_get_page_footer_last_page (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       return (priv->page_footer == NULL ? FALSE : priv->page_footer->last_page);
+}
+
 /**
  * rpt_report_set_page_footer_first_last_page:
  * @rpt_report: an #RptReport object.
@@ -666,6 +1011,33 @@ rpt_report_set_page_footer_first_last_page (RptReport *rpt_report, gboolean firs
                }
 }
 
+/**
+ * rpt_report_body_get_new_page_after:
+ * @rpt_report:
+ *
+ */
+gboolean
+rpt_report_body_get_new_page_after (RptReport *rpt_report)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       return priv->body->new_page_after;
+}
+
+/**
+ * rpt_report_body_set_new_page_after:
+ * @rpt_report:
+ * @new_page_after:
+ *
+ */
+void
+rpt_report_body_set_new_page_after (RptReport *rpt_report, gboolean new_page_after)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       priv->body->new_page_after = new_page_after;
+}
+
 /**
  * rpt_report_get_xml:
  * @rpt_report: an #RptReport object.
@@ -681,8 +1053,6 @@ xmlDoc
 
        RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
 
-       /* TO DO */
-
        xdoc = xmlNewDoc ("1.0");
 
        xroot = xmlNewNode (NULL, "reptool");
@@ -731,26 +1101,26 @@ xmlDoc
 
        if (priv->report_header != NULL)
                {
-                       xnode = rpt_report_get_xml_section (rpt_report, RPTREPORT_SECTION_REPORT_HEADER);
+                       xnode = rpt_report_section_get_xml (rpt_report, RPTREPORT_SECTION_REPORT_HEADER);
                        xmlAddChild (xreport, xnode);
                }
        if (priv->page_header != NULL)
                {
-                       xnode = rpt_report_get_xml_section (rpt_report, RPTREPORT_SECTION_PAGE_HEADER);
+                       xnode = rpt_report_section_get_xml (rpt_report, RPTREPORT_SECTION_PAGE_HEADER);
                        xmlAddChild (xreport, xnode);
                }
 
-       xnode = rpt_report_get_xml_section (rpt_report, RPTREPORT_SECTION_BODY);
+       xnode = rpt_report_section_get_xml (rpt_report, RPTREPORT_SECTION_BODY);
        xmlAddChild (xreport, xnode);
 
        if (priv->report_footer != NULL)
                {
-                       xnode = rpt_report_get_xml_section (rpt_report, RPTREPORT_SECTION_REPORT_FOOTER);
+                       xnode = rpt_report_section_get_xml (rpt_report, RPTREPORT_SECTION_REPORT_FOOTER);
                        xmlAddChild (xreport, xnode);
                }
        if (priv->page_footer != NULL)
                {
-                       xnode = rpt_report_get_xml_section (rpt_report, RPTREPORT_SECTION_PAGE_FOOTER);
+                       xnode = rpt_report_section_get_xml (rpt_report, RPTREPORT_SECTION_PAGE_FOOTER);
                        xmlAddChild (xreport, xnode);
                }
 
@@ -984,7 +1354,7 @@ rpt_report_remove_object (RptReport *rpt_report, RptObject *rpt_object)
 {
        RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
 
-       RptReportSection section = rpt_report_get_section_object (rpt_report, rpt_object);
+       RptReportSection section = rpt_report_object_get_section (rpt_report, rpt_object);
 
        switch (section)
                {
@@ -1105,14 +1475,14 @@ static RptObject
 }
 
 /**
- * rpt_report_get_section_object:
+ * rpt_report_object_get_section:
  * @rpt_report: an #RptReport object.
  * @rpt_object: an #RptObject object.
  *
  * Returns: the #RptReportSection in which @rpt_object is contained.
  */
 static RptReportSection
-rpt_report_get_section_object (RptReport *rpt_report, RptObject *rpt_object)
+rpt_report_object_get_section (RptReport *rpt_report, RptObject *rpt_object)
 {
        RptReportSection section = -1;
 
@@ -1142,6 +1512,57 @@ rpt_report_get_section_object (RptReport *rpt_report, RptObject *rpt_object)
        return section;
 }
 
+/**
+ * rpt_report_section_create:
+ * @rpt_report:
+ * @section:
+ *
+ */
+static void
+rpt_report_section_create (RptReport *rpt_report, RptReportSection section)
+{
+       RptReportPrivate *priv = RPT_REPORT_GET_PRIVATE (rpt_report);
+
+       switch (section)
+               {
+                       case RPTREPORT_SECTION_REPORT_HEADER:
+                               if (priv->report_header == NULL)
+                                       {
+                                               priv->report_header = (ReportHeader *)g_malloc0 (sizeof (ReportHeader));
+                                               priv->report_header->objects = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_REPORT_FOOTER:
+                               if (priv->report_footer == NULL)
+                                       {
+                                               priv->report_footer = (ReportFooter *)g_malloc0 (sizeof (ReportFooter));
+                                               priv->report_footer->objects = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_HEADER:
+                               if (priv->page_header == NULL)
+                                       {
+                                               priv->page_header = (PageHeader *)g_malloc0 (sizeof (PageHeader));
+                                               priv->page_header->objects = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_PAGE_FOOTER:
+                               if (priv->page_footer == NULL)
+                                       {
+                                               priv->page_footer = (PageFooter *)g_malloc0 (sizeof (PageFooter));
+                                               priv->page_footer->objects = NULL;
+                                       }
+                               break;
+
+                       case RPTREPORT_SECTION_BODY:
+                               g_warning ("Body cannot be created.");
+                               break;
+               }
+}
+
 /** 
  * rpt_report_object_is_in_section:
  * @rpt_report: an #RptReport object.
@@ -1200,13 +1621,13 @@ rpt_report_object_is_in_section (RptReport *rpt_report, RptObject *rpt_object, R
 }
 
 /**
- * rpt_report_get_xml_section:
+ * rpt_report_section_get_xml:
  * @rpt_report: an #RptReport object.
  * @section:
  *
  */
 static xmlNode
-*rpt_report_get_xml_section (RptReport *rpt_report , RptReportSection section)
+*rpt_report_section_get_xml (RptReport *rpt_report , RptReportSection section)
 {
        xmlNode *xnode = NULL;
        xmlNode *xnodechild;
index 5be4f23b29159cf9070b0f5dc6ed92d1f0aaa826..f5636ecb67f472821f560dbacff0c41dd803d5ac 100644 (file)
@@ -70,35 +70,61 @@ RptReport *rpt_report_new (void);
 RptReport *rpt_report_new_from_xml (xmlDoc *xdoc);
 RptReport *rpt_report_new_from_file (const gchar *filename);
 
+const gchar *rpt_report_database_get_provider (RptReport *rpt_report);
+const gchar *rpt_report_database_get_connection_string (RptReport *rpt_report);
+const gchar *rpt_report_database_get_sql (RptReport *rpt_report);
 void rpt_report_set_database (RptReport *rpt_report,
                               const gchar *provider_id,
                               const gchar *connection_string,
                               const gchar *sql);
 
+RptSize *rpt_report_get_page_size (RptReport *rpt_report);
 void rpt_report_set_page_size (RptReport *rpt_report,
                                RptSize size);
+
+void rpt_report_get_page_margins (RptReport *rpt_report,
+                                  gdouble *top,
+                                  gdouble *right,
+                                  gdouble *bottom,
+                                  gdouble *left);
 void rpt_report_set_page_margins (RptReport *rpt_report,
                                   gdouble top,
                                   gdouble right,
                                   gdouble bottom,
                                   gdouble left);
 
+gdouble rpt_report_get_section_height (RptReport *rpt_report,
+                                       RptReportSection section);
 void rpt_report_set_section_height (RptReport *rpt_report,
                                     RptReportSection section,
                                     gdouble height);
+GList *rpt_report_section_get_objects (RptReport *rpt_report,
+                                       RptReportSection section);
+void rpt_report_section_remove (RptReport *rpt_report, RptReportSection section);
 
+gboolean rpt_report_get_report_header_new_page_after (RptReport *rpt_report);
 void rpt_report_set_report_header_new_page_after (RptReport *rpt_report,
                                                   gboolean new_page_after);
+                                                                                                 
+gboolean rpt_report_get_report_footer_new_page_before (RptReport *rpt_report);
 void rpt_report_set_report_footer_new_page_before (RptReport *rpt_report,
                                                    gboolean new_page_before);
 
+gboolean rpt_report_get_page_header_first_page (RptReport *rpt_report);
+gboolean rpt_report_get_page_header_last_page (RptReport *rpt_report);
 void rpt_report_set_page_header_first_last_page (RptReport *rpt_report,
                                                  gboolean first_page,
                                                  gboolean last_page);
+
+gboolean rpt_report_get_page_footer_first_page (RptReport *rpt_report);
+gboolean rpt_report_get_page_footer_last_page (RptReport *rpt_report);
 void rpt_report_set_page_footer_first_last_page (RptReport *rpt_report,
                                                  gboolean first_page,
                                                  gboolean last_page);
 
+gboolean rpt_report_body_get_new_page_after (RptReport *rpt_report);
+void rpt_report_body_set_new_page_after (RptReport *rpt_report, gboolean new_page_after);
+
 xmlDoc *rpt_report_get_xml (RptReport *rpt_report);
 
 xmlDoc *rpt_report_get_xml_rptprint (RptReport *rpt_report);