From db78d89d9f0c5321e3d449a482d5addc02492eee Mon Sep 17 00:00:00 2001 From: gouldtj Date: Tue, 2 May 2006 05:27:56 +0000 Subject: [PATCH] r11514@tres: ted | 2006-04-24 22:19:54 -0700 Added in some helper functions. --- src/extension/parameter.cpp | 33 +++++++++++++++++++++++++++++++++ src/extension/parameter.h | 7 ++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/extension/parameter.cpp b/src/extension/parameter.cpp index 0e67d96c8..00bc8369a 100644 --- a/src/extension/parameter.cpp +++ b/src/extension/parameter.cpp @@ -24,6 +24,8 @@ #include "extension.h" #include "prefs-utils.h" +#include "document-private.h" +#include "sp-object.h" #include "parameter.h" @@ -510,6 +512,37 @@ Parameter::pref_name (void) return g_strdup_printf("%s.%s", extension->get_id(), _name); } +/** \brief Build the name to write the parameter in a node object. This + requires the inkscape namespace and the other info. */ +gchar * +Parameter::node_name (void) +{ + return g_strdup_printf("inkscape:extension-param-%s-%s", extension->get_id(), _name); +} + +Inkscape::XML::Node * +Parameter::document_param_node (SPDocument * doc) +{ + Inkscape::XML::Node * defs = SP_OBJECT_REPR(SP_DOCUMENT_DEFS(doc)); + Inkscape::XML::Node * params = NULL; + + for (Inkscape::XML::Node * child = defs->firstChild(); + child != NULL; + child = child->next()) { + if (!strcmp(child->name(), "inkscape:extension-param")) { + params = child; + break; + } + } + + if (params == NULL) { + params = sp_repr_new("inkscape:extension-param"); + defs->appendChild(params); + } + + return params; +} + /** \brief Basically, if there is no widget pass a NULL. */ Gtk::Widget * Parameter::get_widget (void) diff --git a/src/extension/parameter.h b/src/extension/parameter.h index 67cceff60..a29c5cb67 100644 --- a/src/extension/parameter.h +++ b/src/extension/parameter.h @@ -48,7 +48,12 @@ protected: _scope_t _scope; /** \brief Text for the GUI selection of this. */ gchar * _text; - gchar * pref_name (void); + + + /* **** funcs **** */ + gchar * pref_name (void); + gchar * node_name (void); + Inkscape::XML::Node * document_param_node (SPDocument * doc); public: Parameter (const gchar * name, -- 2.39.5