index afaecbdc44b1eac9fbd097308bc666904f7e593c..2adea1770c369605b2b48f27a38201d092f7600e 100644 (file)
gchar * _name;
protected:
+ /** \brief Description of the parameter. */
+ gchar * _desc;
+ /** \brief List of possible scopes. */
+ typedef enum {
+ SCOPE_USER, /**< Parameter value is saved in the user's configuration file. (default) */
+ SCOPE_DOCUMENT, /**< Parameter value is saved in the document. */
+ SCOPE_NODE /**< Parameter value is attached to the node. */
+ } _scope_t;
+ /** \brief Scope of the parameter. */
+ _scope_t _scope;
/** \brief Text for the GUI selection of this. */
gchar * _text;
gchar * pref_name (void);
public:
- Parameter (const gchar * name, const gchar * guitext, Inkscape::Extension::Extension * ext);
- virtual ~Parameter(void);
- bool get_bool (const Inkscape::XML::Document * doc);
- int get_int (const Inkscape::XML::Document * doc);
- float get_float (const Inkscape::XML::Document * doc);
- const gchar * get_string (const Inkscape::XML::Document * doc);
+ Parameter (const gchar * name,
+ const gchar * guitext,
+ const gchar * desc,
+ const Parameter::_scope_t scope,
+ Inkscape::Extension::Extension * ext);
+ Parameter (const gchar * name,
+ const gchar * guitext,
+ Inkscape::Extension::Extension * ext) {
+ Parameter(name, guitext, NULL, Parameter::SCOPE_USER, ext);
+ };
+ virtual ~Parameter (void);
+ bool get_bool (const Inkscape::XML::Document * doc,
+ const Inkscape::XML::Node * node);
+ int get_int (const Inkscape::XML::Document * doc,
+ const Inkscape::XML::Node * node);
+ float get_float (const Inkscape::XML::Document * doc,
+ const Inkscape::XML::Node * node);
+ const gchar * get_string (const Inkscape::XML::Document * doc,
+ const Inkscape::XML::Node * node);
- bool set_bool (bool in, Inkscape::XML::Document * doc);
- int set_int (int in, Inkscape::XML::Document * doc);
- float set_float (float in, Inkscape::XML::Document * doc);
- const gchar * set_string (const gchar * in, Inkscape::XML::Document * doc);
+ bool set_bool (bool in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
+ int set_int (int in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
+ float set_float (float in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
+ const gchar * set_string (const gchar * in, Inkscape::XML::Document * doc, Inkscape::XML::Node * node);
const gchar * name (void) {return _name;}
static Parameter * make (Inkscape::XML::Node * in_repr, Inkscape::Extension::Extension * in_ext);
virtual Gtk::Widget * get_widget (void);
virtual Glib::ustring * string (void);
+ gchar const * get_tooltip (void) { return _desc; }
};