index 1e3d8ead0dc846a82b1a0133e1139dd1fa2e60e4..48ca86cf780871c77fdaef8206aabecb21206ff0 100644 (file)
#include <gtkmm/table.h>
#include <glibmm/ustring.h>
#include "xml/repr.h"
#include <gtkmm/table.h>
#include <glibmm/ustring.h>
#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 */
#include "extension/extension-forward.h"
/** The key that is used to identify that the I/O should be autodetected */
/** Defines the key for Postscript printing */
#define SP_MODULE_KEY_PRINT_PS "org.inkscape.print.ps"
/** 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 */
/** Defines the key for LaTeX printing */
#define SP_MODULE_KEY_PRINT_LATEX "org.inkscape.print.latex"
/** Defines the key for printing with GNOME Print */
/** Defines the default printing to use */
#define SP_MODULE_KEY_PRINT_DEFAULT SP_MODULE_KEY_PRINT_WIN32
#else
/** 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
/** 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"
/** Mime type for SVG */
#define MIME_SVG "image/svg+xml"
/** Name of the extension error file */
#define EXTENSION_ERROR_LOG_FILENAME "extension-errors.log"
/** 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 {
namespace Inkscape {
namespace Extension {
static std::ofstream error_file; /**< This is the place where errors get reported */
protected:
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 */
Implementation::Implementation * imp; /**< An object that holds all the functions for making this work */
ExpirationTimer * timer; /**< Timeout to unload after a given time */
void deactivate (void);
bool deactivated (void);
void printFailure (Glib::ustring reason);
void deactivate (void);
bool deactivated (void);
void printFailure (Glib::ustring reason);
-
+ Implementation::Implementation * get_imp (void) { return imp; };
/* Parameter Stuff */
private:
/* Parameter Stuff */
private:
This only gets created if there are parameters in this
extension */
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 {};
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 */
/** An error class for when a parameter is looked for that just
* simply doesn't exist */
const gchar * get_param_string (const gchar * name,
const SPDocument * doc = NULL,
const Inkscape::XML::Node * node = NULL);
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,
bool set_param_bool (const gchar * name,
bool value,
SPDocument * doc = NULL,
const gchar * value,
SPDocument * doc = NULL,
Inkscape::XML::Node * node = NULL);
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:
/* Error file handling */
public:
static void error_file_close (void);
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<void> * changeSignal = NULL);
+ void paramListString (std::list <std::string> & retlist);
/* Extension editor dialog stuff */
public:
/* Extension editor dialog stuff */
public: