X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fextension%2Fextension.h;h=48ca86cf780871c77fdaef8206aabecb21206ff0;hb=8ebe4cd501af68581f40982b54f463546c59943a;hp=de3dda19b53689eeff28bff668eb5ac3800e2250;hpb=b91d3d6c8f909bda909028eada6bf410d60c95a0;p=inkscape.git diff --git a/src/extension/extension.h b/src/extension/extension.h index de3dda19b..48ca86cf7 100644 --- a/src/extension/extension.h +++ b/src/extension/extension.h @@ -22,7 +22,6 @@ #include #include #include "xml/repr.h" -#include "document.h" #include "extension/extension-forward.h" /** The key that is used to identify that the I/O should be autodetected */ @@ -43,8 +42,11 @@ /** Defines the key for Postscript printing */ #define SP_MODULE_KEY_PRINT_PS "org.inkscape.print.ps" +#define SP_MODULE_KEY_PRINT_CAIRO_PS "org.inkscape.print.ps.cairo" +#define SP_MODULE_KEY_PRINT_CAIRO_EPS "org.inkscape.print.eps.cairo" /** Defines the key for PDF printing */ #define SP_MODULE_KEY_PRINT_PDF "org.inkscape.print.pdf" +#define SP_MODULE_KEY_PRINT_CAIRO_PDF "org.inkscape.print.pdf.cairo" /** Defines the key for LaTeX printing */ #define SP_MODULE_KEY_PRINT_LATEX "org.inkscape.print.latex" /** Defines the key for printing with GNOME Print */ @@ -55,14 +57,9 @@ /** Defines the default printing to use */ #define SP_MODULE_KEY_PRINT_DEFAULT SP_MODULE_KEY_PRINT_WIN32 #else -#ifdef WITH_GNOME_PRINT -/** Defines the default printing to use */ -#define SP_MODULE_KEY_PRINT_DEFAULT SP_MODULE_KEY_PRINT_GNOME -#else /** Defines the default printing to use */ #define SP_MODULE_KEY_PRINT_DEFAULT SP_MODULE_KEY_PRINT_PS #endif -#endif /** Mime type for SVG */ #define MIME_SVG "image/svg+xml" @@ -70,6 +67,13 @@ /** Name of the extension error file */ #define EXTENSION_ERROR_LOG_FILENAME "extension-errors.log" + +#define INKSCAPE_EXTENSION_URI "http://www.inkscape.org/namespace/inkscape/extension" +#define INKSCAPE_EXTENSION_NS_NC "extension" +#define INKSCAPE_EXTENSION_NS "extension:" + +struct SPDocument; + namespace Inkscape { namespace Extension { @@ -97,7 +101,7 @@ private: static std::ofstream error_file; /**< This is the place where errors get reported */ protected: - Inkscape::XML::Node *repr; /**< The XML description of the Extension */ + Inkscape::XML::Node *repr; /**< The XML description of the Extension */ Implementation::Implementation * imp; /**< An object that holds all the functions for making this work */ ExpirationTimer * timer; /**< Timeout to unload after a given time */ @@ -118,7 +122,7 @@ public: void deactivate (void); bool deactivated (void); void printFailure (Glib::ustring reason); - + Implementation::Implementation * get_imp (void) { return imp; }; /* Parameter Stuff */ private: @@ -126,9 +130,32 @@ private: This only gets created if there are parameters in this extension */ +public: + /** \brief A function to get the the number of parameters that + the extension has. + \return The number of parameters. */ + unsigned int param_count ( ) { return parameters == NULL ? 0 : + g_slist_length(parameters); }; + /** \brief A function to get the the number of parameters that + are visible to the user that the extension has. + \return The number of visible parameters. + + \note Currently this just calls param_count as visible isn't implemented + but in the future it'll do something different. Please call + the appropriate function in code so that it'll work in the + future. + */ + unsigned int param_visible_count ( ); + public: /** An error class for when a parameter is called on a type it is not */ class param_wrong_type {}; + class param_not_color_param {}; + class param_not_enum_param {}; + class param_not_string_param {}; + class param_not_float_param {}; + class param_not_int_param {}; + class param_not_bool_param {}; /** An error class for when a parameter is looked for that just * simply doesn't exist */ @@ -157,6 +184,12 @@ public: const gchar * get_param_string (const gchar * name, const SPDocument * doc = NULL, const Inkscape::XML::Node * node = NULL); + guint32 get_param_color (const gchar * name, + const SPDocument * doc = NULL, + const Inkscape::XML::Node * node = NULL); + const gchar * get_param_enum (const gchar * name, + const SPDocument * doc = NULL, + const Inkscape::XML::Node * node = NULL); bool set_param_bool (const gchar * name, bool value, SPDocument * doc = NULL, @@ -173,6 +206,10 @@ public: const gchar * value, SPDocument * doc = NULL, Inkscape::XML::Node * node = NULL); + guint32 set_param_color (const gchar * name, + guint32 color, + SPDocument * doc = NULL, + Inkscape::XML::Node * node = NULL); /* Error file handling */ public: @@ -180,8 +217,8 @@ public: static void error_file_close (void); public: - Gtk::Widget * autogui (SPDocument * doc, Inkscape::XML::Node * node); - Glib::ustring * paramString (void); + Gtk::Widget * autogui (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal * changeSignal = NULL); + void paramListString (std::list & retlist); /* Extension editor dialog stuff */ public: