X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fextension%2Fparameter.h;h=e1e27302c4e021ada5b1a4271dde5a673cf50fbe;hb=7150f0829e7f5452f5cab605b8014a245f9b7e7c;hp=d527421edfdedec84d13a1308add8d130bd018d5;hpb=9deaa46a0fb28baabbf3b23fab07a0f53abf3704;p=inkscape.git diff --git a/src/extension/parameter.h b/src/extension/parameter.h index d527421ed..e1e27302c 100644 --- a/src/extension/parameter.h +++ b/src/extension/parameter.h @@ -9,7 +9,7 @@ * Authors: * Ted Gould * - * Copyright (C) 2005 Authors + * Copyright (C) 2005-2006 Authors * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -21,6 +21,13 @@ namespace Inkscape { namespace Extension { +/** \brief A class to represent the parameter of an extension + + This is really a super class that allows them to abstract all + the different types of parameters into some that can be passed + around. There is also a few functions that are used by all the + different parameters. +*/ class Parameter { private: /** \brief Which extension is this parameter attached to? */ @@ -29,32 +36,58 @@ private: 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); + + + /* **** funcs **** */ + gchar * pref_name (void); + Inkscape::XML::Node * find_child (Inkscape::XML::Node * adult); + Inkscape::XML::Node * document_param_node (SPDocument * doc); + Inkscape::XML::Node * new_child (Inkscape::XML::Node * parent); public: - Parameter (const gchar * name, const gchar * guitext, Inkscape::Extension::Extension * ext); - virtual ~Parameter(void); - bool get_bool (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 SPDocument * doc, const Inkscape::XML::Node * node); - int get_int (const Inkscape::XML::Document * doc, + int get_int (const SPDocument * doc, const Inkscape::XML::Node * node); - float get_float (const Inkscape::XML::Document * doc, + float get_float (const SPDocument * doc, const Inkscape::XML::Node * node); - const gchar * get_string (const Inkscape::XML::Document * doc, + const gchar * get_string (const SPDocument * doc, const Inkscape::XML::Node * node); - 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); + bool set_bool (bool in, SPDocument * doc, Inkscape::XML::Node * node); + int set_int (int in, SPDocument * doc, Inkscape::XML::Node * node); + float set_float (float in, SPDocument * doc, Inkscape::XML::Node * node); + const gchar * set_string (const gchar * in, SPDocument * 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 Gtk::Widget * get_widget (SPDocument * doc, Inkscape::XML::Node * node); virtual Glib::ustring * string (void); + gchar const * get_tooltip (void) { return _desc; } };