]> git.sur5r.net Git - glabels/blobdiff - glabels2/libglabels/xml-paper.c
2007-12-14 Jim Evins <evins@snaught.com>
[glabels] / glabels2 / libglabels / xml-paper.c
index 7bf16288853a1e289fc55e6ad5a98a431d90f63d..0eda5a39edfd8e89a18f5902b799ad5117200d69 100644 (file)
  *  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  *  MA 02111-1307, USA
  */
+#include <config.h>
 
-#include "libglabels-private.h"
+#include "xml-paper.h"
 
+#include <glib/gi18n.h>
+#include <glib/gmessages.h>
 #include <string.h>
 #include <libintl.h>
 
+#include "libglabels-private.h"
+
 #include "xml.h"
-#include "xml-paper.h"
 
 /*===========================================*/
 /* Private types                             */
 /* Local function prototypes                 */
 /*===========================================*/
 
-\f
-/*****************************************************************************/
-/* Read papers from paper file.                                              */
-/*****************************************************************************/
+
+/**
+ * lgl_xml_paper_read_papers_from_file:
+ * @utf8_filename:       Filename of papers file (name encoded as UTF-8)
+ *
+ * Read paper definitions from a file.
+ *
+ * Returns: a list of #lglPaper structures.
+ *
+ */
 GList *
-gl_xml_paper_read_papers_from_file (gchar *utf8_filename)
+lgl_xml_paper_read_papers_from_file (gchar *utf8_filename)
 {
        gchar      *filename;
        GList      *papers;
@@ -58,18 +68,18 @@ gl_xml_paper_read_papers_from_file (gchar *utf8_filename)
 
        filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL);
        if (!filename) {
-               g_warning ("Utf8 filename conversion error");
+               g_message ("Utf8 filename conversion error");
                return NULL;
        }
 
        papers_doc = xmlParseFile (filename);
        if (!papers_doc) {
-               g_warning ("\"%s\" is not a glabels paper file (not XML)",
+               g_message ("\"%s\" is not a glabels paper file (not XML)",
                           filename);
                return NULL;
        }
 
-       papers = gl_xml_paper_parse_papers_doc (papers_doc);
+       papers = lgl_xml_paper_parse_papers_doc (papers_doc);
 
        g_free (filename);
        xmlFreeDoc (papers_doc);
@@ -77,27 +87,34 @@ gl_xml_paper_read_papers_from_file (gchar *utf8_filename)
        return papers;
 }
 
-/*****************************************************************************/
-/* Read papers from paper xml doc tree.                                      */
-/*****************************************************************************/
+
+/**
+ * lgl_xml_paper_parse_papers_doc:
+ * @papers_doc:  libxml #xmlDocPtr tree, representing a papers definition file.
+ *
+ * Read paper definitions from a libxml #xmlDocPtr tree.
+ *
+ * Returns: a list of #lglPaper structures.
+ *
+ */
 GList *
-gl_xml_paper_parse_papers_doc (xmlDocPtr  papers_doc)
+lgl_xml_paper_parse_papers_doc (xmlDocPtr  papers_doc)
 {
        GList      *papers = NULL;
        xmlNodePtr  root, node;
-       glPaper    *paper;
+       lglPaper   *paper;
 
        LIBXML_TEST_VERSION;
 
        root = xmlDocGetRootElement (papers_doc);
        if (!root || !root->name) {
-               g_warning ("\"%s\" is not a glabels paper file (no root node)",
+               g_message ("\"%s\" is not a glabels paper file (no root node)",
                           papers_doc->name);
                xmlFreeDoc (papers_doc);
                return papers;
        }
-       if (!xmlStrEqual (root->name, "Glabels-paper-sizes")) {
-               g_warning ("\"%s\" is not a glabels paper file (wrong root node)",
+       if (!lgl_xml_is_node (root, "Glabels-paper-sizes")) {
+               g_message ("\"%s\" is not a glabels paper file (wrong root node)",
                           papers_doc->name);
                xmlFreeDoc (papers_doc);
                return papers;
@@ -105,13 +122,13 @@ gl_xml_paper_parse_papers_doc (xmlDocPtr  papers_doc)
 
        for (node = root->xmlChildrenNode; node != NULL; node = node->next) {
 
-               if (xmlStrEqual (node->name, "Paper-size")) {
-                       paper = gl_xml_paper_parse_paper_node (node);
+               if (lgl_xml_is_node (node, "Paper-size")) {
+                       paper = lgl_xml_paper_parse_paper_node (node);
                        papers = g_list_append (papers, paper);
                } else {
                        if ( !xmlNodeIsText(node) ) {
-                               if (!xmlStrEqual (node->name,"comment")) {
-                                       g_warning ("bad node =  \"%s\"",node->name);
+                               if (!lgl_xml_is_node (node, "comment")) {
+                                       g_message ("bad node =  \"%s\"",node->name);
                                }
                        }
                }
@@ -120,31 +137,33 @@ gl_xml_paper_parse_papers_doc (xmlDocPtr  papers_doc)
        return papers;
 }
 
-/*****************************************************************************/
-/* Parse XML paper Node.                                                     */
-/*****************************************************************************/
-glPaper *
-gl_xml_paper_parse_paper_node (xmlNodePtr paper_node)
+
+/**
+ * lgl_xml_paper_parse_paper_node:
+ * @paper_node:  libxml #xmlNodePtr paper node from a #xmlDocPtr tree.
+ *
+ * Read a single paper definition from a libxml #xmlNodePtr node.
+ *
+ * Returns: a pointer to a newly created #lglPaper structure.
+ *
+ */
+lglPaper *
+lgl_xml_paper_parse_paper_node (xmlNodePtr paper_node)
 {
-       glPaper               *paper;
+       lglPaper              *paper;
        gchar                 *id, *name;
        gdouble                width, height;
 
        LIBXML_TEST_VERSION;
 
-       id   = xmlGetProp (paper_node, "id");
+       id   = lgl_xml_get_prop_string (paper_node, "id", NULL);
 
-       name = xmlGetProp (paper_node, "_name");
-       if (name != NULL) {
-               name = gettext (name);
-       } else {
-               name = xmlGetProp (paper_node, "name");
-       }
+       name = lgl_xml_get_prop_i18n_string (paper_node, "name", NULL);
 
-       width  = gl_xml_get_prop_length (paper_node, "width", 0);
-       height = gl_xml_get_prop_length (paper_node, "height", 0);
+       width  = lgl_xml_get_prop_length (paper_node, "width", 0);
+       height = lgl_xml_get_prop_length (paper_node, "height", 0);
 
-       paper = gl_paper_new (id, name, width, height);
+       paper = lgl_paper_new (id, name, width, height);
 
        g_free (id);
        g_free (name);